From rev0wiki
Jump to: navigation, search

This is a project to create a versatile 4-wire voltage/current sense module primarily intended to be used with an ESP8266 to log data to Thingspeak. It is built around an ADS1115 4-channel 16-bit I2C ADC, which is ubiquitous and available at low cost from many online sources. It includes 2 bi-directional current shunt amplifiers (NCS199A1, 50x gain) and 2 op-amp difference amplifiers for 4-wire voltage sensing.

The final hardware for the GC-D 1000 Digital Geiger Counter.

List of Features

  • Custom product enclosure designed with Autodesk Inventor and manufactured by Shapeways
  • 84*48 Graphic LCD
  • SI3BG Geiger Tube
  • Click and Bi-Color LED radiation indicator
  • Re-programmable and rechargable via micro-USB
  • Two selectable units: Röntgen or Sievert


The complete system schematic for the GC-D 1000 Geiger counter.

Microcontroller and LCD

The PCB layout (top: red, bottom: blue) for the GC-D 1000.

In the simplest case, a digital Geiger counter would need only two functions, to count the pulses from the Geiger tube and calculate a rate, and to display the rate on the LCD. This project simply adds a few extra features, all very simple to implement. First, the microcontroller needs to be able to count pulses from the Geiger tube over a certain time period. This is accomplished by running a timer divided down from a 24 MHz crystal. Pulses are detected by the microcontroller's hardware via a falling edge interrupt, which increments the ticks variable. The timer module produces an interrupt 50 times a second. Every second the microcontroller records how many pulses were detected since the last interrupt, and this value is added to an array of 32 values each 0.3s, which are averaged and displayed. Next, the microcontroller needs to display values and text to the screen. This is achieved by sending binary data over an SPI data interface. An LCD function library handles the low-level conversion between ASCII characters from strings or numbers in variables to characters to be displayed to the LCD. The microcontroller reads battery voltage and displays it as an 8-level bar graph. The microcontroller also optionally displays conversions in uSv/H and mR/H, and displays the corresponding accumulated dose (uSv in CPM mode). The microcontroller also maps the CPM value to a logarithmic bar graph, which is displayed in the middle of the screen.

Hardware Revisions

Revision 1.0

This is the first revision of the GC-D 1000.

Revision 1.1

This is the second revision of the GC-D 1000, correcting several flaws in the circuit as well as enclosure, listed below:


  • Geiger tube signal routed to input pin with edge triggered interrupt
  • USB port moved lower to accomodate enclosure design
  • Voltage sense pin tied directly to VBAT allowing voltage read when switched off but plugged in (charging)
  • Added auto power-off capability (MCU signal to boost EN line) Removed, battery monitor should be sufficient.
  • Added LiPo battery monitor circuit


  • Added space at top of enclosure for second SI3BG size (short/wide vs. thin/long)
  • Increased clearance along edge seal for better fit
  • Increased tolerances for better fit of PCB and edge snaps
  • Modified magnet holders
  • Improved buttons to add reach and fit in holes
  • Increased hole size for PUR button access (USB program button)
  • Minor cosmetic/structural improvements

Outstanding Issues:

  • The buttons are currently not manufacturable by Shapeways. They must be redesigned (a rectangular slot/profile would be a better approach) to have increased wall thickness.

Revision 1.2 (Planned)

This is the third revision of the GC-D 1000, adding the option for an external probe (e.g. LND-382) for greater sensitivity.


  • Switch to boost-doubler topology (allows for simultaneous 400/800V supplies).
  • Added accessory port for external Geiger probe
  • Added mux to switch between Geiger tube outputs


  • Added slot for external probe
  • Redesigned buttons with rectangular profile and thicker walls
  • Decreased clearance for PCB holder
  • Added short internal guide tube for USB Boot pin to make pressing the button easier
  • Added small nubs on rear of device to prevent case from being scratched if moved along a rough surface
  • Added logo and button/switch text

PCB Files

Here is the Eagle schematic file for the GC-D 1000: http://rev0proto.com/files/GC-D_1000_v02.sch Here is the Eagle board file for the GC-D 1000: http://rev0proto.com/files/GC-D_1000_v02.brd


Full source code for the project can be found here: http://rev0proto.com/files/gc-d_1000.zip



Total BOM Cost

Component Unit Cost Quantity Extended Cost Source
PCB $5.55 1/3 $1.85 OSH Park
ADS1115 Module (Grey market, lower sample rate) $18.98 1/10 $1.90 Aliexpress
JST connector (Optional) $4.59 1/40 $0.11 eBay
Current Shunt Amplifier (NCS199A1) $7.60 2/10 $1.52 Digi-Key
Op-Amp (MCP6001U) $18.54 2/100 $0.37 Digi-Key
Shunt Resistor (5mOhm) $5.46 2/10 $1.09 Digi-Key
Capacitor (1uF) $3.94 11/100 $0.43 Digi-Key
Resistor (0402, assorted) $0.66 20/100 $0.13 Digi-Key
Voltage Reference (TL431) $2.85 1/10 $1.09 Digi-Key
Total Price $8.49