Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RaspberryPi V1 B+
1
Installation of different HAM radio transmitter
programs
Modulation Program Jumper: GPIO4, Jumper: GPIO18
default setting
FSQ rpitx X
AM rpitx / qtcsdr X
WSPR WsprryPi X
CW PiCW X
SSTV PySSTV X
rpitx uses GPIO18 this means JP1 jumper has to be cut and
opposite pad (GPIO18) + middle pad has to be soldered for that
program. All the other programs listed below using the default
GPIO4 pin! For modification please see page 6.
2
Just open a terminal on the Raspberry Pi and use the following
commands:
WSPR - GPIO4
Source: https://github.com/JamesP6000/WsprryPi
3
PiCW - GPIO4
Source: https://github.com/JamesP6000/PiCW
SSTV - GPIO4
You will first need to install PySSTV, if you do not already have it. The following commands
worked for me on a stock Raspbian install.
The version of tones-to-rf.c distributed is pre-configured for the Raspberry Pi 2. If you have a
Raspberry Pi 1, find the lines that define BCM2708_PERI_BASE, and uncomment the line
relevant to your platform.
Source: https://github.com/JennyList/LanguageSpy/tree/master/RaspberryPi/rf/sstv
FREQ_PI - GPIO4
!!!!
4
//Uncomment the relevant base address definition for your platform
//Base address definition for Pi 1
//#define BCM2708_PERI_BASE 0x20000000
//Base address definition for Pi 2
#define BCM2708_PERI_BASE 0x3F000000
!!!!
Source: https://github.com/JennyList/LanguageSpy/tree/master/RaspberryPi/rf/freq_pi
5
rpitx - GPIO18
1. You have to modify JP1 jumper on QRPi to switch to the GPIO18 RF source instead
of the GPIO4, routed from the Raspberry Pi. Cut the shortcut between the too
terminals of JP1:
2. Solder a solder joint between the middle point and the GPIO18 terminal of JP1:
6
sudo git clone https://github.com/F5OEO/rpitx
cd ./rpitx
./install.sh
For more detailed help regarding SSB generation please check the github site at:
https://github.com/F5OEO/rpitx
7
qtcsdr - GPIO18
I didn't test it on Raspberry Pi version 1, but I'm quite sure that it won't work, as the
CPU is not capable of doing this (it has a single-core CPU compared to the
quad-core one in the RPi 2).
You will need at least Raspbian Jessie (09/2015) if you want to install qtcsdr with
rpi-install.sh.
https://github.com/ha7ilm/qtcsdr
8
Interview with James Peroulas about
WsperryPi.
He is the one out of the seven developer who created WsperryPi
10/2015
ZD - Why and when did you started to you use WSPR mode?
JP
I'd been working on radio for 15 years professionally (3G/ 4G receiver/ transmitter
algorithms) but never really built my own communications system. I had my ham license and
discovered a $20 WSPR transmitter (Ultimate QRSS) that enabled me to actually transmit
on the cheap. This small device didn't for me out of the box and I descended into the world
of timing and synchronization and eventually put a heater on the crystal to stabilize the TX
frequency. I actually work on timing and synchronization professionally right now.
JP
To be clear, someone else wrote the bulk of the code. I added comments, frequency
calibration, and frequency hopping. What motivated me was the fact that WSPR needed
very precise frequency calibration that was not available in the original code. For the original
code, you'd have to transmit a signal, measure it externally, adjust the frequency offset to
compensate for the error, and try again. When the temperature of the room changed, you'd
have to do it all over again :) I also wanted to add frequency hopping to reduce the
probability that you would consistently be on top of someone else's transmission.
JP
Understanding timing and syncrhonization in detail and actually performing the
measurements. I had to measure 1Hz offsets when the transmitter was at 10MHz :) As we
discussed in email, I also discovered a bug somewhere in the RPi stack that introduced an
error to the NTP frequency offset measurement. The frequency error I measured externally
was different than that reported by NTP. If anyone in the audience understands the NTP PLL
loop and how it interacts with the operating system, I'd love to talk with them!
- How the NTP adjust calibration idea come up? (Some HAM guys still doesn't believe
it could possible due to internet jitter :)
9
JP
I was originally going to use NTP to check the time periodically and calculate the frequency
offset on my own, effectively creating my own PLL. While digging into NTP, I found that NTP
already returns its calibration coefficient and voila! All I have to do is read this value.
Despite jitter, NTP can achieve time sync down to the ms level or so. This is hundreds of
times better than what is needed to time the start of the WSPR transmissions. If all you need
is to calibrate a frequency offset, NTP can (and does) do very very well. WCDMA (3G)
basestations need frequency accuracy to 0.050 PPM and this is possible via NTP if you do
enough averaging. NTP cannot be used to time synchronize basestations since they need 1
microsecond accuracy, but it can be used to frequency synchronize them.
James Peroulas
james@peroulas.com
https://github.com/JamesP6000/WsprryPi
10