ESP32 and Amateur Radio: 10 Projects for Makers and Ham Radio Operators

·

This page has been automatically translated. Errors may occur.

The ESP32 has become the favorite microcontroller of many radio amateurs in recent years – and for good reason. With integrated Wi-Fi and Bluetooth, two processor cores, numerous GPIO pins, and a street price of under 5 EUR, this small chip from Espressif offers everything a maker’s heart desires. The ESP32 is particularly well-suited for amateur radio projects: it can be easily programmed with the familiar Arduino IDE, consumes only microamperes in deep sleep mode, and provides enough processing power for demanding real-time applications. Whether it’s an APRS tracker for your backpack, an automatic CW keyer, or a spectrum display for the shack – the possibilities are virtually limitless.

In this article, we present ten concrete projects that you can implement as a radio amateur with an ESP32. All projects are field-tested, most are based on open-source software, and can be replicated with manageable effort. From beginner projects to sophisticated solutions, there’s something for everyone – whether you’re just starting with homebrewing or already have experience with microcontrollers. Let’s get started!

Why the ESP32?

Before we dive into the individual projects, it’s worth taking a brief look at the technical advantages of the ESP32. The chip is based on a Dual-Core Xtensa LX6 processor with up to 240 MHz clock frequency and features 520 KB SRAM as standard. Most development boards like the popular ESP32 DevKit V1 (approx. 4-6 EUR from Austrian dealers or AliExpress) also offer 4 MB flash memory. This is more than sufficient for complex programs and even OTA updates (Over-The-Air).

Particularly practical: The ESP32 comes with Wi-Fi (802.11 b/g/n) and Bluetooth (Classic and BLE) already onboard. This makes it ideal for networked amateur radio applications that transmit data to the Internet or are controlled via smartphone. The Arduino compatibility makes getting started enormously easier – you can draw on thousands of existing libraries and don’t have to struggle with low-level programming. At the same time, the native Espressif tools are also available if you need more control.

The numerous interfaces are also important for amateur radio projects: The ESP32 offers multiple UART, SPI, and I2C buses, up to 18 ADC channels (12 bit), and two DAC outputs (8 bit). With the right circuitry, you can control GPS modules, displays, audio codecs, and even HF transceivers. The low power consumption (under 10 µA in deep sleep) also makes the ESP32 perfect for battery-powered portable projects.

Project 1: APRS Tracker with GPS and LoRa

A classic for beginners: The APRS tracker automatically transmits your position to the Automatic Packet Reporting System. Instead of using the 2m band via FM, you can also use LoRa – this saves power and often works where no APRS digipeaters are within range. The open-source firmware LoRa APRS Tracker by OE5BPA (available on GitHub) was specifically developed for this purpose.

Required Hardware

  • ESP32 development board (e.g., TTGO T-Beam with integrated GPS and LoRa, approx. 25-30 EUR)
  • 868 MHz LoRa antenna (approx. 5 EUR)
  • 18650 LiPo battery and holder (approx. 8 EUR)
  • Optional: External GPS module with better sensitivity

The advantage of the TTGO T-Beam: The ESP32, GPS module (often NEO-6M or better NEO-M8N), and LoRa transceiver (SX127x) are already combined on one board. You simply load the finished firmware onto the board via USB, configure your callsign and SSID in the config file, and you’re ready to go. The position is transmitted by default every 60 seconds when moving, or every 10 minutes when stationary – this conserves the battery.

There are already several LoRa APRS iGates in Austria, among others operated by the ÖVSV. These receive your LoRa packets and feed them into the APRS Internet system, where they become visible on aprs.fi and other tracking sites. The range is impressive: From exposed locations, 50-100 km is not uncommon, even in valleys the connection often works over 10-20 km. Perfect for hikes, bike tours, or operating from Austrian summits!

Project 2: Automatic CW Keyer with Paddle Support

Attention telegraphy fans: With an ESP32 and a few additional components, you can build yourself a full-featured Iambic keyer for CW. The project is excellent for beginners in homebrewing, as the circuit remains clear and the software is based on proven algorithms. The finished Morse characters can directly control the transceiver or be transmitted to the computer via USB – practical for contests or practice.

Features

  • Iambic Mode A and B
  • Adjustable speed (5-50 WPM) via potentiometer or rotary encoder
  • Sidetone generator with adjustable pitch (400-1000 Hz)
  • Memory storage for frequent texts (CQ, TEST, 73, own callsign)
  • Beacon mode for automatic transmissions
  • Display showing current settings

For the keyer, you need in addition to the ESP32 (a cheap DevKit for approx. 4 EUR is sufficient) a dual paddle or two individual key switches, a small OLED display (0.96 inch, I2C, approx. 3 EUR), a rotary encoder for speed adjustment (approx. 2 EUR), and some passive components. For the sidetone, you use either the built-in DAC of the ESP32 or a small speaker/piezo buzzer. The transistor output stage for switching the transceiver should be optically isolated – a simple optocoupler module (approx. 1.50 EUR) is perfectly sufficient.

As a software base, the K3NG CW Keyer firmware is suitable, which was originally developed for Arduino but can be easily ported to the ESP32. Alternatively, there are projects specifically optimized for the ESP32 like the morserino-32 (open source), which additionally includes CW decoder and practice functions. The source code is available on GitHub and well documented – ideal for learning and customizing.

Project 3: Web-Controlled Antenna Rotator

Anyone who owns a rotatable directional antenna knows the problem: The classic rotator controller is usually located directly at the transceiver, which can be impractical in larger shacks. With an ESP32, you can build a Wi-Fi-controlled rotator controller that you operate via smartphone, tablet, or computer from anywhere in the house. Particularly clever: Integration with contest logging software like Ham Radio Deluxe or N1MM Logger+ works via the Yaesu GS-232 protocol over Wi-Fi.

The hardware consists of the ESP32, a stepper motor driver (e.g., A4988 or TMC2208, approx. 5-8 EUR) for smooth movements, a sufficiently dimensioned stepper motor or an existing rotator motor, an absolute encoder or potentiometer for direction indication, and a suitable power supply (usually 12V). Many commercial rotators can be integrated directly by tapping the control lines – then you only need the interface between the ESP32 and rotator electronics.

The ESP32 provides a web server through which you see the current antenna direction (ideally on a graphical compass rose) and enter new directions. Via AJAX, the display updates in real time – you immediately see the antenna rotating. Additionally, the ESP32 can speak the GS-232 protocol via a TCP port, so your logging software automatically points the antenna at the DX station. This is not only convenient but saves valuable seconds during pile-ups.

A nice feature for the Austrian market: Integration of DX cluster data. The ESP32 can connect to a DX cluster like DX Summit and automatically display interesting stations on a map. With one click, you then optimally align the antenna. A real asset especially for contests or DXpeditions!

Project 4: Spectrum Display for SDR and Classic Transceivers

Modern transceivers often have a built-in spectrum display, but many older devices or SDRs use the computer screen for this. With an ESP32 and a suitable TFT display, you can build yourself a standalone bandscope that you can place directly at the transceiver. The display continuously shows the HF spectrum in real time – so you can see at a glance where activity is currently occurring.

There are various approaches: The simplest variant uses an RTL-SDR stick (approx. 25-30 EUR) connected via USB to the ESP32 – however, you quickly run into the limits of the ESP32’s USB host capabilities. More elegant is the use of a dedicated Si5351 generator (approx. 5 EUR) as a local oscillator and an AD8307 logarithmic amplifier (approx. 8 EUR) as a signal strength detector. The ESP32 then scans through the desired frequency band and measures the signal strength each time.

As a display, a 3.5-inch TFT with ILI9486 or ILI9488 controller (approx. 10-15 EUR) is suitable, controlled via SPI. The resolution of 480×320 pixels is more than sufficient for a clear spectrum display. With the TFT_eSPI library for Arduino, you draw the spectrum as a waterfall diagram or classic line display. The refresh rate depends on the scan speed – with optimized code, 5-10 passes per second are achievable.

For owners of an IC-7300, IC-705, or similar Icom transceivers, there’s an even more elegant solution: These devices can output spectrum data via the CI-V interface (UART at 19200 or 115200 baud). The ESP32 simply receives this data serially and displays it – without additional RF hardware. A corresponding open-source project called IC-7300 Panadapter can be found on GitHub.

Project 5: WSPR Beacon for 10 Meters to 160 Meters

With WSPR (Weak Signal Propagation Reporter), you can study propagation on the shortwave bands, even with minimal transmit power. An ESP32-based WSPR beacon is quickly built and automatically transmits a WSPR signal every two minutes. Your transmissions are received by stations worldwide and logged on wsprnet.org – so you see in real time where your signal is reaching.

The heart of the beacon is again the Si5351 synthesizer, which generates the precise frequencies for WSPR. The ESP32 generates the WSPR symbols according to the official protocol and modulates the Si5351 accordingly. A simple wire antenna or a balun transformer to the existing station antenna is sufficient. The output power is about 10 mW (10 dBm) – that’s admittedly little, but completely sufficient for WSPR. With an SA612 or BS170-based amplifier, you can increase the power to 200-500 mW.

Important for WSPR is time accuracy: The transmissions must begin exactly at even minutes (0, 2, 4, 6 seconds, etc.). The ESP32 synchronizes via NTP (Network Time Protocol) over Wi-Fi with a time server – the accuracy is within a few milliseconds, which is more than sufficient for WSPR. A GPS module (e.g., NEO-6M, approx. 8 EUR) offers even more precise time as an alternative and also works without internet access.

You can either write the firmware yourself (the WSPR protocol is well documented) or use existing projects like ESP32-WSPRer. In addition to WSPR, many of these firmwares also support other weak signal modes like JT9 or FT8 – the latter is currently very popular among OE3 stations in Austria. Note, however: For FT8, you need more transmit power (at least 1-5 W), as the sensitivity is not quite as high as with WSPR.

Project 6: Multiband SWR Meter with Touch Display

A precise SWR meter is part of the basic equipment of every station. With an ESP32, some RF sensors, and a touch display, you can build yourself a digital measuring device that not only displays SWR but also calculates forward and reverse power, PEP power, and antenna impedance. Thanks to the display, the values can be clearly presented, and different modes can be accessed via touch operation.

A commercial tandem match or a self-built directional coupler with Schottky diodes for rectification is suitable as a sensor. The voltages are read via the ESP32’s ADCs – for better accuracy, an external 16-bit ADC like the ADS1115 (approx. 5 EUR) is recommended. Calibration is done with known terminations (50 Ω, short circuit, open circuit) and is stored in flash memory.

The touch display (e.g., 2.8-inch ILI9341 with resistive touch, approx. 12 EUR) shows the measured values in real time. With a finger tap, you switch between different views: numeric display, bar chart, Smith chart, or trend graph. Particularly practical is the peak hold function, which stores the highest value – so you can immediately see when tuning the antenna whether the SWR has improved.

For advanced users, Wi-Fi integration is available: The ESP32 sends the measurement data via UDP or MQTT to logging software or to Grafana for graphical evaluation. This way, you can monitor long-term trends or automatically raise an alarm if the SWR exceeds a critical value. A useful feature especially for remote stations or QRP portable operation.

Project 7: Audio Recorder and Analyzer for Contests

In contests, it’s sometimes useful to record received audio signals – whether for later evaluation, for evidence in disputed QSOs, or simply to work on callsigns afterward. The ESP32 is excellently suited for this task with its dual-core architecture: One core handles audio recording, the other handles storage to SD card.

For recording, you use an I2S microphone module like the INMP441 (approx. 3 EUR) or an I2S audio codec like the MAX98357A (approx. 4 EUR), which you connect to the transceiver’s line out. The ESP32 records the signal at up to 44.1 kHz and 16 bit and stores it as a WAV or MP3 file on a microSD card. With MP3 compression (via libhelix library), hours of contest operation fit on a 32 GB card.

In addition to pure recording, the ESP32 can also perform live analyses: With the FFT library, you perform real-time frequency analysis and display the audio spectrum on an OLED display. This helps with optimizing AF filters or tracking down interference. A built-in CW decoder (based on the Goertzel algorithm) automatically recognizes Morse characters – practical for mixed-mode contests.

A nice extra is PTT detection: Via a GPIO pin, the ESP32 detects when you’re transmitting and automatically pauses recording. This keeps recordings manageable and saves storage space. After the contest, you upload the files via Wi-Fi to your computer or stream them directly to the cloud – ideal for multi-op stations where multiple operators need access to the recordings.

Project 8: Remote Tuner Controller with Motor Control

Automatic antenna tuners are practical, but often expensive – and tuning is done via relays, which leads to wear with frequent band changes. With an ESP32 and stepper motors, you can implement a motor-driven antenna tuner that tunes smoothly and precisely. Control is via web interface or via an app on your smartphone.

The mechanics consist of two variable capacitors (or varicaps for modern solutions) and a switchable coil. Stepper motors (e.g., 28BYJ-48 with ULN2003 driver board, approx. 3 EUR per set) rotate the capacitors to the right position. The ESP32 measures the SWR via ADC (via a upstream directional coupler) and automatically optimizes the tuner setting – a classic PID controller finds the minimum in a few seconds.

Particularly clever: The ESP32 stores the optimal tuner settings for each frequency in a database. On the next band change, it immediately moves to the stored position – fine-tuning then takes only fractions of a second. With modern transceivers with CAT interface (e.g., via CI-V or Kenwood protocol), the ESP32 automatically reads the current frequency and selects the appropriate settings.

The Wi-Fi connection enables remote operation: You control the tuner from the logging software or via smartphone app. This is particularly important for remote stations where the tuner sits outside at the antenna. An optional battery backup circuit (LiPo battery + charge controller, approx. 10 EUR) ensures that the ESP32 retains the stored positions even during power outages.

Project 9: Satellite Tracking System with Automatic Doppler Correction

Amateur radio via satellites is fascinating, but manual tracking of frequency and antenna is laborious. An ESP32-based tracking system calculates the satellite orbit in real time, displays the optimal antenna direction, and automatically corrects the Doppler shift. An enormous relief especially for beginners in satellite radio.

The system consists of an ESP32, a GPS module for location determination (important for precise orbit calculation), and optionally a display. The satellite TLE data (Two-Line Elements) is downloaded by the ESP32 via Wi-Fi from celestrak.org and stored locally. The SGP4 library (available for Arduino) calculates the satellite’s position and velocity relative to the location.

For Doppler correction, the ESP32 controls your transceiver via CAT interface: When approaching, the frequency is corrected upward, when moving away, downward. The correction occurs continuously during the pass – you practically don’t notice it, but the other station hears you constantly on the right frequency. This works with all common transceivers that speak Icom CI-V, Yaesu CAT, or Kenwood protocol.

An additional feature is pass prediction: The ESP32 calculates in advance when which satellite will come into view, what the maximum elevation angle will be, and whether visibility is sufficient for a QSO. It displays this data on the display or sends it via MQTT to Home Assistant, which then notifies you via push notification on your smartphone. A real added value for popular satellites like AO-91, AO-92, or the ISS.

Project 10: Smart Home Integration for the Radio Station

Integrate your radio station into your smart home? With the ESP32 and the MQTT protocol, your shack becomes a connected workspace. The ESP32 acts as the central interface between radio technology and home automation – whether you use Home Assistant, ioBroker or another smart home system.

In the simplest case, the ESP32 monitors the status of your station: Is the transceiver on? Which band is currently active? Transmitting or receiving? It reads the data from the transceiver via the CAT interface and publishes it via MQTT. In Home Assistant, you can then build automations: When PTT is active, dim the shack lights. When the transceiver is on 2m, switch on the preamplifier. After QRT at 10 PM, park the rotator.

Particularly useful is sensor integration: A BME280 (approx. EUR 4) measures temperature, humidity and air pressure in the shack – important when the station is in an unheated room or attic. An INA219 module (approx. EUR 3) monitors voltage and current consumption of the 13.8V power supply. Via MQTT, all values end up in Grafana or a Home Assistant dashboard – even when you’re not at home.

For remote stations, it gets really interesting: The ESP32 controls power to individual devices via a relay module (4-channel or 8-channel, approx. EUR 5) – transceiver, amplifier, rotator, preamplifier. You can start up the station via smartphone, operate, and shut everything down again. An optional watchdog timer shuts everything off if the WiFi connection drops for more than 10 minutes – safety first.

Another use case: notifications. The ESP32 monitors the DX cluster via Telnet and filters for desired DXCC entities or bands. When a wanted DX appears, it sends a push notification to your smartphone – no more constantly watching the cluster. Combined with the antenna control from Project 3, it even turns the beam in the right direction.

The cost for this project is modest: ESP32 (EUR 6) + relay module (EUR 5) + BME280 (EUR 4) + INA219 (EUR 3) + small parts and enclosure (approx. EUR 10) = under EUR 30 for a complete shack automation. The software is based on ESPHome – an open-source framework developed specifically for ESP32 and Home Assistant that requires no programming knowledge. Configuration is done via YAML file.

Conclusion

The ESP32 has established itself as a versatile building block for amateur radio projects. From simple CW keyer control to complex satellite tracking systems – the combination of processing power, WiFi, Bluetooth and numerous interfaces makes this microcontroller the ideal platform for makers in amateur radio. Costs per project are usually under EUR 50, and thanks to the large Arduino and ESP-IDF community, you’ll find a solution for almost every problem.

All presented projects can be expanded and combined modularly. And the best part: you don’t need an engineering degree – basic Arduino programming knowledge and some soldering skills are enough to get started. So: soldering iron on and 73!

The final project combines amateur radio with modern smart home technology: An ESP32 connects your radio station to systems like Home Assistant, openHAB, or ioBroker. This enables automatic switching of equipment, monitoring of operating states, and intelligent control based on external factors like time of day, weather, or band conditions.

The ESP32 acts as a bridge between your transceiver (via CAT interface), power supplies, antenna switches, and the smart home system. Via MQTT or REST API, it transmits current operating data: frequency, mode, S-meter reading, power consumption, and much more. Conversely, you can send commands from the smart home system – for example, to automatically switch to a specific band or shut down all equipment at a certain time.

Practical scenarios: Your smart home system recognizes via solar radiation sensor when good Es propagation is likely and sends you a notification. Or it automatically switches on the linear amplifier when you exceed a certain power threshold. Energy monitoring via smart plugs helps identify power-hungry devices in the shack. Integration with weather stations enables automatic shutdown during thunderstorms – for safety and equipment protection.

The ESP32 can also control intelligent relay boards to switch antennas, amplifiers, or accessories. With ESPHome (a framework specifically for smart home integration of ESP32/ESP8266) you create configuration files instead of writing code – ideal for users who prefer not to program. The result is a modern, networked radio station that adapts intelligently to your operating habits.

Conclusion: Endless Possibilities with the ESP32

The ESP32 has earned its place in the shack of modern radio amateurs. The ten projects presented here are just a small selection of what’s possible with this versatile microcontroller. Whether you’re interested in digital modes, satellite radio, contest operation, or simply want to make everyday station life more convenient – the ESP32 offers the right platform.

The combination of low cost, high performance, and extensive connectivity makes the ESP32 the ideal choice for amateur radio projects. The large community ensures constant new projects, libraries, and improvements. And thanks to Arduino compatibility, the entry barrier is low – even without deep programming knowledge, you can achieve impressive results.

Our tip: Start with a simple project like the APRS tracker or CW keyer. Once you’ve gained experience, you can tackle more complex solutions like the satellite tracking system or smart home integration. The investment in hardware is manageable, the learning effect is enormous, and the fun of homebrewing is guaranteed. Have fun building and experimenting!

73 – your oeradio.at editorial team


Transparency Notice

This article was researched and written with the assistance of AI (Claude, Anthropic). The editorial team has reviewed and edited all content. Despite careful review, occasional inaccuracies may occur — we welcome corrections via email to [email protected].

How do you rate this article?
No cookies are set. Only your rating, optional feedback, and an anonymised IP hash (to prevent duplicate votes) are stored. Privacy policy
„Wire and will, we’re breaking through – Share · Connect · Create!

You build antennas, activate summits, experiment with SDR, or hack Meshtastic nodes? OERadio.at is your platform. Share your knowledge – as an article, build guide, field report, or tech tip. Whether experienced YL or OM, freshly licensed or old hand: Your experience matters.