From eb0afe1aa469a9563a1d2757e0641d6f0b442fd0 Mon Sep 17 00:00:00 2001 From: pe1nnz Date: Wed, 20 Mar 2013 10:02:18 +0000 Subject: [PATCH] WSPR beacon support fro frequencies from 0 to 250 MHz (theory). --- README | 48 +++++++++++++++++++++++++++++++++--------------- wspr | Bin 17880 -> 17656 bytes wspr.c | 7 +++---- 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/README b/README index cd6fab2..5c2f396 100644 --- a/README +++ b/README @@ -1,24 +1,33 @@ - Raspberry Pi bareback LF/MF/HF WSPR transmitter +Raspberry Pi bareback LF/MF/HF WSPR transmitter - Makes a very simple WSPR beacon from your RasberryPi by connecting GPIO port to Antanna (and LPF), works up to frequencies of about 14MHz. + Makes a very simple WSPR beacon from your RasberryPi by connecting GPIO + port to Antanna (and LPF), operates on LF, MF, HF and VHF bands from + 0 to 250 MHz. Credits: - Brought together by Dan MD1CLV, extensions by Guido PE1NNZ - Based on WSPR code from F8CHK and PiFM code from http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter + Credits goes to Oliver Mattos and Oskar Weigl who implemented PiFM [1] + based on the idea of exploiting RPi DPLL as FM transmitter. Dan MD1CLV + combined this effort with WSPR encoding algorithm from F8CHK, resulting + in WsprryPi a WSPR beacon for LF and MF bands. Guido PE1NNZ extended + this effort with DMA based PWM modulation of fractional divider that was + part of PiFM, allowing to operate the WSPR beacon also on HF and VHF bands. + + [1] PiFM code from http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter To use: - In order to transmit legally, a HAM Radio License is required for running this experiment. + In order to transmit legally, a HAM Radio License is required for running + this experiment. The output is a square wave so a low pass filter is REQUIRED. + Connect a low-pass filter to GPIO4 (GPCLK0) and Ground pins on your + Raspberry Pi, connect an antenna to the LPF. The GPIO4 and GND pins can be + found on header P1 pin 7 and 9 respectively, the pin closest to P1 label is + pin 1 and its 3rd and 4th neighbour is pin 7 and 9 respectively, see this + link for pin layout: http://elinux.org/RPi_Low-level_peripherals - The output is a square wave so a low pass filter is REQUIRED. - Connect a low-pass filter to GPIO4 (GPCLK0) and Ground pins on your Raspberry Pi, connect an antenna to the LPF. - The GPIO4 and GND pins can be found on header P1 pin 7 and 9 respectively, the pin closest to P1 label is pin 1 and its 3rd and 4th neighbour is pin 7 and 9 respectively, see this link for pin layout: http://elinux.org/RPi_Low-level_peripherals - - This software is using the system time to determine the start of a WSPR transmissions, so keep the system time synchronised within 1sec precision, i.e. use NTP network time synchronisation or set time manually with date command. - - Reception reports are logged on Weak Signal Propagation Reporter Network: http://wsprnet.org/drupal/wsprnet/spots - -Compile by doing: - gcc -lm -std=c99 wspr.c -owspr + This software is using the system time to determine the start of a WSPR + transmissions, so keep the system time synchronised within 1sec precision, + i.e. use NTP network time synchronisation or set time manually with date + command. Reception reports are logged on Weak Signal Propagation Reporter + Network: http://wsprnet.org/drupal/wsprnet/spots Usage: sudo ./wspr @@ -33,6 +42,15 @@ Usage: 40m 7040000 - 7040200 30m 10140100 - 10140300 20m 14097000 - 14097200 + 17m 18106000 - 18106200 + 15m 21096000 - 21096200 + 12m 24926000 - 24926200 + 10m 28126000 - 28126200 + 6m 50294400 - 50294600 + 4m 70092400 - 70092600 + 2m 144490400 -144490600 Compile: gcc -lm -std=c99 wspr.c -owspr + + diff --git a/wspr b/wspr index f7b06ecb939b70811e87feda15d5333fd5366189..253436368d71ea707b7276a0cccb64634c58e05e 100755 GIT binary patch delta 3358 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 WEO%KYjfl?aF|4tlwhxq>jQ<1k9X1*O diff --git a/wspr.c b/wspr.c index b615354..7d6cf31 100644 --- a/wspr.c +++ b/wspr.c @@ -3,7 +3,9 @@ Raspberry Pi bareback LF/MF/HF WSPR transmitter Makes a very simple WSPR beacon from your RasberryPi by connecting GPIO - port to Antanna (and LPF), operates on LF, MF, HF and VHF bands. + port to Antanna (and LPF), operates on LF, MF, HF and VHF bands from + 0 to 250 MHz. + License: This program is free software: you can redistribute it and/or modify @@ -44,9 +46,6 @@ To use: command. Reception reports are logged on Weak Signal Propagation Reporter Network: http://wsprnet.org/drupal/wsprnet/spots -Compile by doing: - gcc -lm -std=c99 wspr.c -owspr - Usage: sudo ./wspr e.g.: sudo ./wspr K1JT FN20 10 7040074