Dieser Beitrag über das MicroModem ist ein Gastartikel von Stefan Heesch (HB9TWS). Stefan ist Entwickler der Windows 8 App “HF Propagation”. In seinem Blog und auf Twitter berichtet er über Selbstbau und Experimente im Bereich Amateurfunk.
Dieses interessante APRS Modem wurde von Mark Qvist in Dänemark entwickelt. Es basiert auf einem Arduino und etwas zusätzlicher Hardware. Die geringe Grösse und der niedrige Stromverbrauch eröffnen zahlreiche Anwendungsmöglichkeiten. Die Verwandtschaft mit dem Arduino vereinfacht die Entwicklung eigener APRS Software.
Hardware
Das MicroModem gibt es in zwei Varianten: Das MicroModem DIY ist eine Zusatzhardware für einen Arduino. Es ist als Bausatz erhältlich. Oder man kauft nur die Platine. Mit einem Preis von 10€ bzw. 5€ ermöglicht es einen günstigen Einstieg für eigene APRS Experimente. Das Hardware-Design ist Open-Source und damit offengelegt. Wer will, kann es dementsprechend auch frei nachbauen.
Zum anderen gibt es das MicroModem als komplettes, getestetes Gerät. Es handelt sich dabei im Prinzip um einen eigenständigen Arduino mit einiger Zusatzhardware. Als Prozessor werkelt dort ein ATMega 328p bei einem Takt von 16 MHz. Der Prozessor kann über die ISP-Schnittstelle seriell programmiert werden oder aus der Arduino-IDE über eine USB-Kabel. Auf dem Board fungiert ein FT232RL Chip von FTDI als USB-RS232 Konverter. Damit gibt es auch unter Windows 8 keine Treiberprobleme.
Die 5 Volt Versorgungsspannung kann über USB oder eine externe Spannungsquelle bereitgestellt
werden. Laut Spezifikation hat das MicroModem im Standby eine Stromaufnahme von 51mA.
Zur sicheren Dekodierung der APRS Signal sollte der Transceiver ein Audiosignal von mindestens 100 mV Spitze-Spitze liefern. Der Ausgangspegel des Modems kann über ein Potentiometer auf einen Wert von ca. 15mV bis 1.5 Volt Spitze-Spitze eingestellt werden. Als PTT kann wahlweise ein OpenDrain Ausgang oder ein Logik-Level Ausgang gewählt werden. Alle Signale sind auf einen 6poligen Präzisionssockel herausgeführt. Damit dürften sich die meisten Transceiver problemlos anschliessen lassen.
Weitere Peripherie kann über die herausgeführte SPI Schnittstelle oder den I2C-Bus angesteuert werden. Die serielle Schnittstelle (UART) des ATMega 328p steht ebenfalls zur Verfügung. Alle Signale sowie 5Volt, 3.3 Volt und GND sind auf Präzisionsbuchsen herausgeführt und auf der Platine beschriftet.
Schnittstelle | Signal | Arduino Pin |
---|---|---|
SPI | CLK | D11 |
MISO | D12 | |
MOSI | D13 | |
DTR | Reset | |
I2C | SCL | A4 |
SDA | A5 | |
UART | RX | D0 |
TX | D1 |
Eine Beschreibung der Hardware inkl. Schaltplan in Englisch findet man auf Mark’s Blog.
Software
Ausgeliefert wird das MicroModem mit der MicroAPRS KISS Firmware. Damit kann es als TNC im KISS Modus für APRS eingesetzt werden. Es gibt aber noch weitere kompilierte Firmware Varianten mit den Protokollen „Simple Serial“ oder „MP1“. Damit kann man das Modem interaktiv über ein Terminal Programm ansteuern und mit dem MicroModem experimentieren.
Die Entwicklung eigener Software für das MicroModem wird durch die Arduino-Bibliothek LibAPRS
unterstützt. Diese steht auf GitHub zum Download als ZIP-Archiv bereit. Das ausgepackte Archiv wird in das Bibliotheksverzeichnis der Arduino-IDE kopiert und schon kann es mit dem Schreiben eigener APRS Software für MicroModem losgehen. Ebenfalls enthalten ist ein kleines Beispielprogramm, das als Grundlage für die Eigenentwicklungen dienen kann. Die enthaltenen Kommentare enthalten wichtige Hintergrundinformationen.
Zusammen mit einem GPS Empfänger und einem kleinen 2m Sender liesse sich recht einfach ein
APRS-Tracker bauen und programmieren. Eine dazugehörige Arduino-Sketch könnte in etwa so
aussehen:
#define ADC_REFERENCE REF_3V3 #define OPEN_SQUELCH false #include void aprs_msg_callback(struct AX25Msg *msg) { // As tracker we ignore all incoming packets ;-) } void setup() { // Initialize GPS connection ... // to do // Setup APRS APRS_init(); APRS_setCallsign("NOCALL", 1); } void loop() { char *latitude = NULL; char *longitude = NULL; // Handle data from GPS module // todo ... if (latitude != NULL && longitude != NULL) { // Update location APRS_setLat( latitude ); APRS_setLon( longitude ); char *comment = "Simple tracker using MicroModem"; // And send the update APRS_sendLoc(comment, strlen(comment)); } }
Die Funktion aprs_msg_callback wird von LibAPRS aufgerufen, sobald ein APRS Paket dekodiert worden ist. Selbst wenn das Programm keine empfangen APRS Pakete verarbeitet, muss diese Funktion in der Sketch vorhanden sein. Ansonsten schlägt die Übersetzung des Quelltextes fehl und es wird ein Compiler-Fehler angezeigt.
In der Funktion setup() muss die LibAPRS zunächst initialisiert und das eigene Callsign mit SSID hinterlegt werden. Anschliessend kann mit den von LibAPRS bereitgestellten Funktionen über APRS kommuniziert werden.
Applikationen mit dem MicroModem
Im Internet findet man bereits Berichte von erfolgreichen Einsätzen des MicroModems, teilweise mit
selbstgebauter MicroModem Hardware:
- APRS Transceiver
Taner DB1NTO hat einen kleinen APRS Transceiver in der Grösse einer
Streichholzschachtel gebaut. In dem Transceiver werden zwei Micro-Arduinos
eingesetzt, der Quelltext ist frei verfügbar. Abbildungen des Transceiver findet man in
dem MicroModem Forum. - APRS Tracker
Stanley 9W2SVT berichtet in seinem Blog über einen APRS Tracker. Der Tracker basiert ebenfalls auf zwei Micro-Arduinos und einem MicroModem. Der Quelltext des Trackers ist hier veröffentlicht. - APRS iGate
Ich habe selbst seit einiger Zeit ein APRS iGate in Betrieb, welches auf einer selbstgebauten MicroModem Hardware und einem Raspberry PI basiert. Das iGate verwendet ausserdem die Software APRX. Setup und Konfiguration des iGates sind in meinem Blog beschrieben.
Weiterführende Informationen zum MicroModem
Wer nach dem Lesen dieses Artikels nach weiteren Informationen zum MicroModem sucht, dem sei zuerst Mark Quist’s Blog empfohlen. Von dort aus gelangt man auch zu einem Forum rund um das Thema MicroModem.
[…] und ist schnell vergangen. Besonders gefreut habe ich mich über den ersten Gastartikel über das MicroModem, der hier im Blog veröffentlicht worden ist. Durch den Gastbeitrag und den Beitrag über meine […]