This repository contains code to log the gamma spectrum from a Radiacode 10X to a Raspberry Pi.
init.sh
sets up Python and USB stuffradiacode.service
andsvc.sh
are for setting up the logging as a serviceradiacode.py
logs the spectrum and other events every 5 seconds
The output looks something like this:
### Spectrum: Spectrum(duration=datetime.timedelta(0), a0=-2.2956812381744385, a1=2.3835484981536865, a2=0.000425830454332754, counts=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
And eventually, something like this:
datetime.timedelta(seconds=8630) [185,331,458,362,230,233,320,594,686,753,866,1003,1053,1247,1370,1526,1570,1771,1864,1895,2057,2237,2263,2400,2415,2458,2499,2424,2442,2398,2297,2308,2223,2205,2246,2089,1948,1936,1940,1831,1769,1701,1585,1538,1436,1467,1356,1298,1309,1309,1170,1176,1105,1072,1045,1007,967,916,854,877,796,786,742,746,717,713,656,662,590,572,541,542,532,520,490,470,443,412,452,393,418,357,341,339,325,318,301,303,308,339,311,288,261,237,211,208,203,213,203,202,176,194,183,160,170,200,151,159,140,147,130,135,140,134,116,120,129,128,125,115,105,117,93,113,88,107,91,109,95,93,83,99,96,78,68,62,84,74,66,72,63,73,57,54,55,48,65,66,52,60,49,53,57,59,53,52,46,47,41,43,56,52,49,45,42,49,44,37,38,43,39,39,45,38,33,35,46,30,33,37,34,29,44,34,34,41,37,34,33,42,25,34,47,26,44,41,35,46,37,43,35,46,52,43,29,41,38,39,43,28,39,32,35,39,33,33,23,36,32,23,20,17,29,23,15,22,18,15,25,22,26,16,16,23,26,30,11,24,24,18,17,25,16,27,14,17,22,13,15,15,17,24,16,13,22,12,21,16,17,15,18,10,16,9,16,15,27,16,19,13,20,8,24,19,13,11,18,20,13,18,19,14,20,14,13,20,15,18,19,23,12,16,16,12,13,16,15,13,15,10,19,8,20,15,17,17,11,17,9,19,18,16,18,12,17,15,13,12,15,14,12,14,12,10,9,17,17,4,10,15,15,12,17,12,12,14,16,9,9,16,21,14,10,10,13,6,17,17,12,8,13,9,14,13,8,13,12,9,12,7,13,15,14,17,12,13,14,17,12,15,5,17,14,13,19,7,7,12,15,17,10,11,8,7,14,10,13,9,11,11,11,9,9,4,15,13,10,11,10,8,8,9,13,8,14,14,17,12,9,17,13,13,15,9,14,16,10,11,14,7,9,8,15,12,7,15,9,8,10,14,13,10,9,7,9,9,9,13,11,12,10,4,6,5,13,11,10,4,14,8,13,10,7,14,8,17,8,13,9,8,12,4,13,13,11,8,14,14,18,6,14,15,5,8,9,13,10,18,9,12,16,7,10,10,9,11,11,9,16,13,7,9,12,12,14,12,7,9,12,7,6,7,11,10,11,10,4,9,7,15,12,9,11,8,9,8,18,7,14,12,12,12,12,7,7,8,15,9,10,12,7,11,10,6,7,10,13,9,8,8,13,11,17,8,10,12,9,12,9,8,12,13,9,13,8,11,16,5,12,10,14,7,9,7,9,11,10,5,9,10,4,10,10,6,13,8,9,12,11,14,5,12,12,6,14,9,9,8,6,9,15,5,6,13,10,11,7,6,12,10,17,6,7,7,8,19,10,5,14,8,17,9,10,11,8,4,8,6,10,5,7,5,10,9,5,8,7,10,8,8,5,10,12,8,7,11,7,10,8,12,8,16,7,12,5,10,10,8,8,11,8,10,12,8,7,7,5,6,10,3,8,11,10,9,12,15,6,8,2,10,7,6,5,13,12,2,8,6,9,5,7,8,4,8,11,9,7,10,2,9,12,7,6,7,13,6,9,9,14,10,8,2,4,8,4,9,9,12,5,4,7,7,6,8,9,8,12,6,6,8,8,9,4,5,7,12,8,11,5,6,8,7,4,4,8,3,11,7,9,4,5,8,10,9,11,9,6,9,7,4,7,3,4,8,12,7,7,8,3,9,6,9,4,6,6,6,7,6,12,11,5,11,15,4,12,6,6,5,7,6,16,9,6,9,14,10,6,11,12,3,9,8,12,10,7,8,7,7,6,12,6,11,8,3,7,6,6,14,9,10,5,7,6,8,3,8,10,2,14,8,13,8,12,8,7,13,14,6,9,10,9,10,5,9,6,11,7,8,4,6,2,7,2,8,8,7,6,10,3,5,4,7,7,10,10,9,10,6,7,7,12,6,5,5,8,9,13,7,7,6,4,6,8,8,6,7,9,7,11,12,2,9,9,6,6,6,7,6,4,5,2,6,5,13,9,8,8,7,2,3,8,5,4,3,9,6,3,6,8,3,11,11,8,12,9,6,6,4,6,10,7,5,3,4,3,6,7,6,8,7,5,6,9,3,7,8,11,8,6,9,7,9,7,7,7,10,5,9,9,8,7,3,8,4,3,2,7,12,5,1,13,4,6,7,9,8,7,5,4,12,4,5,8,5,9,6,9,5,6,5,6,10,6,3,7,3,4,6,5,9,4,8,6,8,6,6,8,8,4,9,5,5,7,4,6,7,9,9,2,9,4,8,2,4,4,8,8,8,7,5,0,6,9,10199]
Each index in the array corresponds to a "channel" in the Radiacode detector. Each channel maps to a measurement in keV. Converting the channel number C
to keV is done with the calibration constants a0
, a1
, and a2
:
keV = a0 + a1*C + a2 C^2
The code is based off examples here: https://github.com/cdump/radiacode