Configuration

Most settings are available from the ESPGeiger Web Portal - click Config on the main page.

Specialised pages with their own UI:

Settings changed on the Config page take effect immediately (or on next submission cycle for output modules). Pin and serial type changes require a reboot.

System Settings

Setting Type Default Description
Friendly name String (32) (empty) Optional human label shown in the web UI title and /about. Blank falls back to the hostname (e.g. ESPGeiger-a1b2c3).
uSv/h Ratio Float 151.0 CPM to uSv/h conversion factor
Warning CPM Int 0-9999 50 CPM threshold for warning state
Alert CPM Int 0-9999 100 CPM threshold for alert state
Web password String (32) (empty) Optional HTTP Basic Auth password (user is admin). Blank disables auth. Sensitive.
Track lifetime Boolean true Persist total clicks + first-boot timestamp + tracked seconds across reboots. Tracked seconds advance only over spans where clicks were persisted, so the lifetime CPM on /hist stays accurate across crashes. Toggling off pauses the counter without losing the saved value. View totals and reset from /hist.

Config import / export

The bottom of the Config page has a single textarea labelled Backup / Restore. Click Export to dump the entire prefs blob (skipping sys.web_pass and the whole net group as device-local) as base64 with a CRC32 trailer; copy or paste a previous export and click Import to restore. Import is overlay-only: keys in the blob overwrite existing values; everything else is left alone. The device reboots automatically on a successful import.

Input Settings

Some settings only appear on specific builds. Pin and Serial Type changes trigger a reboot to apply; PCNT Filter, PCNT Pin Pull and Debounce apply live.

Setting Type Default Description
Serial Type Int 1-255 (varies) Serial counter protocol: 1=GC10, 2=GC10Next, 3=MightyOhm, 4=ESPGeiger. Only shown on serial builds. Reboot required.
CPM Window (CPM-only counters) Int 1-60 30 Serial builds only, applies to CPM-only counters (GC10, GC10Next, ESPGeiger-serial). Rolling CPM window in seconds; lower values track the counter’s display more closely during rate changes, higher values smooth out natural variance. Ignored for MightyOhm, which uses a 60s window since its CPS feed is already exact. Reboot required. See Serial Counters.
RX Pin Int (varies) Geiger counter input pin. Hidden when -D RXPIN_BLOCKED. Reboot required.
TX Pin Int (varies) Transmit pin. Only on builds with a TX pin configured. Reboot required.
Geiger Counter String (32) (varies) GM tube model name (e.g. SBM-20, J305). Pulse builds only. Hidden when -D GEIGER_MODEL_FIXED (purpose-built kits where the tube is fixed in firmware).
PCNT Filter Int 0-1023 200 Glitch filter threshold (ESP32 PCNT builds only). 0 disables. See PCNT Filter.
PCNT Pin Pull Int 0-2 0 PCNT input pin pull: 0=none (floating), 1=up, 2=down. ESP32 PCNT builds only. Default floating suits most modules that drive the line actively both directions; change to pull-up for open-drain outputs or pull-down for active-high modules without their own idle pull.
Debounce (us) Int 0-10000 500 Software interrupt debounce. Pulse builds without PCNT only.
Tube dead time Int 0-1000 0 GM tube dead time in microseconds, used to compensate the rate at high CPS. Pulse builds only. 0 disables. Typical values: J305 = 50, SBM-20 = 150.
α Alpha / β Beta / γ Gamma Boolean false Which radiation types the connected tube detects. Surfaces alongside the Geiger Counter model field. Informational; consumed by upstream aggregators. Hidden on tests builds and when -D GEIGER_MODEL_FIXED.
Pulse width (us) Int 10-2000 (varies) Width of the simulated pulse on the TX pin. Test builds only (test, testpulse).

Blip LED Settings

Setting Type Default Description
Blip LED Boolean true Flash the onboard LED on each detected count. Hidden on builds with -D DISABLE_INTERNAL_BLIP.
Blip brightness Int 0-100 80 Onboard LED brightness as a percentage (PWM duty). Also applies to network-activity blinks (MQTT/WebAPI/etc.). Hidden on builds with -D DISABLE_INTERNAL_BLIP.
External LED Pin Int -1 to 39 -1 GPIO to mirror the blip on, for boards with an external LED but no GEIGER_BLIPLED compile-time pin. -1 disables. Reboot required. Only shown on builds compiled with HAS_EXT_BLIP and without GEIGER_BLIPLED.
External Pulse Width Int 1-100 2 Pulse width on the external blip pin (ms).
Quiet from Time HH:MM (empty) Silence the blip LED + beeper (ESPGeiger-HW) from this time. Leave blank to disable quiet hours. Requires NTP sync; if time isn’t known, quiet hours are ignored.
Quiet to Time HH:MM (empty) End of quiet window. Window crosses midnight if from > to (e.g. 22:00-07:00).

UDP Receiver Input (UDP-Receiver builds)

UDP-Receiver builds (*_udp targets) listen for Local Broadcast traffic from another ESPGeiger and feed the received clicks into the same Counter pipeline as a real tube. These prefs replace the Pulse / Serial input fields above.

Setting Type Default Description
Source Mode Int 0-1 0 0 = specific producer (auto-latches the first one heard if Pin chipid is blank, otherwise locks to the chipid given). 1 = sum mode, totalises clicks from every producer heard (up to 8).
Pin chipid String (6 hex) (empty) 6-hex chipid of the producer to lock to. Only used in Source Mode 0. Blank = auto-latch.
Multicast group String (15) 239.255.86.86 Multicast IP to subscribe to. Must match the producer’s group.
Port Int 1-65535 57340 UDP port. Must match the producer.
RX sleep Int 0-2 1 WiFi sleep mode. 0 = light (DTIM-aligned wake + CPU nap, lowest power), 1 = modem (DTIM wake + CPU awake, balanced default), 2 = none (radio always on; usually higher loss on busy LANs, not lower). See RX Sleep Mode.

MQTT Configuration

Setting Type Default Description
Server String (16) (empty) MQTT broker address or IP. Leave empty to disable MQTT.
Port Int 1-65535 1883 MQTT broker port
User String (32) (empty) MQTT username
Password String (32) (empty) MQTT password (sensitive)
Root Topic String (16) ESPGeiger-{id} Root publish topic. {id} is replaced with the chip ID.
Interval Int 5-3600 60 Publish interval in seconds
HA Autodiscovery Boolean true Publish Home Assistant autodiscovery on connect
HA Discovery Topic String (32) homeassistant Home Assistant discovery prefix

Radmon.org Configuration

Setting Type Default Description
Enable Boolean false Upload to radmon.org
Username String (32) (empty) Radmon.org username
Password String (64) (empty) Radmon.org password (sensitive)
Interval Int 30-1800 60 Upload interval in seconds

ThingSpeak Configuration

Setting Type Default Description
Enable Boolean false Upload to ThingSpeak
Channel Key String (16) (empty) ThingSpeak channel write API key (sensitive)

GMC Configuration

Setting Type Default Description
Enable Boolean false Upload to gmcmap.com
Account ID String (12) (empty) gmcmap.com account ID (numeric)
Geiger Counter ID String (12) (empty) gmcmap.com geiger counter ID (numeric)

Webhook Configuration

Setting Type Default Description
Enable Boolean false POST measurements to a webhook
URL String (255) (empty) Webhook endpoint (http only)
Key String (255) (empty) Optional shared secret sent as “key” in payload (sensitive)
Interval Int 10-3600 60 POST interval in seconds

SD Card Settings (SD-enabled builds)

Setting Type Default Description
Sync Interval (min) Int 1-5 1 Minutes between syncs to the card. 1 syncs on every write (safest). Higher values reduce SD wear at the cost of up to N - 1 minutes of data loss on a power cut. File is always flushed at day rollover and before cleanup. See SD Output.

Display Settings (OLED builds)

Setting Type Default Description
Brightness Int 0-100 25 Display brightness
Timeout Int 0-99999 120 Push-button builds only. Display turns off after this many seconds of inactivity. 0 falls back to On Time / Off Time below.
On Time Time HH:MM 06:00 Display on-time. On push-button builds, only takes effect when Timeout is 0. Blank means always on.
Off Time Time HH:MM 22:00 Display off-time. Same rules as On Time. Window crosses midnight if from > to.
I2C SDA Pin Int 0-39 (varies) OLED SDA pin. Hidden when -D OLED_PINS_BLOCKED. Reboot required.
I2C SCL Pin Int 0-39 (varies) OLED SCL pin. Hidden when -D OLED_PINS_BLOCKED. Reboot required.

On push-button builds the long-press gesture toggles a permanent override that keeps the display on regardless of Timeout or schedule. Re-toggle to restore the configured behaviour.

NeoPixel Settings (NeoPixel builds)

Setting Type Default Description
Brightness Int 0-100 15 NeoPixel brightness, 0 disables. Too low a value can cause inaccurate colours.

Table of contents


This site uses Just the Docs, a documentation theme for Jekyll.