In "PSK31 on the Raspberry Pi - Part 1" I looked at how to configure the Raspberry Pi to receive and decode PSK31 using the "LinPSK" application. Now I'll consider how to encode and transmit a PSK31 signal. To do this we need some way of "keying" the transceiver and setting it to transmit before sending the PSK31 signal. I suppose you could do this manually, but it would very quickly become cumbersome to operate this way. Another alternative would be to use the transceiver's "Vox" function (where by the transceiver automatically switches to transmit when an audio input is present), but this carries with it the risk of making spurious transmissions (for example when system sounds are generated).
The best way to key the transceiver is to directly control the PTT input using a serial (com) port. The Raspberry Pi does have a serial port of sorts as part of the GPIO interface, but this port uses 3.3V TTL logic and as such it can not be connected directly to other RS232 devices. This problem can be solved by using a "level shifter" device (like the MAX3232 chip) and this will be the subject of a future post.
The alternative is to use a USB to Serial converter like the one shown below which is available from Cut Price Cables.
However using a USB to Serial converter with the Raspberry Pi can be problematic depending on which chipset the converter uses, but most of the incompatability issues have been resolved with the latest release of the operating system kernel and firmware. If you do run into incompatability problems you can download and install the latest available kernel and firmware by following the instructions given in this blog post.
Another problem I encountered was that when the USB to Serial converter was connected to the Raspberry Pi via my unpowered USB hub, the behaviour of the USB keyboard and mouse became unreliable. The USB to Serial converter proved to be one device too many and overloaded the Raspberry Pi's USB port. The solution to this problem is to use a powered USB hub. As it's name suggests, the powered hub has its own power supply and therefore does not overload the Raspberry Pi's USB port. A typical powered USB hub (which is available from Cut Price Cables) is shown below:
Now it is just a case of connecting the "serial" end of the USB to Serial converter to your transceiver (preferably via an isolating interface) using a suitable cable. You will also need to connect the audio output from your transceiver (via an isolating interface) to the input on the the USB audio device and connect the output from the USB audio device to the auxiliary audio input on your transceiver (again via an isolating interface).
You should now have all the hardware and software you need to operate PSK31 on the Raspberry Pi. All that remains is to set up the "LinPSK" application to key your transceiver using the USB to Serial converter, write a few macros, and set up logging of contacts. I'll look at how to do this in my next post.