Geiger Counter demo (EVAL-CN0536-ADRZ)
The ADuCM3029_demo_cn0536 project provides a solution to measure radiation levels using most of Geiger-Muller tube sensors available in the market. It uses the precision programmable oscillator LTC6906 to generate high voltage output for the tube and the LTC1540 nano power comparator to set and regulate it. With the LTC1441 ultralow power dual comparator the Geiger pulse is translated to logic level 3V or 5V and the LTC6994 robust built in delay block timer chip will generate a Geiger clicking sound to a regular buzzer.
Also, onboard LEDs are used to indicate radiation levels and information about the counts per minute and microSieverts per minute are sent over UART or over the internet through MQTT.
A sample python code is available to plot MQTT data into a graph with a radiation threshold.
The ADuCM3029_demo_cn0536 project is using the the CN0536 and EVAL-ADICUP3029 prototyping board.
This page will go through how to build and run the demo from the software point of view and for more detailed information about the CN0536 from the hardware side can be found here.
An overview about the theme can be seen in the following diagram:
Software flow
Demo Video
Demo Requirements
The following is a list of items needed in order to replicate this demo.
Hardware
Software
Serial Terminal Program (for
UART demo) such as:
-
ADuCM302x DFP and ADICUP3029 BSP (see this
guide) (
Optional to edit the software)
-
-
UART demo with precompiled program
-
Place the
EVAL-CN0536-ARDZ on top of the
EVAL-ADICUP3029.

Connect a micro-
USB cable to the
USB connector and then to the PC.
Download the
UART precompiled program
Upload the precompiled .hex file to the board. (Copy the .hex file to the DAPLINK drive)
Reset the board from the
RESET push button.

Start the serial terminal program.
-
Set the BAUDRATE to 115200
Watch the output. Data will be send every 10 seconds by default.

MQTT (Wi-Fi) demo with precompiled program
-
Place the
EVAL-CN0536-ARDZ on top of the
EVAL-ADICUP3029.

Connect the ESP8266 EN pin to 3.3V or solder it like below.

Connect the ESP8266 module to the Arduino Header.

Connect a micro-
USB cable to the
USB connector and then to the PC.
Download the
MQTT precompiled program
Create a hotspot or set a WiFi network with the following values (It must have Internet connection):
SSID: analog_hotspot
Password: 12345678
Reset the board from the
RESET push button.

During
setup the
blue led will be turned
on:

If the setup completed
succesfully, the
green led will be turned
on (blue will be turned off). This means that the program is sending data to the server.

In case of an error during setup or during program execution, both leds will blink alternated with a 1 second period.
Data will be sent to:
MQTT Server: broker.hivemq.com
MQTT Topic: analog_test_topic
Use one of the below methods to view the data
Use MQTT Web Client to view data
Use MQTT Web Client to view data
-
Set the above server to connect to:

After succesfull connection, subscribe to the mentioned topic:

View the published data under messages:

Use MQTT local html client to view data
Use MQTT local html client to view data
-
Open the saved file into your browser.
In the upper of the page the server connection status is shown
A Graph with the data sent by the Geiger Counter is ploted:

Use MQTT python client to view data
Use MQTT python client to view data
-
Run a terminal (cmd in windows) where the file was downloaded.
Install the needed python dependencies with:
python -m pip install paho-mqtt matplotlib parse
Run the python sample script:
python main.py
A new plot windows will be created and the recieved data will be printed also in to the terminal:

Working with the software
Getting started with the software
Getting started with the software
Make program should be installed and available in the path.
Open a terminal (linux) or a cmd (windows) and navigate to a directory where to start working.
Download the EVAL-ADICUP3029
repository with
git clone --recursive https://github.com/analogdevicesinc/EVAL-ADICUP3029.git
Using the --recursive is important in order for the submodules to be initialized.
-
Follow this
guide to create a CCES project. This command should be enough:
make update_srcs
A folder build will be created and inside it the CCES project.
Import the new generated project into your workspace. See
wiki
Now the project structure should look like this:

Editing software parameters
Editing software parameters
For Geiger Counter configuration see geiger_counter.h. The default configuration means:
Output data will be calculated at each 10 seconds
A average filter is applied on the last 5 samples
us_per_min = c_per_min * CONVERSION_FACTOR
Jumper 2 is solder on the back of the CN0536
/* Number of seconds between each measurement */
#define SAMPLING_PERIOD 10//seconds
/* Number of measurements used for average filtering */
#define NB_AVARGE_SAMPLES 5
/* Conversion factor from counts/minute -> microSieverts/minute */
#define CONVERSION_FACTOR 0.01
/*
* Depending of the jumper soldered on the board one of these 3 options is
* available for reading the Geiger pulses.
* Avaliable options are:
* - 2 : JP2 soldered (default on board)
* - 3 : JP3 soldered
* - 4 : JP4 soldered
*/
#define JUMPER_CONFIG 2
For communication configuration see communication.h: The default configuration means:
Build and debug the project
Build and debug the project
End of Document