RX Analyzer
A standalone radio signal analyzer and decoder
RX Analyzer is an experimental standalone radio signal analyzer and decoder based on the ESP32-S3.
The project was created to explore how far a small embedded platform can go in the analysis and decoding of amateur-radio signals without relying on a PC.
The device connects to the audio output of a radio receiver, processes the signal locally, analyzes its spectrum and attempts to automatically identify and decode different digital and analog modes.
The main goal is to build a compact, portable and autonomous tool for radio amateurs, capable of providing real-time signal analysis and decoding directly on the device.
Main features
RX Analyzer combines real-time signal processing, digital communications and embedded machine learning in a single device.
Real-time spectrum analysis
The system displays a live FFT spectrum and waterfall, making it possible to visualize the received signal and identify activity across the audio bandwidth.
Signal detection and classification can be performed using both traditional heuristics and an on-device TinyML model.
The current classifier can distinguish several signal categories, including:
Noise
Tones
CW
RTTY / FSK
PSK31
Voice
The machine-learning component is an int8 MLP model, designed to run directly on the ESP32-S3 without requiring an external computer or cloud service.
Amateur radio decoding
The project currently includes support for several popular amateur-radio modes:
CW (Morse Code)
Detection and decoding of Morse code, including WPM estimation.
RTTY
Baudot decoding with support for common speeds such as 45.45, 50 and 75 baud, together with AFC and automatic polarity detection.
FT8 / FT4
Digital-mode decoding using the integrated ft8_lib component.
Image transmission modes
RX Analyzer can also process image-based radio transmissions.
Supported formats currently include:
SSTV: Martin, Scottie, Robot and PD modes
WEFAX / Weather FAX
Decoded images can be displayed directly on the device, allowing the system to operate as a completely independent receiving station.
Hardware
The main hardware platform is the Freenove FNK0104S, featuring an ESP32-S3R8 microcontroller with:
8 MB PSRAM
16 MB Flash
4" 480×320 LCD
Capacitive touch interface
ES8311 audio codec
SD card support
Battery support
USB-C
A second configuration is supported using the ESP32-S3 DevKitC-1 N16R8, intended for development and testing without the integrated LCD.
Audio is currently captured using the ESP32-S3 internal ADC through a simple input biasing circuit.
User interface
The Freenove version provides a graphical touch interface directly on the 4" LCD.
The interface is designed to provide access to the main analysis and decoding functions, including spectrum visualization, waterfall display and decoded messages.
The software interface supports English and Portuguese.
A Wi-Fi web interface is also available, allowing the current receiver information and decoded data to be accessed from a browser.
Why this project?
This project started from a simple idea:
Could an inexpensive microcontroller become a useful standalone amateur-radio signal analysis and decoding tool?
Rather than simply implementing a single decoder, RX Analyzer is intended as an experimental platform where several technologies can be combined:
DSP + SDR concepts + digital signal decoding + embedded systems + TinyML
The ESP32-S3 provides enough processing power and memory to experiment with these techniques while keeping the hardware relatively inexpensive and portable.
Current status
RX Analyzer is an active work-in-progress project.
The software has already been tested using recorded signals, PC-based simulators and a number of real-world signals.
The project is still being developed, and some areas require additional validation and refinement, particularly complete on-air testing, SD-card recording, enclosure design and integration of the ES8311 audio codec.
Technology stack
The project is built using:
ESP32-S3
ESP-IDF
PlatformIO
C/C++
Digital Signal Processing
FFT / spectrum analysis
TinyML / embedded machine learning
Wi-Fi
Touchscreen UI
Amateur-radio digital mode decoding
Open source
RX Analyzer is released as an open-source project under the MIT License.
The complete source code, documentation and development history are available on GitHub.