2026 m. spalio 3 d., šeštadienis

Firware modification by Nic Wilson from Australia

Nic Wilson from Brisbane, Australia has bought quite a few of my Geiger counter boards over the years. He has also put a lot of work into the open-source GeigerKit firmware and agreed to share his branch here, together with a set of documentation he wrote for it. Thank you, Nic!

GEIGER by Nic SBM-20 11.1.13

About the version numbers

Version numbers in this firmware (11.0.5 up to 11.1.13) are Nic's branch versioning. They continue from the 11.0.x numbering of the original GeigerKit sketch (bHogan / DIY Geiger Counter) and my SMD adaptation (v11.0.2), but they are not official upstream releases and are not tracked in my repository. If you report an issue, please say "Nic's branch 11.1.x".

Release status

11.1.5 is the last fully documented, hardware-tested baseline (button menu, tube selection and startup changes tested on two boards).
11.1.13 is the current build. It adds selectable IR remote profiles and is marked by Nic as a test build until remote operation and EEPROM persistence are confirmed on hardware.

What Nic changed

Full settings menu without a remote

Nic's favourite feature. Hold MODE and TONE/ZERO together for about one second to enter the settings menu, then release both buttons. The IR remote still works, but is no longer required.

In the menuAction
MODE shortSave and go to next item
MODE doubleSave and go to previous item
TONE/ZERO shortIncrease / change value
TONE/ZERO doubleDecrease / change value
MODE longSave and exit

Pulse counting continues while the menu is open.

Tube type selection

New TUBE TYPE menu item with three presets. The choice is saved in EEPROM, shown at startup, and automatically writes the matching ratio to both primary and secondary RATIO values. Manual RATIO adjustment is still available.

TubePreset
SBT-11A318 CPM per µSv/h
SBM-20220 CPM per µSv/h
SI29BG100 CPM per µSv/h (project preset)

Faster startup

Startup now shows only "GEIGER by Nic", the selected tube and the firmware version for about 1.5 seconds, then goes straight to the live CPM/dose display. The ratio/voltage splash, alarm prompt and other startup pages were removed, as these settings are now in the menu.

Diagnostics mode

Long-press MODE during normal operation to open six diagnostic pages; MODE short goes forward, TONE/ZERO short goes back, MODE long exits. Pulses keep counting in the background, and timers restart cleanly on exit.

PageShows
1Firmware version and hardware ID (SMD v2.0.1)
2Active calibration ratio and dose unit
3Pulses since entry and supply voltage
4Current / minimum free SRAM and uptime
5Reset cause (POR, EXT, BOR, WDT) and CPU clock
6EEPROM map identifier and build date

IR remote profiles (11.1.13, test build)

New REMOTE TYPE menu item, saved in EEPROM: NEC ORIGINAL (the original 21-key remote), NEC LED (a common RGB LED-strip remote) and SONY (Sony SIRC TV remote). An IR TEST page shows raw received codes and can decode NEC, Sony and Philips RC5, which helps when trying an unknown remote. RC5 is diagnostic-only for now.

Reliability and code fixes

  • Atomic access to the 32-bit pulse counters, so the 8-bit AVR cannot read a half-updated value.
  • Bargraph, version-text, tone arithmetic and analog-meter signedness fixes.
  • SBT-11A calibration audit and flash-string cleanup.
  • Changing display mode now also applies the matching ratio (previously done by hand).
  • INFINITY renamed to INFINITYVAL to avoid a clash with Arduino.h.
  • Measurement maths and the existing EEPROM layout are preserved; no migration is needed.

Full change list

VersionChange
11.0.5Ratio follows display mode; INFINITY renamed
11.0.6Frozen working baseline
11.0.7 b1–b6Atomic counters, bargraph/version fixes, flash strings, tone fix, meter signedness, SBT-11A audit
11.1.0 a1Hidden diagnostics mode on the 16×2 LCD (hardware tested)
11.1.0 a2SRAM tracking, CPU frequency and build info (hardware tested)
11.1.0 a3Reset-cause capture, hardware ID, informational EEPROM map v1, six diagnostic pages
11.1.1Unified tube selection, tube shown at startup
11.1.2Full two-button settings menu (hardware tested)
11.1.3TUBE TYPE menu, EEPROM-persistent (tested on two boards)
11.1.4Simplified startup (hardware tested)
11.1.5Live display drawn immediately after banner (hardware tested baseline)
11.1.6–11.1.9IR TEST page, raw NEC display, receiver activity and burst diagnostics
11.1.10Selectable NEC / Sony / RC5 test decoders; Sony remote mapped
11.1.11–11.1.12RC5 experiments; LED-strip remote confirmed as NEC
11.1.13REMOTE TYPE profiles: NEC ORIGINAL, NEC LED, SONY (test build)

Normal-operation buttons

GestureMODETONE/ZERO
ShortMain / scaler display; silence alarmSet tone zero point
DoubleLCD backlight on/offMute / unmute
LongDiagnosticsPrimary / secondary ratio
Both ~1 sSettings menu
Held at power-upReset EEPROM to defaults–

What's in the ZIP

  • Arduino sketch: GeigerKit.ino, GeigerKit.h, Menu.ino, IR.ino/IR.h, Meter.ino, PinChangeInt.h
  • User Manual, Button and Menu Guide, Technical Reference, Engineering Notes, Changelog (Word format)
  • Button menu quick guide (text)

Hardware target: ATmega328P at 10 MHz, 16×2 HD44780 LCD, SMD board v2.0.1.

This firmware is shared as-is by Nic for the community. A Geiger counter built from this kit is an educational instrument, not a certified dosimeter. The high-voltage section carries several hundred volts — disconnect power before working on the board.



Komentarų nėra:

Rašyti komentarą