ARCHIVE: Australian Ham Radio Discussion Forum ( AHRDF )
Raspberry Pi-based WSPR project - Printable Version

+- ARCHIVE: Australian Ham Radio Discussion Forum ( AHRDF ) (https://www.ahrdf.net/forum)
+-- Forum: SPECIAL INTERESTS (https://www.ahrdf.net/forum/forum-30.html)
+--- Forum: Digital Modes (https://www.ahrdf.net/forum/forum-20.html)
+--- Thread: Raspberry Pi-based WSPR project (/thread-696.html)

Pages: 1 2


Raspberry Pi-based WSPR project - VK4ADC - 27-12-2018

Some of you may already be aware that I have recently been playing with a Raspberry Pi Zero W and now that I have the WSPR project basically complete, I took the the time to put keys to keyboard and document my 'travels' along the path...

My Slice of Pi - a WSPR beacon project
http://www.vk4adc.com/web/hf-projects/47-construction/187-my-slice-of-pi


The long and short of it is that the article is about creating a WSPR beacon running (at present) variously on 6M, 30M, 20M and 17M with an RF power level of about 200mW... and getting reports/spots appearing from VK, ZL and other places in Oceania on all bands.. Where it gets 'spotted' later on will be interesting to see.

I am quite happy with the outcome .. A good technical challenge - part software & part hardware..  Big Grin

Doug VK4ADC


RE: Raspberry Pi-based WSPR project - OZ2M - 27-12-2018

Hi Doug

Very interesting. Do you have any in-band spurii spectrum plots?

Bo


RE: Raspberry Pi-based WSPR project - VK4ADC - 28-12-2018

Bo

No such luck: My spec analyser is currently in the to-be-fixed queue (has been for a while) and I might not see any close-in spurious on it anyway..  

I will say that when I spin the dial on the Icom IC-7400 HF transceiver that I haven't noticed any strong spurs, given that the S-meter is showing full scale - S9+60 at the on-frequency signal.  I might have to look again and look closer.

The unit will be powered off when I am actually operating on HF or VHF but otherwise should be on 24/7.

73 Doug

Edit:

Ref                   :   Spurious
10139 @ S9+60 :  10091.2 @ S7, 10186.9 @ S8
14097 @ S9+60 : 14000.7 @ S4, 14048.7 @ S7, 14144.2 @ S8, 14191.9 @S6
18106 @ S9+60 : 17962.2 @ S4, 18087.5 @ S4, 18153.4 @ S5, 18200.7 @ S4
50293 @ S9+60 :  50150.6 @ S6, 50198.2 @ S7, 50245.9 @ S9, 50341.4 @ S9, 50389.1 @ S7, 50436.9 @ S6

The results are not really accurate as broadband noise effects mask the true minimum signal levels ( particularly on 50MHz ) - which are probably lower rather than higher. 
The calibration of the S-meters is always in doubt but is indicative of the main signal level versus spurious.


RE: Raspberry Pi-based WSPR project - VK2KRR - 28-12-2018

Thats excellent Doug, thanks for post and thanks for running the beacon. Your right, around Christmas the E propagation was not good. I have seen your callsign on WSPRview, the database and my own PC screen so it definately works well.


RE: Raspberry Pi-based WSPR project - OZ2M - 28-12-2018

Thanks for posting. Very relevant observations for sure.

My reason for asking is the spectrum plot by HA7DCD of a RPi 1 board which has very poor spectral performance. Not many other stations will appreciate -40 dBc.


RE: Raspberry Pi-based WSPR project - VK4ADC - 29-12-2018

Bo

The Australian Licence Conditions Determination (the bible - the 'LCD') states:

"
7A Spurious emission limits for an amateur station

(1) The licensee must not operate an amateur station if the emissions of the station include spurious emissions that are not attenuated below the power of the wanted emission supplied to the antenna transmission line by:

(a) for frequencies less than 30 MHz — the lesser of:
(i) 43 + 10 log (PEP) dB; and
(ii) 50 dB; or

(b) for frequencies equal to or greater than 30 MHz — the lesser of:
(i) 43 + 10 log (P) dB; and
(ii) 70 dB.

(2) In subsection (1):
P means mean power in watts supplied to the antenna transmission line.
PEP means peak envelope power in watts supplied to the antenna transmission line.
"

At HF that basically means -50dBc and 6M  as -70dBc due to the "lesser of" wording although does it really mean the reverse?  It could also mean -43dBc for both as that value (per (i)) is the lesser 'numerical' value given the RF power level involved (200mW). Legalese interpretation / argument ??

Given I don't know how far the Icom transceiver's receiver is set into 'S9+60' levels (i.e. saturation), the spurious signals I nominally measured / noted could be within the required tolerances.  I might have to cascade a few 20dB attenuators and try to get closer-to-definitive measurements - and hope that the receiver shielding is good enough to allow them to make sense. I will give it a try at some stage soon and report my findings.

Doug


RE: Raspberry Pi-based WSPR project - VK4ADC - 30-12-2018

Best as I can measure by the use of a RF coupler plus switchable RF attenuator in-line method plus a sign gen for cross calibration :

10140 Ref : 10001 @ -63dBc, 10096 @ -60dBc, 10191 @ -59dBc, 10280 @ > 65dBc
14095 Ref : 14046 @ -64dBc, 14144 @ -64dBc, 14190 @ -69dBc
18106 Ref : 18153 @ -64dBc (no others measured, all weaker) 
50293 Ref ** : 50103 @ -55dBc, 50150 @ -55dBc, 50198 @ -54dBc, 50245 @ -52dBc, 50340 @ -52dBc, 50389 @ -54dBc, 50484 @ > -55dBc

** Approximate values only as significant direct signal pickup bypassing the attenuator occurring, actual values probably significantly better. The receiver shielding is undoubtedly the issue with this measurement : same coaxes used, same receiver port, but in-line attenuator had to be set 10dB lower to try to overcome direct pickup effects.

All values should be correct +/- a few dB, maybe.


RE: Raspberry Pi-based WSPR project - OZ2M - 01-01-2019

Hi Doug

Thanks for taking some more and absolute measurements. Another topic that, as far as I know, has not been addressed by any of the computer generated RF signal solutions around is the phase noise performance. However, such measurements are not for the fainthearted - yet very relevant.

Re "the lesser of" I am in no doubt that e.g. -50 dBc is less than -43 dBc since the definition of "lesser" doesn't swap around zero (0).

HNY
Bo


RE: Raspberry Pi-based WSPR project - VK4ADC - 02-01-2019

Bo

My little WSPR beacon at 200mW is certainly getting out on all bands despite the HF antenna being far from optimum on all bands used. 

The following details were extracted from WSPRNet via my WSPRView software and then summarised by the add-on software:

30M / 10MHz : 405 spots - running since 26 Dec (7 days)
KPH, 15 spots, CM88mc, 11390 KM,
KA7OEI-1, 4 spots, DN31uo, 12379 KM,
ZL1BIV, 3 spots, RF73lc, 2297 KM,
VK1 through VK6

20M / 14MHz : 1224 spots - running since 26 Dec  (7 days)
VK1 through VK7

17M / 18MHz : 306 spots - running since 26 Dec  (7 days)
VK2, 3, 4 only

15M / 21MHz : 104 spots - running since 29 Dec (4 days)
VK3 and ZL3 only

6M / 50MHz : 5394 spots - running since 1st Dec  (33 days)
VK1 through VK8 (up to 3700KM), ZL1 & 2 (~2500KM), 3D2 (2800KM), FK1 (1500KM)

It will be interesting to see future numbers and call areas as propagation changes  with the solar cycle progression.

Doug


RE: Raspberry Pi-based WSPR project - VK4ADC - 05-01-2019

Given my partial 'fail' trying to get some absolute results for OZ2M - and my Spectrum Analyser being in a non-functioning state (must get back to that one day), I contemplated using my SDR dongle to get further details as to the levels of spurious signals being generated by my Pi-WSPR project.  My dongle is one of the 820T series which means that it really doesn't go below 30MHz. It's ok for checking the 6M output signal but not for 10, 14, 18 and 21 MHz.

I built up an up-converter yesterday to use in front of the SDR and was able to do screen grabs from SDR# to help confirm the in-band signal levels. The HF ones look pretty good and are limited by the noise floor observed. I haven't yet optimised the up-converter's LO level and that might improve the noise floor but, anyway,....

The SDR image grabs are at the bottom of the web page SDR Up-Converter Project (at http://www.vk4adc.com/web/general-projects/83-construction-ideas/188-sdr-up-converter-project ) because there are too many, and are too big in total, to add directly to this post. Open each image in a new tab or Save-image-as to see them in better detail.

If nothing else, they help confirm the tabulated values provided in an earlier post.


RE: Raspberry Pi-based WSPR project - VK4ADC - 07-01-2019

The 6M antenna was changed to a halo antenna built today, temporarily mounted on a tripod but about 4.5M above ground.. SWR is similar ( 1.15:1 ) but the polarisation is now horizontal. The "gap" is pointing west at the moment, not that there should be a variation of more than about 3-4dB in the omnidirectional pattern.  I will review the signal levels in a few days before to after and see which one is actually better for WSPR activity.

Just a couple initially to compare (locals, no DX happening in SEQ on 6M)..
VK4SC   -17 before, -20 after
VK4NE   -5 before, -7 after.

Sort-of as expected. The J-pole nominally has 3dB gain but I have no idea whether these two stations are horizontal or vertically polarised, i.e. cross polarised..



It was good to note a few more DX spots on the 10MHz WSPR transmissions, particularly the EA8, for my 200mW :

Spotter,160M,80M,60M,40M,30M,20M,17M,15M,12M,10M,6M,4M,2M,432,Error,Grid,KM
3D2AG,,,,,,,,,,,4,,,,,RH91fv,2815,  (6M)
E51BQ,,,,,,1,,,,,,,,,,BG08cs,4807,  (30M)
EA8BFK,,,,,1,,,,,,,,,,,IL38bo,18721,  (30M)
FK1TS,,,,,,,,,,,105,,,,,RG37fr,1488, (6M)
KA7OEI-1,,,,,6,,,,,,,,,,,DN31uo,12379,  (30M)
KPH,,,,,21,,,,,,,,,,,CM88mc,11390,   (30M)

The HF antenna is still not optimised for the 4 HF bands that are used to transmit WSPR : 30 / 20 /17 and 15M.


RE: Raspberry Pi-based WSPR project - VK4ADC - 12-02-2019

My Pi-based WSPR beacon has been off-air the last few weeks due to a mishap with the heatsink over the ARM chip shorting a couple of components out.  A new Pi-zero-W board has finally been installed, re-programmed, yes - heatsinked again but with precautions, and is now back on-air on the 6, 30, 20, 17 and 15 metre WSPR segments as of about 0400UT today.  The precautions took the form of placing tape over the exposed components before adding some silicon grease compound, fitting the heatsink and holding it in the final position with a couple of blobs from a hot glue gun !

It is amazing how much of a spread there is between the clock frequencies of the SMD-style clock oscillators. The old PCB was adjusted to the correct frequency on 50.293 within about 3 Hz but the replacement board ended up about 400Hz high using the same frequency setting values. (Re-trimmed to under 20Hz now.)

I have been slowly trimming the operating frequencies on the 5 bands over the last 2 days back to within about 20Hz of ideal (/ centre) but the downward drift with temperature was really obvious today - the shack temperature was about 37/38 degrees Celsius when I finished working in there this afternoon.  I will keep a check on the frequencies over the next week or so, trim only if really necessary, and then I should be able to let it run 24/7 without supervision again.

The RF output power is 5 watts on all bands except for 18MHz, which is 2 watts.

An hour after reconnecting to the antennas, there are reports already for 10 and 14 MHz from all over VK, ZL, KH6, OE9, IS8...  A VK3 report for 18MHz but nothing reported for 21 and 50 MHz as yet.


P.S. I am thinking about adding a 90 second hardware watchdog timer to reset the Zero board if it 'freezes' - and having read about issues with the internal watchdog option.  
Has anyone else needed to do the hardware approach on a Pi Zero or Zero W  running WSPR ??

PPS I have utilised a spare output (pin C.2) on my 20X2 Picaxe band switch detection driver board to couple to  the reset pin on the Zero board to achieve the 'hardware' watchdog function.  
The Picaxe code has been altered to enable the timer3 support and when the 3 x 4017 frequency counters (driven by GPIO CLK0 / pin 4 with WSPR RF) produce a non-zero value then the timer3 count is reset (ie operating normally & generating WSPR RF) but if there is no RF then the timer3 counts towards or beyond a preset count. If it exceeds the count then it fires the output pin C.2 low and resets the Pi Zero board.  If RF starts before that point then it resets the timer3 value back to zero. The preset count value is the equivalent of about 400 seconds so that it has plenty of time for the Zero to boot the Raspbian OS software, start the WSPR daemon and then wait up to two minutes for the start of a WSPR transmit period.

So far the watchdog has only done a reset once and that was when I commanded off the WSPR daemon during testing...


RE: Raspberry Pi-based WSPR project - VK2KRR - 14-02-2019

Doug
It was good having your WSPR signals on 6m during the summer period. Hope you can get it back on air, but it looks like we've lost most of the Sporadic E openings for this summer as the sun moves again further and further north. Though it appeared to go significantly down hill soon after the summer solstice. Certainly not as good as last year.


RE: Raspberry Pi-based WSPR project - VK4ADC - 14-02-2019

Leigh

It is all back to normal now. The final frequency calibration has been done and transmits in the order 6, 30, 20, 17, 15 metres so a cycle time of 10 minutes for 6M - and each other band.

The new watchdog control is functioning and will reset the Pi if it doesn't produce RF within 7 minutes of the last detected RF, so should keep going even in the event of a Raspbian OS or WSPR software freeze. It certainly works if the Rasbian OS doesn't finish booting properly too - which it has done a few times.

There have been a few reports for my 6M transmissions but mainly locals (< 200KM ) as it appears that other stations previously monitoring 6M have ceased for now.
The reports on 30M have been astounding for 5W of RF, not as many on 20M but still diverse. An odd spot on 17 and 15M and typically within VK.

THE band to operate on say FT8 would have to be 30M at the moment. Propagation from here is happening world-wide for quite a bit of the day and night. Somewhat amazing.

I am toying with the idea of similtaneously transverting up one of the HF frequencies to 2M. Not too seriously as I have lots of other projects on the go at the moment and it probably wouldn't be of much use until later this year or early next year anyway.  Back of the mind stuff only - though I do have a 25W PA block out of an old 2M mobile that could easily be pressed into service to get (say) 10W out and a new homebrew 2M transverter PCB project partially built up.

Doug


RE: Raspberry Pi-based WSPR project - VK2KRR - 14-02-2019

Doug

There was a power outage here today so Im only just back on 6m and 2m WSPR now, as its back on.

Im wondering are you running 5W now on 6m WSPR on the usual 0.2W that you were running? WSPR is indicating 5W


RE: Raspberry Pi-based WSPR project - VK4ADC - 14-02-2019

(12-02-2019, 03:16 PM)VK4ADC Wrote: The RF output power is 5 watts on all bands except for 18MHz, which is 2 watts.

From a post a few earlier....

The measured 5W (+37dBm) on 6M into a halo about 6.5 metres above ground is confirmed. It was spotted by Hayden VK7HH at 0404 through to 0444 UTC this afternoon via Es so must be getting out ok.

The 5W on HF (30, 20 and 15) is approximate and is hard to measure accurately due to the varying SWR band by band of the sloping wire antenna. The 2W on 17M is pretty close to the mark as the SWR is fairly good on that band.
The 5W value is pretty close when measured into the terminating power meter.

I'm not sure if I have a bad/intermittent BNC plug or socket on HF but will be investigating further - probably tomorrow.

PS - it's tomorrow. The issue was with the HF amp PA transistor getting too hot & not the BNC connector. I have replaced the device and dropped the RF power output back to 2 watts on all HF bands to preclude it happening again as I want this setup to be reliable over a long period of time.  The WSPR data setup has been changed back to +33dBm for HF.


RE: Raspberry Pi-based WSPR project - VK4ADC - 21-03-2019

An update on this project...

The Raspberry Pi + amplifiers + filters has been working pretty well for the last few weeks.  It has consistently been being received on 10MHz almost world-wide on a daily basis, a little more sparsely on 14MHz but most parts of the globe, a few places mainly in the Oceania region plus USA on 18 MHz but 21MHz has given spots only in VK, ZL, JA and western USA. Only an occasional WSPR spot has been received on 50MHz from VK3 or 7 and ZL in recent weeks.  Pretty impressive for about 2 watts on HF and 5 watts on 50MHz and using simple antennas.

The WSPR reports have been pretty consistent day-by-day to the point that I have decided to reduce the operating (transmitting) hours of the WSPR beacon as from this week.  It will now transmit from 0000UTC to 2359 UTC on Tuesdays, Thursdays, Saturdays and Sundays, still across the 5 bands (30 / 20 / 17 / 15 / 6M) with the overall schedule to be reviewed as the year progresses and propagation changes are noted.  It should be on the frequencies as follows : xxx0 : 50 MHz, xxx2 : 10 MHz, xxx4 : 14 MHz, xxx6 : 18MHz, xxx8 : 21 MHz following an automatic startup at 0000UTC, where xxx represents any two-digit hour plus any 10 minute interval point. Any manual intervention (me or a power outage !!!!!) can offset the frequency schedule completely.

The Pi unit will stay powered on to retain frequency stability, it just won't transmit all of the time (24/7) as it has been.

It's amazing what a little "cron" effect can do.


RE: Raspberry Pi-based WSPR project - VK4ADC - 23-03-2019

A change of plan is required to make the WSPR beacon only operate certain days.. Not sure what that plan will entail as yet.

I wondered why it was still transmitting this morning when I checked it : The hardware watchdog timer that I added to the Pi resets the Pi board itself if no RF output is detected during a 7 minute sampling time-out period so my commanding off the RF simply resets the Pi due to the watchdog. The reset cycle repeats ad infinitum until it is supposed to be on !

Back to the drawing board until I can figure out a simple way to achieve the desired outcome.  I have already figured out a complex way !!


RE: Raspberry Pi-based WSPR project - VK4ADC - 27-03-2019

A new arrangement is now in place with my Pi WSPR beacon.

It transmits on Tuesdays, Thursdays, Saturday and Sundays from 0000UTC to 2358UTC. 
In local Brisbane time, it starts Tuesday at 10AM and finishes just before 10AM Wednesday morning, ditto Thursday at 10AM and finishes just before 10AM Friday morning. The weekend session starts 10AM Saturday and finishes just before 10AM Monday.

The continuous availability over the weekend is when many operators are not at work so may be looking for propagation information.  The separate days nominally mid-week are just for general signal availability for generic propagation evaluation.

The previous post referred to the watchdog timer rebooting the Pi - but it doesn't have to with the current physical arrangement : the supply voltage is removed from the PAs with a heavy duty 12V automotive relay.  The Pi continues generating WSPR on the 5 bands as previously on a 24x7 time basis and the PAs are only powered up as required on Tuesday, Thursday and over the weekend.

The PA power relay can quickly be set to be permanently off, on or via the nominated timing settings.

Thinking 'outside the box' solved the issue and only took a few minutes to implement.

PPS (next day)  An interesting side effect noted : ZL1RS is still spotting the WSPR signal on 10MHz (and the only station doing so) even with the PA powered off. The SNR level reported is in the high -20's and low -30's in that state versus around zero to -2dB with PA power on.   
I will have to try to do a measurement to gauge actual output power with the PA power off !!!
Expecting - by the WSPR figures - that the power will be about 25dB down on 2 watts - or - about 10mW.
To be confirmed ..


RE: Raspberry Pi-based WSPR project - OZ2M - 26-04-2019

Hello Doug and the list

For comparison and inspiration here are some measurements on a Si5351A on the RFzero platform: http://www.rfzero.net/documentation/rf/

Bo, The Real OZ