HAM Radio

Transmitting FM, AM, SSB, SSTV AND FSQ With Raspberry Pi, spectrum analysis

#rpitx #transmisson #hack

After the famous hacking with GPIO 4 pin of the RPi (PiFM, PiFmRds, WsperryPi, … ) for generating CW, OOK, FM and FSK signals (so basically frequency modulation and CW on/off switching) there is a new miracle under the sun, as recently found on rtl-sdr.com . Using the GPIO 18 pin of RaspberryPi (B,B+ and PI2) you can even make amplitude modulation as well! This excellent new discovery and the Github code was released by Evariste Courjaud F5OEO, both thumbs up for him! 🙂  You can get the code at his Github site here: https://github.com/F5OEO/rpitx

For installing do the following:

  1. git clone https://github.com/F5OEO/rpitx
  2. cd ./rpitx
  3. sudo ./install.sh

The install script will download and install all the needed dependencies for the operation of the rpitx. This takes a while, but worth the time 🙂

Right after installation I’v started the “sudo ./rpitx -m VFO -f 100000” command and examined the output spectrum through a 30dB attenuation. First when reading the 750MHz operation frequency at Evariste’s site I was impressed, as the first RPi transmitter hacking on GPIO4 was only good up to 250MHz. However after executing a 300MHz VFO command I realized that this as the very same 250MHz limitation, however Evariste mannaged to use the harmonics for higher frequencies! What a tricky way 🙂 I’ve seen similar solutions on xtal oscillators before. However if you use your rpitx with an antenna you must use filtering for such experiments not to avoid your countries regulatory standards (ETSI, FCC, ARIB,etc)

Here are the output spectrum plots of a few VFO experiment from my RPi 2:

750MHz_using_3rd_harmonic_VNC_screenshot IMG_20151030_170446993
















100 MHz signal generated with rpitx, output spectrum














































And finally here is a 750 MHz signal generated with VFO command. As you can see the fundamental is 250 MHz and you can use the third harmonic on your desired frequency band.













Update with new spectrum analyzer plots, using my QRPi 20m shield as well for filtering:



RPITX in NFM modulation


rpitx no filtering @14M NFM 300MHz SPAN












rpitx QRPi20m 14M NFM 300MHz SPAN












rpitx QRPi 20m @14M NFM 30MHz SPAN












RPITX in SSB modulation

One can spot the rich spurious content even with filtering it’s all over the pass band. This possibly due to the actual PWM modulation technique. A new approach and modulation mode is under development, keep checking Evriste’s repository for updates: https://github.com/F5OEO/rpitx


rpitx no filtering @28M USB 300MHz SPAN












rpitx with QRPi 20m shield @14M USB 300MHz SPAN











rpitx QRPi 20m @14M USB 30MHz SPAN

rpitx QRPi 20m @14M USB 30MHz SPAN












Update – RPITX development mode, cleaner SSB:


F5OEO Evariste is working hard to solve the spurious issues, we have seen promising decrease of the spurious content in SSB with an experimental mode of rpitx:


rpitx no filtering @14M USB xMHz SPAN

rpitx no filtering @14M USB 5MHz SPAN












rpitx without filtering 20m @14M USB 120MHz SPAN











rpitx with QRPi 20m shield @14M USB 120MHz SPAN

rpitx with QRPi 20m shield @14M USB 120MHz SPAN