Build your own Flight Tracker in minutes—no coding, programming software, or Arduino IDE required. Simply connect your ESP32 to your computer, open the web flashing tool in your browser, and upload the firmware with a few clicks. It's the fastest and easiest way to get your Micro Radar Flight Tracker up and running, making it perfect for both beginners and experienced makers.
I'm using a 1.28" 240x240 pixels round display with GC9A01 driver.
2. 1.28" GC9A01 display (7 Pin Version)
AliExpress➡️ Buy option 1 Buy option 2
Circuit Diagram:
You must connect the GC9A01 display to the ESP32 CH340C version following the circuit diagram otherwise the display won't work for this firmware (But you can edit the source code given below to fit your hardware setup).
Flash firmware:
I've made a web flashing tool for direct firmware upload using web browser (please use Chrome).
Note: Follow instructions before flashing firmware.
Additional Note: Fixed known issues and bugs.
Setup guideline:
After uploading the firmware you need to setup the tracking location (latitude, longitude), api key etc.
- Follow Flashing guideline pdf for step-by-step process.
- Follow VScode guideline pdf for manual upload.
- Source code uploaded in drive link.
If you face any problems with the project, feel free to send me e-mail with a subject "micro radar round" to abid.business01@gmail.com




What size and type copper wire are you using for these?
ReplyDelete0.9mm dia solid copper wire
DeleteUnable to connect to Hot Spot @ 192.168.4.1
ReplyDeleteFixed. Try reflashing the firmware.
DeleteApparently open sky has changed their API to require secure authentication and although the firmware I flashed seems to work perfectly it fails to collect data from open sky according to my searches the issue is HTTPS or time retrieval for secure authentication. Below is the log file as well and AI's take on the issue. Please modify the Chrome firmware flasher to correct this issue. Thanks! ~Kevin.
ReplyDeleteets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13232
load:0x40080400,len:3028
entry 0x400805e4
*wm:AutoConnect
*wm:Connecting to SAVED AP: KEVLAR
*wm:connectTimeout not set, ESP waitForConnectResult...
*wm:AutoConnect: SUCCESS
*wm:STA IP Address: 192.168.0.94
[ 68035][E][ssl_client.cpp:37] _handle_error(): [data_to_read():361]: (-76) UNKNOWN ERROR CODE (004C)
[GET] HTTP Error (-2): send header failed
[WARN] OpenSky API request failed: send header failed
[177401][E][ssl_client.cpp:37] _handle_error(): [data_to_read():361]: (-76) UNKNOWN ERROR CODE (004C)
[GET] HTTP Error (-2): send header failed
[WARN] OpenSky API request failed: send header failed
[308582][E][ssl_client.cpp:37] _handle_error(): [data_to_read():361]: (-76) UNKNOWN ERROR CODE (004C)
[GET] HTTP Error (-2): send header failed
[WARN] OpenSky API request failed: send header failed
[418546][E][ssl_client.cpp:37] _handle_error(): [data_to_read():361]: (-76) UNKNOWN ERROR CODE (004C)
[GET] HTTP Error (-2): send header failed
[WARN] OpenSky API request failed: send header failed
This log indicates your ESP32 is connecting to Wi-Fi successfully, but failing when it tries to make an HTTPS request to the OpenSky API.
The important lines are:
*wm:AutoConnect: SUCCESS
*wm:STA IP Address: 192.168.0.94
This means:
✅ ESP32 booted normally.
✅ Connected to your Wi-Fi ("KEVLAR").
✅ Got an IP address.
Then:
[GET] HTTP Error (-2): send header failed
[WARN] OpenSky API request failed
This means the HTTPS connection failed before the HTTP request could even be sent.
Common causes
1. The ESP32's clock isn't set (most likely)
TLS/SSL certificates require the correct date and time.
If the ESP32 thinks it's 1970, the TLS handshake fails.
After Wi-Fi connects, add something like:
configTime(0, 0, "pool.ntp.org");
Then wait until the time is valid:
struct tm timeinfo;
while (!getLocalTime(&timeinfo)) {
delay(500);
}
Print the time to verify it.
2. Certificate verification
If you're using:
WiFiClientSecure client;
You either need
client.setCACert(root_ca);
or (for testing only)
client.setInsecure();
Without one of those, HTTPS often fails.
3. OpenSky changed its API
If you're using old example code, the endpoint or authentication may have changed.
OpenSky now requires authentication for many requests.
4. The URL is incorrect
For example:
https.begin(client, "https://opensky-network.org/api/states/all");
must be exactly correct.
I suspect #1
Because your error is:
send header failed
and not
404
or
401 Unauthorized
which suggests the TLS connection never completed.
Can you post these few lines from your code?
Specifically:
where you call configTime()
where you create WiFiClientSecure
where you call HTTPClient.begin()
Those 15–20 lines will usually reveal the problem immediately.
Please reflash the updated version, I have fixed the bugs.
DeleteFixed known issues and bugs.
ReplyDelete4th August, 2026.
This comment has been removed by the author.
ReplyDeleteThis is very cool, thanks. You should publish it on GitHub, it would be easier to report issues, propose fixes and track versions.
ReplyDeleteI had an issue that I solved with limiting the number of plane, because I'm in a zone where there are so many with the default 1.0° Radius that the firmware would crash per memory exhaustion, too fast to allow modifying through the web UI.
But it is still awesome!
This comment has been removed by the author.
DeleteI've built 3 of these, simple and fun!
ReplyDelete