DIY scaler for the Ludlum 3 survey meter based on an ESP32 board
This repository contains my schematics and code for a DIY scaler and data logger for the Ludlum Model 3 survey meter circa 2000.
IMPORTANT: this project is specific to my circa-2000 meter, serial 161535, and the board used at that time. The manual for the Model 3, August 1999, Serial No. 158918 and succeeding, is available on the Geiger Counter Enthusiasts groups.io file section. This board has a 4-pin J4 option connector which is generally not populated unless the scaler option was added by the factory (in which case you probably don't need this information). Connector J4 has +5VDC, Ground, Pulse, and Battery + pins. The pulse pin is normally floating, and is pulled to ground for each count/pulse.
- 4-pin Header for J4 - TE Connectivity / AMP 640456-4. This matches the factory headers but is polarized and latches. Currently $0.23 USD from Mouser
- TE / AMP 3-643814-4 4-pin polarized latching closed-end 24 AWG receptacle. Currently $0.38 USD from Mouser
- strain relief cover for above. Currently $0.45 USD from Mouser
- TE / AMP 59803-1 MTA-100 maintenance tool, for making the above connections. Currently $35.10 USD from Mouser
- 3.5mm (1/8") TRS phone connector for the pulse output. I chose a Switchcraft 35FM3LS which accepts standard or locking plugs. Currently $9.05 USD from Mouser
- Switchcraft CAP35L dust cover for above. Currently $1.99 USD from Mouser
- 3.5mm (1/8") TRS phone plug. I chose a locking Switchcraft 35HDLSN12. Currently $11.30 from Mouser
- 4N25 optocoupler. I chose a LiteOn 4N25. Currently $0.47 USD from Mouser
- ESP32 board. There are many available. I chose some random, relatively well-reviewed ones on Amazon, the DORHEA ESP-32S. Currently $20.79 USD for a four pack. You can get the real Espressif ones from Mouser or another electronics shop, but they'll be quite a bit more expensive. I always use the inexpensive no-name microcontroller boards from Amazon and they work fine.
- 56-ohm 1/4W 1% resistor
- Hookup wire (24 AWG), solder, shrink tubing, test leads, etc.
- Solder the 4-pin connector to the board for J4.
- Drill a 3/8" hole in the can (bottom shell of the meter) for the TRS phone connector and de-burr it. I'd love to put one on the panel/face instead, but the only safe space I could find was on the can. I opted to put it on the short side closest to the meter, as that's where I want to mount the display (see photos).
- Solder long leads to the Tip and Ring terminals of the TRS jack. Feed the leads through the hole and install the jack (being sure to install the dust cover, if desired).
- Solder a 56-ohm 1/4W 1% resistor to ping 1 of a 4N25 optocoupler, and a lead to that. Solder a lead to pin 2 of the 4N25. Add heat shrink around pin 1.
- Slip a small piece of heat shrink over the lead to the Tip of the TRS jack. Cut both leads to approximately 6 inches.
- Strip the ends of both leads. Solder the Tip lead to pin 5 of the optocoupler and shrink the heat shrink tubing. Solder the Ring lead to pin 4 of the optocoupler.
- Slip the entire 4N25 assembly into some large heat shrink tubing with the leads coming out opposite ends, and shrink it.
- Wire up the panel connector. J4 should be on the lower right corner of the panel; pin 1 is closest to the edge of the panel and pin 4 is closest to the header next to it. Using the TE maintenance tool, terminate the leads from the input side of the 4N25 assembly to the receptacle. The lead from the resistor off of pin 1 on the optocoupler should go to position 1 on the receptacle (J4 pin 1, +5v). The lead from pin 2 of the optocoupler should go to position 3 on the receptacle (J4 pin 3, pulse). When finished, snap strain relief cap over wires.
- To test thus far: Insert a 3.5mm TRS plug into the jack. Clip test leads to the Tip and Ring pins. Connect the tip lead to GPIO 4 on your ESP32 and the ring lead to Ground on the ESP32. Power it up and write inputtest.py to the board and run it. Turn on the meter and you should see counts.
Install MicroPython on your ESP32. This repository is currently written for MicroPython 1.13.
- Install the rshell python package locally.
- Plug the board in to your USB port and note the device created for it; this should be
/dev/ttyUSBn
wheren
is an integer. rshell -p /dev/ttyUSBn
- Copy the file you want (for
inputtest.py
, use that) tomain.py
on the board:cp inputtest.py /pyboard/main.py