Linux projects

High-speed SCC driver for AX.25

History

The original PI2 and PT drivers in the standard Linux 2.0 kernel seemed to be broken. TCP connections regularly froze and had to be terminated by SIGINT. This was most likely caused by the drivers' unlimited send queue consuming too many skb's. I tried to change that, but really couldn't find out the logic behind the C code. That's why I started writing a new driver from scratch.

Features

The dmascc driver automatically detects and simultaneously supports multiple Ottawa PI/PI2, Gracilis PackeTwin, and S5SCC/DMA boards - in interrupt or in DMA mode. It uses the enhanced FIFO of the Z85230 ESCC (if present) and reliably works at 56kbps in interrupt mode on Pentium mainboards. If you are lucky and don't experience the timing problems described below, data rates of about 1Mbps should be possible in DMA mode. Full duplex operation (theoretically possible with the PackeTwin) is not implemented.

Problems

Due to a fundamental timing incompatibility between the SCC chip and some PCI/ISA bridges, PI, PI2, and PackeTwin often have problems transmitting packets correctly in DMA mode, when plugged into Pentium mainboards. For example, in some packets, instead of byte(n), byte(n-4) is transmitted again. The CRC field will reflect that change - the receiver will try to process that wrong packet. If you experience such a problem, don't use DMA mode (or try to fiddle with the Q0-Q3 jumpers on the PI2).

The S5SCC/DMA card currently is the only board with a reliable DMA interface.

Usage

Many parameters have to be configured by a utility program called dmascc_cfg before starting the interface with ifconfig. Among them are:

Download

AX.25 routing daemon

I am the maintainer of ax25rtd, part of the AX.25 utilities package. If you have some ideas or even want to take over maintenance (I don't use it anymore), please contact me.

Anyway, here is a patch against ax25-utils-2.1.42a, which should fix the following bugs:

Microsat image conversion utilities

I have ported NK6K's set of image conversion utilities to Linux. Feel free to download the source.

OSCAR 13/40 Telemetry Software for Linux

phase3.tar.gz was last updated Jan. 10, 2001. It contains the following programs:

phase3 [--no-crc] device
reads blocks of 512 bytes plus 2 CRC bytes from the specified serial device at 1200 Baud. If the --no-crc option is given, phase3 assumes that the CRC bytes are discarded by the receiver and thus expects blocks of only 512 bytes. All received blocks are written to stdout (CRC not included). If there was a CRC error, bit 7 of byte 0 is set to 1. If the --no-crc option is given, bit 7 of bytes 0 and 1 is set to 1. Information messages are written to stderr.
phase3c
reads OSCAR 13 telemetry blocks from stdin, converts them into a human-readable format and writes them to stdout.
phase3d
same as phase3c, but for OSCAR 40.
sendtlm
very experimental, soundcard-based telemetry transmitter, imitating the laser transmitter of OSCAR 40.
tlmfilter mask value
a very primitive telemetry block filter.

Some additional notes about phase3: If you have a DSP-12 or an old G3RUH modem, you have to specify --no-crc. You also must make sure that the DSP-12 does not send a carriage return after column 80 and that it does not append a linefeed after a carriage return (Main Menu - Setup Menu - Configure Serial Port Parameters).

There is no additional documentation, but the sources are very small and easy to understand.

Driver for IBM MCA SCSI adapters

Michael Lang is now the maintainer of this driver. For your reference, here are some of the patches I contributed:


Home