Skip to the content
PCBKitNew board
2 layers80 × 60 mmIoT Led v1, the printed circuit board in 3D

IOT led driver dedicated for ESP32C3

Size
80 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
73
Nets
35
Pads
252
Tracks, vias
488, 192
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
24 Apr 2024
Updated
25 Aug 2026

Overview

IoT Led v1 is an open-source printed circuit board by pawel2000pl, from the pawel2000pl/LedDriverIoT repository on GitHub. It is a 2-layer board of 80 × 60 mm with 73 parts on 35 nets, routed with 488 tracks and 192 vias.

It is built around the ESP32-C3-WROOM-02-H4, MC34063AP and LD1117V33, with the AOI4184, AON7466 and IRF540N among its other parts. Its parts include 18 transistors, 14 resistors, 12 capacitors, 9 diodes and 4 connectors. It belongs with the home automation and IoT boards and the ESP32 and RISC-V boards of this library.

Main components

6

README

Readme.md

IOT RGB Led driver

Project was designed for XIAO ESP32C3 and Waveshare ESP32C3-Zero.
Compilable with Arduino and ESP-IDF.

Example hardware application

image

Screenshots

Mobile

image

Landscape (for computers)

image

No-script (for bricks)

image

Favorites

image

Confguration

image

Everything available also in dark-mode (auto detect)

How to use a docker container

text
docker build -t led_driver_idf -f Idf.Dockerfile . && docker run -it -p 8000:8000 led_driver_idf
# or
# docker build -t led_driver_arduino -f Arduino.Dockerfile . && docker run -it -p 8000:8000 led_driver_arduino

then open http://0.0.0.0:8000 in your browser and download a binary file.

You can aslo run a script which builds the image, runs the container, downloads this file automatically and removes the container:

text
./compile_with_docker.sh

The file iot-led-driver.bin can be uploaded on Configuration page in Update tab.

How to compile without a docker container

For all compilations

Before the compilation, it is required to compile resources to .cpp and .h files. It is also required after any modification of any file in the resources directory. To compile resources, execute in the project directory:

text
python3 ./compilation_utils/compile_resources.py
For idf:

On the first usage of microcontroller you should run idf.py erase_flash to ensure that flash partitions will be initialized properly.
Run idf.py build in the project directory.

For Arduino:

Open the file main/main.ino in Arduino. Set the following parameters:

  • board: ESP32C3 - Dev module (requires additional installation)
  • CPU Frequency: 160MHz (default)
  • Flash size: 4MB
  • Partition scheme: Minimal SPIFFS (1.9MB APP with OTA / 190kB SPIFFS)

Runtime statistics

The runtime statistics are available on /statistics.txt endpoint.
The last system statistics:

text
=== Tasks info ===
Name             |        Ticks | CPU % | Free stack |  Stack ptr
-----------------+--------------+-------+------------+------------
IDLE             |    390961538 |   85% |       1240 | 0x3fca6ef8
loopTask         |     34119316 |    7% |       3992 | 0x3fca87a8
knobs            |     20251982 |    4% |       1488 | 0x3fcb55d0
wifi             |      2405020 |    0% |       2128 | 0x3fcaedb0
tiT              |      1366588 |    0% |       2744 | 0x3fcaad80
animations       |       790686 |    0% |       1568 | 0x3fcb68a0
esp_timer        |       786223 |    0% |       3672 | 0x3fca4be8
shutdown         |       472535 |    0% |       1720 | 0x3fcb5f38
sys_evt          |         8169 |    0% |       2152 | 0x3fcac204
mdns             |         5225 |    0% |       3116 | 0x3fcb0fe4
arduino_events   |         4456 |    0% |       2836 | 0x3fcad03c
Tmr Svc          |            8 |    0% |       1792 | 0x3fca7660


=== Heap info ===
Total size:             247524
Minimum free heap:      111860  ( 45% )
Total free bytes:       155624  ( 62% )
Total allocated bytes:   91900  ( 37% )
Largest free block:     114688  ( 46% )
Blocks free:                10
Blocks allocated:          405

How to connect for the first time

  • Scan networks and find network with SSID LedDriver and connect to them with ledDriver password. Then type in browser http://192.168.1.1.
  • If you do not see any network with SSID LedDriver, create it (as a Hotspot) on your phone with password ledDriver and restart the driver. The Hotspot must work with WiFi 5 or an older version.

Unfortunately, there is no way to predetermine driver's IP address in a network other than its own AccessPoint.
The driver supports mDNS technology. After connecting to your network, try to enter the driver's hostname with suffix .local (f.e.: http://led-driver.local) in an address bar of a browser. Sometimes this technology requires a while to be detected by other devices in the network.
In case of using https protocol you may be warned about danger of self signed or untrusted certificate. Skip it and/or add this certificate to exceptions.

Hardware

How it works

Select one of four possible configurations:

  • Multiplexer #1
  • Multiplexer #2
  • Multiplexer #3
  • simple #1
  • simple #2
  • unconnected

Each configuration might be modified by disconnecting potentiometers or removing thermistors. The software matches pins automatically.

Table with led driver pinout

...and possible hardware configurations

PinNameXIAOWaveshareMultiplexer #1Multiplexer #2Multiplexer #3Simple #1Simple1 #2Comment
1LNA_INANTANTANTANTANTANTANT
2VDD3P3VCC 3,3VCC 3,3VCC 3,3VCC 3,3VCC 3,3VCC 3,3VCC 3,3
3VDD3P3VCC 3,3VCC 3,3
4XTAL_32K_PinternalGP0Cannot be connected during the booting (H/Z)
5XTAL_32K_NinternalGP1Cannot be connected during the booting (H/Z)
6GPIO2D0GP2Mult COMMult COMMult COMPotentiometer 0Potentiometer 0
7ENEN
8GPIO3D1GP3H/ZGNDUPPotentiometer 1Potentiometer 1
9MTMSD2GP4FANFANFANPotentiometer 2Potentiometer 2
10MTDID3GP5FLASH RSTFLASH RSTFLASH RSTFLASH RSTLED OUT 0
11VDD3P3_RTCVCC 3,3VCC 3,3
12MTCKD4GP6Mult. SEL0Mult. SEL0Mult. SEL0FAN (short them all)LED OUT 1
13MTDOD5GP7Mult. SEL1Mult. SEL1Mult. SEL1FAN (short them all)LED OUT 2
14GPIO8D8GP8LED OUT 1LED OUT 1LED OUT 1LED OUT 1LED OUT 3
15GPIO9D9GP9LED OUT 2LED OUT 2LED OUT 2LED OUT 2FLASH RSTPulled-up during the booting (internal)
16GPIO10D10GP10LED OUT 3LED OUT 3LED OUT 3LED OUT 3FAN (short them all)
17VDD3P3_CPUVCC 3,3VCC 3,3
18VDD_SPIVDD SPIVDD SPI
19SPIHDinternalinternal
20SPIWPinternalinternal
21SPICS0internalinternal
22SPICLKinternalinternal
23SPIDinternalinternal
24SPIQinternalinternal
25GPIO18internalESP_USB_DP
26GPIO19internalESP_USB_DM
27U0RXDD7GP20LED OUT 0LED OUT 0LED OUT 0LED OUT 0
28U0TXDD6GP21Mult. SEL2Mult. SEL2Mult. SEL2FAN (short them all)FAN (short them all)
29XTAL_Ninternalinternal
30XTAL_Pinternalinternal
31VDDAinternalinternal
32VDDAinternalinternal
33GNDGNDGND
Mult. Ch0Thermistor 0Potentiometer 0Thermistor 0
Mult. Ch1Thermistor 1Potentiometer 1Thermistor 1
Mult. Ch2Thermistor 2Potentiometer 2Thermistor 2
Mult. Ch3Thermistor 3Potentiometer 3Thermistor 3
Mult. Ch4Potentiometer 0
Mult. Ch5Potentiometer 1
Mult. Ch6Potentiometer 2
Mult. Ch7Potentiometer 3

XIAO ESP32C3 board pinout - cheat sheet

image

Waveshare ESP32C3-Zero board pinout - cheat sheet

image

ESP32-C3 VROOM V2 pinout - cheat sheet

image

ESP32-C3 pinout - cheat sheet

image

Parts

73
QtyValueFootprintReferences
7470uCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC2, C4, C6, C7, C8, C9, C10
6RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5, R7, R8, R9, R10, R14
51n5819Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1, D3, D5, D6, D8
52N7000/2N5550Package_TO_SOT_THT:TO-92_InlineQ4, Q8, Q12, Q16, Q17
41uCapacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mmC1, C3, C11, C12
4AOI4184Package_TO_SOT_THT:TO-251-3_VerticalQ3, Q7, Q11, Q15
4AON7466inne:AON7466Q1, Q5, Q9, Q13
4D_ZenerDiode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD2, D4, D7, D9
4IRF540NPackage_TO_SOT_THT:TO-220-3_VerticalQ2, Q6, Q10, Q14
4InvResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R6, R11, R13
4Non-InvPCM_SparkFun-Jumper:Jumper_2_NO_NoSilkJP1, JP5, JP6, JP8
310kPotentiometer_THT:Potentiometer_Alps_RK163_Single_HorizontalRV1, RV2, RV3
3Red. to 2.5VResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R3, R4
12N5550Package_TO_SOT_THT:TO-92_InlineQ18
147p-470pCapacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mmC5
147u-470uInductor_THT:L_Axial_L5.3mm_D2.2mm_P2.54mm_Vertical_Vishay_IM-1L1
1BOOT/FLASH RSTPCM_SparkFun-Jumper:Jumper_2_NO_NoSilkJP7
1Barrel_Jack_PTH_SlotPCM_SparkFun-Connector:Barrel_Jack_PTH_SlotJ3
1ESP32-C3-WROOM-02RF_Module:ESP32-C3-WROOM-02U3
1FANConnector_PinSocket_2.54mm:PinSocket_2x02_P2.54mm_VerticalJ4
1LD1117V33Package_TO_SOT_THT:TO-220-3_VerticalU1
1LEDsConnector_PinSocket_2.54mm:PinSocket_2x05_P2.54mm_VerticalJ1
1MC34063APPackage_DIP:DIP-8_W7.62mmU2
1PULLUPResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR12
1Pulse+LinearPCM_SparkFun-Jumper:Jumper_2_NO_NoSilkJP3
1RSTPCM_SparkFun-Jumper:Jumper_2_NO_NoSilkJP9
1Skip linearPCM_SparkFun-Jumper:Jumper_2_NO_NoSilkJP2
1Skip pulsePCM_SparkFun-Jumper:Jumper_2_NO_NoSilkJP4
1USBConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2

Questions

How big is the IoT Led v1 PCB?

It measures 80 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the IoT Led v1 use?

73 parts, built around the ESP32-C3-WROOM-02-H4, MC34063AP, LD1117V33 and AOI4184. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the IoT Led v1 KiCad files?

From the pawel2000pl/LedDriverIoT repository on GitHub, at the commit this page was made from: the board is doc/example_board/IoT_Led_v1.kicad_pcb and its schematic doc/example_board/IoT_Led_v1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the IoT Led v1 design in my own project?

Its repository states no licence, so its author keeps all rights: ask pawel2000pl before reusing the design.

Similar boards

  • 2 layers99.5 × 99.5 mmMisc PCB, the printed circuit board in 3D

    Misc PCB

    kwiecinski/BMS-and-offgrid-photovoltaic-management-system

    Project contains BMS for lead-acid batteries and ESP-based board used to pull information from EASUN offgrid inverter, energy meters and sensors.

    152 parts3MIT
  • 2 layersHardware deneme, the printed circuit board in 3D

    Hardware deneme

    KerimAltuntecim/esp32-pcb-control-system

    ESP32-C3 PCB control system with Nextion HMI, motor, sensor and power-driver interfaces.

    38 partsMIT
  • 2 layers200 × 150 mmMSX ONE, the printed circuit board in 3D

    MSX ONE

    jdgabbard/MSX-ONE-Computer

    MSX 1 Computer from discrete parts

    114 parts28GPL-3.0
  • 2 layers104 × 73 mmArdf tx, the printed circuit board in 3D

    Ardf tx

    hmatuschek/ardf-tx

    Schematics and firmware for simple ARDF transmitter.

    55 parts5
  • 2 layers72.9 × 78 mmZener tester, the printed circuit board in 3D

    Zener tester

    dilshan/simple-zener-tester

    PIC16F88 and MC34063 based Zener diode tester

    53 parts4MIT
  • 2 layers75 × 40 mmBoost converter, the printed circuit board in 3D

    Boost converter

    fabianmink/MarbleAccelerator

    An accelerator / coilgun for metallic marbles

    30 parts1BSD-2-Clause
  • 4 layers240 × 70 mmNixie, the printed circuit board in 3D

    Nixie

    Synthron/Nixie

    A Nixie Clock with Z5600M and ESP32

    324 parts1
  • 2 layers85 × 55 mmBadge, the printed circuit board in 3D

    Badge

    cookiemonsternz/fallout-badge

    A badge with holes for mounting to a lanyard, containing within a full miniature analogue synthesizer / sequencer.

    50 parts