This is a document describing my second Near Space Balloon Tracker, now known as “ProMini”.
Any questions you can get in touch with me at kevin at unseen dot org.
Tracker Hardware:
The module I purchased is a clone of the original Arduino Pro Mini and has a few slight changes. It is closest to this Sparkfun product, with a voltage regulator settable to 3.3v or 5v.
The SparkFun LiPower Boost Converter allows me to use batteries producing less than 3.3v and boost the voltage to the required level.
As supplied the device has a low voltage cut out configured of 2.6v, designed for LiPoly cells. For primary cells we need to remove this by shorting R3 as described here.
The device is also supplied configured for 5v, we need 3.3v, so need to modify the solder jumper.
The data sheet for the IC is here. This shows the IC producing a maximum of 200ma (more than enough for us) at around 0.8v (about the minimum voltage from a single AAA cell before it is totally exhausted).
The UKHAS Guide to the RFM22b is here
The Hope FM Mfg product page, with links to application notes is: here Pinout Diagrams are on page 61.
Note Frequency range legally available is 434.04MHz - 434.79MHz according to IR2030.
Now using radio1.write(0x73,0x03); High and radio1.write(0x73,0x00); Low in rtty_txbit, gives a much tighter signal. Detailed here: http://ava.upuaut.net/?p=408 Thanks to Dave Akerman suggested (as recommended by Navrac)
This is a pre-assembled pcb including the Max-6 GPS & Chip antenna. Just 4 connects are available - VCC, GND and RX & TX.
The Code lives here: https://github.com/KevWal/ProMini
In the warm office, Signal rx'ed loud and clear on 434.190.700 Mhz rather than the set 434.201 Mhz
Sentence is: $$PROM,2,000010,0.000000,0.000000,0,0,25,42*63B0
which is: %%PROM, id, time, lat, lon, alt, sats, vinmv, rfm_temp*CHECKSUM
RTTY 50 Baud, 480 Hz Shift, 7 Bits, No Parity, 2 stop bits
Using the form here I generated a payload config:
Payload Name: G7PMO $$PROM
Primary, 434.175, USB, RTTY, 480, ASCII-7, 50 Baud, Parity none, 2 Stop bits.
{“type”:“payload_configuration”,“name”:“G7PMO $$PROM”,“time_created”:“2012-11-18T22:25:32+00:00”,“metadata”:{“description”:“G7PMO's ProMini Tracker”},“transmissions”:[{“frequency”:434201000,“modulation”:“RTTY”,“mode”:“USB”,“encoding”:“ASCII-7”,“parity”:“none”,“stop”:2,“shift”:480,“baud”:50,“description”:“Primary”}],“sentences”:[{“protocol”:“UKHAS”,“callsign”:“PROM”,“checksum”:“crc16-ccitt”,“fields”:[{“name”:“sentence_id”,“sensor”:“base.ascii_int”},{“name”:“time”,“sensor”:“stdtelem.time”},{“name”:“latitude”,“sensor”:“stdtelem.coordinate”,“format”:“dd.dddd”},{“name”:“longitude”,“sensor”:“stdtelem.coordinate”,“format”:“dd.dddd”},{“name”:“altitude”,“sensor”:“base.ascii_int”},{“name”:“satellites”,“sensor”:“base.ascii_int”},{“name”:“battery”,“sensor”:“base.ascii_int”},{“name”:“temperature_internal”,“sensor”:“base.ascii_int”}],“filters”:{“post”:[{“filter”:“common.numeric_scale”,“factor”:0.001,“round”:3,“source”:“battery”,“type”:“normal”},{“filter”:“common.invalid_gps_lock”,“ok”:[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],“source”:“satellites”,“type”:“normal”}]},“description”:“$$ProM Std format”}]}
Doc ID: 7ca1c7874831f6e8a0616ca98add1600
Note the filter I use to identify if I have a satellite fix “{“filter”:“common.invalid_gps_lock”,”type“:“normal”,”ok“:[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],”source“:“satellites”}”
I should really implement another variable in the sentence to define lock directly for the PUBX code, but I am told the above should do what I want it to do.
Inspired by: http://www.daveakerman.com/?p=310
todo:
RFM22 Temp code: https://github.com/jamescoxon/PicoAtlas/blob/master/Pico80/Pico80.ino or here: https://github.com/jamescoxon/PicoAtlas/blob/master/Pico7/Pico7.ino
use Serial.flush(); to get rid of UBX issue
https://github.com/jamescoxon/PicoAtlas
More RFM22b code to look at: https://github.com/jamescoxon/Eurus/blob/master/70cmTracker/MainCode/MainCode.ino