* Linux Packet Interface Hardware
@ 2010-06-15 23:43 Jim Kusznir
2010-06-16 1:19 ` Ray Wells
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: Jim Kusznir @ 2010-06-15 23:43 UTC (permalink / raw)
To: linux-hams
Hi all:
I'm in the process of designing some kinda-embedded applications that
will need to employ packet "compatibility layers" to allow access of
packet radios.
In one application, I'm proposing relacing a node stack with a linux
box, some interface (subject of this e-mail), and the existing radios
with their audio (discriminator if appropriate), tx line, squelch
line, etc. Other applications may not be as demanding as the nodes,
but similar. In essence, I'm looking for a device to connect to the
equivalent of the 6-pin mini-din connector used for "data" on most
modern radios and linux.
I'm familiar with the state of the art back in the late '90's. I also
realize that not a lot has necessarily changed since then....
However, I suspect something may have.
the solution should be capable of running several different packet
interfaces, and at 9600 or 1200 baud. These interfaces should turn
into linux axX interfaces.
I know one solution is to get modern TNCs (such as the PK-96, etc),
and either put them in kiss mode or replace the rom with a KISS-only
rom. I know that linux can do sound card packet as well. However,
I'm wondering if there's something inbetween. I'm not entirely
against the sound card TNC option, but have some questions as to the
robustness and performance of such a system. Also, its likely in my
implementation that I'd be using usb audio adapters to provide the
sound card. And I want to do 9600 baud with them. Of course, there's
also the how-to-key-the-transmitter problem as well.
I see in the linux kernel support for YAM and some others; are any of
these viable solutions? Anything else to recommend?
Thanks!
--Jim, K7LL
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-15 23:43 Linux Packet Interface Hardware Jim Kusznir
@ 2010-06-16 1:19 ` Ray Wells
2010-06-16 1:24 ` Matti Aarnio
2010-06-16 2:05 ` Dave Platt
2 siblings, 0 replies; 18+ messages in thread
From: Ray Wells @ 2010-06-16 1:19 UTC (permalink / raw)
To: Jim Kusznir; +Cc: linux-hams
Jim,
If I may comment on the YAM. I have one of these and it works quite well
at 9k6 under Debian 4.0.
Today, however, there is no support for the YAM and purchasing the PCB
may be an impossible task.
My general preference is for TNC's running a KISS only EPROM although my
Baycom USCC>4 card (1x0k3, 2x1k2 and 1x9k6 modem) works very well. It's
the original ISA version. A PCI version was also produced.
Ray vk2tv
Jim Kusznir wrote:
> Hi all:
>
> I'm in the process of designing some kinda-embedded applications that
> will need to employ packet "compatibility layers" to allow access of
> packet radios.
>
> In one application, I'm proposing relacing a node stack with a linux
> box, some interface (subject of this e-mail), and the existing radios
> with their audio (discriminator if appropriate), tx line, squelch
> line, etc. Other applications may not be as demanding as the nodes,
> but similar. In essence, I'm looking for a device to connect to the
> equivalent of the 6-pin mini-din connector used for "data" on most
> modern radios and linux.
>
> I'm familiar with the state of the art back in the late '90's. I also
> realize that not a lot has necessarily changed since then....
> However, I suspect something may have.
>
> the solution should be capable of running several different packet
> interfaces, and at 9600 or 1200 baud. These interfaces should turn
> into linux axX interfaces.
>
> I know one solution is to get modern TNCs (such as the PK-96, etc),
> and either put them in kiss mode or replace the rom with a KISS-only
> rom. I know that linux can do sound card packet as well. However,
> I'm wondering if there's something inbetween. I'm not entirely
> against the sound card TNC option, but have some questions as to the
> robustness and performance of such a system. Also, its likely in my
> implementation that I'd be using usb audio adapters to provide the
> sound card. And I want to do 9600 baud with them. Of course, there's
> also the how-to-key-the-transmitter problem as well.
>
> I see in the linux kernel support for YAM and some others; are any of
> these viable solutions? Anything else to recommend?
>
> Thanks!
> --Jim, K7LL
> --
> To unsubscribe from this list: send the line "unsubscribe linux-hams" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-15 23:43 Linux Packet Interface Hardware Jim Kusznir
2010-06-16 1:19 ` Ray Wells
@ 2010-06-16 1:24 ` Matti Aarnio
2011-02-15 18:36 ` Jim Kusznir
2010-06-16 2:05 ` Dave Platt
2 siblings, 1 reply; 18+ messages in thread
From: Matti Aarnio @ 2010-06-16 1:24 UTC (permalink / raw)
To: Jim Kusznir; +Cc: linux-hams
On Tue, Jun 15, 2010 at 04:43:45PM -0700, Jim Kusznir wrote:
>
> Hi all:
>
> I'm in the process of designing some kinda-embedded applications that
> will need to employ packet "compatibility layers" to allow access of
> packet radios.
>
> In one application, I'm proposing relacing a node stack with a linux
> box, some interface (subject of this e-mail), and the existing radios
> with their audio (discriminator if appropriate), tx line, squelch
> line, etc. Other applications may not be as demanding as the nodes,
> but similar. In essence, I'm looking for a device to connect to the
> equivalent of the 6-pin mini-din connector used for "data" on most
> modern radios and linux.
>
> I'm familiar with the state of the art back in the late '90's. I also
> realize that not a lot has necessarily changed since then....
> However, I suspect something may have.
>
> the solution should be capable of running several different packet
> interfaces, and at 9600 or 1200 baud. These interfaces should turn
> into linux axX interfaces.
I would suggest making it an USB device with "BPQether" type of interface.
At USB level it would look like a _generic_ ( = no extra drivers )
ethernet, but it would understand only BPQether type of packets, and
therefore would not get to transmit just anything that system happens
to send on its way.
There would be need for unique serial numbers ( = "mac address" ) for
the devices. Anything would be good as long as first byte of MAC
address has its lowest bit clear (the multicast indicator)
(Even prefix "BPQ" = 0x42, 0x50, 0x51 )
See "man bpqparams" for the control interface.
To implement a control command channel, like to set ptt delays, etc.
that could be an AX.25 frame with destination call of 'NOCALL' (the
classical misconfiguration token) and an UI frame with control data.
Speed would be fixed, but nothing prevents having multiple virtual
ethernet interfaces in same USB device, each with their own speeds.
As a bonus, this same hardware could be plugged on Windows as well
without any special drivers. If the settings are correct, then on
windows a BPQ32 suite will be able to drive it too - and you get
even more people interested in that device.
> Thanks!
> --Jim, K7LL
73 de Matti, OH2MQK
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-15 23:43 Linux Packet Interface Hardware Jim Kusznir
2010-06-16 1:19 ` Ray Wells
2010-06-16 1:24 ` Matti Aarnio
@ 2010-06-16 2:05 ` Dave Platt
2010-06-16 12:45 ` Curt, WE7U
2 siblings, 1 reply; 18+ messages in thread
From: Dave Platt @ 2010-06-16 2:05 UTC (permalink / raw)
To: Jim Kusznir; +Cc: linux-hams
> I know one solution is to get modern TNCs (such as the PK-96, etc),
> and either put them in kiss mode or replace the rom with a KISS-only
> rom. I know that linux can do sound card packet as well. However,
> I'm wondering if there's something inbetween. I'm not entirely
> against the sound card TNC option, but have some questions as to the
> robustness and performance of such a system. Also, its likely in my
> implementation that I'd be using usb audio adapters to provide the
> sound card. And I want to do 9600 baud with them. Of course, there's
> also the how-to-key-the-transmitter problem as well.
>
> I see in the linux kernel support for YAM and some others; are any of
> these viable solutions? Anything else to recommend?
Just some comments, based on my own fiddling-around over the past
few years.
First meta-comment: I'd strongly suggest that you review the information
at
http://www.scc-ares-races.org/packet.html
and consider getting in touch with Michael N6MEF and Fish K6FSH, two
of the lead packet guys in our area. They and others have been doing
a really major re-work of the packet network that we use for ARES/RACES
support here in Santa Clara County... upgrading from a single BBS to
a multi-node backbone, switching to newer TNCs and radios, and using
Linux for a lot of the infrastructure. We're also making a lot of use
of the "Outpost" front-end software developed for us by Jim KN6PE
(written up in QST in April of last year)... this does not run natively
on Linux, alas (I'm considering both WINE and VirtualBox solutions, as
well as a native Outpost work-alike of some sort)
I've used traditional command-line TNCs with Linux, as well as KISS-mode
(both a TNC-2 with a KISS-only replacement ROM, and a TNC-X), and
have used soundmodem in several versions on several different PCs. Each
has its advantages and disadvantages.
Using the Linux AX.25 kernel stack can be immensely convenient, since
it allows you to drive many different sorts of TNCs, and to write
all sorts of Linux-based AX.25 clients and servers in almost any
language you want. It ought to be possible (for example) to write
a sophisticated packet-radio client or gateway in Perl.
However, using the kernel AX.25 stack is not without its gotchas.
There seems to be a quirk in the way that the kernel handles
AX.25 connection timers, which I think may lead to less-than-ideal
behavior under conditions of network congestion. The quirk is
this: the T1 (lost-packet retransmit) timer is started at the time
that the kernel's packet layer hands the current set of frames off
to the driver (hardware or KISS) to be transmitted... *not* at the
time when the driver has actually transmitted them. Under congested
network conditions, this can result in the T1 timer expiring before
the frames have even been transmitted by the radio... and this leads
to possibly-unnecessary frame retransmissions.
As I read the code, this is going to affect *all* AX.25 packet
drivers. I think it *might* be possible to correct it for those
packet drivers which actually interface directly with the radio
hardware (e.g. Baycom, Z8560SCC) and for 6Pack. I don't think
it's possible to correct it at all for KISS, since the KISS protocol
doesn't include any sort of "OK, I sent it!" feedback from the TNC
to the host.
This is an annoyance, but probably not a severe problem... the
kernel's code to estimate round-trip time (and adjust the T1
timer setting accordingly) ought to adapt to the presence of
congestion, use a longer T1 timer in the future, and the extra
retransmissions will not occur (or will occur less frequently).
Now... as far as specific modem/TNC types and hookups go...
you've got a bunch of choices.
Probably the most obvious is the first you've considered...
KISS hookups to traditional TNCs, over serial ports. Clean,
simple, pretty scalable (you may want something like an
8-serial-port USB adapter), and your transmission and reception
quality will be as good as each TNC's modem will provide. You
may be able to re-use many of your existing TNCs for this,
and keep the cost down. This is probably the most straightforward
approach.
A variant on this would be talking to a bunch of TNCs over
a single serial port using 6Pack. I don't know how many TNCs
support this protocol, though.
TNC or radio interfaces which require tight CPU interaction
with the hardware (e.g. Baycom) are probably a Really Bad
Idea for your application... not scalable.
Running multiple soundmodems, over multiple sound interfaces...
yes, this should be possible. For 1200-baud AFSK, most decent
sound interfaces ought to work reasonably well once you get the
levels set properly. Using USB audio adapters may well work
OK... I don't know how many a single USB interface will be able
to support without suffering from dropouts or other glitches.
You might need to hack on the soundmodem code in order to
provide some sort of shared-PTT capability (e.g. setting
individual bits on the parallel port) to control individual
radios' PTT lines). You could probably use multiple SignaLink USB
adapters - these seem to have good audio quality, and have their
own built-in VOX-based PTT circuit.
You'll want to use the ALSA drivers for talking to such USB
audio devices. Make sure you've got a current version of the
soundmodem program (0.13, I think?) - older versions didn't
implement all of the "start" and "stop" calls in the ALSA API
quite right, and could lock up on some ALSA devices.
For 9600-baud... well, you'd be on more uncertain territory there.
I don't think the 9600-baud FSK support in the soundmodem has been
used anywhere near as much as the 1200-baud support, and I haven't
heard anything about its actual performance. I understand that
9600 FSK requires very flat frequency response of the data channel
(down to fairly near DC), and simple USB-audio adapters designed
for driving headphones may roll off at too high a frequency due
to too-small DC-blocking capacitors. VOX-based PTT control might
not work well (hard to get the hang-time adjusted properly, to
allow fast turnaround of the radio channel, without dropping
out inappropriately).
Do consider the fact that each soundmodem process is going to
be chewing up CPU cycles constantly (well, when receiving, at
least) even when there's no traffic. A good modern CPU can
probably handle quite a few of these (e.g. an Atom) but
at the cost of using somewhat more electricity than if the CPU
were idling and just waiting for input from a KISS TNC. This
might or more not be more power than a stack of TNCs would use.
The soundmodem code does have one AX.25 quirk you ought to be
aware of. When sending two or more AX.25 frames in a single
transmission, it tends to violate the recommendation in section
2.2.11 of the AX.25 spec:
2.2.11 Interframe Time Fill
Whenever it is necessary for a DXE to keep its transmitter on while
not actually sending frames, the time between frames should be filled
with contiguous flags.
The actual behavior of the soundmodem is to send one flag at the
end of the current frame, then insert between zero and seven 0-bits,
and then send another flag to begin transmission of the next frame.
This has the effect (seven times out of eight) of inserting a short,
invalid frame between two good ones. Most TNCs will simply detect the
runt frame and silently discard it. A very few (e.g. the TNC-X with
its original firmware) will lose HDLC sync, won't be re-sync'ed properly
by the second flag, and will end up missing the second real frame. I
understand that the revised firmware for the TNC-X is better at handling
these not-quite-as-recommended AX.25 transmissions by the soundmodem.
I hope that this semi-random brain dump has been of some slight use!
73,
Dave AE6EO
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 2:05 ` Dave Platt
@ 2010-06-16 12:45 ` Curt, WE7U
2010-06-16 16:16 ` Jim Kusznir
2010-06-16 22:29 ` Dave Platt
0 siblings, 2 replies; 18+ messages in thread
From: Curt, WE7U @ 2010-06-16 12:45 UTC (permalink / raw)
To: Dave Platt; +Cc: linux-hams
LOTS of good info Dave! A couple of minor comments:
On Tue, 15 Jun 2010, Dave Platt wrote:
> For 9600-baud... well, you'd be on more uncertain territory there.
> I don't think the 9600-baud FSK support in the soundmodem has been
> used anywhere near as much as the 1200-baud support, and I haven't
> heard anything about its actual performance. I understand that
> 9600 FSK requires very flat frequency response of the data channel
> (down to fairly near DC), and simple USB-audio adapters designed
> for driving headphones may roll off at too high a frequency due
> to too-small DC-blocking capacitors.
Another thing to watch is whether the PLL in the transmitter you're
using tries to compensate for the low-frequency audio. Many
PLL-based radios will try to do this, screwing up the transmission.
I used to have a 9600 baud modem hooked to an ICOM IC-27A and it
definitely had that problem. Even some "9600-baud ready" radios
with the modem connector on the back might have this sort of
problem.
> The actual behavior of the soundmodem is to send one flag at the
> end of the current frame, then insert between zero and seven 0-bits,
> and then send another flag to begin transmission of the next frame.
Note that the 0 bits are a disadvantage for the reasons mentioned,
but they're an advantage for the purpose of getting more clock
transitions to sync up with at the receive side. If it weren't for
the extra short packet in there that some devices create it would be
much better to have a sequence of 0-bits than flags. This is
especially important for the first part of a transmission when the
receiver is attempting to sync up to the transmit clock: With
0-bits you can often use a shorter TXD at the transmit side yet
still get the receiver to sync before the data starts across. It
might also be important in lower S/N conditions.
--
Curt, WE7U. <http://www.eskimo.com/~archer>
APRS: Where it's at! <http://www.xastir.org>
Lotto: A tax on people who are bad at math. - unknown
Windows: Microsoft's tax on computer illiterates. - WE7U.
The world DOES revolve around me: I picked the coordinate system!"
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 12:45 ` Curt, WE7U
@ 2010-06-16 16:16 ` Jim Kusznir
2010-06-16 16:46 ` Curt, WE7U
2010-06-16 22:29 ` Matti Aarnio
2010-06-16 22:29 ` Dave Platt
1 sibling, 2 replies; 18+ messages in thread
From: Jim Kusznir @ 2010-06-16 16:16 UTC (permalink / raw)
To: linux-hams
Thanks everyone, lots of good info!
A few questions:
I've seen a few references to 6-pack, and know that its a "special
firmware" that one would load on the TNCs...But I can't seem to find
that firmware anywhere. Does anyone know where I can actually get it,
and find info about what TNCs it supports?
It seems that for hardware available today, the recommendation for
infrastructure use is to use a TNC in KISS or 6-pack mode. I've been
using one at home in KISS mode for a while, and I've been noticing
what I think now is the T1 timer problem, and its been causing very
frustrating and massive reduction in throughput on my local 9k6
channel, even though my radio and the node are the only two on
frequency! I often see my system try and send retransmits before the
first packet ever even makes it out the radio (but on the other hand,
I also think my TNC is sitting on packets way too long -- PacComm
Spirit-2). I am contemplating replacing the firmware chip with a
KISS-only or 6-pack firmware chip and see what that does, if I can
find one for this TNC.
As to new installations, does anyone recommend a 9k6 TNC for a good
cost/performance metric that can be used with linux effectively? It
should be external, as the embedded hardware I'm likely to run it on
will not have PCI slots, and definitely will NOT have ISA slots.
I like the ideas about a BPQether USB device; from the description,
though I gather one has not been made to date? I'm curious, and I'll
keep this in mind for a potential CE/EE project here (School of EECS,
WSU and the W7YH Amateur Radio Club).
The information on sound modems is well taken; I think I'll limit that
deployment to end-user stations in my planning.
Thanks all for the ideas/input. I think the BPQether driver best fits
what I was hoping to find, except for the fact that it doesn't exist
off-the-shelf yet....
--Jim
On Wed, Jun 16, 2010 at 5:45 AM, Curt, WE7U <curt.we7u@gmail.com> wrote:
>
> LOTS of good info Dave! A couple of minor comments:
>
> On Tue, 15 Jun 2010, Dave Platt wrote:
>
>> For 9600-baud... well, you'd be on more uncertain territory there.
>> I don't think the 9600-baud FSK support in the soundmodem has been
>> used anywhere near as much as the 1200-baud support, and I haven't
>> heard anything about its actual performance. I understand that
>> 9600 FSK requires very flat frequency response of the data channel
>> (down to fairly near DC), and simple USB-audio adapters designed
>> for driving headphones may roll off at too high a frequency due
>> to too-small DC-blocking capacitors.
>
> Another thing to watch is whether the PLL in the transmitter you're
> using tries to compensate for the low-frequency audio. Many
> PLL-based radios will try to do this, screwing up the transmission.
> I used to have a 9600 baud modem hooked to an ICOM IC-27A and it
> definitely had that problem. Even some "9600-baud ready" radios
> with the modem connector on the back might have this sort of
> problem.
>
>
>> The actual behavior of the soundmodem is to send one flag at the
>> end of the current frame, then insert between zero and seven 0-bits,
>> and then send another flag to begin transmission of the next frame.
>
> Note that the 0 bits are a disadvantage for the reasons mentioned,
> but they're an advantage for the purpose of getting more clock
> transitions to sync up with at the receive side. If it weren't for
> the extra short packet in there that some devices create it would be
> much better to have a sequence of 0-bits than flags. This is
> especially important for the first part of a transmission when the
> receiver is attempting to sync up to the transmit clock: With
> 0-bits you can often use a shorter TXD at the transmit side yet
> still get the receiver to sync before the data starts across. It
> might also be important in lower S/N conditions.
>
> --
> Curt, WE7U. <http://www.eskimo.com/~archer>
> APRS: Where it's at! <http://www.xastir.org>
> Lotto: A tax on people who are bad at math. - unknown
> Windows: Microsoft's tax on computer illiterates. - WE7U.
> The world DOES revolve around me: I picked the coordinate system!"
> --
> To unsubscribe from this list: send the line "unsubscribe linux-hams" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 16:16 ` Jim Kusznir
@ 2010-06-16 16:46 ` Curt, WE7U
2010-06-16 23:25 ` Jim Kusznir
2010-06-16 22:29 ` Matti Aarnio
1 sibling, 1 reply; 18+ messages in thread
From: Curt, WE7U @ 2010-06-16 16:46 UTC (permalink / raw)
To: Jim Kusznir; +Cc: linux-hams
On Wed, 16 Jun 2010, Jim Kusznir wrote:
> I've been
> using one at home in KISS mode for a while, and I've been noticing
> what I think now is the T1 timer problem, and its been causing very
> frustrating and massive reduction in throughput on my local 9k6
> channel, even though my radio and the node are the only two on
> frequency! I often see my system try and send retransmits before the
> first packet ever even makes it out the radio (but on the other hand,
> I also think my TNC is sitting on packets way too long -- PacComm
> Spirit-2).
Tweak your KISS parameters. If there are only two on frequency then
you can increase your p-persistence quite a bit and perhaps decrease
your slottime.
--
Curt, WE7U. <http://www.eskimo.com/~archer>
APRS: Where it's at! <http://www.xastir.org>
Lotto: A tax on people who are bad at math. - unknown
Windows: Microsoft's tax on computer illiterates. - WE7U.
The world DOES revolve around me: I picked the coordinate system!"
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 16:16 ` Jim Kusznir
2010-06-16 16:46 ` Curt, WE7U
@ 2010-06-16 22:29 ` Matti Aarnio
2010-06-16 23:53 ` Dave Platt
1 sibling, 1 reply; 18+ messages in thread
From: Matti Aarnio @ 2010-06-16 22:29 UTC (permalink / raw)
To: Jim Kusznir; +Cc: linux-hams
On Wed, Jun 16, 2010 at 09:16:29AM -0700, Jim Kusznir wrote:
> Thanks everyone, lots of good info!
>
> A few questions:
>
> I've seen a few references to 6-pack, and know that its a "special
> firmware" that one would load on the TNCs...But I can't seem to find
> that firmware anywhere. Does anyone know where I can actually get it,
> and find info about what TNCs it supports?
http://www.baycom.org/bayweb/tech/tnc/firmware.htm
http://www.symek.com/g/tnc2firmware.html
http://www.flexnet.be/main/Firmware.htm
There are some advantages at 6PACK, but they relate to time of real
serial ports, not USB virtual devices that run at 500 or 20 000 times
the speed of 1200 bps packet...
But then we hams tend to prefer running with _old_ hardware instead of
doing something truly smart. A GMSK modulation and some sort of FEC
coding would be smart, but as it is incompatible with 1960es landline
audio modulation used for 1200 bps packet, such ideas will never gain
any use.
> It seems that for hardware available today, the recommendation for
> infrastructure use is to use a TNC in KISS or 6-pack mode. I've been
> using one at home in KISS mode for a while, and I've been noticing
> what I think now is the T1 timer problem, and its been causing very
> frustrating and massive reduction in throughput on my local 9k6
> channel, even though my radio and the node are the only two on
> frequency! I often see my system try and send retransmits before the
> first packet ever even makes it out the radio (but on the other hand,
> I also think my TNC is sitting on packets way too long -- PacComm
> Spirit-2). I am contemplating replacing the firmware chip with a
> KISS-only or 6-pack firmware chip and see what that does, if I can
> find one for this TNC.
Existing firmwares are available mainly for TAPR TNC2 clones.
I did recently search for source code of KISS firmware - and did find it
from my local archive. Trying to get it to compile with some modern
Z80 compiler existing on UNIX is entirely different scale of adventure,
and I haven't done that yet completely..
ftp://ftp.funet.fi/pub/ham/packet/tapr/kissv7.zip
I am trying to get that compiled with sdcc's z80 assembler, but...
there are a number of syntax differences, and available assembler syntax
documentation isn't clearest.. (neither original Z80, nor sdcc-as-z80)
I would like to improve that with two ways:
- Strict transmission queue timeout of N seconds (10-15 seconds)
- CRC on KISS frames (SMACK or FLEXNET way)
The first one is needed for avoiding packets to wait too long in Tx queue
waiting for silence on channel and thus tx permit. The second one is
always a good idea.
> As to new installations, does anyone recommend a 9k6 TNC for a good
> cost/performance metric that can be used with linux effectively? It
> should be external, as the embedded hardware I'm likely to run it on
> will not have PCI slots, and definitely will NOT have ISA slots.
>
> I like the ideas about a BPQether USB device; from the description,
> though I gather one has not been made to date? I'm curious, and I'll
> keep this in mind for a potential CE/EE project here (School of EECS,
> WSU and the W7YH Amateur Radio Club).
One related USB interface issue is that there is no specification for
serial port! All that exist are proprietary chip vendor specific things.
(Unless something has crept up during last month.)
However there are good abstractions for ethernet-like devices, and
for some reason I didn't like "modem" specifications when I looked
at them a while back -- I think because they don't seem to offer
"packet oriented" interface, whereas "ethernet" does have that.
But I could remember wrong...
> The information on sound modems is well taken; I think I'll limit that
> deployment to end-user stations in my planning.
>
> Thanks all for the ideas/input. I think the BPQether driver best fits
> what I was hoping to find, except for the fact that it doesn't exist
> off-the-shelf yet....
Not even off-the-lab...
To be seen if I have time for the project this summer - an NXP LPC2368
with USB device interface, and a couple CML MX164 modems..
I made the hardware last summer, but didn't have time for the software.
> --Jim
73 de Matti, OH2MQK
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 12:45 ` Curt, WE7U
2010-06-16 16:16 ` Jim Kusznir
@ 2010-06-16 22:29 ` Dave Platt
2010-06-16 22:49 ` Matti Aarnio
2010-06-16 23:33 ` Curt, WE7U
1 sibling, 2 replies; 18+ messages in thread
From: Dave Platt @ 2010-06-16 22:29 UTC (permalink / raw)
To: linux-hams
Curt, WE7U wrote:
>
> LOTS of good info Dave! A couple of minor comments:
> Another thing to watch is whether the PLL in the transmitter you're
> using tries to compensate for the low-frequency audio. Many
> PLL-based radios will try to do this, screwing up the transmission.
> I used to have a 9600 baud modem hooked to an ICOM IC-27A and it
> definitely had that problem. Even some "9600-baud ready" radios
> with the modem connector on the back might have this sort of
> problem.
Interesting! I hadn't encountered, or thought of that issue.
Yeah, a PLL-based frequency synthesizer which is designed for
rapid frequency changes and quick stabilization (e.g. during
scanning) could easily end up trying to "correct the errors"
caused by the low-frequency signal being fed directly to the
modulator.
I've read opinions by people who said that old-style crystal-
based radios are a better choice for running a 9600 bit/second
backbone than modern synthesized radios are. Maybe this is why?
I do know that our local guys have had difficulty getting good,
predictable performance out of the 9600 bit/second backbone they
have been trying to set up. Our first assumptions were that
the main problems have been noise, multipath, and intermod...
but maybe transmitter frequency stability is also complicating
matters. I'll mention this to Michael.
> Note that the 0 bits are a disadvantage for the reasons mentioned,
> but they're an advantage for the purpose of getting more clock
> transitions to sync up with at the receive side. If it weren't for
> the extra short packet in there that some devices create it would be
> much better to have a sequence of 0-bits than flags. This is
> especially important for the first part of a transmission when the
> receiver is attempting to sync up to the transmit clock: With
> 0-bits you can often use a shorter TXD at the transmit side yet
> still get the receiver to sync before the data starts across. It
> might also be important in lower S/N conditions.
Hmmm... that's an argument I haven't seen proposed in the X.25 or
AX.25 literature.
During the initial part of transmission (before the first frame)
I could well see it... send a continuous stream of 0-bits during
the TXDELAY period (to allow for the modem-level clock
synchronization), then send one or two FLAGs to sync up the
HDLC bitstream. Dunno about in between frames, though.
When I figured out that the soundmodem and my TNC-X weren't
playing well together, I looked into the soundmodem code and
figured out a couple of possible fixes. One is to modify
soundmodem's HDLC encoder and bit-stuffer so that it doesn't
generated invalid (runt) frames. The reason for the runts, is
that the encoder doesn't attempt to maintain bit synchronization
in its output buffer in between frames... at the end of a frame,
it appends the final FLAG to its output and then flushes the
output buffer, and starts packing the next frame at the beginning
of a new byte. I did develop a patch to maintain synchronization
between frames, but it has never been incorporated into the official
software (Thomas didn't care for it).
Another possible approach would be to give soundmodem the ability
to generate a somewhat more complex start-of-frame sequence...
perhaps a programmable number of zero-bytes followed by a programmable
number of FLAGs. This would allow TNCs with marginal firmware (or
operating under noisy conditions) a better chance to re-synchronize
at the beginning of the next frame.
> I've seen a few references to 6-pack, and know that its a "special
> firmware" that one would load on the TNCs...But I can't seem to find
> that firmware anywhere. Does anyone know where I can actually get it,
> and find info about what TNCs it supports?
As far as I can tell, it was only ever available as an EEPROM swap-out
for the classic TAPR TNC-2 design.
It was developed by the Flexnet people. The firmware is supposedly
available (as "6pack.bin") on any system running Flexnet 3.2. I
dug around on the Flexnet home page
http://www.afthd.tu-darmstadt.de/~flexnet/intro.html
and through their archives. The download directory contains
a "6pack.lzh" archive, which does (when unpacked with the
"lza" utility) contain a file called "6pack.bin", but it's only
4k bytes long... I have difficulty believing that this is
actually valid firmware for a TNC-2. You might want to write
to the Flexnet people and ask them for a clean copy of the
PROM image file.
Apparently, some older TNC-2 systems with slower clocks are
limited in their ability to support 6Pack, and need a bit of
hardware modification. 6Pack appears to want to run its serial
port at 2x the modem data speed, so supporting 9600 bit/second
operation on an older TNC-2 isn't possible without modifications
to increase its serial port speed.
> It seems that for hardware available today, the recommendation for
> infrastructure use is to use a TNC in KISS or 6-pack mode. I've been
> using one at home in KISS mode for a while, and I've been noticing
> what I think now is the T1 timer problem, and its been causing very
> frustrating and massive reduction in throughput on my local 9k6
> channel, even though my radio and the node are the only two on
> frequency! I often see my system try and send retransmits before the
> first packet ever even makes it out the radio (but on the other hand,
> I also think my TNC is sitting on packets way too long -- PacComm
> Spirit-2).
I agree with Curt - your TNC's delay and persistence values are
probably a bit out of whack with your upper-level protocol timeouts.
As I read things, the T1 timer in your AX.25 stack needs to be
set high enough to allow your packet to be transmitted, and the
response to come back. In the Linux kernel, T1 is normally set to
twice the average-measured round trip time, with the default
value for the AX.25 device being 10 seconds. The RTT calculations
operate on a basis of averaging, with a lower clamp limit of 1
second and an upper clamp limit of 30 seconds.
It's possible to adjust T1 on a per-connection basis, once
you've created the socket... but unfortunately I don't see any way
to adjust it semi-permanently for a device/port, or for the whole
AX.25 stack. The default and clamp values are compiled into the
kernel and don't seem to be configurable.
In a standard TNC-2 (with current firmware), the TNC will delay
before transmitting (once it hears clear air) by a multiple
of the slot delay time. The multiple will be between 1, and
the persistence limit, apparently chosen at random. If your limit
(or the slot time) is set too high, it'll be possible for the
Linux system's T1 timer to expire before the TNC transmits,
even if the air is completely clear. Lowering the persistence
limit and/or the slot-delay time could help throughput.
However, setting your parameters too aggressively would cause
your station to "hog the air", at which point other users
of the frequencies may show up on your doorstep to gently
reason with you (e.g. pitchforks and flaming torches being
optional :-).
You may need to specifically enable P-Persistence in your TNC
settings - it might default to an older mode of operation.
I'd suggest checking that SCC-ARES-RACES page I pointed to... our
guys have developed a set of recommendations for TNC settings, to
improve overall throughput and reduce unnecessary retransmissions
during busy-air conditions.
> Thanks all for the ideas/input. I think the BPQether driver best fits
> what I was hoping to find, except for the fact that it doesn't exist
> off-the-shelf yet....
I agree - an interesting idea.
As far as the actual USB protocol goes, you'd probably want to look
into the "usbnet.c" driver in the kernel. This implements a fairly
generic "USB driver for Ethernet-like thingies" framework, for a bunch
of devices which share a fairly common approach to the problem of
sending Ethernet frames over USB connections. It's used for some
PC-to-PC "USB null modem" cables, other sorts of network-like peripherals,
and for some actual USB network adapters. [Only a minority of USB
Ethernet devices use this framework - most are implemented with vendor-
or chipset-specific USB protocols and are extremely non-portable.]
You could probably implement this sort of USBNET protocol in a
high-end microcontroller, which is then wired up to one or more
modem chips or ADC/DAC chips which interface to the radio. Using
BPQether framing on Ethernet seems like a fine idea.
The Cypress microcontrollers with the EZ-USB stack could be
suitable targets. These have the ability to have their firmware
downloaded by the host over USB each time they plug in and
enumerate... easy updating, no need to burn EEPROMs or flash
firmware directly into the chips. High-end PIC micros could
be another workable choice.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 22:29 ` Dave Platt
@ 2010-06-16 22:49 ` Matti Aarnio
2010-06-16 23:33 ` Curt, WE7U
1 sibling, 0 replies; 18+ messages in thread
From: Matti Aarnio @ 2010-06-16 22:49 UTC (permalink / raw)
To: Dave Platt; +Cc: linux-hams
On Wed, Jun 16, 2010 at 03:29:54PM -0700, Dave Platt wrote:
...
> > Thanks all for the ideas/input. I think the BPQether driver best fits
> > what I was hoping to find, except for the fact that it doesn't exist
> > off-the-shelf yet....
>
> I agree - an interesting idea.
...
> The Cypress microcontrollers with the EZ-USB stack could be
> suitable targets. These have the ability to have their firmware
> downloaded by the host over USB each time they plug in and
> enumerate... easy updating, no need to burn EEPROMs or flash
> firmware directly into the chips. High-end PIC micros could
> be another workable choice.
While the idea of "load the firmware at boot" is great idea during
development, it becomes not-so-great in deployment.
I would prefer flashing in the production firmware, and possibly
supplying a way to re-flash it if necessary, but never playing
development mode games with users.
Even with windows we are seeing that 2-3 years down the road the
old drivers / firmware loads become non-functional when windows
versions change. It is always better to use abstractions that
do not need any sort of device driver disks on any platform, and
the way to achieve that is preferrably not subscribing on OS vendors
driver integration program.
What if your modem has ethernet? No way to upload firmware thru
USB then. (BPQether over ethernet...)
73 de Matti, OH2MQK
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 16:46 ` Curt, WE7U
@ 2010-06-16 23:25 ` Jim Kusznir
2010-06-17 12:49 ` Curt, WE7U
0 siblings, 1 reply; 18+ messages in thread
From: Jim Kusznir @ 2010-06-16 23:25 UTC (permalink / raw)
To: linux-hams
It appears that the PacComm firmware (both the very old version I got
it with and the new one I paid $30 for last year) seem to have a bug
such that:
1) its not possible to leave KISS mode without doing a RAM reset (pull
battery or use the jumper)
2) When switching to KISS mode, all the parameters specified in the
non-kiss mode are ignored. So I'm running with "default" tx delay,
etc.
This is partially why I thought I'd need to replace the ROM with a
KISS-specific ROM in order to configure some of these settings.
--Jim
On Wed, Jun 16, 2010 at 9:46 AM, Curt, WE7U <curt.we7u@gmail.com> wrote:
> On Wed, 16 Jun 2010, Jim Kusznir wrote:
>
>> I've been
>> using one at home in KISS mode for a while, and I've been noticing
>> what I think now is the T1 timer problem, and its been causing very
>> frustrating and massive reduction in throughput on my local 9k6
>> channel, even though my radio and the node are the only two on
>> frequency! I often see my system try and send retransmits before the
>> first packet ever even makes it out the radio (but on the other hand,
>> I also think my TNC is sitting on packets way too long -- PacComm
>> Spirit-2).
>
> Tweak your KISS parameters. If there are only two on frequency then
> you can increase your p-persistence quite a bit and perhaps decrease
> your slottime.
>
> --
> Curt, WE7U. <http://www.eskimo.com/~archer>
> APRS: Where it's at! <http://www.xastir.org>
> Lotto: A tax on people who are bad at math. - unknown
> Windows: Microsoft's tax on computer illiterates. - WE7U.
> The world DOES revolve around me: I picked the coordinate system!"
>
--
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 22:29 ` Dave Platt
2010-06-16 22:49 ` Matti Aarnio
@ 2010-06-16 23:33 ` Curt, WE7U
2010-06-17 0:02 ` Dave Platt
1 sibling, 1 reply; 18+ messages in thread
From: Curt, WE7U @ 2010-06-16 23:33 UTC (permalink / raw)
To: Dave Platt; +Cc: linux-hams
On Wed, 16 Jun 2010, Dave Platt wrote:
> I've read opinions by people who said that old-style crystal-
> based radios are a better choice for running a 9600 bit/second
> backbone than modern synthesized radios are. Maybe this is why?
Certainly can be a big factor.
> I do know that our local guys have had difficulty getting good,
> predictable performance out of the 9600 bit/second backbone they
> have been trying to set up. Our first assumptions were that
> the main problems have been noise, multipath, and intermod...
> but maybe transmitter frequency stability is also complicating
> matters. I'll mention this to Michael.
Should be easy to test by putting various audio frequencies in to
the modulator and verifying whether the PLL tracks with them or
allows the radio to shift frequency properly with the modulation.
Or phase, if you're phase modulating it. Starting to get way out of
my realm of expertise though!
>> Note that the 0 bits are a disadvantage for the reasons mentioned,
>> but they're an advantage for the purpose of getting more clock
>> transitions to sync up with at the receive side. If it weren't for
>> the extra short packet in there that some devices create it would be
>> much better to have a sequence of 0-bits than flags. This is
>> especially important for the first part of a transmission when the
>> receiver is attempting to sync up to the transmit clock: With
>> 0-bits you can often use a shorter TXD at the transmit side yet
>> still get the receiver to sync before the data starts across. It
>> might also be important in lower S/N conditions.
>
> Hmmm... that's an argument I haven't seen proposed in the X.25 or
> AX.25 literature.
The thoughts come from a project I did in 1985 with a RS Micro Color
Computer and an XR-2211 on an interrupt pin, decoding 300/600/1200
baud packet (w/o a TNC). Said computer had 6803 processor at
0.79MHz (TV colorburst Xtal / 4). Was fun, but figured out I locked
faster with 0 bits than with a flag and had to figure out why. Also
did full CRC-16 checking with above scheme. I saw at the time that
some TNC's were sending flags and some zero bytes during the TXD
period.
> During the initial part of transmission (before the first frame)
> I could well see it... send a continuous stream of 0-bits during
> the TXDELAY period (to allow for the modem-level clock
> synchronization), then send one or two FLAGs to sync up the
> HDLC bitstream. Dunno about in between frames, though.
If I remember the spec correctly (have the printed version at home)
0 bytes like that aren't allowed between frames, and a single flag
can delineate two data frames. Don't know whether most TNC's can
handle that last. Or soundmodem. Or AGWPE & friends.
> When I figured out that the soundmodem and my TNC-X weren't
> playing well together, I looked into the soundmodem code and
> figured out a couple of possible fixes. One is to modify
> soundmodem's HDLC encoder and bit-stuffer so that it doesn't
> generated invalid (runt) frames.
> Another possible approach would be to give soundmodem the ability
> to generate a somewhat more complex start-of-frame sequence...
> perhaps a programmable number of zero-bytes followed by a programmable
> number of FLAGs. This would allow TNCs with marginal firmware (or
> operating under noisy conditions) a better chance to re-synchronize
> at the beginning of the next frame.
Check the spec. I think it says flags only between frames, which
doesn't give you as good a chance to resync.
--
Curt, WE7U. <http://www.eskimo.com/~archer>
APRS: Where it's at! <http://www.xastir.org>
Lotto: A tax on people who are bad at math. - unknown
Windows: Microsoft's tax on computer illiterates. - WE7U.
The world DOES revolve around me: I picked the coordinate system!"
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 22:29 ` Matti Aarnio
@ 2010-06-16 23:53 ` Dave Platt
0 siblings, 0 replies; 18+ messages in thread
From: Dave Platt @ 2010-06-16 23:53 UTC (permalink / raw)
To: linux-hams
> There are some advantages at 6PACK, but they relate to time of real
> serial ports, not USB virtual devices that run at 500 or 20 000 times
> the speed of 1200 bps packet...
>
> But then we hams tend to prefer running with _old_ hardware instead of
> doing something truly smart. A GMSK modulation and some sort of FEC
> coding would be smart, but as it is incompatible with 1960es landline
> audio modulation used for 1200 bps packet, such ideas will never gain
> any use.
Several ideas intermixed here, so I have several comments.
I think that there are probably two different "markets" which could be
addressed by improvements to ham packet technology... but which may
need technology which is significantly different in detail.
(1) End-users - individual hams, who want to add some amount of
packet connectivity to an otherwise-already-functioning station.
Having to buy expensive TNCs, and (especially) expensive new data
radios, is a non-starter for most of these people. Solutions
which can use their existing radio hardware are preferred. This
often means "mic/speaker interface to an FM radio".
May operate mobile or portable (or, at least, with mobile or portable
radios and TNC setups - not necessarily moving around), with simple
or impromptu antennas.
(2) Base stations, backbones, infrastructure - stations which are generally
fixed in location, operating over a longer period of time, with
significant investment in the equipment, antennas, computers, and
the setup and optimization of all these things.
Now... with regard to your specific suggestions...
Forward error correction seems like an excellent idea, no matter what
the lower-level modulation is - it could cut packet retransmissions down
by quite a lot. It would be beneficial if the specific parameters for
the FEC were somewhat adjustable, and were explicitly identified in the
packet headers - this would allow operation under a range of different
error rates and correction levels. Given the interference and dropout
behaviors seen on VHF and UHF, you'd want to use a significant amount
of data interleaving, with a correction-block size large enough that
a single noise burst or multipath-flutter wouldn't knock out too many
bits to allow error correction to occur.
Reed-Solomon EC is well understood and free code seems to be available.
More effective correction could probably be achieved via a turbo-code
system (perhaps with a flexible puncturing algorithm) but I'm not sure
about the patent status of turbo codes... we wouldn't want to create
another AMBE-like licensing debacle!
Systems using sophisticated error-correction coding might best be
implemented in the PC itself, with the the "TNC" mostly driving the
radio itself. The interface between the PC and the "TNC" might just
be frames or packets filled with bits, with the PC doing all of the
actual frame-detection and error correction.
My understanding is that current 9600 bit/second ham packet isn't
too far from being GMSK in its design?
I've read a lot which believes me to believe that GMSK, and similar
single-carrier modulations have a significant vulnerability to
multipath interference. Ham 9600 packet has been notorious for
this... works rather better with highly-directional antennas than
with spray-and-bounce omnis. Some digital land-mobile deployments
I've heard about, have had serious problems with picket-fencing
when the mobile station is... well, mobile... and have had to deploy
additional base stations to improve signal coverage.
So, I think there might be merit in pursuing two different
approaches to improving performance: one for casual hams and
mobile operation (standard-FM-radio-compatible) and one for
infrastructure/backbone use.
For base/backbone use, adding FEC to the current 9600-bit
protocol could help. I think there's already some sort of data
scrambler in use, to try to help with the low-frequency-content
issue, but perhaps it could be improved... or maybe a trellis-
coded QAM16 or some such modulation could be used to enforce
a low average DC offset.
For improved audio-radio-compatible performance... I've long been
a fan of DMT (discrete multi-tone), OFDM, and other modulations in
this family. Back in the late 1980s, the Telebit Trailblazer modems
were a very successful niche product - probably the most popular
way of tying together Unix/Linux systems over phone lines. They
could manage to maintain a 9600-bit/second connection (half duplex)
over lousy, scratchy overseas land lines and satellite links, when
industry-standard V.32 models would just gasp and choke and disconnect.
I swear, the Telebits would work over two tin cans and a length of
damp string.
I don't know the the fine details of their protocols, but do recall
that they were a DMT system, with several hundred individual carriers
spaced evenly across the voice-band spectrum. Each carrier was
modulated (QPSK or QAM?) at a relatively low rate - around 7 baud
I think. The protocol was point-to-point, and adaptive - each modem
could tell its peer which carrier frequencies were working well,
and which were noisy or attenuated. I believe they applied FEC to
the data prior to modulation.
I'd love to see a ham-packet modulation based on this sort of
technology. It's probably something which could be made compatible
with the soundmodem framework.
I recall reading that somebody was working on a system somewhat
like this for HF packet use - a protocol called SCAMP. I think it
died on the vine, although it's possible that some of its ideas were
picked up by newer versions of WinLink.
As to compatibility with current ham TNCs and nodes... well, clearly,
it's tricky. I think it'd probably be desirable to treat the new
modulations a bit like Ethernet, in that they could carry multiple
higher-level protocols within appropriate framing structures. We
could carry AX.25 (e.g. as BPQEther), or TCP/IP, or jump right to
IPv6. If I recall correctly, this is the approach D*Star has
taken... it uses Ethernet framing.
This could allow backwards compatibility with existing ham
infrastructures, while still allowing advances and the use of
better high-level protocols on the same frequencies (and on the
same systems!).
As I understand it, essentially all of the ham packet systems
in use today still implement AX.25 2.0 (which dates back to the
mid-1980s). The effort in the late 1990s to create a newer
revision (AX.25 2.2) doesn't seem to have come to much.
1200-baud packet and the TNC-2 infrastructure is probably
like crabgrass and FORTRAN - we'll never be free of them, and will
always have to deal with them in one way or another.
> One related USB interface issue is that there is no specification for
> serial port! All that exist are proprietary chip vendor specific things.
> (Unless something has crept up during last month.)
Yup. It really annoys me that the USB consortium didn't specify standard
device-class interfaces for serial ports, parallel ports, and
network adapters *years* ago!
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 23:33 ` Curt, WE7U
@ 2010-06-17 0:02 ` Dave Platt
0 siblings, 0 replies; 18+ messages in thread
From: Dave Platt @ 2010-06-17 0:02 UTC (permalink / raw)
To: linux-hams
> If I remember the spec correctly (have the printed version at home)
> 0 bytes like that aren't allowed between frames, and a single flag
> can delineate two data frames.
You're correct, and in fact that (one inter-frame FLAG) does seem to
be the transmit-behavior of the TNCs I've looked at.
> Don't know whether most TNC's can
> handle that last. Or soundmodem. Or AGWPE & friends.
Yes, as far as I can tell, they all do handle this properly...
the arrival of the FLAG at the end of the first frame triggers
the delivery of that frame (assume that the FCS is valid) and
sets the state machine back to the "FLAG has been received, looking
for first byte of the frame" state.
> Check the spec. I think it says flags only between frames, which
> doesn't give you as good a chance to resync.
Yup (in fact I quoted the spec in my earlier message). However,
the stated spec is written as a "should", rather than a "shall"...
which means that this behavior is a recommended best practice,
but not obligatory. As a result, the current soundmodem
implementation isn't an actual violation of the AX.25 spec;
it is just (in my opinion) less compliant than it could be.
The second "fix" I proposed (allowing more zero-bits, and
more than one FLAG between frames) would be equally not-so-good.
The only really compliant fix is to do as my patch did, and
eliminate the extra zeros entirely. At that point, adding more
FLAGs between frames might or might not help matters under
conditions of channel noise... one would have to do a bunch of
testing to see whether it's a win or a loss.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
@ 2010-06-17 2:24 Andrew Errington
0 siblings, 0 replies; 18+ messages in thread
From: Andrew Errington @ 2010-06-17 2:24 UTC (permalink / raw)
To: linux-hams
On Thu, June 17, 2010 08:53, Dave Platt wrote:
<snip>
> Several ideas intermixed here, so I have several comments.
Me too
> (1) End-users - individual hams, who want to add some amount of
> packet connectivity to an otherwise-already-functioning station.
>
> Having to buy expensive TNCs, and (especially) expensive new data
> radios, is a non-starter for most of these people. Solutions which can use
You can build a really cheap TNC for about $30:
http://www.n9cx.net/BobBall.htm
I have made three of them. They work!
73,
Andrew
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 23:25 ` Jim Kusznir
@ 2010-06-17 12:49 ` Curt, WE7U
2010-06-21 6:17 ` walter harms
0 siblings, 1 reply; 18+ messages in thread
From: Curt, WE7U @ 2010-06-17 12:49 UTC (permalink / raw)
To: Jim Kusznir; +Cc: linux-hams
On Wed, 16 Jun 2010, Jim Kusznir wrote:
> 2) When switching to KISS mode, all the parameters specified in the
> non-kiss mode are ignored. So I'm running with "default" tx delay,
> etc.
You can send custom-crafted KISS packets to the TNC which set
various KISS parameters. Assuming you have set your serial port
parameters you can do things like this:
#!/usr/bin/perl
sleep 1;
printf("%c%c%c", 192, 255, 192);
sleep 1;
Which is the "kiss-off.pl" script from the Xastir project. Run it
against a serial port like this:
./kiss-off.pl >/dev/ttyS1
See the KISS spec (online) for the parameters you can set. The
above script takes a TNC out of KISS mode. Again I'd mess with the
p-persistence and slottime parameters. Looks like default TXD is
1/2 second though which is a bit long so mess with that too.
The above 192, 255, 192 sequence is FEND RETURN FEND. Assuming
you're not messing with a multi-port TNC so that we can assume the
upper four bits to be 0, you'd set parameters like so:
FEND 0x01 0x20 FEND # TXD in 10ms units
FEND 0x02 0x40 FEND # P-Persistence
FEND 0x03 0x0a FEND # SlotTime in 10ms units
or:
192 1 32 192
192 2 64 192
192 3 10 192
Make sure that if 0xc0 or 0xdb appear in your data that you use the
escape characters as mentioned in the spec.
--
Curt, WE7U. <http://www.eskimo.com/~archer>
APRS: Where it's at! <http://www.xastir.org>
Lotto: A tax on people who are bad at math. - unknown
Windows: Microsoft's tax on computer illiterates. - WE7U.
The world DOES revolve around me: I picked the coordinate system!"
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-17 12:49 ` Curt, WE7U
@ 2010-06-21 6:17 ` walter harms
0 siblings, 0 replies; 18+ messages in thread
From: walter harms @ 2010-06-21 6:17 UTC (permalink / raw)
To: linux-hams
It seems there is a serious lack for information.
Is someone willing to create a Howto from the discussion ?
re,
wh
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Linux Packet Interface Hardware
2010-06-16 1:24 ` Matti Aarnio
@ 2011-02-15 18:36 ` Jim Kusznir
0 siblings, 0 replies; 18+ messages in thread
From: Jim Kusznir @ 2011-02-15 18:36 UTC (permalink / raw)
To: Matti Aarnio, linux-hams
Hi all:
A while has passed since this message went out originally, but I now
have a student interested in perusing this as an embedded systems
class project. As we looked more into this, we found a deficit of
information in some important areas, namely the actual modulation
technique. Before actually proposing this project, the student wants
to make sure its actually something within his relm of doing, and the
biggest questions at the moment are the requirements for actually
encoding the data into AFSK/FSK signals. Are there any good
references on that? Does someone also have handy the specification of
the BPQether spec?
He's looking at using a PIC product for the implementation that
actually has an ethernet port on it rather than the USB ether device,
but there is still flexibility in that. Any other input on this would
be appreciated.
--Jim, K7LL
On Tue, Jun 15, 2010 at 6:24 PM, Matti Aarnio <matti.aarnio@zmailer.org> wrote:
> On Tue, Jun 15, 2010 at 04:43:45PM -0700, Jim Kusznir wrote:
>>
>> Hi all:
>>
>> I'm in the process of designing some kinda-embedded applications that
>> will need to employ packet "compatibility layers" to allow access of
>> packet radios.
>>
>> In one application, I'm proposing relacing a node stack with a linux
>> box, some interface (subject of this e-mail), and the existing radios
>> with their audio (discriminator if appropriate), tx line, squelch
>> line, etc. Other applications may not be as demanding as the nodes,
>> but similar. In essence, I'm looking for a device to connect to the
>> equivalent of the 6-pin mini-din connector used for "data" on most
>> modern radios and linux.
>>
>> I'm familiar with the state of the art back in the late '90's. I also
>> realize that not a lot has necessarily changed since then....
>> However, I suspect something may have.
>>
>> the solution should be capable of running several different packet
>> interfaces, and at 9600 or 1200 baud. These interfaces should turn
>> into linux axX interfaces.
>
> I would suggest making it an USB device with "BPQether" type of interface.
> At USB level it would look like a _generic_ ( = no extra drivers )
> ethernet, but it would understand only BPQether type of packets, and
> therefore would not get to transmit just anything that system happens
> to send on its way.
>
> There would be need for unique serial numbers ( = "mac address" ) for
> the devices. Anything would be good as long as first byte of MAC
> address has its lowest bit clear (the multicast indicator)
> (Even prefix "BPQ" = 0x42, 0x50, 0x51 )
>
> See "man bpqparams" for the control interface.
>
> To implement a control command channel, like to set ptt delays, etc.
> that could be an AX.25 frame with destination call of 'NOCALL' (the
> classical misconfiguration token) and an UI frame with control data.
> Speed would be fixed, but nothing prevents having multiple virtual
> ethernet interfaces in same USB device, each with their own speeds.
>
> As a bonus, this same hardware could be plugged on Windows as well
> without any special drivers. If the settings are correct, then on
> windows a BPQ32 suite will be able to drive it too - and you get
> even more people interested in that device.
>
>> Thanks!
>> --Jim, K7LL
>
> 73 de Matti, OH2MQK
>
--
To unsubscribe from this list: send the line "unsubscribe linux-hams" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2011-02-15 18:36 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-15 23:43 Linux Packet Interface Hardware Jim Kusznir
2010-06-16 1:19 ` Ray Wells
2010-06-16 1:24 ` Matti Aarnio
2011-02-15 18:36 ` Jim Kusznir
2010-06-16 2:05 ` Dave Platt
2010-06-16 12:45 ` Curt, WE7U
2010-06-16 16:16 ` Jim Kusznir
2010-06-16 16:46 ` Curt, WE7U
2010-06-16 23:25 ` Jim Kusznir
2010-06-17 12:49 ` Curt, WE7U
2010-06-21 6:17 ` walter harms
2010-06-16 22:29 ` Matti Aarnio
2010-06-16 23:53 ` Dave Platt
2010-06-16 22:29 ` Dave Platt
2010-06-16 22:49 ` Matti Aarnio
2010-06-16 23:33 ` Curt, WE7U
2010-06-17 0:02 ` Dave Platt
-- strict thread matches above, loose matches on Subject: below --
2010-06-17 2:24 Andrew Errington
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.