Arduino en APRS

APRS is een variant van packet radio en werd in 1992 door Bob Bruninga (WB4APR) ontwikkeld. Zie meer info hier.

Wat kunnen we met APRS?
1. Op kaarten aprs stations weergeven en hun gegevens opvragen.
2. Weerstation info opvragen.
3. Berichten uitwisselen met andere amateurs.
4. Nieuws bulletins automatisch ontvangen.
5. Aankondigingen automatisch ontvangen bvb 2 maal per dag.
6. Objecten (symbolen bvb Ziekenhuis,politiebureau,Nsstation,Satelietpositie’s)plaatsen op de kaart.
7. Mobiele stations volgen op de kaart.
8. Satelliet en andere info opvragen bij sommige digipeat stations.
9. Dx cluster info ontvangen.
10. Afstand meten tussen 2 punten op de kaart.
Meer info hier.

Zelfbouw oplossingen
Er zijn diverse kant en klare oplossingen te koop om met aprs te beginnen. Maar leuker is zelfbouw! Mijn project is gebaseerd op bestaande projectie, echter heb ik ze aangepast naar mijn wensen. Tevens heb ik wat bugs verwijderd uit de programma’s die ik heb gedownload.

Wat hebben we nodig
-Allereerst een geldig callsign. Zonder callsign mogen we niet zenden. Meer info hier.
-Een aprs modem, gebaseerd op een arduino 328 chip. voorbeeld
-Een VHF transceiver + antenne ingesteld op 144.800 mhz. 1 Watt is ruim voldoende. Mijn    project is gebaseerd op een Baofeng portofoon.
-Gps ontvanger. voorbeeld
-Een arduino (weer een 328P) om de aprs berichten te versturen naar het modem.
-Handvol losse onderdelen
-LCD Display. Let erop dat je een versie gebruikt met I2C interface. voorbeeld

Het modem
Mijn modem is gebaseerd op het project MicroAprs. De project bestanden zijn hier te vinden.
Ik adviseer om het het bestand microaprs-5v-ss-latest.hex te uploaden naar de arduino. ss staat voor simple serial, dit is de seriele interface voor de verbinding met de andere arduino. Voor een 3v3 versie van arduino gebruik je microaprs-3v-ss-latest.hex.
Ik heb Xloader gebruikt om de arduino te programmeren. De software vind je hier.

Het schema:

modem

 

Gebruik voor een 5v versie van de arduino voor R8 een 1K weerstand. Q1 is een mosfet. Gebruik geen normale transistor omdat deze open gestuurd kan worden door het HF signaal van je transceiver. R5 kan aangepast worden om het geluid niveau goed te krijgen voor je transceiver. Ik gebruik voor de Baofeng geen weerstand.

Afhankelijk van je gebruikte transceiver moet je de pinnen koppelen aan de juiste in- en uitgang. Voor Baofeng is het schema als volgt:

dualplug

 

De tweede arduino
De tweede arduino gebruik ik om gps locatie gegevens te verzamelen en deze door te geven aan het modem. Hiervoor heb ik als project basis het project SVTrackR gebruikt. Echter zitten hier wat fouten in die er voor zorgen dat niet alle pakketten foutloos gelezen worden.
De door mij aangepaste sketch vind je hier: ArduPRS. Open de sketch in je arduino programma en vul je callsign in op het eerste tabblad regel 4. Het tweede tabblad kun je je thuis locatie invullen en eventueel een commentaar tekst die meegestuurd wordt. De thuis locatie wordt gebruikt om de afstand tot thuis te berekenen.

Het schema:

gps

Het koppelen van de arduino’s
De arduino’s koppel je door pin 1 van het modem aan pin 2 van de gps arduino te koppelen en pin 2 van het modem aan pin 1 van de gps arduino, dit is de Simple Serial verbinding.

Het display wordt niet altijd met hetzelfde I2C adres geleverd. Wil je jou adres weten laat dan dit programma in je arduino en open de seriele monitor.

Het display, en dan met name de backlight lust wel wat stroom. koppel de +5v rechtstreeks aan de voeding in plaats van de uitgang van je arduino.

De test opstelling:

img_20161115_131649

Hier staan we stil, we ontvangen 5 satellieten:

img_20161128_211755

Een Igate, weerstation, andere toepassingen?
Het modem is eenvoudig te gebruiken in combinatie met een raspberry pi. Ik heb met een RPI en een arduino modem een Igate gemaakt die tevens als weerstation functioneert. Hiervoor kun je de sketch met KISS in de naam laden in de arduino. Kiss is een veel gebruikt protocol voor APRS. In mijn geval haalt de raspberry de gegevens op van het weerstation en verstuurd deze naar de aprs server. Tevens doet hij via een tranceiver de aprs signalen uit de lucht plukken en ook naar de server sturen: een APRS IGate.
Basis voor dit project vind je hier. Enige basis kennis linux is wel vereist om dit werkend te krijgen!

IGate station:

img_20161128_211535

Je kunt op deze website de gegevens bekijken.

schermafbeelding-2016-11-28-om-21-26-00

 

Meer info?
PD1DDK[AT]VERON.nl
Of kom eens lang op de clubavond van EZHE.

 

Update: Hier vind je de presentatie en het document waarin het protocol beschreven is.

APRS handout

APRS101