nmrr / flipperzero-geigercounter

☢☢ A geiger counter application for the Flipper Zero ☢☢
210 stars 7 forks source link
flipper-zero flipperzero geiger geiger-counter radioactivity uranium

flipperzero-geigercounter

☢☢ A geiger counter application for the Flipper Zero ☢☢

banner (banner has been made with Midjourney)

You need a geiger counter board to run this application, this board can be used: https://aliexpress.com/item/1005004074447209.html

You also need jumper wires to connect the board on the Flipper Zero.

Note 1: This board uses a J305 geiger tube. According this website gamma conversion factor is 0.0081 for this tube. This value has been declared in the header of the source file so you can change it easily if needed. Incorrect conversion factor will give false measurements when Sv or Rad is selected.

Note 2: J305 geiger tube is only sensible to beta and gamma rays. Alpha rays cannot be detected.

Usable radioactive sources:

Not really usable radioactive sources (must be in contact with the geiger tube to be detected):

Totaly unusable radioactive sources:

The +5V power pin on the Flipper Zero can be used to power the Geiger counter board: This pin will be automatically turned on when the program is initiated.

The output pin for measurement on the Arduino is not suitable for use with the Flipper Zero due to low output voltage. Use the jack out port instead. Cut an audio jack cable and connect the audio channel (left, right, or both) to a cut half male jumper wire, then connect it to the A7 GPIO.

The black wire is typically used for ground (sleeve on the schematic). Verify this with a multimeter or by testing the other wires.

Global schema:

Note: Polarity of the geiger tube may be different on your board

UI of the application:

CPS: counts per second (instantaneous measure of the radioactivity). CPS is alway displayed on the left corner.

CPM: counts per minute (the sum of CPS over a period of one minute). Other units of measurement can be chosen with Left/Right.

New CPS bar measure appears on the left every second.

Build the program

Assuming the toolchain is already installed, copy flipper_geiger directory to applications_user

Plug your Flipper Zero and build the geiger counter:

./fbt launch_app APPSRC=applications_user/flipper_geiger

The program will automatically be launched after compilation

A4 GPIO can be connected on A7 GPIO to test this application without using a geiger tube. A4 GPIO generates a signal with a frequency that varies every second.

Button assignments:

button function
Ok [long press] Clear the graph
Left/Right [short press] Choose unit on the right corner (cpm, μSv/h, mSv/y, Rad/h, mRad/h, uRad/h), cps on the left is always displayed
Up [long press] Enable/disable recording, led of Flipper Zero is colored in red when recording
Up/Down [short press] Zoom/unzoom
Down [long press] Display version of the application
Back [long press] Exit

If you don't want to build this application, just simply copy flipper_geiger.fap on your Flipper Zero

Build has been made with official toolchain (0.102.3), API Mismatch error may appear if you are using custom firmware. You can bypass this error but the program may crash.

Use cases

Ambient radioactivity (descendants of radon gas are detected, not radon itself):

Measurement of a sample of uranium ore within a lead container:

Note: measures in Sv or Rad are not precise

Measurement of a sample of uranium ore (the most radioactive part):

Measurement of radium dial pointers:

All prior measurements in sequence (the scale of the graph is automatically adjusted):

Measurement of uranium orange pottery:

Measurement of americium-241 button from a smoke detector (descendants of americium or radioisotope impurities are detected, not americium itself):

A4 GPIO on A7 GPIO (to test this program without a geiger board):

Zoom levels (the third picture is the default zoom):

Version of the application (press down button during 1 sec to display version):

Recording function

Output CSV files are stored in the root directory of the SD card. Date and time are incorporated into the file name (example: geiger-2023-07-03--23-48-15.csv)

Data sample:

epoch cps
0 10
1 14
2 8
3 11
4 9

Atomic Dice Roller

I maintain another application that uses the geiger board to roll dice by using radioactivity: https://github.com/nmrr/flipperzero-atomicdiceroller

Gallery/video of the community

BRD8 [Reddit] - https://www.reddit.com/r/flipperzero/comments/110062z/am_i_a_hacker_now_mom/:

Funbob235 [Reddit] - https://www.reddit.com/r/flipperzero/comments/13m1qly/testing_of_the_geiger_counter/:

Axewarior [Reddit] - https://www.reddit.com/r/flipperzero/comments/14krjs2/gieger_counter/

[hackster.io] - https://www.hackster.io/news/erwin-ried-s-flippenheimer-gives-the-flipper-zero-pocket-multi-tool-radiation-monitoring-powers-a6fd3460f858

Ratrick_E_Pumbol [Reddit] - https://www.reddit.com/r/flipperzero/comments/17ok9sj/i_got_the_geiger_counter_to_work/

Seanclark2409 [YouTube] (click on the picture to see the video):

Watch the video

Boboso5676 [YouTube] (click on the picture to see the video):

Watch the video

Talking Sasquach [YouTube] (click on the picture to see the video):

Watch the video

Erwin Ried [YouTube] (click on the picture to see the video):

Watch the video

What's next ?

Here are some nice ideas to improve this app:

Changelog