# Any tips on getting started with packet radio?

## szatox

The title pretty much says it all.

Let's say I want to send a picture over a network made of 2 audio devices, directly connected with a cable so there is no need to control an actual radio. Or maybe even speaker and mike, to get the "broadcast" part too  :Laughing: 

Should be possible with a software modem. Anyone tried it and could point me in the right direction? I know little more than "this technology exists", so nothing is too basic.

----------

## Zucca

Not giving you an answer straight, sorry, but immediately after I read the title I remembered this video. Maybe it contains the information you are looking for? IIRC there was some Linux programs on the screen... I might be wrong. I need to watch it again. :P

I have two "walkie talkies" which can take serial input (don't know if it's for controlling or sending actual data) which I could put in use too.

I like this idea of "long range wifi". I could use it to retrieve data from (for example) DIY weather station. I need to dig those walkie talkies up from somewhere...

What's your use case for packet radio? Just for tinkering?

----------

## spica

 *szatox wrote:*   

> The title pretty much says it all.
> 
> Let's say I want to send a picture over a network made of 2 audio devices, directly connected with a cable so there is no need to control an actual radio. Or maybe even speaker and mike, to get the "broadcast" part too 
> 
> Should be possible with a software modem. Anyone tried it and could point me in the right direction? I know little more than "this technology exists", so nothing is too basic.

 

SSTV - this is a technology of sending images through low bandwidth channel, it is widely used in ham radio due to simpicity. I'm not sure if this is a packet radio, it can be a starting point.

We have media-radio/qsstv in portage but I didn't use it. Also you can google a bit using keywords "SSTV linux" or "PSK31 linux"

----------

## szatox

 *Quote:*   

>  What's your use case for packet radio? Just for tinkering?

 It will be a nice gadget to have in my zombie apocalypse survival kit  :Laughing: 

So... Yes, I don't expect to have any practical application for this thing, it's just a low-prio idea I though would be fun to do.

I saw direwolf in portage, but it crashed and burned when I launched it, and since it's a low-prio toy thing, I just came here looking for tips instead of putting energy into solving it.

Anything goes for now (except for inventing my own protocol, which being relatively unknown wouldn't be very useful for chatting with zombies)

----------

## szatox

Turns out direwolf is actually doing _something_, though not in a very intuitive way.

I can make it send some ARP requests to my speakers by routing a subnet via a newly created ax0 interface (with an IP address assigned too!), but nothing is ever received by the other machine. Even though I can record it with my mike. And both machines are comfortably sitting next to each other in a relatively quiet room, without any distortions an actual radio would surely introduce.

Direwolf also prints sent packets to it's console, and it seems it should also print incoming packets, which is not the case for me.

Hopefully I'll sort it out  :Smile: 

----------

## pa4wdh

The kernel has pretty good AX.25 support, and for example allows you to establish a normal connection (comparable to TCP: reliable transmission) or use IP over AX.25. You need media-radio/ax25-apps and media-radio/ax25-tools to use them.

If you use the KISS protocol you can actually use a serial null-modem cable to connect two computers that way without the need of actual modems or radio's.

There is also tfkiss (not in portage, https://www.ping.net.au/index.php?mode=tfkiss) which operates in userspace and emulates a WA8DED compatible modem. You can use socat to connect to it's socket and use the modem as you would normally do in a terminal emulator. You can also get two tfkiss programs talking to each other, completely emulating a sender and receiver without any hardware.

----------

## tholin

I've used net-wireless/gnuradio to transmit files using my laptop speakers to a microphone connected to my desktop. It was mostly a proof of concept. Gnuradio is a toolkit for building your own signal processing workflow. You still need knowledge of modulations and such.

I believe my simple setup used BFSK (binary frequency-shift keying) with a baud rate of 2400bps. That's very slow but also reliable so I didn't need to use error correcting codes.

https://www.youtube.com/watch?v=H0DKRl8XIcU you can probably find gnuradio project files like this if you search. Tunneling the data over TCP/IP has the added benefit that the network layer will handle error detection and retransmissions. Then you can send data with any software you'd like.

----------

## szatox

 *Quote:*   

> You need media-radio/ax25-apps and media-radio/ax25-tools to use them. 

 Those 2 packages provide quite a few utilities, and rather scarce man pages.

Which of those should I focus to send a text message and a file?

 *Quote:*   

> If you use the KISS protocol you can actually use a serial null-modem cable to connect two computers that way without the need of actual modems or radio's. 

 Yes, I could also use a pendrive or ad-hock wifi. The thing is I want to get reasonably close to the real life scenario, so I do want this data to go through some less-than-perfect medium. If I can "air" it with a speaker instead of an actual radio and get a message across in a noisy environment, it would probably be good enough to go through and actual radio, (assuming I'll ever get one - sending it raw over audio may be more funny for nerdy friends anyway)

 *Quote:*   

>  Tunneling the data over TCP/IP has the added benefit that the network layer will handle error detection and retransmissions.

 Yeah, it surely adds quite a bit of overhead on top of already slow link.

I don't discard this path - in fact it might  be the first thing I'll get to work, since I'm already like half-way there - but i'll be happy to give something less chatty a shot (too).

So... I'm experimenting with what I already have, and at the same time taking notes from this threat  :Very Happy: 

Now, it seems that receiving didn't work, because I screwed up setting up baud rates. Or something similar. Machines started talking at each other, so that's some progress.

It seems I'll have to emulate push-to-talk though. Like in: mute the sender's microphone for the duration. Even if I put 2 laptops right in fron of each other, their own speakers are much louder than their peer's.  Timing of the responses is pretty weird too, dunno why. Almost as if they were expecting full-duplex to be supported on this channel. I only have 2 machines right now, and the task of one of them is to simply respond to received messages. No beacons, no random traffic, no initiative.

Why do they try to talk over each other? O_o (Maybe it's that echo thing...)

----------

## pa4wdh

 *szatox wrote:*   

> Those 2 packages provide quite a few utilities, and rather scarce man pages.
> 
> Which of those should I focus to send a text message and a file?

 

The "call" program creates a tcp-like connection with reliable transmission, that connection can be used to have a basic "chat" function or to send a file. Note that sending a file is not done by just sending the data over the connection, there is a protocol called YAPP for that.

 *Quote:*   

> Yes, I could also use a pendrive or ad-hock wifi. The thing is I want to get reasonably close to the real life scenario, so I do want this data to go through some less-than-perfect medium. If I can "air" it with a speaker instead of an actual radio and get a message across in a noisy environment, it would probably be good enough to go through and actual radio, (assuming I'll ever get one - sending it raw over audio may be more funny for nerdy friends anyway)

 

I remember from the old days when modems were expensive and soundcards were getting common (i'm feeling old now ...) you could use your soundcard as a modem (1k2 and 2k4 are AFSK anyway) and use some control line of a serial/parallel port to control the TX of the transceiver. I couldn't find anything like that in the kernel options, maybe a userspace program was used for that. I never used such a setup myself, I had (and still have) a Baycom 1k2 modem and a TNC21s  :Smile: 

 *Quote:*   

>  *Quote:*    Tunneling the data over TCP/IP has the added benefit that the network layer will handle error detection and retransmissions. Yeah, it surely adds quite a bit of overhead on top of already slow link.
> 
> I don't discard this path - in fact it might  be the first thing I'll get to work, since I'm already like half-way there - but i'll be happy to give something less chatty a shot (too).
> 
> So... I'm experimenting with what I already have, and at the same time taking notes from this threat 

 

Especially the MTU on AX.25 is quite limited (255 bytes, compared to 1500 of regular ethernet), despite that running IP over AX.25 was quite popular since IP was the new kid on the block those days and everybody wanted to play with it.

 *Quote:*   

> Now, it seems that receiving didn't work, because I screwed up setting up baud rates. Or something similar. Machines started talking at each other, so that's some progress.
> 
> It seems I'll have to emulate push-to-talk though. Like in: mute the sender's microphone for the duration. Even if I put 2 laptops right in fron of each other, their own speakers are much louder than their peer's.  Timing of the responses is pretty weird too, dunno why. Almost as if they were expecting full-duplex to be supported on this channel. I only have 2 machines right now, and the task of one of them is to simply respond to received messages. No beacons, no random traffic, no initiative.
> 
> Why do they try to talk over each other? O_o (Maybe it's that echo thing...)

 

Most packet radio links are half duplex. If a station receives itself it might think there's a duplicate address within range and respond accordingly ... or simply get confused  :Cool: 

----------

## szatox

I downloaded TNC Test CD, which contains some captured traffic. I'm playing it to direwolf right now and it seems to be working.

The vast majority seems to be AX.25 without 3rd layer, though I heard some Morse code too (unfortuntely, wireshard did not pick up on that). Still, that's something.

Anyway, yes, soundcard modems can control the radio via GPIO or RS232. I don't know how to use it in software though (yet),

I noticed there is a code for soundcard modem in kernel, but - if I get it right - it only works with SoundBlaster devices, so I'll stick with userland stuff for now.

----------

