ESP32 Plane RADAR With Early Warning Aircraft Announcements

by oliverb in Circuits > Arduino

123 Views, 2 Favorites, 0 Comments

ESP32 Plane RADAR With Early Warning Aircraft Announcements

workingModuleSpit6to5.png
TimelapseAnim700.gif
planeRadaranim.gif

Full build details on my web site here https://www.brettoliver.org.uk/Aviator_Clock/aircraft_radar.htm


An ESP32 based aviation RADAR with a 1.28" Round 240x240 TFT display.

Mounted in a 3D printed aviation style case, the display shows real time air traffic data.

Spoken warnings from a mini speaker built into the base are announced when aircraft on a list of a set types are detected.

This list of aircraft types can be customized to include any "special" aircraft types you are looking out for.

The RADAR displays can be set to any location in the country and distances of 3miles to 16miles from that location.

Powered from a standard USB power supply the ESP32 S3 version draws around 120mA while the ESP32 C3 version uses around 100mA.


The radar display is based on an original design by matixovi.

Software versions available for ESP32 C3 and S3 super mini microcontrollers.

Supplies

ESP32C3SuperMiniSide.jpg
ESP32S3SuperMini.jpg
JQ6500Module.jpg
SpeakerMicro01.jpg
RoundTFTFrontSide.jpg
MP1495RegModuleSide.jpg
M2NutBolts.jpg
M2SelfTappers.jpg
MicroSelfTappers.jpg
BrassInsert.jpg
SwitchPCB.jpg
USBC2Pin.png

Electronic Modules

  1. ESP32 C3 Supermini or ESP32 C3 Supermini 1 off
  2. JQ6500 sound module 1 off
  3. Micro Speaker 1 off
  4. GC9A01 1.28" Round 240x240 TFT display 1 off
  5. MP1495 preset voltage regulator module set to 3.3v


Hardware

I purchase sets of hardware rather than individual parts as it works out far cheaper.

6 M2 Hex Nuts and Bolt Set

7 M2 Self Tapper Set

8 Miniature Self Tapper Set These are for the bezel around the display and can be ommitted if the bezel is glued in place.

9 Threaded Brass Insert M2x3x4mm



Misc Electronic

10 6x6x8mm Tactile Push Button PCB Switch Momentary 2 off

11 USB C Module 1 off

Veroboard


Misc

Superglue/Hot Melt Glue

Video

ESP32 Plane RADAR with Early Warning Aircraft Announcements

This Video gives a general overview of the Aircraft RADAR and shows the RADAR detecting and announcing a Supermarine Spitfire and a B17 Flying Fortress.

3D Printed Parts

MeterFrontRear.jpg
MeterFrontFront.jpg
MeterSurround.jpg
MeterRearFront01.jpg
MeterRearInserts.jpg
EndCap.jpg
SwitchSpacer.jpg
Washer25545.jpg
JQ6500VeroSpacer.jpg
washer2_5x5mm.jpg
MeterBracket.jpg
BaseRear01.jpg
BaseLid01.jpg
SpeakerCoverMount.jpg
RAFSpeakerGrillBlack.jpg

Pic 01 3D part name MeterFront 1 off

This is the rear view showing the recess for the TFT display.

The two raised tabs are for the M2 self tappers that secure the TFT display in place.


Pic 02 3D part name MeterFront

This is the front view of this part.

The four small holes are for the 3D MeterSurround part to fix to.


Pic 03 3D part name MeterSurround 1 off

Fixes to the 3D part MeterFront with 4 off M1.4 round head self tappers.


Pic 04 & 05 3D part name MeterRear 1 off


Pic 06 3D part name Endcap 1 off

The switches and JQ6500 module are mounted on this part.


Pic 07 3D part name SwitchSpacer 1 off

Fits in the Endcap and spaces the switch Veroboard off the Endcap.


Pic 08 3D part name washer2_5x5x4_5 Qty 2 off

Spaces and insulates the switch Veroboard and JQ6500 Veroboards.


Pic 09 3D part name JQ6500VeroSpacer 1 off


Pic 10 3D part name washer2_5x5mm 2 off

Insulates the M2 bolt on the rear of the switch Veroboard.


Pic 11 3D part name MeterBracket 1 off

Connects the MeterRear to the BaseLid with 2 off M2 nuts bolts and washer.



Pic 12 3D part name BaseRear 1 off

Threaded inserts for mounting the 3.3v power module.

The micro speaker fits in the square hole.


Pic 13 3D part name BaseLid 1 off

The 2 small holes are for the 3D part MeterBracket and the large hole is for routing the cables from the base.


Pic 14 3D part name SpeakerCoverMount

Fixed to the BaseRear with 4 off M2 SelfTappers and washers.


Pic 15 3D part name RAFSpeakerGrillBlack 1 off

Fits inside the cutout of the SpeakerCoverMount with a dab of super glue



Controls

FullCaseRear01.jpg

The four control buttons are situated on the rear of the display case.

Note a double press of the RADAR range key sends a command from the ESP32 to the JQ6500 sound module to play last announcement.

This tests the transmit and receive connections between the two modules are in place and or are not crossed over.


Veroboards

VeroFrontModule.jpg
Verofrontnomodule.jpg
VeroFrontRear.jpg
VerofrontSwitch.jpg
VerofrontSwitchRear.jpg

1-3 JQ6500 board

4-5 Control Panel

Mounting the Veroboards

VeroEndcap04.jpg
VeroEndcap03.jpg
VeroEndcap02.jpg
VeroEndcap01.jpg

Pic 01

Position the Veroboard spacers as shown.

The top spacer is for the JQ6500 Veroboard.

This is glued in place (temp held in place with a self tapper).

When the glue is dry the self tapper is removed and the spacer forms part of the fixing point for the control panel cap.


Pic 02

The control panel Veroboard sits on top of the switchspacer 3D part so the switch knobs protrude out the back of the end panel.

Fix in place with an M2 nut, bolt and 1 off M2 stainless washer and 1 off 3D printed washer2_5x5mm on the copper side of the board.

Position 2 off Veroboard insulating spacer 3D part washer2_5x5x4_5 over the lower bolt holes on the control panel Veroboard.


Pic 03

Sit the JQ6500 Veroboard on the spacer positioned above and on the JQ6500 spacer

Fix in position with 2 off M2 nuts, bolts and 4 off washers.


Pic 04

Insert the JS6500 module into the socket on the Veroboard.

Schematic

SchematicC31400.jpg
Screenshot 2026-09-12 103830.png
SchematicS31400.jpg
Screenshot 2026-09-12 103919.png

Pic 01/02

This is the schematic for the ESP32 C3 version.


Pic 03/04

This is the schematic for the ESP32 S3 version.


Full size schematics on my site here.

Assembly

JQ6500pModule02.jpg
JQ6500pModule.jpg
JQ6500pModule01.jpg
CompletedWiredModule.jpg
CompletedWiredModule01.jpg
BaseRear01.jpg
BaseRearPSU.jpg
SpeakerHolder.jpg
SpeakerMicro01.jpg
Microspeakercrop.jpg
DisplayModuleWiring.jpg
JQ6500moduleconnected.jpg
aircraftModuleSpit.jpg
FullCaseRear.jpg

Pic 01 Veroboard & spacer locations endcap.

Pic 02 JQ6500 Veroboard sitting on the JQ6500 spacer (temp. fix screw shown in place).

Pic 03 Location of the JQ6500 Spacer

Pic 04 Completed display board with ESP32 wired to the JQ6500 board ready to be inserted into the 3D part "MeterRear".

The blue/white and white wires are the transmit and receive to control the JQ6500.

The red/blue wire is the RADAR range control from the panel switch.

Note the insulation tape over the components on the rear of the display board.

Connections to the speaker, 5v and 3.3v supplies in the base will complete the wiring.

Pic 05 Reverse view.

Pic 06 Rear base with brass inserts for the MP1495 power module.

Pic 07 MP1495 modules bolted in place with M2 bolts and washers.

The micro speaker has the mounting tabs cut off and is glued into the opening in the front.

The speaker, 5v and 3.3v wires are fed up through the hole in the base lid and into the "meterRear" 3D part.

The USBC socket is fixed to the rear hole with M2 self tappers.

Pic 08 3D part "RAFSpeakerGrillBlack" is glued into the 3D part "SpeakerCoverMount".

This combination make up the speaker grill which is then screwed to the "RearBase" to form the speaker grill.

Pic 09 Micro Speaker

Pic 10 Before gluing into the "RearBase" the fixing tabs are cut off the sides of the speaker.

Pic 11 The display board is screwed to the 3D part "meterFront" with 2 off M2 self tappers.

Wires are connected to the display connections and then soldered to the ESP32 module.

Note the solid core wires hold the ESP32 in place.

Pic 12 Power module and JQ6500 modules fixed and wired in place.

The red/blue, blue/white, white, black and purple wires are connected to the display board to complete the wiring.

Pic 13 The 3D part "metersurround" is screwed to the 3D part "meterfront" with 4 off M1.5 self tappers.

The 3D part "meterfront" is then bolted to the 3D part "meterrear" with M2 bolts.




Modifying the List of Aircraft Audio Alerts

Planes.png

Pic 01 I have included a list of rare aircraft types I am interested in and have a reasonable expectation that they will fly over my house if only a couple of times a year.

You will probaly require a different list to me so here is the details of how to modify the list.


Location of files

Go to your Visual Studio folder location \src\services and open adsb_client.h in an editor.

At around line 33

// ============================================================

// Aircraft detection / voice announcement

// ============================================================

constexpr float kVoiceDetectionRadiusKm = 9.4f;

-------------------------------------------------------------------------------------------------------------------------------------------

VoiceDetectionRadiusKm is the distance in which the aircraft in your list will be announced.

Note 9.4f is in km not miles.



Look for the following around line 38

This is the list of MP3 files stored on the JQ6500.

-------------------------------------------------------------------------------------------------------------

// JQ6500 file indexes.

// Change these numbers to match the files stored in your JQ6500.

constexpr unsigned int kVoiceAnson = 1;

constexpr unsigned int kVoiceCatalina = 2;

constexpr unsigned int kVoiceCorsair = 3;

constexpr unsigned int kVoiceCurtesWarhawk = 4;

constexpr unsigned int kVoiceDakota = 5;

constexpr unsigned int kVoiceFlyingfortress = 6;

constexpr unsigned int kVoiceHarvard = 7;

constexpr unsigned int kVoiceHawk = 8;

constexpr unsigned int kVoiceHurricane = 9;

constexpr unsigned int kVoiceLancaster = 10;

constexpr unsigned int kVoiceMosquito = 11;

constexpr unsigned int kVoiceMustang = 12;

constexpr unsigned int kVoiceSpitfire = 13;

constexpr unsigned int kVoiceCurtesSteerman = 14;

constexpr unsigned int kVoiceTigermoth = 15;

constexpr unsigned int kVoiceYak3 = 16;

constexpr unsigned int kVoiceHawkerHunter = 17;

-----------------------------------------------------------------------------------------------------------------

For example Avro Anson is MP3 file 1.mp3 on the JQ6500.


At around line 495 to around line 750 you will also find the list of aircraft'

The list below continue to line 750 listing 17 aircraft types.

----------------------------------------------------------------------------------------------------------------

// --------------------------------------------------------

// Anson

// --------------------------------------------------------


if (aircraftTypeIs(ac->type, "ANSO"))

{

announceAircraft(hex, kVoiceAnson,"Avro Anson");


}


// --------------------------------------------------------

// Catalina

// --------------------------------------------------------


else if (aircraftTypeIs(ac->type, "CAT"))

{


announceAircraft(hex, kVoiceCatalina,"Catalina");


}


---------------------------------------------------------------------------------------------------------------------

Every 3 seconds the software reads the aircraft date from the internet.

When the system detects the aircraft type "ANSO" in the aircraft data and it is within 9.4km it will play "announceAircraft(hex,kVoiceAnson,"Avro Anson");"

In the list line 38 this corresponds to file 1.MP3 on the JQ6500



If you want to change the list of aircraft types you will need to do the following.

1. Record a new MP3 file for the aircraft you want to change and use MusicDownlaod.exe to upload it to your JQ6500 module.

2. Modify the JQ6500 file indexes.

3. At line 495 onwards modify the aircraft announcement code.


Record a new MP3 file

I use Immersive Reader in Word to read aloud my typed in words and record them as MP3 files in mono at 320kbps 44.1kHz using Audacity software.

Place your recorded MP3 files in a folder and label them 1,2 3 etc.

Even if you are only changing one file all the files have to be uploaded at once.

Using the file here English Language MusicDownload.exe v1.2a upload the files to your JQ6500.

There are instructions on how to upload files on my Aviator clock site here. https://www.brettoliver.org.uk/Aviator_Clock/Aviator_Clock.htm#jq6500


Modify the JQ6500 file indexes

Open the file adsb_client.h in a file editor and change the relevant line in the code.



Modify the aircraft announcement code

Modify the section of code for the plane you are adding.

Use the correct code type for your aircraft by looking it up here https://www.icao.int/operational-safety/doc-8643-aircraft-type-designators/search

Change the KVoice name to match you code from line 38.


Upload the code to your ESP32 C3/S3s.


WiFi Setup

Once the ESP32 C3/S3 has loaded it will create a WIFI network called PlaneRadar-Setup


Goto your WIFI settings and you should see the PlaneRadar-Setup listed under WIFI networks.


Connect to PlaneRadar-Setup




Then open http://plane-radar.local or http://192.168.4.1 in a web browswer.

This should open the WIFI Manager Page and it will have no access point set.

Click on Configure WiFI

Select your Home WiFi from the list enter your home WiFi, password. Enter the latitude and longitude of the place you wish to monitor.

Select display distances in miles if required.

Click Save and wait for reboot.



The ESP32-C3 only works on 2.4 GHz WiFi. It does not work on a 5 GHz only network.

Reconnect your PC or mobile to your home Network.

To see the WiFi Manager screen stay on your home network and in a browser type the IP address your router has allocated it.

The WiFi manager will now show connections via your home WiFi


Your device should now be up and running.

The screen should show connecting to you home WiFi.



If it fails to connect check your password is incorrect.

Once the ESP32 C3/S3 has loaded it will create a WIFI network called PlaneRadar-Setup

Goto your WIFI settings and you should see the PlaneRadar-Setup listed under WIFI networks.

Connect to PlaneRadar-Setup


Then open http://plane-radar.local or http://192.168.4.1 in a web browswer.

This should open the WIFI Manager Page and it will have no access point set.

Click on Configure WiFI

Select your Home WiFi from the list enter your home WiFi, password. Enter the latitude and longitude of the place you wish to monitor.

Select display distances in miles if required.

Click Save and wait for reboot.



The ESP32-C3 only works on 2.4 GHz WiFi. It does not work on a 5 GHz only network.

Reconnect your PC or mobile to your home Network.

To see the WiFi Manager screen stay on your home network and in a browser type the IP address your router has allocated it.

The WiFi manager will now show connections via your home WiFi


Your device should now be up and running.

The screen should show connecting to you home WiFi.

If it fails to connect it will timeot and display the WiFi setup screen.

Maybe you password was incorrect.



Software & JQ6500 MP3 Files

The Software for the Plane Radar requires Visual Studio Code


I have zipped my Visual Studio Folder for each version but not included the following


.pio/

.vscode/

build/

debug/

release/

Download then extract the zip file into a new folder and open into Visual Studio Code

RADAR Display C3 version with spoken aircraft alerts ESP32-Plane-Radar-1.1.1Brett01

RADAR Display S3 version with spoken aircraft alerts Plane_RADAR_S3_Brett02


JQ6500 MP3 files

3D Printed Parts Download

3D Printed Parts

3D printed parts are available on my Thigiverse page below.

Download 3D Printed Parts