The ESP32, An SDR In Itself

Perhaps the most famous of all the software-defined radio (SDR) receivers is the RTL-SDR, a digital TV receiver on which an undocumented feature was found. Perhaps other radio-enabled chips also have the same undocumented feature? It seems in the case of some members of the ESP32 family, they do. It’s a discovery made independently in two places, by Espargos, and a Reddit user by the name of h0m3us3r.

What’s happening is that the undocumented mode taps the I/Q stream off before the WiFi modem, and this can be read and processed by SDR software on an external computer. The undocumented mode can be found on ESP32 chips with the earlier Tensilica hardware onwards, so the low power Bluetooth only chips or the non-radio-equipped P4 won’t work. Sadly it’s also only possible with the receive side, with both 2.4 and 5 GHz bands being supported depending on the microcontroller in question.

This isn’t quite the general purpose SDR we got with the RTL-SDR, but there are still plenty of uses to which it can be put. We’re curious as to whether someone can implement the software side of an SDR on the same chip, but we are guessing that might be beyond their capabilities. Either way, we’re looking forward to what the community does with this new-found knowledge.

Hackaday Europe 2026: High Performance SDR On The Cheap

Radios were once big complicated appliances, full of warm valves and paper-wrapped capacitors, all humming and glowing to capture signals from the aether and spit them out of a speaker. Every component was chosen to build the radio to suit a particular purpose.

These days, we have altogether fancier technology that lets us build radios that can be reconfigured on the fly; software-defined radios, if you will. [Anders Nielsen] has been exploring how to build a high-performance SDR recently, and came to Hackaday Europe 2026 to tell us all about it.

Continue reading “Hackaday Europe 2026: High Performance SDR On The Cheap” →

An oscilloscope display is seen in lower left corner. In the rest of the image, two purple circuit boards are connected by SMA RF cables. A wire antenna is connected to one board.

Building A $50 SDR With 20 MHz Bandwidth

Although the RTL-SDR is cheap, accessible, and capable enough for many projects, it does have some important limitations. In particular, its bandwidth is limited to about 3.2 MHz, and the price of SDRs tends to scale rapidly with bandwidth. [Anders Nielsen], however, is building a modular SDR with a target price of $50 USD, and has already reached a bandwidth of almost 20 MHz.

If this project looks familiar, it’s because we’ve covered an earlier iteration. At the time, [Anders] had built the PhaseLoom, which filters an incoming signal, mixes it down to baseband, and converts it to I/Q signals. The next stage is the PhaseLatch, a board housing a 20-MHz, 10-bit ADC, which samples the in-phase and quadrature signals and passes them on to a Cypress FX2LP microcontroller development board. [Anders] had previously connected the ADC to a 6502 microprocessor instead of the FX2LP, but this makes it a practical SDR. The FX2LP was a particularly good choice for this project because of its USB 2.0 interface, large buffers for streaming data, and parallel interface. It simply reads the data from the SDR and dumps it to the computer.

Continue reading “Building A $50 SDR With 20 MHz Bandwidth” →

6502 Puts On An SDR Hat

The legendary 6502 microprocessor recently turned 50 years old, and to celebrate this venerable chip which brought affordable computing and video gaming to the masses [AndersBNielsen] decided to put one to work doing something well outside its comfort zone. Called the PhaseLoom, this project uses a few other components to bring the world of software-defined radio (SDR) to this antique platform.

The PhaseLoom is built around an Si5351 clock generator chip, which is configurable over I2C. This chip is what creates the phase-locked loop (PLL) for the radio. The rest of the components, including antenna connectors and various filters, are in an Arduino-compatible form factor that let it work as a shield or hat for the 65uino platform, an Arduino-form-factor 6502 board. The current version [Anders] has been working on is dialed in to the 40-meter ham band, with some buttons on the PCB that allow the user to tune around within that band. He reports that it’s a little bit rough around the edges and somewhat noisy, but the fact that the 6502 is working as an SDR at all is impressive on its own.

For those looking to build their own, all of the schematics and code are available on the project’s GitHub page. [Anders] has some future improvements in the pipe for this project as well, noting that with slightly better filters and improved software even more SDR goodness can be squeezed out of this microprocessor. If you’re looking to experiment with SDR using something a little bit more modern, though, this 10-band multi-mode SDR based on the Teensy microcontroller gets a lot done without breaking the bank.

 

 

Roll Your Own SSB Receiver

[Paul Maine] was experimenting with GNU Radio and an RTL-SDR dongle. He created an SSB receiver and, lucky for us, he documented it all in a video you can see below. He walks through how to generate SSB, too. If videos aren’t your thing, you can go back to the blog post from [Gary Schafer] that inspired him to make the video, which is also a wealth of information.

There is a little math — you almost can’t avoid it when talking about this topic. But [Paul] does a good job of explaining it all as painlessly as possible. The intuitive part is simple: An AM signal has most of its power in the carrier and half of what’s left in a redundant sideband. So if you can strip all those parts out and amplify just one sideband, you get better performance.

Continue reading “Roll Your Own SSB Receiver” →

Real-Time Beamforming With Software-Defined Radio

It is perhaps humanity’s most defining trait that we are always striving to build things better, stronger, faster, or bigger than that which came before. Taller skyscrapers, longer bridges, and computers with more processors, all advance thanks to this relentless persistence.

In the world of radio, we might assume that a better signal simply means adding more power, but performance can also improve by adding more antennas. Not only do more antennas increase gain but they can also be electronically steered, and [MAKA] demonstrates how to do this with a software-defined radio (SDR) phased array.

The project comes to us in two parts. In the first part, two ADALM-Pluto SDR modules are used, with one set to transmit and the other to receive. The transmitting SDR has two channels, one of which has the phase angle of the transmitted radio wave fixed while the other is swept from -180° to 180°. These two waves will interfere with each other at various points along this sweep, with one providing much higher gain to the receiver. This information is all provided to the user via a GUI.

The second part works a bit like the first, but in reverse. By using the two antennas as receivers instead of transmitters, the phased array can calculate the precise angle of arrival of a particular radio wave, allowing the user to pinpoint the direction it is being transmitted from. These principles form the basis of things like phased array radar, and if you’d like more visual representations of how these systems work take a look at this post from a few years ago.

Continue reading “Real-Time Beamforming With Software-Defined Radio” →

Writing A GPS Receiver From Scratch

GPS is an incredible piece of modern technology. Not only does it allow for locating objects precisely anywhere on the planet, but it also enables the turn-by-turn directions we take for granted these days — all without needing anything more than a radio receiver and some software to decode the signals constantly being sent down from space. [Chris] took that last bit bit as somewhat of a challenge and set off to write a software-defined GPS receiver from the ground up.

As GPS started as a military technology, the level of precision needed for things like turn-by-turn navigation wasn’t always available to civilians. The “coarse” positioning is only capable of accuracy within a few hundred meters so this legacy capability is the first thing that [Chris] tackles here. It is pretty fast, though, with the system able to resolve a location in 24 seconds from cold start and then displaying its information in a browser window. Everything in this build is done in Python as well, meaning that it’s a great starting point for investigating how GPS works and for building other projects from there.

The other thing that makes this project accessible is that the only other hardware needed besides a computer that runs Python is an RTL-SDR dongle. These inexpensive TV dongles ushered in a software-defined radio revolution about a decade ago when it was found that they could receive a wide array of radio signals beyond just TV.