Afskmodem

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen

Über afskmodem

afskmodem ist ein leistungsfähiger Zweiwege Multichannel und Multibaud Dekoder/Enkoder für AFSK/FSK AX.25 paketbasierte Datenübertragung (Packet Radio, APRS).

  • Die Kommunikation mit einem Digi bzw. iGate erfolgt im AXUDP Format
  • Audioquelle bzw- ziel können jedes OSS Soundsystem, aber auch Dateien sein (auch Audiopipes).
  • Für reine RX-Systeme kann afskmodem zusammen mit rtl_tcp und sdrtst auch mit gewöhnlichen USB RTL SDR-Sticks verwendet werden (z.B. RX only iGate)

Kurzübersicht der Parameter

afskmodem -h

first for all modems
 -a             abort on sounddevice error else retry to open
 -b <num>       tx dacbuffers (10) (more to avoid underruns)
 -B             bad sound driver repair, sending continuous quietness to avoid receive
                sample loss on start/stop of sound output. Use for stereo or fullduplex)
 -c <num>       maxchannels (1) (1=mono, 2=stereo)
 -D <filename>  (debug) write raw soundcard input data to file or pipe
 -D <filename>.txt  (debug) write demodulated bits as "01.." to file or pipe
 -e <num>       additional ptt hold time (if soundsystem has delay) unit=adcbuffers (1)
 -f <num>       adcrate (16000) (8000..96000)
 -h             help
 -i <filename>  kiss pipename (/dev/kiss/soundmodem)
 -k <num>       tx kiss bufs (60)
 -l <num>       adcbuffer length (256) more: lower system load but slower reaction
 -m [<mixername>:]<channel>:<left>:<right> (0..255) ossmixer (/dev/mixer)
 -o <filename>  oss devicename (/dev/dsp)
 -o <infilename,outfilename>       /dev/stdin,outpipe  (mknod outpipe p)
                 for play/rec with sox use -B as sox/alsa can only continuous sound
                 play -r 16000 -t raw -e signed-integer -c 1 -b 16 --buffer 1000 -q
                 rec -r 16000 -t raw -c 1 -b 16 -q - | afskmodem -B -f 16000 -o /dev/stdin,outpipe ...
                 make PTT with VOX as io-bits are not synchrone to sound with variable delay
 -s <num>       fragment size in 2^n (9)

repeat for each channel -C ... :
  -C <num>              (0..1) channel parameters follow (repeat for each channel)
  -p <devname> <pttbit>  pttport and bit to switch
                         * /dev/ttyXX for serial
                         * /dev/parport0 for parallel
                         * gpio for kernel gpio-interface
                         choose value for <pttbit>:
                         * tty: 0=RTS, 1=DTR
                         * parport: 0...7 / -0...-7 (inverted)
  -u                    close ptt-tty file between switch actions, may not work on USB tty
  -f <num>              (0) (0=halfduplex, 1=master fullduplex, 2=all fullduplex,
                        3=simplex 'stereo never both tx same time')
  -g <ms>               GM900 audio quiet time after ptt on (0)
  -r <num>              max random wait time after dcd before start tx (ms) (800)

repeat for each modem -M ... :
   -M <num> (0..7) modem parameters follow (repeat for each modem)
   -a       afsk off, fsk on (on)
   -b <num> baud (1200) (1..32000)
   -B <kbyte> send BERT, (negative bytes receive only)
   -c <num> use stereo channel 0=left (or mono), 1=right
   -d <num> dcdlevel, 0 no dcd (56) (0..100)
   -e <num> demod equalizer (0) 100=6db/oct highpass   (-999..999)
   -f <num> afsk mid frequency, tx and rx (hz) (1700)
   -g       g3ruh scrambler on (off)
   -H <num> afsk tx highpass (0) (0..100)
   -i       ignore modem parameters from kiss (off)
   -k <num> received data send to this kiss port (0) (0..7)
   -m <num> monitor (2) (0=off, 1=header, 2=all, 3=passall)
   -n <num> nyquist filter baseband -6db point in % of baudrate (65) (0..100)
   -P same as -U but use AXUDP v2, send dcd and txbuffer empty messages
   -p <num> receive clock pll aquisition speed (16) (num/256 of bit time)
   -q <num> quiet adc level to save cpu or avoid reciption of channel crosstalk (0)
   -s <num> afsk shift tx (for rx bandfilter width) (1000) (hz)
   -t <num> txdelay (300) (ms)
   -T <seconds> timeout for tx buffered frame (60) (s)
   -U <[x.x.x.x]:destport:listenport> use axudp instead of kiss /listenport check ip
   -L same as -U but use AXUDP v2 (no dcd and txbuffer empty messages)
   -v <num> tx loudness (100)
   -w <num> txdelay pattern before 1 flag (126) (0..255)
   -x <num> txtail (20) (ms), ptt hold for fullduplex
   -z <num> fsk rx baseband dc regeneration clamp speed (996) (0=off, 1=fast, 999=slow)
example: ./afskmodem -f 22050 -c 2 -C 0 -p /dev/ttyS0 0 -M 0 -c 0 -b 1200 -M 1 -c 1 -b 9600 -a -g -U 127.0.0.1:6001:1093


Ausführliche Beschreibung der Parameter

Konfigurationsbeispiele

SDR mit Einkanalempfang

SDR mit Zweikanalempfang