A standalone DX Cluster and Propagation Monitor for ham radio operators. This touchscreen accessory provides real-time spots from HamAlert.org and detailed solar-terrestrial data for propagation forecasting on a color display.
The project is designed for the popular and affordable ESP32-2432S028R board (commonly known as the CYD - Cheap Yellow Display) but can be adapted for other similar ESP32-based display modules.
System Startup Sequence |
Main Screen (5 Spots + Prop) |
Main Screen (6 Spots) |
Extended Propagation View |
Clock Screen (UTC + Local) |
Device Info Screen |
- Real-Time DX Spots: Connects directly to HamAlert.org via telnet to display the latest DX spots.
- Comprehensive Propagation Data: Fetches and displays key solar data from HamQSL.com.
- Dual-View Main Screen: Choose between a full 6-spot view or a 5-spot view with a compact propagation summary.
- Multiple Clock Modes: Display time in UTC, local time, or both simultaneously.
- Touch Interface: All functions and settings are accessible via the touchscreen.
- Web-Based Configuration: A full settings panel accessible from any web browser on your network.
- On-Screen Touch Calibration: A built-in routine to calibrate the touchscreen for perfect accuracy.
- Persistent Settings: All your configurations are saved to the device's flash memory and automatically reloaded on startup.
- Power Management: Includes options for an inactivity-based deep sleep timer and a daily sleep/wake schedule.
- Audible Alerts: Plays a configurable tone for new spots (requires an external speaker).
- Automatic Update Checks: Periodically checks GitHub for new firmware releases and notifies you on the screen.
This project is specifically tailored for the ESP32-2432S028R board, powered via its standard USB port.
The board includes a 2-pin Micro JST (1.25mm pitch) socket for attaching a small external speaker (e.g., 8 Ohm, 0.5W). This enables audible alerts for new DX spots.
The volume is software-adjustable with four predefined levels (plus a mute option). If the lowest setting is still too loud, it is recommended to connect the speaker in series with a current-limiting resistor to further decrease the volume.
⚠️ Important Note on Board Variations: There are several hardware revisions of the ESP32-2432S028R board. While they may look identical, they can have minor differences in pin connections. TheUser_Setup.hfile provided in this repository is configured for a common version. If you experience issues, you may need to adjust the pin definitions in this file to match your specific board.Additionally, some board revisions may exhibit inverted colors out of the box (e.g., white text appearing black). This is easily corrected by toggling the 'Invert Colors' option in the Display Settings menu.
Also, some displays may require a different orientation. Use the Screen Rotation setting in the Display Settings menu to rotate the screen in 90-degree increments.
1. Prepare Arduino IDE
- Install the Arduino IDE and the ESP32 board manager.
- Select ESP32 Dev Module as your board.
2. Install Required Libraries
- In the Library Manager, install:
3. Configure the Display Library (Crucial Step!)
- Locate the
TFT_eSPIlibrary folder on your computer. - Replace the
User_Setup.hfile inside it with theUser_Setup.hfile from this project.
4. Upload the Firmware
- Open the
ESP32_ham_combo.inofile, select the correct COM port, and click "Upload".
On the first boot, the device enters Configuration Mode.
- Connect to the Wi-Fi network
ESP32-Ham-Combo-Setup. - Open a browser and go to
http://192.168.4.1. - Enter your home Wi-Fi details. (HamAlert credentials are optional here; they can also be configured later via the web interface).
- Save and restart.
❗ This is a required step to receive any spots!
You must configure your HamAlert account to send spots via Telnet.
- Log in to hamalert.org.
- Go to Triggers.
- For each trigger you want to see on the device, ensure the Telnet action is enabled.
After connecting to your network, you can access the full settings panel by entering the device's IP address (shown on startup) into your browser. Advanced settings, such as Timezone and Daylight Saving Time rules, are only available through this web interface. You can also start the touchscreen calibration process from here.
The interface is controlled entirely by the touchscreen.
- Buttons: Use the on-screen buttons like
Clock,Prop.,Setup, andBackfor primary navigation. - Tap to Return: On full-screen views that do not have a "Back" button (such as the Clock and Propagation screens), simply tap anywhere on the screen to return to the main spots view.
- Tap to Wake: To wake the device from deep sleep (when the screen is off), tap the screen once.
- DX Spots: DX Spots are received in real-time. The device maintains a persistent connection to HamAlert, and new spots are displayed the moment they are received. For added reliability, the connection is automatically refreshed every hour.
- Spot Elapsed Time: The elapsed time next to each spot (e.g.,
5m) is updated every 30 seconds. - Propagation Data: The solar and propagation data is fetched from HamQSL.com every 30 minutes.
- Firmware Update Check: The device checks for new software versions on GitHub once every 24 hours, if this feature is enabled in the settings.
The colors on the propagation screen are based on standard conventions to help you quickly assess conditions. The thresholds are adapted from resources like qsl.net/4x4xm.
| Parameter | 🟢 Best | 🟡 Average | 🟠 Poor / Low | 🔴 Bad |
|---|---|---|---|---|
| Solar Flux (SFI) | ≥ 172 | 124-171 | 83-123 | < 83 |
| K-Index | 0-1 | 2-3 | 4-6 | ≥ 7 |
| A-Index | 0-7 | 8-15 | 16-47 | ≥ 48 |
| X-Ray Flares | A, B, C | - | M-class | X-class |
Unresponsive or Inaccurate Touchscreen
If the touch input is not working correctly, follow these steps.
-
Run Calibration from the Web Interface
- Go to the device's web interface using its IP address.
- Click the "Start Touch Calibration" button.
- Follow the instructions on the device's screen. This is the primary method to fix calibration issues.
-
If Calibration Fails or is Inaccessible
- This can happen if the touch controller pins in your
User_Setup.hare incorrect for your specific board revision, causing the calibration routine itself to fail. - To perform a full reset, you must erase the entire flash memory, which stores the faulty calibration data.
- In the Arduino IDE, go to
Tools > Erase All Flash Before Sketch Uploadand selectEnabled. - Re-upload the sketch.
-
⚠️ This will completely wipe the device, including Wi-Fi settings, forcing it back into the initial configuration mode.
- This can happen if the touch controller pins in your
This project is released under the CC BY-NC-SA 4.0 License (Attribution-NonCommercial-ShareAlike 4.0 International) by Leszek HF7A.
Commercial use is prohibited.
See the LICENSE file for details.
- DX spot data is provided by HamAlert.org.
- Solar propagation data is courtesy of HamQSL.com.
TFT_eSPIXPT2046_TouchscreenESPAsyncWebServerArduinoJson- and others.
- The initial concept for fetching and parsing propagation data from HamQSL.com was inspired by the HamQSL-XML-Parser project by canislupus11.





