ESP32 Runway Approach Lighting Desktop Ornament
This project presents a desktop intelligent ornament that provides a highly faithful reproduction of a civil aviation runway approach lighting system. It integrates an ESP32 microcontroller with hard-wired sequential logic circuitry (NE556 + CD4017) to deliver realistic visual effects, while simultaneously enabling real-time retrieval and display of METAR and TAF meteorological reports for airports worldwide.
1. Abstract
This project aims to design and implement an aviation-themed ornament that combines both decorative and functional characteristics. On the hardware side, a two-layer stacked PCB structure is employed, where an NE556 dual timer and a CD4017 counter jointly realize a hybrid drive for 20 chaser lights (runway sequenced lights) and 48 steady-burning approach lights, with hardware-based adjustment of brightness and flashing frequency. On the software side, the system is developed using MicroPython and leverages the Wi-Fi capability of the ESP32 to support web-based Wi-Fi provisioning and real-time acquisition of aeronautical meteorological data (METAR/TAF). The project not only reproduces the visual aesthetics of the runway threshold lighting environment, but also serves as a practical meteorological monitoring terminal for aviation enthusiasts.
2. Functional Features
- Simulated Lighting Effects: Includes 20 sequential guidance lamps (emulating sequenced flashing lights) and 48 steady-burning approach lights.
- Hardware Interaction:
- Left rotary knob: Master power switch and global brightness control for all lights (PWM dimming).
- Right rotary knob: Adjustment of the running speed (frequency tuning) of the chaser lights.
- Baseboard push button: One-touch entry into Wi-Fi provisioning and ICAO code configuration mode. - Intelligent Information Display: A 0.96-inch OLED screen cyclically displays the raw METAR and TAF reports of the selected airport (5-second interval).
- Convenient Network Provisioning: Supports access-point (AP) mode provisioning, with an embedded web configuration page and QR-code-based quick access.
- Physical Design: Two-layer PCB structure (100 mm x 80 mm), with the front silkscreen integrating an airport layout diagram and radio frequency table (TWR, GND, APP, etc.).
3. Project Images
3.1 Physical Device

3.2 Circuit Diagrams
3.2.1 Baseboard Schematic

3.2.2 Top Board Schematic

3.3 2D Previews
3.3.1 Baseboard 2D Preview

3.3.2 Top Board 2D Preview

3.4 Circuit Schematic (Principle Diagram)

4. Usage and Operating Instructions
4.1 Initial Startup
- Power supply: Use a Type-C cable to connect to the connector at the upper-left corner of the baseboard (a power adapter of 5 V / 1 A or above is recommended).
- Power-on: Rotate the left rotary knob clockwise; the red power indicator LED will illuminate, and the lighting system will enter its initial operating state.
- Adjustment:
- Rotate the left rotary knob to adjust the global brightness.
- Rotate the right rotary knob to change the flashing speed and running effect of the runway lights.
4.2 Network Provisioning and Configuration
If the screen indicates that the device is not connected, or if you need to change the target airport:
- Enter configuration mode: Long-press the tactile push button located at the lower-right corner of the baseboard.
- Scan to connect: The screen will display a QR code and the IP address
192.168.4.1. - Operation: Connect your mobile phone to the Wi-Fi network
METAR_Config, then scan the QR code or manually enter the IP address in a browser to access the configuration page. - Submit settings: Enter the Wi-Fi SSID, password, and the target airport four-letter ICAO code (for example, Shenyang Taoxian ZYTX), then click Save. The device will automatically reboot and start fetching meteorological data.
5. System Design Principles
5.1 Hardware Circuit Design
The system adopts a division-of-labor paradigm in which hard-wired logic is responsible for lighting effects, while the microcontroller is dedicated to data processing:
- Core logic (NE556 + CD4017):
- NE556 (Unit A): Outputs a 1 kHz waveform with adjustable duty cycle, used as the PWM dimming signal applied to the anodes of the LEDs.
- NE556 (Unit B): Outputs a square wave with adjustable frequency from 3–100 Hz, used as the clock signal input to the CD4017.
- CD4017: A decade counter whose outputs Q0–Q9 drive 20 chaser lights (paired in parallel) via 10 sets of MOSFETs. - Visual simulation mechanism: The gates (G) of the chaser-light MOSFETs are controlled by the timing sequence of the CD4017, while the anodes are modulated by the PWM dimming signal. Because the PWM frequency (1 kHz) is much higher than the sequence switching frequency, the effects of speed regulation and brightness control are effectively decoupled and superimposed.
5.2 Software Architecture
- Programming environment: MicroPython (using Thonny).
- Data acquisition: The
urequestsmodule periodically sends requests to an aeronautical meteorology API, retrieves JSON data for the specified ICAO code, and parses out therawOb(METAR) andrawTAF(TAF) strings. - Display control: The OLED is driven using the
ssd1306driver; a character-segmentation algorithm is employed to realize line-wise rendering and automatic scrolling of long textual reports.
6. Bill of Materials (BOM)

(For details, refer to the BOM_TOTAL_PCB.xlsx document in this folder.)
7. Notes for Open-Source Replication
To ensure successful replication of this project, please pay close attention to the following engineering details:
7.1 Hardware and Soldering Considerations
- EDA platform: The project is designed using JLCEDA (Professional Edition). The source file is
ProPrj_Runway_Approach_Light_2026-02-24.epro2. - Pin alignment: It is essential to use the 38-pin version of the ESP32 development board (19 pins per side) to avoid mechanical incompatibility.
- Soldering process: For the baseboard logic ICs (NE556/CD4017), solder bridging must be strictly avoided. The MOSFET driver transistors are extremely sensitive to temperature (maximum tolerance around 170 °C) and must be soldered last. It is recommended to use low-temperature solder; each soldering operation on a single pin should not exceed 3 seconds to prevent device breakdown or thermal damage caused by heat accumulation.
7.2 Toolchain and Resource Organization
All supporting software and firmware required for this project are stored in the tools directory, organized as follows:
tools/
├── 1-Thonny开发软件
├── 2-开发板CH340驱动
├── 3-ESP32-FLASH固件下载工具
└── 4-ESP32-MicroPython固件
├── esp32-20220618-v1.19.1.bin (推荐)
├── ESP32_GENERIC-20240602-v1.23.0.bin
└── ESP32_GENERIC-20250415-v1.25.0.bin
Firmware note: Although multiple firmware versions are provided, to ensure optimal compatibility and stability it is strongly recommended to flash version
v1.19.1.
7.3 Core Development Procedure
- Hardware self-test: After completing all soldering, perform a powered-on test first to verify that the logic for both the chaser lights and the steady-burning light groups functions correctly.
- Driver installation: Install
tools/2-开发板CH340驱动on your computer to ensure that the device can be recognized. - Firmware flashing: Use
tools/3-ESP32-FLASH固件下载工具to flash the recommended MicroPython firmware version onto the ESP32. - Environment configuration: Install and open the Thonny IDE, and select ESP32 as the interpreter. Configuration details can be referenced from relevant instructional videos, such as the “Puzhong ESP32 Tutorial” series on Bilibili.
- Code deployment: Connect to the development board via Thonny, upload the project source file
METAR.py, and execute it. - Final assembly: After confirming that the software runs correctly, insert the ESP32 module into the baseboard pin headers, complete the overall assembly, and perform a final power-on test.
8. References and Technical Standards
8.1 International Standards and Industry Specifications
- Title: WMO-No.306_Vol_I.1_Manual_on_Codes.pdf
- Publisher: World Meteorological Organization (WMO)
- Relevance: The parsing logic for METAR/TAF messages in this project strictly follows the field definitions and encoding rules of FM 15 (METAR) and FM 51 (TAF) as specified in this manual. - Title: ICAO_Annex_14_Vol_I_Aerodrome_Design_and_Operations.pdf
- Publisher: International Civil Aviation Organization (ICAO)
- Relevance: The arrangement of lights and the timing requirements for the sequenced flashing lights in this project are based on the provisions for approach lighting systems in Chapter 5.3.4 of this standard.
8.2 Key Component Datasheets
- Title: C7434190_555定时器-计时器NE556DR-MS规格书_WJ411490.pdf
- Manufacturer: MSKSEMI
- Relevance: Used in the design of the dual 555 timer circuitry, enabling generation of the system PWM dimming waveform and CD4017 clock pulses. - Title: C7473153_计数器-分频器CD4017BM-MS规格书_WJ411742.pdf
- Manufacturer: MSKSEMI
- Relevance: Used to implement the decoding and counting logic, as well as the hardware shift driving, for the 20-channel runway sequenced flashing lights.
9. Author and Technical Support
If you encounter technical difficulties during replication, or if you have suggestions for improving this project, you are welcome to contact me via the channels below:
9.1 Author Information
- Educational background: Undergraduate student in the Department of Electronic Engineering, Kyung Hee University (South Korea)
- WeChat:
Daniel_Qinghan - Email: wuhanqing2005@gmail.com
- GitHub repository: https://github.com/WuHanqing2005/Runway_Approach_Light
9.2 Technical Discussion Group
- QQ group:
1087242118(please indicate “approach lights” when requesting to join)

Comments NOTHING