MightyOhm Geiger Counter kit with Wi-Fi and OLED!
Introduction
I assembled my Geiger counter kit from MightyOhm some time ago. It's a very fun kit and the finished counter looks awesome. Oh, that Geiger-Muller tube sitting on that yellow PCB! I've always wanted to modify it somehow and add functionality. Today I realized that an Adafruit Feather sits PERFECTLY where the AAA battery holder normally goes. Doesn't it look like they belong together? I modified the counter, added a Feather HUZZAH ESP8266 with OLED FeatherWing, and whipped up some code. I'm very happy with the end result. Want to do the same to your kit? Let's get on with the tutorial.
Parts List
Here's what you need to complete this mod:
- MightyOhm Geiger Counter kit. I recommend getting it with the case.
- Adafruit Feather HUZZAH ESP8266
- Adafruit FeatherWing OLED
- Male headers for the Feather HUZZAH
- Female headers for the FeatherWing that come with it
- Micro USB cable for programming Feather
- A Li-Po battery or some means of powering the Feather board without USB
- Three Female-Female or Male-Female breadboard jumper wires
- Double-sided tape
Code for this Project: Shared on Github
Tutorial
NOTE: Please read through this entire tutorial before starting the assembly. There are some important things to be aware of regarding power and program uploading.
First, solder headers to the Feather HUZZAH and OLED FeatherWing. Test those together with Adafruit's example program. If you are unfamiliar with the Adafruit Feather or OLED, I recommend checking out their tutorials. They can be found by clicking on the product links in the parts list above.
Next, assemble your MightyOhm Geiger counter kit. That is a full tutorial by itself. There is just one modification to the instructions. Do not attach the AAA battery holder. We have other plans for that space on the board. You can tack on some wires in its place to test the counter before you continue. If you bought the case, don't put it on yet.
If your kit is already assembled, you need to remove the battery holder. It doesn't require any special tools beyond a soldering iron. First take the case off if you have one. You might also want to remove the tube and put it in a safe place, it is fragile! Remove the nut holding the battery holder, then heat each contact pin one at a time while gently wiggling it back out.
We don't need the battery holder anymore. The Feather will provide 3V to the counter.
Now take a look at my example program. It will display information on the OLED screen, and also publish the radiation count data to your Adafruit IO account over Wi-Fi! You need to modify the program with your Adafruit IO account info, feed names, secret key, and router name/password. See the Adafruit MQTT tutorial for more information about this. Once you have modified the program, upload it to the Feather.
Next, a minimum of three wires need to be tacked onto the OLED FeatherWing. These will connect power and serial from the Feather it sits on to the counter. Look at the Feather HUZZAH's pinout and the pins on the FeatherWing. Find where 3V, Ground, and digital pin #13 would line up. Now cut and strip one end off of each jumper wire, leaving a Female end still attached to each. Solder the wires on the underside of the FeatherWing to the three pads just mentioned. Angle them so they will exit near the JST connector when attached to the Feather. See the next two images for clarification.
If you will want to add a DC jack to this project, also affix a fourth wire to the "USB" pin position. This is where 5V from USB normally goes. I used the JST connection to power the Feather so I did not attach this wire.
The red wire is 3V, the black wire is Ground, and green is pin #13.
Attach the FeatherWing to the Feather HUZZAH, being careful not to crush the wires. Test fit the assembly on the counter board to see where we are headed.
Looking good so far.
Before going any further, you need to know that the USB port will be obstructed once you finish mounting the Feather on the counter. Make sure you are happy with the loaded program before continuing.
Were you wondering why I said to use Female jumper wires instead of normal hookup wire? This is why. I highly recommend testing the program before finalizing assembly to make sure everything works, including your Adafruit IO info. At this point you can connect the Feather to the J6 and J7 headers on the counter. Connect to them as shown below with the wires you attached to the FeatherWing, power up the Feather with a USB cable, and test the assembly. This is also a good time to modify the program as you like.
Header connections on the Geiger counter for testing.
Everything working? Great, let's finish this up. Cut the female ends off of the three wires, strip them, and tin them. Put a piece of double-sided tape on the underside of the Feather HUZZAH and get ready to affix it in place.
Getting ready to attach the Feather assembly to the counter board.
You can use the top cover of the case to make sure the Feather is perfectly positioned. But it fits exactly where the AAA battery holder normally goes. Center it in that black box, and it will be positioned correctly with the case on. Peel off the backing on the double-sided tape and affix the Feather to the counter.
Now flip the board over. We have three connections that need to be made on the back. 3.3V and Ground will attach where the battery holder pins normally go. Also, the serial connection will attach to the Tx pin on J7 that we used earlier for testing.
Wiring on the back of the Geiger counter board. Pretty simple!
Now flip the board over and attach your Li-Po battery or alternate means of powering the Feather. The Feather will power up immediately. Flip the power switch on the counter to ON (yes it still works). After several seconds you should be up and running. The radiation count data will be displayed by default. Press the C button to check Wi-Fi status. If the Feather is not receiving serial data from the counter, it will warn you.
Success!
Large text counts-per-minute display. Get to this mode by pressing the B button.
The program will warn you if it is not receiving serial strings from the counter.
The data is streamed to your Adafruit IO account.
Reassemble the Geiger counter and case. You are done.
Usage
Using the modified Geiger counter with the example program is very easy. As long as you are in range of your Wi-Fi router, the Feather HUZZAH will automatically connect to Adafruit IO and publish data every five seconds. Press the C button on the OLED FeatherWing to see your Wi-Fi status and IP address.
The default view on the screen shows counts-per-second (CPS), counts-per-minute (CPM), and microSieverts per hour (uS/hr). This is the same data that is normally sent by the Geiger counter over serial. You can get back to this view later by pressing Button A.
Button B takes you to a display that only shows CPM in large digits. This is more readable if you want to see the count at a distance.
The Feather HUZZAH echoes the serial string from the counter across USB. This basically adds USB-to-Serial functionality to the counter, which would normally require an FTDI adapter. If you can find a way to squeeze a USB cable into the port when the Feather is mounted, that would be a great option for powering the Feather and doing PC logging. You might be able to use a USB cable with a right angle connector. I didn't have one to test.
Power Options
There are lots of ways to power the modified Geiger counter:
- USB as just mentioned, IF you can fit a cable into the Feather
- Li-Po battery through the JST connector on the Feather
- Fit a DC jack to the project. It would only require adding a fourth wire to feed 5V to the "USB" pin on the Feather as described above. The regulator on the Feather will feed 3.3V to the counter.
- Provide 3.3V and Ground to the J6 connector on the counter we used for testing.
Mods to the Mod
You can modify the provided example program to do...anything you want. Adafruit has excellent libraries to help you design fancy display visuals and publish data online. The brains of the Feather HUZZAH is of course an ESP8266, so the options are nearly limitless.
If you just want the OLED display and not Wi-Fi, you can use a Feather M0 or Feather 32U4 instead and modify the example program.
If you want Bluetooth instead of Wi-Fi, use a Feather Bluefruit LE.
That's it! Please post any comments and corrections below. Good luck modifying your MightyOhm Geiger counter kit.
Thanks for reading.
- Dan W.