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!
Download Nic's firmware and documentation (ZIP):
Short link: https://tinyurl.com/firmware-nic
Full link: https://www.dropbox.com/scl/fi/0317rqvvqlfkezja1azxq/GeigerKit.zip?rlkey=hh4zt77do85620wzkp9yg7yy1&st=jkkfuhw2&dl=0
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 menu | Action |
|---|---|
| MODE short | Save and go to next item |
| MODE double | Save and go to previous item |
| TONE/ZERO short | Increase / change value |
| TONE/ZERO double | Decrease / change value |
| MODE long | Save 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.
| Tube | Preset |
|---|---|
| SBT-11A | 318 CPM per µSv/h |
| SBM-20 | 220 CPM per µSv/h |
| SI29BG | 100 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.
| Page | Shows |
|---|---|
| 1 | Firmware version and hardware ID (SMD v2.0.1) |
| 2 | Active calibration ratio and dose unit |
| 3 | Pulses since entry and supply voltage |
| 4 | Current / minimum free SRAM and uptime |
| 5 | Reset cause (POR, EXT, BOR, WDT) and CPU clock |
| 6 | EEPROM 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).
INFINITYrenamed toINFINITYVALto avoid a clash with Arduino.h.- Measurement maths and the existing EEPROM layout are preserved; no migration is needed.
Full change list
| Version | Change |
|---|---|
| 11.0.5 | Ratio follows display mode; INFINITY renamed |
| 11.0.6 | Frozen working baseline |
| 11.0.7 b1–b6 | Atomic counters, bargraph/version fixes, flash strings, tone fix, meter signedness, SBT-11A audit |
| 11.1.0 a1 | Hidden diagnostics mode on the 16×2 LCD (hardware tested) |
| 11.1.0 a2 | SRAM tracking, CPU frequency and build info (hardware tested) |
| 11.1.0 a3 | Reset-cause capture, hardware ID, informational EEPROM map v1, six diagnostic pages |
| 11.1.1 | Unified tube selection, tube shown at startup |
| 11.1.2 | Full two-button settings menu (hardware tested) |
| 11.1.3 | TUBE TYPE menu, EEPROM-persistent (tested on two boards) |
| 11.1.4 | Simplified startup (hardware tested) |
| 11.1.5 | Live display drawn immediately after banner (hardware tested baseline) |
| 11.1.6–11.1.9 | IR TEST page, raw NEC display, receiver activity and burst diagnostics |
| 11.1.10 | Selectable NEC / Sony / RC5 test decoders; Sony remote mapped |
| 11.1.11–11.1.12 | RC5 experiments; LED-strip remote confirmed as NEC |
| 11.1.13 | REMOTE TYPE profiles: NEC ORIGINAL, NEC LED, SONY (test build) |
Normal-operation buttons
| Gesture | MODE | TONE/ZERO |
|---|---|---|
| Short | Main / scaler display; silence alarm | Set tone zero point |
| Double | LCD backlight on/off | Mute / unmute |
| Long | Diagnostics | Primary / secondary ratio |
| Both ~1 s | Settings menu | |
| Held at power-up | Reset 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ą