This repository contains an STM32F103C8T6 code example for detecting radiation levels using an M4011 Geiger-Muller tube circuit. The code reads the radiation pulses from the Geiger-Muller tube and calculates the radiation level in counts per minute (CPM), then converts it to microsieverts per hour (µSv/h) based on a calibration index found in the Geiger-Muller tube's datasheet.
- M4011 Geiger-Muller tube
- STM32F103C8T6 microcontroller board - Called "Radiation Detector"
- Jetson Xavier (or any compatible device)
- USB-C cable
Connect the M4011 Geiger-Muller tube and the radiation detector board to the Jetson Xavier as follows:
- Connect the M4011 Geiger-Muller tube to the Radiation Detector.
- Connect the Radiation Detector to the Jetson Xavier via USB-C cable.
*Note: The connection on the radiation detector is USB-C, but it actually uses USB 2.0 standards. We're only using it for its form factor, it also makes it easier to have the same cable everywhere in our robot when traveling.
- Platformio
- VSCode
- Optional : STLink
- Ensure that the Geiger-Muller tube circuit is properly connected and powered
- Make sure you are within the voltage specs of the M4011 Geiger-Muller tube.
- Set up the development environment with Platformio or your preferred development platform. We recomment VSCode.
- Put the bootloader onto the Radiation Detector (can be found here)
- Compile and upload the code to the Radiation Detector.
- Run the code on the board, and it will start detecting radiation levels and sending data through ROS.
To obtain an even more accurate measurement of radiation levels, it is crucial to calibrate the Geiger-Muller tube you are using with a known radiation source or reference standard. During the calibration process, measure the radiation dose in both counts per minute (CPM) and microsieverts per hour (µSv/h) and establish the appropriate conversion factor (conversionRate
) specific to your Geiger-Muller tube and calibration. In this code example, we are using the conversion rate provided in the Geiger-Muller tube's datasheet.
- Ensure that the Geiger-Muller tube circuit is properly connected and powered.
- Remember that the Tube is fragile.
- Remember to adjust the
conversionRate
in the code based on your specific calibration index to obtain accurate radiation level measurements.