The following software components are running on the CPU:

  • GM-Tube driver: the J-305 GM tube is used in this project. The operation voltage for J-305 tube is 400V, so a step-up power supply has been implemented for stepping-up the 5V power supply to 400V supply that is needed by the tube. The step-up power supply voltage is controlled by a fix frequency and variable duty-cycle clock - generated by NINA-W106 CPU. An analog to digital CPU channel monitoring the High-Voltage power supply output and adjusting the control clock duty-cycle accordingly. Finally, a pulse detector circuit translating to a single pulse each radiation event detected by the tube.
  • OLED Display driver: A small, 1,3”, OLED display is used for displaying the board data. The display is communicating with the CPU using an I2C interface and displaying the last sensor measurements and last hours graphs.
  • PM sensor driver: The PMS7003 particular matter sensor from Plantower is used. The sensor communicating through UART interface populating measurements for PM1.0, PM2.5 and PM10.0 particles detected.
  • LED/Buzzer/buzzer handling: Light or sound alarms is also possible to be enabled. In addition, a button provides the option to reset the board configuration to a default state.
  • HTTP server: running on port 80 and used for configuring basic parameters like the MQTT server location and credentials, WiFi station setting or acquiring the latest board status.
  • WiFi connectivity: by default the board is running configured as Access Point. Using the embedded web page, the default configuration can be changed to Station – using the preferred access point/password settings.
  • MQTT publisher: for publishing the data to configured MQTT broker. Geiger information published on MagicMirror project:

Following the schematic design used for the project:

KiCad version 6.0 used for board design while CPU software developed using Espressif IDE. All software and hardware design files can be found in the following GitHub repository: https://github.com/johnkok/iot_geiger