Skip to content

Latest commit

 

History

History
299 lines (195 loc) · 15.7 KB

File metadata and controls

299 lines (195 loc) · 15.7 KB

Changelog

Все заметные изменения в этом проекте будут документироваться в этом файле.

Формат основан на Keep a Changelog.
Проект не использует строгую семантическую версификацию, версии отражают этапы развития функциональности.


[0.3.1] — 2026-01-03

Added

Adaptive software dead time (anti-bounce)

  • Implemented adaptive software dead time for interrupt pulse filtering.

  • Software dead time is now dynamically adjusted based on averaged CPS value.

  • Dead time values are automatically selected:

  • 3000 µs — background / low CPS

  • 2500 µs — elevated background

  • 2000 µs — high count rate (upper reliable range)

  • Adaptive dead time is applied only to interrupt filtering and does not affect physical dead time compensation.

  • Optional on-screen indicator (S / M / F) shows current dead time mode.

Адаптивное программное мёртвое время (антидребезг)

  • Реализовано адаптивное программное мёртвое время для фильтрации импульсов в прерывании.

  • Программное мёртвое время теперь автоматически подбирается на основе усреднённого CPS.

  • Используются фиксированные уровни:

  • 3000 мкс — фон / низкий уровень счёта

  • 2500 мкс — повышенный фон

  • 2000 мкс — высокий уровень счёта (верхний достоверный диапазон)

  • Адаптивное мёртвое время влияет только на программный антидребезг и не вмешивается в физическую компенсацию мёртвого времени трубки.

  • Добавлен визуальный индикатор режима антидребезга (S / M / F) на основном экране.


Changed

  • Fixed software dead time (DEAD_TIME_US) replaced with adaptive runtime-controlled value (dynamicDeadTime_us).

  • Interrupt Service Routine now uses adaptive dead time instead of compile-time constant.

  • Initial software dead time reduced from 20 ms to 3 ms to extend measurable CPS range.

  • Firmware version updated to 0.3.1.

Изменено

  • Фиксированное программное мёртвое время (DEAD_TIME_US) заменено на адаптивное (dynamicDeadTime_us).

  • Обработчик прерываний теперь использует динамически обновляемое мёртвое время.

  • Начальное программное мёртвое время уменьшено с 20 мс до 3 мс для расширения диапазона измерений.

  • Обновлён номер версии прошивки до 0.3.1.


Unchanged

  • Physical dead-time compensation model (non-paralyzable).

  • Dynamic averaging window with hysteresis (5 s ↔ 30 s).

  • Dose rate, CPS and B-8 calculation methodology.

  • Dose accumulation logic and time integration.

  • Pulse counting architecture and interrupt-based measurement.

  • Hardware interface (LCD, buzzer, LED, button behavior).

  • Calibration constants CPS → µSv/h and CPS → B-8.

Без изменений

  • Модель компенсации физического мёртвого времени трубки (непарализуемая).

  • Динамическое окно усреднения с гистерезисом (5 с ↔ 30 с).

  • Методика расчёта CPS, мощности дозы и эквивалента Б-8.

  • Логика накопления дозы и интеграция по времени.

  • Архитектура подсчёта импульсов и работа через прерывания.

  • Аппаратный интерфейс (LCD, пищалка, светодиод, кнопка).

  • Калибровочные коэффициенты CPS → µSv/h и CPS → Б-8.


Notes

  • Adaptive software dead time increases usable CPS range without compromising background stability.

  • Dead time adaptation operates on a 1-second timescale and does not introduce ISR jitter.

Примечания

  • Адаптивный антидребезг расширяет рабочий диапазон CPS без ухудшения стабильности фоновых измерений.

  • Обновление мёртвого времени происходит раз в секунду и не вносит нестабильности в ISR.


[0.3.0] — 2026-01-02

Added

  • Dead-time compensation for Geiger tube

    • Implemented physical dead time correction using the non-paralyzable model.
    • Tube dead time is configurable via TUBE_DEAD_TIME_S parameter.
    • All dose rate and CPS calculations now use corrected (true) count rate.
  • Startup screen

    • On power-up, the device displays its name and firmware version for 2.5 seconds.
  • Dynamic averaging window with hysteresis

    • Adaptive averaging window length (5 s ↔ 30 s) depending on radiation level.
    • Automatic switch to fast response mode when CPS exceeds 3.0.
    • Automatic return to stable background mode when CPS drops below 1.5.
    • Built-in hysteresis prevents frequent window switching.

  • Компенсация мёртвого времени трубки

    • Реализована коррекция физического мёртвого времени счётчика Гейгера по непарализуемой модели.
    • Паспортное мёртвое время трубки задаётся параметром TUBE_DEAD_TIME_S.
    • Все расчёты CPS и мощности дозы выполняются с использованием скорректированной частоты счёта.
  • Экран загрузки

    • При включении прибора на 2.5 секунды отображается название устройства и версия прошивки.
  • Динамическое окно усреднения с гистерезисом

    • Адаптивная длина окна усреднения (5 с ↔ 30 с) в зависимости от уровня радиации.
    • Автоматический переход в быстрый режим при CPS > 3.0.
    • Автоматический возврат в фоновый режим при CPS < 1.5.
    • Гистерезис предотвращает частые переключения режимов.

Changed

  • CPS, dose rate (µSv/h) and B-8 equivalent are now calculated using:
    • dynamic averaging window;
    • dead-time–corrected count rate.
  • Improved accuracy at elevated count rates without degrading background stability.

  • CPS, мощность дозы (µSv/h) и эквивалент Б-8 теперь рассчитываются:
    • с использованием динамического окна усреднения;
    • с учётом компенсации мёртвого времени трубки.
  • Повышена точность измерений при высоких уровнях счёта без ухудшения стабильности на фоне.

Unchanged

  • Pulse counting logic, interrupt handling and software dead time.
  • Dose accumulation method (time integration remains statistically correct).
  • Hardware interface (LCD, buzzer, LED, button behavior).
  • Calibration constants CPS → µSv/h and CPS → B-8.

  • Логика подсчёта импульсов, обработка прерываний и программное мёртвое время.
  • Метод накопления дозы (интеграция по времени остаётся статистически корректной).
  • Аппаратный интерфейс (LCD, пищалка, светодиод, кнопка).
  • Калибровочные коэффициенты CPS → µSv/h и CPS → Б-8.

Notes

  • Dead-time compensation becomes significant at elevated count rates and does not affect background measurements.
  • Dynamic averaging window affects displayed dose rate only; accumulated dose accuracy is preserved.
  • Algorithm behavior is consistent with survey meter practices (IEC 60846-1 methodology).

  • Компенсация мёртвого времени становится значимой при повышенных уровнях счёта и не влияет на фоновые измерения.
  • Динамическое окно влияет только на отображаемую мощность дозы; накопленная доза не искажается.
  • Алгоритм соответствует методическим принципам контрольных дозиметрических приборов (IEC 60846-1).

[0.2.2] — 2026-01-01

Added

  • Dynamic averaging window for CPS calculation

    • Adaptive sliding window length (5 s ↔ 30 s) depending on radiation level.
    • Automatic switch to fast response mode when CPS exceeds 3.0.
    • Automatic return to stable background mode when CPS drops below 1.5.
    • Built-in hysteresis prevents frequent window switching.
  • Added boot screen: On power-on, the device name and firmware version are displayed for 2.5 seconds.

  • Динамическое окно усреднения для расчёта CPS

    • Адаптивная длина окна усреднения (5 с ↔ 30 с) в зависимости от уровня радиации.
    • Автоматический переход в быстрый режим при CPS > 3.0.
    • Автоматический возврат в стабильный фоновый режим при CPS < 1.5.
    • Гистерезис предотвращает частые переключения режима.
  • Добавлен экран загрузки: При включении прибора на 2.5 секунды отображается его название и версия прошивки.

Changed

  • CPS, мощность дозы (µSv/h), эквивалент Б-8 и статистическая погрешность теперь рассчитываются с использованием динамической длины окна вместо фиксированного 30-секундного окна.

  • Улучшена реакция прибора на резкие изменения уровня радиации при сохранении стабильных показаний на фоне.

  • CPS, dose rate (µSv/h), B-8 equivalent and statistical error are now calculated using a dynamic averaging window instead of a fixed 30 s window.

  • Improved responsiveness to rapid radiation level changes while maintaining stable background readings.

Unchanged

  • Логика подсчёта импульсов, обработка прерываний и программное мёртвое время.

  • Метод накопления дозы (интеграция по времени остаётся статистически корректной).

  • Аппаратный интерфейс (LCD, пищалка, светодиод, кнопка).

  • Калибровочные коэффициенты и физическая модель измерений.

  • Pulse counting logic, interrupt handling and software dead time.

  • Dose accumulation method (time-integrated dose remains statistically correct).

  • Hardware interface (LCD, buzzer, LED, button behavior).

  • Calibration constants and physical measurement model.

Notes

  • Динамическое окно влияет только на отображаемую мощность дозы, накопленная доза не искажается.

  • Алгоритм соответствует практике контрольных дозиметрических приборов (IEC 60846-1 по методике).

  • The dynamic window affects displayed dose rate only; accumulated dose accuracy is preserved.

  • The algorithm behavior is consistent with control/survey meter practices (IEC 60846-1 methodology).


[0.2.1] — 2025-12-28

Added

  • Добавлена визуальная индикация каждого регистрируемого импульса (короткая вспышка встроенного светодиода).
  • Реализован неблокирующий таймер для автоматического выключения светодиода после вспышки.

Changed

  • Логика флага beepFlag теперь одновременно инициирует звуковой сигнал и световую вспышку.

[0.2.0] — 2025-12-28

Added

  • Добавлена кнопка управления режимами отображения.
  • Реализованы два режима дисплея:
    • MAIN — текущие измерения (CPS, Б-8, µSv/h, статистическая ошибка).
    • ACCUM — накопленная доза и время измерения.
  • Реализовано накопление дозы (µSv) с корректной интеграцией мощности дозы.
  • Добавлен счётчик общего времени измерения.
  • Добавлен пересчёт CPS в условные единицы Б-8.
  • Реализован полный сброс измерений по длинному нажатию кнопки.
  • Добавлена относительная статистическая погрешность (%).

Changed

  • Изменён коэффициент пересчёта CPS → µSv/h (0.30 → 0.34).
  • Статистическая ошибка теперь отображается в процентах, а не в абсолютных единицах.
  • Убрано автоматическое переключение единиц (nSv / µSv / mSv) — используются фиксированные единицы.
  • Обновлена логика пользовательского интерфейса для повышения читаемости.
  • Код реорганизован в сторону архитектуры полноценного дозиметра.

Removed

  • Удалён автоматический выбор единиц измерения.
  • Удалён вывод абсолютной ошибки ±µSv/h.
  • Убрана стартовая заставка при включении.

[0.1.0] — 2025-12-27

Added

  • Подсчёт импульсов счётчика Гейгера через аппаратное прерывание.
  • Программное мёртвое время для подавления дребезга и ложных срабатываний.
  • Скользящее окно (30 секунд) для расчёта CPS.
  • Пересчёт CPS в мощность дозы (µSv/h).
  • Расчёт статистической ошибки по Пуассону.
  • Автоматический выбор единиц (nSv/h, µSv/h, mSv/h).
  • Звуковая индикация каждого импульса.
  • Отображение данных на LCD 16×2 (I2C).

Notes

  • Версия представляет собой монитор радиационного фона без накопления дозы.
  • Предназначена для демонстрации и онлайн-наблюдения.