Kiss TNC Selbstbau, Arduino, Funkmodul, Raspberri Nano

Material:

  • 1 Walkie Talky Module 144Mhz 0,5/1W
    (E-Bay ca. 10€ eventuell geht dieser LINK noch)
  • 1 Arduino Mini Pro  (Amazon 3€)
  • 1 Nano Pi oder sonstigen Pi mit mehr als einer Seriellen Schnittstelle
    Der Nano hat 3 Serielle!
    ( 35€ ) Meine Version Nano Pi (10€  friedly arm)
    Link
  • Lochraster Platine
  • 10KOhm Wiederstand (3 Stck.)
  • 100KOhm Wiederstand
  • 1KOhm Wiederstand
  • 2.2KOhm Wiederstand (eventuell)
  • 10nF Kondensator
  • 100nF Kondensator
  • NPN Transistor (PN2222 oder Ersatztype)
  • BNC Buchse
  • Ein schönes Gehäuse 🙂

Eine Auf- und Verdrahtungsanleitung findet Ihr hier: (Link)
Der Anschluss des Funkmoduls und des Pi’s weiter unten.

ACHTUNG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
die Programmierung des Arduino funktioniert etwas anders als in der Anleitung beschrieben.

Wichtige Software und HEX Files zum flashen gibt es bei Mobilink 
Wichtig das Programm von der Anleitungsseite verwenden!!

Zunächst muss eine neuer Bootloader auf den Arduino.
avrdude -p m328p -c stk500 -P COM11 -v -U mobilinkd-boot-282.hex

Dann die Fuses richtig setzen.
avrdude -p m328p -c stk500 -P COM11 -v -B 40 -U lfuse:w:0xFF:m -U hfuse:w:0xD2:m -U efuse:w:0x05:m

Dann die in der Anleitung beschrieben Software flashen.
avrdude -p m328p -c stk500 -P COM11 -U mobilinkd-473-arduino.hex

Ich hab das mit dem STK500 von AVR unter Windows mit WINAVR erledigt.
Es gibt aber sicher viele andere Möglichkeiten den Bootloader zu flashen.
WinAVR bei progen mit Windows

Nur so funktioniert der Nano oder der Mini Pro später richtig!

Wie der Nano eingerichtet wird findet Ihr auf dieser Seite.
Auch die Links auf die erforderlichen Images.

Zur Pi und Funkmodul Verdrahtung:

Die Spannungsversorgung kommt vom Nano alles wird mit
5V versorgt von Pin 2 und 4 an die Versorgungen vom Arduino und dem Funkmodul.  GND Pin 6 an die GNDs des Arduino und des Funkmoduls.
USB Versorgung nur am Nano!

Wir Benötigen 2 serielle Schnittstellen eine zum Arduino eine zum Funkmodul.
Ich habe UART1 RX/TX für das Arduino Modem und UART2  RX/TX für das Funkmodul verwendet.

ACHTUNG: dreher!
Arduino:     Nano:
===============
RX   —>  RX UART1
TX   —>  TX UART 1

Funkmodul:       Nano:
=================
RX    —->   TX UART2
TX    —->   RX UART2

Zum Funkmodul:

Wir benötigen die Pins:
3    AF Audio Out. (Lautsprecher)
5    PTT (Sendetaste zum Transistor)
6    PD  (Fest auf Plus Sleep Mode)
8    Bat +5V
9/10  GND
12   Antenne
16   RX
17   TX
18   Mic In  ( Mikrofon Eingang)

Wer noch an 1 eine LED machen möchte kann das gerne tun.

Eventuell ein Tiefpassfilter.

Tiefpass

Eventueller Tiefpassfilter.

Mehr Infos über den Tiefpass unter http://www.kh-gps.de/dra.htm

Software auf dem Nano für das Modul:

Ich habs mit leicht gemacht mit Wireing Pi. Testet erst ob auf dem Nano Wireing Pi installiert ist mit
gpio readall
Bekommt Ihr eine Ausgabe ist es bereits Installiert und läuft. Ansonsten müsst Ihr Wireing Pi Installieren.

#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <wiringPi.h>
#include <wiringSerial.h>

int main ()
{
int fd ;

//0 = narrow FM
//145.5500 = TX freq
//145.5500 = RX freq
//0 = RXCTCSS (none)
//8 = Squelch (highest)
//0 = TXCTCSS (none)
//Flag??

if ((fd = serialOpen („/dev/ttyS2“, 9600)) < 0)
{
fprintf (stderr, „Unable to open serial device: %s\n“, strerror (errno)) ;
return 1 ;
}

if (wiringPiSetup () == -1)
{
fprintf (stdout, „Unable to start wiringPi: %s\n“, strerror (errno)) ;
return 1 ;
}

printf („Start! \n „) ;
fflush (stdout) ;
serialPrintf (fd, „AT+DMOCONNECT\r\n“) ;
delay (100) ;
while (serialDataAvail (fd))
{
putchar (serialGetchar (fd)) ;
}
fflush (stdout) ;
serialPrintf (fd, „AT+DMOSETGROUP=0,144.8000,144.8000,0,3,0,0\r\n“);
delay (100) ;
while (serialDataAvail (fd))
{
putchar (serialGetchar (fd)) ;
}
fflush (stdout) ;
serialPrintf (fd, „AT+DMOSETVOLUME=8\r\n“);
delay (100) ;
while (serialDataAvail (fd))
{
putchar (serialGetchar (fd)) ;
}
fflush (stdout) ;
serialPrintf (fd, „AT+DMOSETMIC=8,0\r\n“);
delay (100) ;
while (serialDataAvail (fd))
{
putchar (serialGetchar (fd)) ;
}
fflush (stdout) ;

printf („Ende!\n“) ;
return 0 ;
}

Compilieren mit :

gcc -Wall setRadio.c -o setRadio -lwiringPi -lpthread

Ausführen mit sudo
sudo ./setRadio

Antwort vom Funkmodul:

Start!
+DMOCONNECT:0
+DMOSETGROUP:0
+DMOSETVOLUME:0
+DMOSETMIC:0
Ende!

Die Nullen bedeuten alles OK! Damit ist das Funkmodul konfiguriert und solange Spannung anliegt muss es nicht nochmal konfiguriert werden.
Steht da nur Start und Ende dann sch….. serielle Leitung und Modul prüfen!

Jetzt noch die APRS Software auf den Nano.

sudo apt update
sudo apt upgrade
sudo apt install aprx

Jetzt habt Ihr in /etc/aprx.conf
Die sieht bei mir So aus:

mycall D00XYZX  # Euer Rufzeichen

myloc lat 5834.58N lon 02110.43E     # Eure Location

<aprsis>

passcode 12345  # Passcode für euer Rufzeichen

server germany.aprs2.net

filter „m/80“ # My-Range filter: positions within 80 km from my location

</aprsis>

<logging>

pidfile /var/run/aprx.pid
rflog /var/log/aprx/aprx-rf.log
aprxlog /var/log/aprx/aprx.log

</logging>

<interface>
serial-device /dev/ttyS1 38400 8n1 KISS
#callsign $mycall # callsign defaults to $mycall
tx-ok true # transmitter enable defaults to false
telem-to-is false # set to ‚false‘ to disable
</interface>

# *********** Multiple <beacon> definitions can follow *********
<beacon>

beacon object „DB0SOB“ symbol „/r“ $myloc comment „DMR-BM / C4FM / D-Star /       438.550 -7.6 http://www.db0sob.de OV C06 “
beacon object „DL0VHS“ symbol „/K“ lat „5833.72N“ lon „02115.87E“ comment        „http://www.vhs-sob.de Club Station DJ2RF VHS Schrobenhausen“

</beacon>

<digipeater>
transmitter $mycall

<source>
source APRSIS
filter m/80
</source>

<source>
source $mycall
filter m/80
</source>

</digipeater>

======================Ende conf=======================

Ich hab die Positionsdaten geändert und es sollten eure Daten da rein! Auch Rufzeichen!

Port 14580 muss am router durchgeschalten sein.

Nun noch /etc/default/aprx  ein yes eintragen dann startet das aprx von selbst.
Also sudo reboot
ausführen von sudo ./setradio (könnte man auch noch in ein Startscript bringen)
und alles sollte laufen 🙂

Überprüfen:

tail -n 20 -F -s 2 /var/log/aprx/aprx-rf.log
oder
tail -n 20 -F -s 2 /var/log/aprx/aprx.log

Viel Spaß beim basteln. Wie immer übernehme ich keinerlei Garantie. Weder für die Funktion der Bauteile noch der Software.

Ich denke ich muss nicht erwähnen das das betreiben eines Digipeaters von der BNA genehmigt werden muss. Das betreiben als APRS I-Gate funktioniert aber auch. Einfach den Bereich <digipeater> weg lassen.
Der Empfänger von diesem Modul ist Messerscharf 🙂

Fritz DJ2RF