[time-nuts] picPET, Raspberry Pi, Logging, and a GPS module

Ben Hall kd5byb at gmail.com
Sun Aug 23 18:43:26 EDT 2015

Evening all,

Months ago, I bought several picPET's from Tom Van Baak:


Plan was to set up a power line phase measurement system using my Z3801 
GPSDO as the 10 MHz input.  Life intervened...and finally got back to 
that project today.

I decided to do preliminary "playing around" to make sure I got 
everything working right before I hooked it up to the Z3801 and a 
transformer that would sample the line frequency.  Tom included a nice 
little 10 MHz oscillator unit, so I got to work using that as the 10 MHz 
reference...and searching around for something to use as an event pulse, 
I found a GPS unit that had what I suspected to be a 0.5 PPS output. 
(two birds, one stone!)

The collection device was to be a Raspberry Pi computer as they are 
simple, cheap, and in my experience, work pretty well.

First thing to do on the RPi was to disable the serial console so that I 
could use those UART pins as the serial input.  There are a number of 
automated way to do that online.

Second thing to do was to get serial into the RPi and display it.  Found 
another script to do that online.  Initially the output from the picPET 
was garbage, but thankfully I was using a pP05 and pulling pin 4 high 
made the text readable.

Third thing to do was to get some sort of serial logging program.  I 
found one called grabserial.  <http://elinux.org/Grabserial>  Grabserial 
is nice because it has a lot of options that will make it nice to use in 
an automated fashion.  IE:  I can tell it to collect for "X" seconds, 
record to a file, then terminate, plus log the system clock for giggles.

Grabserial gave me fits!  Turns out that it doesn't pass the command 
line switch for the RPi serial port somehow, but editing the source to 
reflect /dev/ttyAMA0 as the serial port made it work.  (I submitted an 
issue on github to the development team to see if I'm an idiot or if 
this is a real issue)

Fourth thing was to figure out how to name files using the time and date 
so I don't have data file collisions.  Studying the date command yielded 
an answer:

now=$(date +"%Y-%m-%d__%k-%M-%S")
python grabserial.py -e 30 -t -T -v -o log.$now.log

This names the log file "log.YEAR-MONTH-DAY__HOUR-MIN-SEC.log" which is 
mighty handy.

Next up - setting up a chron job to run the above once per day so I get 
one data file per day, keeping the file size manageable.  Also need to 
get Samba working so I can pull the data files off the RPi onto the PC 
for manipulation.  :)

thanks much and 73,
ben, kd5byb

More information about the time-nuts mailing list