Amateur (ax.25) packet radio network driver for soundcards
#include <linux/soundmodem.h> #include <linux/hdlcdrv.h>
The driver currently supports both 1200 baud AFSK and 9600 baud FSK (G3RUH compatible) using a standard SoundBlaster compatible or WindowsSoundSystem compatible soundcard. The whole decoding is done in software, so you definitely do not want to use it on a 386SX class machine.
Soundcards do not have a DC coupled output that could serve as a PTT signal. So there are basically for possibilities for obtaining a PTT signal. Sample schematic diagrams can be found on http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html.
A simple VOX circuitry that detects output signals at the output of the soundcard can be used, especially as it can be built with a single transistor plus a few passive components and typical soundcards have strong output signals.
A parallel port line can also be used to signal PTT. If selected, the PTT signal is output on the DATA0 line and DCD is output on the DATA1 line.
A standard serial port (8250, 16450, 16550) can also be used to output PTT. PTT is output on RTS and TxD, while DCD is output on DTR.
The MIDI port is basically an asynchronous serial interface and thus cannot output a straight DC level, however it may be used if connected through a retriggerable monoflop with about 15ms pulse duration. Note that only newer SoundBlaster models have a genuine MPU401 MIDI port. The older SB MIDI port cannot be used.
The ioctl calls follow the implementation in the hdlcdrv.
SMCTL_GETMODEMTYPE
returns the modem type (i.e. SBC1200, SBC9600, WSS1200 or WSS9600)
SMCTL_SETMODEMTYPE
sets the modem type. Only superuser can do this.
SMCTL_GETMIXER
returns the mixer type and the contents of the specified mixer register.
SMCTL_SETMIXER
sets the specified mixer register, if the specified mixer type matches the mixer type of the soundcard. Only superuser can do this.
SMCTL_DIAGNOSE
returns the contents of the diagnose buffer, which is used by smdiag to display the eye and oscilloscope diagrams.
SMCTL_GETDEBUG
return some debugging values. Not always available.
baycom (9), soundmodem (9),smdiag (8),smmixer (9), linux/drivers/net/hdlcdrv.c,
soundmodem was written by Thomas Sailer, HB9JNX/AE4WA, ([email protected]).