Monday, 11 March 2013

PSK31 on the Raspberry Pi - Part 4

With everything set up as described in Part 1Part 2 and Part 3 open a LXTerminal window and type "alsamixer" at the command prompt. Press "F5" so that you can see the controls for the input to and the output from the USB audio device. Make sure the "Auto Gain Control" and the other "Mic" are muted, and that the "Speaker" and the "L R Capture Mic" controls are set to a low level. The AlsaMixer LXTerminal window should look like this:

Now you can minimize this window and launch LinPsk. Click on the "RX" button and tune your transceiver to one of the commonly used PSK31 frequencies. Use "AlsaMixer" if necessary to adjust the "L R Capture Mic" level so that you get a good signal to noise ratio as shown in the following screen shot:

Choose a nice clean signal and click on it. By default the "RX Freq/AFC" control will be set to "Wide" and this allows LinPSK will automatically lock on to the signal.

Once locked on you should see the decoded text appearing on the screen. It is really important now that you click on the "Wide" radio button to turn the AFC off - if you don't do this, the receive frequency will drift once the transmission ends.

Keep watching the waterfall for a few minutes and choose a clear frequency to call "CQ" on. While transmitting check the "ALC" meter on your Transceiver and adjust the "Speaker" level control on "AlsaMixer" so that the "ALC" meter just reads zero. This will ensure that your transmitted signal is "clean" and does not spatter all over the band.

You can continue to call "CQ" and wait for a reply, or you can click on a nice clean transmission and wait for them to call "CQ". You may wish to turn the AFC function back on temporarily by clicking on the "Wide" radio button so that LinPSK can lock on to the received signal, but remember to turn the AFC off again before the transmission ends. When the transmitting station calls"CQ" you can answer them by choosing the appropriate macro and have a QSO with them, but always keep an eye on your transceiver's "ALC" meter and if the reading starts to increase reduce the "Speaker" level control on "AlsaMixer" accordingly.

I've had a few successful QSO's using LinPSK on the Raspberry Pi, but the software does seem to require a good clean signal to decode reliably and seems to work best at fairly low audio input levels. I would be very interested in hearing from anyone else with a similar setup running LinPSK on the Raspberry Pi.


  1. Your posts are very informative and I'm looking at trying the same set up. I was wondering if you have tried SSTV with the Pi yet?

  2. Hi,
    No I've not tried SSTV on the Pi. In fact I've never used SSTV at all, but it is certainly something to consider in the future.

  3. HI I bought your usb sound card, on Ebay (tourchwood) and I have followed your blog and hopefully all is installed, I have just got to test my USB to serial lead for TX, however, before all that I will let you know how it receives from my Hunter SDR front end.

    BR Andrew G8UUG

  4. Hi Andrew, I'm hoping to do a blog post on using the Raspberry Pi as an SDR in the not too distant future. I'll be using one of the RTL2832 dongles, but I'd be interested to hear how you get on with your setup.