Arduino APRS Tracker
An APRS tracker is easy to build these days.
I had decided to build one for portable use (plan is to be used on hiking, but also in my car) powered from Lithium Ion battery and with all components on 3.3V. Transmit of APRS messages is done through a UV-5R.
The tracker is powered from my favorite Panasonic NCR18650 3400mAH through a MCP1700-3302E LDO regulator, plenty of juice for daily use.
GPS is a Adafruit Ultimate GPS Breakout – 66 channel w/10 Hz updates (https://www.adafruit.com/product/746) not that i need 10 Hz, 1 Hz update is more than enough but i had in stock from a different project, so why not ? (i love it)
Arduino is a Pro Mini 3.3V 8 MHz (actually a clone of Deek-Robot Pro Mini)
Update
Bought a Kenwood cable to avoid the mess with the 2.5 and 3.5 mm audio connectors
https://www.aliexpress.com/item/DIY-2-pin-4-Wire-Speaker-Mic-Cable-Spring-Line-for-Baofeng-UV5R-Kenwood-TK370-Linton/32734963747.html
Added also a TP4056 Lithium Cell Charger Module with Battery Protection to charge it through USB
I have started working with the schematic of MicroModem (http://unsigned.io) but i have modified LibAPRS
As long as GPS has a FIX it submits my location every two minutes and i have a button for a single shot APRS update.
Now with SmartBeaconing support (check the relevant branch on github)
The idea is to create a complete unit with a DRA818V with USB charging.
DRA818V is still on my desk… i have “trouble” designing a good low pass filter for VHF.
Schematic (breadboard version)
Remember power supply needs to be 3.3V
Arduino APRS tracker schematic (for the breadboard version)
Documentation has not been finalized yet and i use multiple libraries making it a bit difficult to handle everything
I have uploaded my working version to github
https://github.com/billygr/arduino-aprs-tracker
Remember to change the APRS_CALLSIGN to your call sign
You will need these libraries
libAPRS (modified) https://github.com/billygr/LibAPRS
TinyGPS http://arduiniana.org/libraries/tinygps/
SimpleTimer is included in the project (delete your version from Arduino/Libraries)
PCB
Oh yes !!! We do have also PCB ready credits to aronaut. Thank you !!!
https://github.com/billygr/arduino-aprs-tracker/tree/master/APRS-Tracker_KiCad
Bill of Materials (breadboard version)
R1 1K
R2 2K2
R3 3K9
R4 8K2
R5 270
R6 10K trimmer
R7 1K
R8 10K
C1 100nF
C2 4.7uF/16V
1x GPS Module
1 x push button
1 x Arduino Pro Mini 3V3 8MHz
Q1 2N2700/BS170
For using without a an external power supply
1 x Panasonic NCR18650 3400mAH (or your favorite 18650)
1 x 18650 socket
1 x MCP1700-3302E
Bill of Materials (PCB version)
Includes the 18650 socket+TP4056
https://github.com/billygr/arduino-aprs-tracker/tree/master/APRS-Tracker_KiCad
Billy my ideas for perfect baloon tracker in your project
Altitiude above sea level in APRS report
2x BME280 sensors in APRS telemetry
Battery voltage in APRS telemetry
Hello,
Could I buy PCB and how much does it cost?
Best Regards 73!
Stan hi,
I don’t sell boards unfortunately , you can use the gerber files and order directly if needed
SV1QFV
Hi!!
thanks for you work!!
recently i am worked in your program and implement the smartbeaconing function.
https://github.com/fnabarlats/arduino-aprs-tracker/tree/newfunction
Also implement a new functions on LibAPRS to send Course and Speed in aprs data.
https://github.com/fnabarlats/LibAPRS/tree/newfunction
thanks for sharing your work, this has been very helpful. And Sorry for my english!!!
73! LU5EFN
Thank you Frederico, i will review both over the weekend and merge them.
Many thanks for your work !!!
73 SV1QFV
Federico how about to add altitude report to aprs ?
It’s already there, try it it you can check it on aprs.fi
I try to upload your heavy job to my board but after verification I receive info : “APRS_setSpeed was not declared in this scope”
Please download again the LibAPRS i just committed the missing fix
Dear Bily
I tested the altitude report on tracker and I have small problem
APRS frame sent from phone via aprdroid show me on 141m and “Billy tracker” show me on 1280m.
Is there some possibility of altitude calibration or there is some error in library ?
http://imgurl.pl/img2/screenshot20200805-161949firefox_5f2fc3037dce1.jpg
http://imgurl.pl/img2/screenshot20200805-161943firefox_5f2fc355e4885.jpg
Please see screens
Hi,
Can you please check the serial output ? It spits out the altitude from GPS on both meters and feet. If it looks ok then the issue is on the transmission/conversion to APRS message
Thank you !!!
Checked already the altitude on ublox software and GPS connected to the laptop. On laptop gps shows correct altitude
I mean the serial output of the Arduino what is the altitude that it displays ?
Tell me please, I put your firmware on the tracker based on Arduino Pro Mini 3.3V 8 MHz and gps module NEO-6M-0-001, the tracker aprs transmits, but for some reason the SmartBeaconing system does not work, something in your firmware needs to be enabled or the GPS module not suitable for work. I put the firmware from here: https://github.com/billygr/arduino-aprs-tracker/blob/master/arduino-aprs-tracker/arduino-aprs-tracker.ino
I can not figure out how to make it work, the coordinates are transmitted by the tracker when updating after 2 minutes. And when turning, turning and changing speed, nothing. I will be grateful for your help.
Hi Roman,
Smartbeaconing is on this branch
https://github.com/billygr/arduino-aprs-tracker/blob/smartbeaconing/arduino-aprs-tracker/arduino-aprs-tracker.ino
Try it
Hi Roman,
Use the Smartbeacoing branch or this link directly
https://github.com/billygr/arduino-aprs-tracker/blob/smartbeaconing/arduino-aprs-tracker/arduino-aprs-tracker.ino
Billy please see, photo of com monitor
https://www.dropbox.com/s/8quwpisexb7dngd/20200818_161504.jpg?dl=0
https://www.dropbox.com/s/lju1huafz84wmbv/20200818_163423.jpg?dl=0
Ublox software – the same gps
Hi,
I just checked both pictures, there is no conversion in my code , we get the output directly from TinyGPS.
Could you please be so kind and do a test the test_with_gps_device.ino from the TinyGPS library ?
73, SV1QFV
Will check during this weekend, sorry for delay, familiy + work ..
Nice post,thanks for sharing
Visit Us
Billy only this “data” I get from GPS, I don’t know what I have done wrong
https://www.dropbox.com/s/kc801mzg6wydk0l/gpstest.JPG?dl=0
Ok, I found mistake
https://www.dropbox.com/s/60tdvd4ujomqc60/Gpstestok.JPG?dl=0 – here is correct report
And the altitude is not reported as around 60 m ?
Yes, GPS reports 60m – it is correct data, but APRS report each time 1200m
Billy
According Your next aprs nice project … ( not possible to comment there )
Not better use diferent low pass filter ? http://599.cz/view.php?cisloclanku=2018082201 – please see – easy to make and prepare. LFCN-160+ very difficult to get ( expensive item + expensive delivery ) – If You have cheap source for it please let know
Please consider
Regards
You are absolutely right, thanks for the comment and the filter option !!!
Great project! Is there room for a “busy detect” mechanism?
Yes, i have it on my todo list !!!
Hola te consulto cada cuantos minutos emite la posicion o hoy que oprimir el boton para que lo haga, saludos LU7FDV
From google translate: It emits the position every two minutes unless you use the smartbeaconing https://github.com/billygr/arduino-aprs-tracker/blob/smartbeaconing/arduino-aprs-tracker/arduino-aprs-tracker.ino branch
Hola si lo hago con arduino nano hay que cambiar algo en el programa ?saludos LU7FDV
No change, just be careful with the pinout