After my old LND-712 based Geiger died from oxygen poisoning I wanted a cheap replacement as I couldn’t find a new tube. I decided on the super cheap BR-6 Geiger widely available online, primarily because I noticed 4 pads on the PCB! turns out they were not serial - bummer
I continued to add Wi-Fi in a different way, by counting the pulses in the same way the micro in the unit does. I thought I would share the mod in case anyone else wants to convert theirs.
I opened the unit and installed header pins, I used 2 pin and 3 pin headers for a bit of extra strength across the transistors, the Blue wire is the output of a transistor that pulses when the GM tube breaks down. the Grey wire is to sense the backlight status, the Violet wire is the backlight button, Green is Ground and yellow is 5v from the USB. I tried a ESP-01s running from the 3.3v but it couldn’t run stable, so I decided to use a D1 mini with its own regulator. I also connected the backlight pin as when the device first powers up it doesn’t start counting - it waits for a button press. and I decided to connect the backlight output from the micro so I could see if it was on ort not.
a close up of where the header pins are soldered
and here is my code
esphome:
name: geiger
friendly_name: Geiger
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "xxx="
ota:
password: "xxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Geiger Fallback Hotspot"
password: "xxx"
captive_portal:
sensor:
- platform: uptime
name: Gaiger Uptime Sensor
id: uptime_sensor
update_interval: 60s
- platform: pulse_counter
pin: GPIO4
name: "Geiger Counter"
id: "geiger_counter"
unit_of_measurement: 'CPM'
update_interval: 20s
on_raw_value:
- sensor.template.publish:
id: radiation_level
state: !lambda 'return x * 0.0075;'
on_value_range:
- below: 1
then:
- switch.turn_on: backlight
- platform: template
name: "Radiation Level"
id: "radiation_level"
unit_of_measurement: 'µSv/h'
icon: mdi:radioactive
accuracy_decimals: 2
update_interval: 20s
binary_sensor:
- platform: gpio
pin:
number: GPIO12
mode:
input: true
pullup: false
name: "Backlight_Status"
id: backlight_status
filters:
- delayed_on: 150ms
- delayed_off: 150ms
switch:
- platform: gpio
pin:
number: GPIO5
inverted: true
id: backlight
name: "Backlight"
# If ESP reboots, do not attempt to restore switch state
restore_mode: always off
on_turn_on:
- delay: 500ms
- switch.turn_off: backlight