Custom Software Development

Posted on March 5, 2024

Tom Depew headshot

Custom and prototype instrumentation often requires a flexible software and/or firmware layer that can obtain desired results quickly and easily. Moreover, software can enable additional functionality and improved efficiency for the instrument. We recently augmented one of our custom instruments with a Raspberry Pi 3B (RPi) and a simple software stack to transform it into an industrial instrument with ethernet connectivity. The software stack comprises C, Python and JavaScript.

Our density insertion probe is a device that enables localized nuclear densitometry measurements. The probe electronics were reorganized onto a custom Printed Circuit Board (PCB) designed to attach to the RPi as Hardware Attached on Top (HAT). The hardware includes a photomultiplier tube (PMT) to collect incident radiation, an instrumentation amplifier and set of comparators to treat the raw pulses, a thermocouple to provide temperature correction and a digital-to-analog converter to control threshold levels of the PMT and other electronics. Without the RPi and PCB, the threshold control was handled by tuning potentiometers with a screwdriver, but the electronics and software allow these levels to be set through a graphical user interface. The instrument has only 2 connections; for power and ethernet.

Any computer with an ethernet port can connect and access the instrument web server. The operator can view the current count rates and temperature which are logged on a strip chart and may optionally be recorded to a simple text file. The operator has control via the web interface to start and stop data logging, download recorded data logs, update the comparator thresholds and change the calibration for different materials and temperatures.

In a future post, we will drill deeper into the details of the software components and libraries that enable the full solution.