License: CC-BY-NC-SA
The device connects to a Wi-Fi network and retrieves propagation data from HAMQSL.com in XML format. It displays information like Solar Flux, sunspot number, K and A indices, and propagation conditions for HF, 6m, 4m, and VHF (2m) bands on a color TFT display. All XML data is parsed into variables in the code, so you can easily configure which information should be displayed or how it should be presented.
- Power on the device.
- If this is the first boot or Wi-Fi was reset, configuration mode will start.
- Connect to the Wi-Fi network named
HamQSL
. - Open your web browser and go to
192.168.4.1
to configure the Wi-Fi connection. - After saving, the device will connect automatically.
- Hold the RESET button (GPIO 32 to GND) during startup to reset Wi-Fi settings.
Section | Description |
---|---|
HF Band DAY/NIGHT | Propagation conditions for day/night |
K-Index | Geomagnetic disturbance index |
A-Index | Geomagnetic activity index |
Solar Flux | Solar radiation flux index |
Sunspots | Number of sunspots |
VHF 6m/4m/2m | 6m, 4m, and 2m band conditions (if available) |
- RED – poor conditions
- YELLOW – fair conditions
- GREEN – good conditions
If any of the bands (6m, 4m, 2m) is open (e.g., via tropo or aurora), its label appears in green.
- Data is automatically refreshed every 60 minutes.
- This interval can be changed by editing the
interval
constant in the source code. - Do not set the refresh interval below 60 minutes!
- Serial port runs at 115200 baud – useful for debugging.
- If Wi-Fi connection fails within 5 minutes, the device will restart automatically.
-
Microcontroller: ESP32
-
Display: TFT 2.8" ILI9341 (SPI)
-
Arduino Libraries:
- WiFiManager
- WiFiClientSecure
- ArduinoHttpClient
- Adafruit_ILI9341
- Adafruit_GFX
- Open Arduino IDE
- Go to Tools → Board → Board Manager
- Search for
esp32
- Install esp32 by Espressif Systems
- Select ESP32 Dev Module as your board
Install via Sketch → Include Library → Manage Libraries:
- WiFiManager by tzapu
- WiFiClientSecure
- ArduinoHttpClient by Arduino
- Adafruit ILI9341
- Adafruit GFX
- Download the project from GitHub:
https://github.com/canislupus11/HamQSL-XML-Parser/ - Open the
.ino
file in Arduino IDE - Select the correct COM port and board
- Upload the code to your ESP32
Proposal of 3d printed case:
If your TFT display shows a distorted or shifted image (e.g., noise bars, incorrect orientation, or strange colors), it's possible that your screen uses an ILI9342 controller instead of the expected ILI9341. Although Adafruit does not officially support ILI9342, the following workaround might help.
- Shifted or distorted image
Some displays using the ILI9342 controller have a different default screen orientation. To fix this, manually modify the header file of the Adafruit ILI9341 library.
Open Adafruit_ILI9341.h and locate:
#define ILI9341_TFTWIDTH 240
#define ILI9341_TFTHEIGHT 320
Replace them with:
#define ILI9341_TFTWIDTH 320
#define ILI9341_TFTHEIGHT 240
Recompile and upload the project. The image should now appear correctly.
- Incorrect colors (e.g., red appears blue, yellow appears cyan)
If your display shows swapped or incorrect colors, it may be operating in BGR mode instead of RGB.
Rather than attempting to change the display controller mode, you can manually adjust the color definitions in your code:
#define RED 0x001F // was 0xF800
#define YELLOW 0x07FF // was 0xFFE0
This simple fix allows the display to show correct colors without modifying controller registers.
If you are using TZT ESP32 LVGL screen - https://a.aliexpress.com/_EwsuCq6 there is a configuration inside that you have to uncomment and comment original one.
Urządzenie łączy się z siecią Wi-Fi i pobiera dane propagacyjne z serwera HAMQSL.com w formacie XML. Informacje takie jak Solar Flux, liczba plam słonecznych, indeksy K i A oraz warunki propagacyjne w pasmach HF, 6m, 4m i VHF (2m) są wyświetlane na kolorowym wyświetlaczu TFT. Wszystkie dane z XML są wyciągane do odpowiednich zmiennych w kodzie – dzięki temu można łatwo dostosować, które informacje mają być wyświetlane lub w jakiej formie.
- Włącz urządzenie.
- Jeśli to pierwsze uruchomienie lub sieć Wi-Fi została zresetowana, uruchomi się tryb konfiguracji.
- Połącz się z siecią Wi-Fi o nazwie
HamQSL
. - Otwórz przeglądarkę i wpisz
192.168.4.1
, aby skonfigurować połączenie Wi-Fi. - Po zapisaniu danych urządzenie połączy się automatycznie.
- Przytrzymaj przycisk RESET (GPIO 32 do masy) podczas uruchamiania, aby zresetować ustawienia Wi-Fi.
Pozycja | Opis |
---|---|
HF Band DAY/NIGHT | Warunki propagacyjne w dzień/noc |
K-Index | Wskaźnik zaburzeń geomagnetycznych |
A-Index | Wskaźnik aktywności geomagnetycznej |
Solar Flux | Strumień słoneczny (aktywność słońca) |
Sunspots | Liczba plam słonecznych |
VHF 6m/4m/2m | Warunki w pasmach 6m, 4m i 2m (jeśli dostępne) |
- Czerwony – słabe warunki
- Żółty – umiarkowane warunki
- Zielony – dobre warunki
Jeśli któreś z pasm (6m, 4m, 2m) jest otwarte (np. przez tropo, aurorę), informacja o tym pojawia się w kolorze zielonym.
- Dane są odświeżane automatycznie co 60 minut.
- Czas ten można zmienić, edytując wartość stałej
interval
w kodzie źródłowym. - Nie ustawiaj krótszego czasu odświeżania niż 60 minut!
- Port szeregowy działa z prędkością 115200 baud – można użyć go do diagnostyki.
- Jeśli połączenie z Wi-Fi nie powiedzie się w ciągu 5 minut, urządzenie uruchomi się ponownie.
- Mikrokontroler: ESP32
- Wyświetlacz: TFT 2.8" ILI9341 (SPI)
- Biblioteki Arduino:
- WiFiManager
- WiFiClientSecure
- ArduinoHttpClient
- Adafruit_ILI9341
- Adafruit_GFX
- Otwórz Arduino IDE
- Przejdź do Narzędzia → Płytka → Menedżer płytek
- Wyszukaj
esp32
- Zainstaluj esp32 by Espressif Systems
- Wybierz płytkę ESP32 Dev Module
Zainstaluj przez Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami:
- WiFiManager by tzapu
- WiFiClientSecure
- ArduinoHttpClient by Arduino
- Adafruit ILI9341
- Adafruit GFX
- Pobierz projekt z GitHuba:
https://github.com/canislupus11/HamQSL-XML-Parser/ - Otwórz plik
.ino
w Arduino IDE - Wybierz odpowiedni port COM i płytkę ESP32 Dev Module
- Wgraj kod do płytki
Propozycje drukowanej obudowy:
Jeśli Twój wyświetlacz TFT pokazuje zniekształcony obraz (np. przesunięcie, pasy szumu, nieprawidłowe kolory), możliwe, że trafił Ci się wariant sterownika ILI9342 zamiast ILI9341. Choć Adafruit oficjalnie nie wspiera ILI9342, istnieje proste obejście, które może rozwiązać problem.
- Obraz przesunięty, zniekształcony, odwrócony
W przypadku wyświetlacza o innej orientacji (np. ILI9342), należy zmodyfikować plik nagłówkowy biblioteki Adafruit_ILI9341.h.
Odszukaj linie:
#define ILI9341_TFTWIDTH 240
#define ILI9341_TFTHEIGHT 320
i zamień je na:
#define ILI9341_TFTWIDTH 320
#define ILI9341_TFTHEIGHT 240
Następnie skompiluj i wgraj projekt ponownie. Obraz powinien wyświetlać się prawidłowo.
- Nieprawidłowe kolory (np. czerwony = niebieski, żółty = błękitny)
Jeśli kolory na wyświetlaczu są pozamieniane, to prawdopodobnie ekran działa w trybie BGR zamiast RGB.
Zamiast próbować przełączać tryb kontrolera, możesz ręcznie dostosować definicje kolorów w kodzie:
#define RED 0x001F // was 0xF800
#define YELLOW 0x07FF // was 0xFFE0
To szybkie i skuteczne rozwiązanie, które pozwala dostosować kolory bez modyfikacji rejestrów sterownika.
Jeśli używasz TZT ESP32 LVGL screen - https://a.aliexpress.com/_EwsuCq6 w kodzie istnieją zakomentowane linie opisane modelem wyświetlacza, należy zakomentować orginalne i odkomentować te odpowiedzialne za ten wyświetlacz.