Tagged: WSPR

A WSPR Monitor Running on an old Android TV Box with OpenWebRX and RTL-SDR

Thank you to Joseph IT9YBG for writing in and sharing with us his experience in getting Armbian and OpenWebRX running with an RTl-SDR V3 smoothly on an old A95X Android TV Box. These TV Boxes have an AMlogic S805 chip and Joseph writes that he is quite impressed by the performance of the chip.

To install the Armbian Linux operating system Joseph used the instructions from i12bretro and installed OpenWebRX after. Then together with his RTL-SDR Blog V3 dongle he turned the device into a cheap dedicated WSPR (Weak Signal Propagation Reporter) monitor allowing him to free up his Raspberry Pi 3 which was used for the task previously.

IT9YBG's Android TV Box converted into a WSPR monitor with an RTL-SDR Blog V3 and OpenWebRX
IT9YBG's Android TV Box converted into a WSPR monitor with an RTL-SDR Blog V3 and OpenWebRX

The US Air Force may have shot down an Amateur Radio Pico Balloon over Canada

Since the famous takedown of a suspected Chinese spy balloon, US jets have shot down a total of three more unidentified balloon objects, now suspected by officials to be 'commercial or benign'. There is speculation that at least one these three objects may have been an amateur radio 'pico' balloon.

One part of the amateur radio hobby is launching high altitude balloons with various radio and other payloads. Larger amateur radio balloons launched in the USA require FAA clearance, need a radar reflector attached, and usually continually transmit APRS telemetry before naturally popping and falling back to earth after a few hours, just like a weather balloon.

However there is also the simpler 'pico' ballooning hobby, which involves the use of mylar helium party balloons to launch small solar powered payloads that are only a few grams in weight. They typically transmit low power WSPR at HF frequencies and can only transmit whenever there is sufficient solar power available. Amateur radio or SDR hobbyist stations around the world can pick up these transmissions, and report them on amateur.sondehub.org and/or wsprnet.org. Well built balloons can totally circumnavigate the globe several times over several months before degrading.

While termed 'pico', the party balloons used can still be roughly a meter in diameter on the ground, with some latex balloons potentially expanding further at high altitudes due to the low atmospheric pressure. These balloons can be legally launched from almost anywhere in the world. In particular in the USA there is no FAA clearance required to launch them due to their payload being much less than the limit of 4 lbs (1.8kg). 

32" Silver Orb Shaped Mylar Balloon used for Pico Ballooning
32" Silver Orb Shaped Mylar Balloon used for Pico Ballooning

There is speculation that at least one of the objects shot down over Canada, Yukon by a US Air Force jet may have been amateur radio pico balloon K9YO-15 which was launched from Illinois on October 10 2022. It was on it's seventh circumnavigation of the globe after being aloft for 123 days.

The launch blog post indicates that the K9YO-15 balloon was flying a silver mylar 32" sphere SAG balloon which appears to be this one from balloons.online. Unlike latex or rubber weather balloons which inflate and stretch as they rise into lower atmospheric pressures, these mylar balloons can't stretch, so their fully inflated ground size will be the same as their size at high altitudes, meaning the pico balloon won't get much bigger than 32". The payload was a GPS module, Arduino, SI5351 used as a WSPR and APRS transmitter and a solar panel, all together weighing 16.4 grams. A pentagon memo notes that the object shot down over Canada was a "small metallic balloon with a tethered payload" which fits the description of the pico balloon exactly.

The K9YO Pico Balloon Payload
The K9YO-15 Pico Balloon Payload
An (unrelated) Example Amateur Radio Pico Balloon Launched by a Naval Academy
An (unrelated to this story) example Amateur Radio Pico Balloon launched by a Naval Academy (Source: http://www.aprs.org/balloons.html)

The K9YO-15 balloon ceased all WSPR telemetry transmissions while flying just below Alaska since Feb 11 00:18 UTC (just before sunset in Alaska when the solar panels would stop working).

By using NOAA wind models and the last known location by Alaska, K9YO-15 was projected to have been over Yukon when the US Air Force shot down the unknown balloon object at Feb 11 20:41 UTC (3:41 PM EST / 1:41 PM Yukon time according to Canadian Defense Minister Anand). Reports put the altitude of the shot down object at approximately 40,000ft (~12000 meters), which matches the projected ~11500 meters of K9YO-15. Based on the previous days transmission times, it is suspected that if it were operational, the balloon would have begun transmitting again sometime later in the Yukon afternoon when the sun was stronger, but no transmissions have been seen.

On February 14th the balloon was declared as missing in action by the launch group. 

K9YO projected location at the time the object was shot down.
K9YO projected location at the time the object was shot down.

The search area for the fallen balloon debris is reported to be in difficult to access terrain between Dawson City and Mayo. If we do a rough overlay of the predicted trajectory over a Google map, we can see that the predicted location of KY9O-15 at the reported time of the missile impact matches this description very well.

Rough trajectory overlay
Rough trajectory overlay

Over on Twitter @ikluft (KO6YQ) has been reporting on this speculation, and has been keeping an eye on K9YO-15, awaiting telemetry transmission. We recommend following his account for further updates.

Twitter user and ex project Google Loon engineer @BalloonSciDan has also speculated that the objects shot down may have been pico balloons.

Over on Reddit @ikluft (KO6YQ) has also written some insightful information:

I see you're all talking about my tweet. Yes, we are still watching to see if K9YO-15 transmits any telemetry today.

So far K9YO-15 has not sent any new telemetry since Friday before sunset over Alaska. Some have misread confusing data presentation on Sondehub which lists last known telemetry as covering a time range from then to now. Currently the last we've heard from K9YO-15 was Friday Feb 10 before sunset over Alaska (00:48 GMT Feb 11). But the map on Sondehub does show the last reported position.

These floater balloons often use only solar panels, no batteries. Batteries were dropped from the projects early on because they have limited charging cycles before they stop accepting a charge, especially in the harsh temps at altitude, -40F/-40C or worse. When the battery stops accepting a charge, it ends telemetry from the mission. So they only report telemetry during daylight, when the sun is at a high enough angle to illuminate the tiny solar panels. In the Arctic winter, the days are short and the sun might not get high enough to wake up the electronics. So it stays dormant for one or more days until it drifts back down to lower latitudes where there's more sunlight. So K9YO-15 was in a period where watchers didn't expect to hear from it for a few days. But we expected it today. So far nothing. As I write this, daylight is almost done way up there for Tuesday, Feb 14.

We (the Amateur Radio balloon community) only expect any telemetry from it today would be via WSPR, none via APRS. WSPR uses HF and can be received at long distances, where it's relayed to Internet map sites. APRS is (usually) on VHF and UHF, only received by line of sight. There are no relay stations in range of today's projected flight course in northern Ontario and James Bay, Canada. So APRS-fed sites wouldn't show updates today anyway.

The club in Illinois that built the balloon has tracking links at https://nibbb.org/links-to-locate-and-track/ - you'll have to scroll down to find K9YO-15.

For an introduction, I'm Ian KO6YQ. I was involved in the first Ham Radio balloons that circumnavigated the globe starting in 2016, launched from San Jose, California. I had roles on them including tracking analyst and social media spokesman. I also organized and led the Ham Radio tracking teams which recovered the Civilian Space eXploration Team (CSXT) first amateur rocket to (suborbital) space in 2004.

Explaining a discrepancy with time reporting on Sondehub, KO6YQ notes:

Time has run out for solar power to provide any telemetry on Wednesday, February 15. So far, no new data. For those who were confused by it, remember that Sondehub has problematic data presentation so don't use it for anything other than mapping the last known position. A reliable place to check for K9YO on WSPR is the WSPR Spots: https://www.wsprnet.org/olddb?mode=html&band=all&limit=200&findcall=k9yo&findreporter=&sort=date

Frequently asked Questions (FAQ):

Since this story has gone viral and now entered the mainstream media, we thought we'd answer a few common questions that we're seeing in the media and comments.

Who is launching pico balloons and why?

Pico balloons are typically launched by ham/amateur radio hobbyists, universities, researchers, schools or kids STEM programs. The idea of launching a low cost balloon that can be tracked while travelling the world is a fun project for hobbyists and a great STEM learning experience for kids.

You can track other currently active pico and larger amateur radio balloons at https://amateur.sondehub.org/.

You might also be interested in tracking regular weather balloons which are launched by meteorological agencies around the world usually twice per day. These are designed to only last a few hours in the air before popping. They can be tracked at https://sondehub.org. A popular hobby of radio enthusiasts is chasing these weather balloons and being the first to recover the fallen sensor package called a radiosonde.

A pico balloon is essentially a kids party balloon. Why aren't there thousands of kids party balloons circumnavigating the globe? 

Balloons will inflate more as they rise into the atmosphere, since higher altitudes have lower pressure. A kids party balloon would typically be inflated fully on the ground. If a careless child released a balloon it would rise up, and pop within a few hours, as it reaches an altitude of around 5000ft - 30,000ft (1500m - 9000m) or higher where the internal pressure of the balloon is too great for the balloon's material to hold it.

Pico balloons are weighted by their payloads, and are only partially inflated on the ground. The goal is to inflate with enough Helium or Hydrogen to get the payload to rise at ground level, but allow enough internal space for the balloon to expand without popping as it rises. The weighted balloon will eventually reach an equilibrium point at some altitude where it's fully inflated, but can't rise any higher due to the weighting. This is called being 'neutrally buoyant'. The balloon launcher can use a calculator (such as this one) to determine the right amount of helium to use based on the balloon size and payload weight.

Mylar balloons are used because helium atoms will leak out of the walls of latex/rubber balloons, and they will be flat within a few days. With Mylar balloons the leakage is much slower and they can stay inflated for months.

How can a pico balloon circumnavigate the globe?

As mentioned in the previous question, it's possible to engineer the height that the balloon will fly at by only partially inflating the balloon on the ground. Once at the desired altitude, winds will eventually pull the balloon into global jet streams that take the balloon all around the earth at an average speed of 80 - 140 mph (129 - 225 km/h).

A website like Ventusky can be used to view the current jet streams at 40,000ft (12,000m), the altitude that KY9O-15 was neutrally buoyant at. 

Are pico balloons legal?

In the USA the regulations defined in PART 101 - MOORED BALLOONS, KITES, AMATEUR ROCKETS, AND UNMANNED FREE BALLOONS are only applicable to larger balloons. Small balloon payloads are exempt from these regulations. Similar exemptions exist in most countries.

In California helium balloons in general have been banned, to stop pollution, damage to wildlife, and to protect power lines. 

The transmission of the WSPR and APRS telemetry radio signals would be allowed under amateur radio rules. UK, Yemen and North Korea are countries that prohibit transmissions from balloons, and compliance can be achieved via geofencing the transmissions in the software.

All information suggests that the NIBBB hobby club and KY9O's balloon were operating perfectly legally. 

What exactly was the payload on the KY9O-15 pico balloon?

The payload was a GPS receiver, an Arduino microcontroller, a radio transmitter and some solar panels. The solar panels power the electronics when in sun, and the GPS receiver determines the global coordinates of the balloon. The microcontroller is the 'brain' of the payload which reads the GPS coordinates from the GPS receiver, and tells the transmitter to send out a WSPR radio signal advertising the balloons ID and coordinates.

These are all common off the shelf, small components that could all fit in the palm of a hand. They would in total cost under $100. K9YO's payload in total only weighed 16.4g (0.58 oz). 

An F22 with all it's radio sensors should have picked up the transmissions from the pico balloon. Why didn't it?

Pico balloons usually don't carry batteries because they are heavy and degrade over time. So instead they carry paper thin solar panels. So the balloon circuits and transmitter are only active when in strong sunlight, any other time it is completely quiet and powered down. It's possible that in the weak Yukon sun at high latitude wouldn't have been strong enough to power the WSPR transmitter until later in the day.

How could a tiny 32" balloon be spotted by radar? How could a sidewinder missile lock onto it?

The pico balloon was made out of metallic mylar material which would easily show up on a modern radar system. It's possible that in the past before the Chinese spy balloon incident, radar operators would ignore or filter out slow moving small objects like insects/birds/balloons that pose no threat.

The sidewinder has a fragmentation warhead, so an explosion near the balloon would easily take it out. The metallic mylar material would easily reflect the sun's infrared, and against the cold background of the sky/space it would be easy for the IR heat seeker sensor on the sidewinder missile to track it. 

The K9YO balloon was flying at altitudes used by commercial airliners. Is there any risk to them?

A jet coming across a pico balloon in the first place would be very unlikely, and even more unlikely for it to make it's way in to an engine even if an aircraft flew directly at it. But there is some risk that a balloon ingested by an jet engine could cause issues. However given their lightweight nature it seems unlikely that there would be any massive damage, if any at all.

What is WSPR and APRS?

WSPR (pronounced as 'whisper') stands for Weak Signal Propagation Reporter. It is a type of radio signal protocol used by amateur radio hobbyists. Because of the way it is designed, it is possible for WSPR to be transmitted with very low power (such as the tiny amount of power possible from small solar panels), and still be received by amateur radio ground stations all over the world. The WSPR signal encodes it's callsign ID, and the transmitters GPS location. Amateur ground stations will upload received WSPR data to sites like wsprnet.org.

APRS or "Automatic Packet Reporting System" is another protocol used by amateur radio hobbyists. However, these signals don't travel globally, rather they can only be received locally with line of sight. The advantage is that APRS signal can be transmitted much faster (assuming sufficient power).

Are we 100% certain that the object was the K9YO pico balloon?

No, despite the circumstantial evidence, there is still some doubt. The balloon was already old and probably near the end of it's life. The sun in the high Yukon latitudes is also weaker, meaning that the solar panels might not be getting sufficient sun to power the circuits. The balloon had previously gone missing for 30 days before reappearing. And the transmitter was showing signs of drifting in frequency.

Are there any other globe trotting radio projects?

Yes, there are small autonomous boats or 'drift buoys' travelling the seas through natural currents. These also use WSPR and APRS to report their location. hitchBOT was a hitchhiking robot that relied on travelling strangers to find and carry it around the world. It had a GPS receiver and 3G radio.

Nils Critiques the MH370 WSPR Aircraft Scatter Theory

For some time now there has been chatter about the possibility of using WSPR logs to help track the mysterious disappearance of flight MH370. WSPR or the "Weak Signal Propagation Reporter" is a protocol typically used on the HF bands by amateur radio operators. The properties of the protocol allow WSPR signals to be received almost globally despite using low transmit power.  Amateur radio operators use it for making contacts, or for checking HF radio propagation conditions. MH370 is a flight that infamously vanished without a trace back in 2014.

The theory proposed by aerospace engineer Richard Godfrey is to use logs of sent and received WSPR transmissions that may have intersected the potential flight path of MH370, and to look for potential reflections or 'scatter' in the signal from the metal aircraft hull. From the reflections an approximate track of the aircraft could be calculated much in the same way that bistatic over the horizon radar systems work.

While it is an exciting theory, it is unfortunately considered by most experts as highly unlikely to yield any suitable results with the main problems being WSPR transmission power too weak to detect reflections from an aircraft, and the effect of the ionosphere too difficult to account for. 

Over on his blog Nils Schiffhauer (DK8OK) has posted a thorough critique of the idea, explaining the theory, technical details and difficulties in depth, ultimately coming to the conclusion that the idea is based more in wishful thinking than in fact. Nils summarizes:

Time and again, there are news stories in the professional and popular press about the fact that log data from the WSPR data network can help locate aircraft. In particular, the effort is to determine the actual crash site of flight MH370. This effort essentially amounts to detecting "unusual" level jumps and frequency changes ("drift") in the archived WSPR log data and attributing them to reflections from specific aircraft ("aircraft scatter").

In a blog entry, Nils Schiffhauer, DK8OK, for the first time critically evaluates this theory. On the one hand, this is based on years of observation of aircraft scatter on shortwave as well as an investigation of about 30 Doppler tracks. The results of this complex analysis of more than 10,000 data in one example alone are sobering: The effects of aircraft scatter on the overall signal are almost always well below 0.3 dB.

To prove a correlation between level changes of the overall signal and aircraft scatter seems hardly possible on the basis of the WSPR data material. The reasons are manifold, but lie mainly in shortwave propagation, where level changes of 30 dB within a few seconds are the rule rather than the exception.

However, since the local and temporal state of the ionosphere is not known in previous investigations on the WSPR data material - it is recorded in parallel in professional OTH radar systems and calculated out of the received signal - level jumps can hardly be clearly assigned from the sum signal alone. This finding is supported by further arguments in the blog:
https://t1p.de/t5kr

Nils demonstrates aircraft scatter on China Radio International, a 500kW transmitter.

TechMinds: OpenWebRX Feature Overview And Raspberry Pi Setup

Over on YouTube TechMinds has posted his latest video which shows an overview of the features available in OpenWebRX, and also how to set it up on a Raspberry Pi. OpenWebRX is software which allows you to access your SDR remotely via the internet or local network through a web browser. All major SDRs are supported including RTL-SDRs. The software includes a waterfall display, all the standard demodulators, as well as several digital decoders for DMR, YSF, NXDN, D-Star, POCSAG, APRS, FT8, FT4, WSPR, JT65 and JT9.

In the video TechMinds first demonstrates OpenWebRX in action, showing reception of HF SSB amateur radio signals, decoding FT8 and plotting received grids on a map, decoding and plotting APRS on a map and decoding YSF/DSTAR/DMR digital voice. After this demonstration he goes on to show how to set up the OpenWebRX server on a Raspberry Pi via the installation image.

OpenWebRX Feature Overview And Raspberry Pi Setup

WebWSPR: A Browser Based WSPR Decoder and Visualization Tool

A few days ago we posted about [dj0abr / Radio Electronics'] WebSDR software for QO-100. Having looked through his GitHub we've seen that he also has an a similar browser based server tool called WebWSPR for WSPR decoding and visualization (click with WebWSPR link) which was released earlier this year.

WSPR is an amateur radio digital HF mode designed to be decodable even if the signal is transmitted with very low power and is very weak. It can be used to help determine HF radio propagation conditions as WSPR reception reports are typically automatically uploaded to wsprnet. In the past we have been able to receive WSPR and similar modes like FT8 with our RTL-SDR V3 running in direct sampling mode.

Like his QO-100 WebSDR software, WebWSPR is designed to run on a single board computer like a Raspberry Pi or any Linux machine. It serves a web page that shows the WSPR waterfall, decoded data and has various WSPR related control options. The web page can be accessed remotely from any machine on the same network as the server, or could be put on the internet with port forwarding and a hostname service like noip.

A ready to use Raspberry Pi image for WebWSPR is available here (does not seem to support the latest Pi4 or 3B+ however). Manual installation instructions can be found here. The code is all open source and available on GitHub.

The software appears to take input from the soundcard for standard hardware receivers, but it should be possible to pipe audio from an RTL-SDR into pulseaudio, which the software can then use. The instructions from our RTL-SDR V3 WSJT-X tutorial may help.

WebWSPR Browser Screenshot
WebWSPR Browser Screenshot

LimeRFE WSPR Tests

The LimeRFE is a power amplifier and filter bank solution designed for the low cost TX capable LimeSDR software defined radios. It has multiple bands from HF all the way up to 3.5 GHz, and is capable of putting out about 2W on the HF bands. Currently LimeRFE is crowdfunding over on CrowdSupply with a cost of US$599 or alternatively there is now a cheaper unit for US$449 without support for the cellular bands. The campaign is active for 4 more days from the time of this post, and after that the price is due to rise by another US$100.

The team at LimeMicro sent a unit to Daniel Estévez (EA4GPZ) for testing, and he has recently posted about his results and thoughts when using the LimeRFE for WSPR transmission with a 15m long wire antenna. Daniel connected his LimeRFE to his LimeSDR and used WSJT-X piped into SDRAngel via Pulseaudio to transmit WSPR on the 10m band. He notes that for lower bands, the LimeRFE will still need additional low pass filtering to attenuate harmonics. SDRAngel cannot yet control the LimeRFE so he also created a simple Python script for this purpose.

Unfortunately Daniel's unit only achieved 25dBm instead of the advertised 33dB, but in LimeMicro's post they note that they believe that this is due to shipping damage. However, even with only 0.3W power, Daniel's transmissions from Madrid were able to be picked up in the Canary Islands, Netherlands and Northern England.

WSPR Range with a LimeRFE (reduced 0.3W output)
WSPR Range with a LimeRFE (reduced 0.3W output)

Reaching Across Europe with a Raspberry Pi Zero and WsprryPi

Over on YouTube user Techminds has uploaded a video that shows how he is using a Raspberry Pi Zero to transmit WSPR. To do this he uses the WsprryPi software which allows you to transmit WSPR by connecting an antenna directly to a GPIO pin on the Pi Zero. With this no extra hardware is required, although a filter is highly recommended to reduce spurious emissions from harmonics.

In his test Tech Minds directly connected the Pi Zero to an unun and HF wire antenna and ran WsprryPi. His results showed that even with the tiny 10mW output power of the Pi Zero's GPIO port his WSPR messages were able to reach several receivers halfway across Europe, and even to Iceland and Morocco from his home in the UK.

WSPR is an amateur radio digital HF mode designed to be decodable even if the signal is transmitted with very low power and is very weak. It can be used to help determine HF radio propagation conditions as WSPR reception reports are typically automatically uploaded to wsprnet.

WSPR - Weak Signal Propagation Reporter - From A Pi Zero ?

Creating a Standalone WSPR Receiver with an RTL-SDR V3 and Raspberry Pi 3

Thank you to Zoltan for submitting his scripts for installing the rtlsdr-wsprd WSPR decoder onto a Raspberry Pi, and showing us how to configure it for an RTL-SDR V3 dongle running in direct sampling mode. This set up allows users to create an extremely low cost and permanent RX WSPR monitor.

WSPR is an amateur radio digital HF mode designed to be decodable even if the signal is transmitted with very low power and is very weak. It can be used to help determine HF radio propagation conditions as WSPR reception reports are typically automatically uploaded to wsprnet. Direct sampling mode on the RTL-SDR V3 allows you to receive HF signals without the need for an upconverter. For best results it is recommended to use a simple bandpass filter for the band of interest.

Zoltan's tutorial comes with a companion YouTube video where he demonstrates his set up. He uses a random wire antenna on his roof directly connected to an RTL-SDR V3, which is connected to a Raspberry Pi 3.  The Pi 3 communicates to his home network via an Ethernet cable.

Making a standalone WSPR receiver with RPi and RTL-SDR V3 using rtlsdr-wsprd