Skip to the content
2 layers50 × 35 mmMonitor lamp custom pcb, the printed circuit board in 3D

Monitor lamp custom pcb

giakk/monitor_lamp1

The "intelligence" of the hardware relies on two main modules: an LD2410 presence sensor connected via UART and a VEML7700 ambient light sensor communicating through the I2C protocol.

Size
50 × 35 mm
Copper layers
2
Thickness
1.6 mm
Parts
35
Nets
39
Pads
117
Tracks, vias
137, 35
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
17 Apr 2026
Updated
11 Jul 2026

Overview

Monitor lamp custom pcb is an open-source printed circuit board by giakk, from the giakk/monitor_lamp repository on GitHub. It is a 2-layer board of 50 × 35 mm with 35 parts on 39 nets, routed with 137 tracks and 35 vias.

It is built around the TPS5430DDA, AO3401A and AO3400A, with the SS14 and SS34 among its other parts. Its parts include 10 resistors, 9 connectors, 5 capacitors, 3 ICs and 3 transistors. It belongs with the lEDs and displays boards and the ESP32 and RISC-V boards of this library.

Main components

5

README

README.md

Monitor Light Bar

overview

Overview

I wanted a smart monitor bar without spending hundreds of euros for something like the BenQ monitor lamp, so I tried to DIY it. Everithing runs on an ESP32-C3 microcontroller, a bit overkill but it will be useful for future upgrade. To control the led, the ESP32 rely on two sensors: a VELM7700 luminosity sensor to dynamically adjusts the leds brightness to maintain optimal lighting conditions, and a LD2410 presense sensor to automatically activates when a user sits.

3D Design

Electronics

The system is powered by a 12V input managed via a USB-C Power Delivery (PD) controller, which negotiate with the power supply to ensures 12V for the leds strips. A Mini360 step-down converter reduces this voltage to 5V to power the ESP32-C3 and the sensors, while a dedicated 1.25A fuse protects the entire circuit. The light engine consists of a 12V LED strip driven by an IRLZ44N MOSFET, which allows for precise PWM dimming controlled by the ESP32.

The "intelligence" of the hardware relies on two main modules: an LD2410 presence sensor connected via UART and a VEML7700 ambient light sensor communicating through the I2C protocol. The current prototype, as shown in the images below was updated with the new custom developed PCB board, which info can be found in the Kicad project. (Yeah, I know it is overkill but why no? I wanted to learn to use Kicad and develop my first PCB)

FrontBack

The board has been tested and corrected due to two mistakes I made in the eletrical scheme. First, I hadn't included the ISET resistor for the PD controller, which is essential for negotiating the correct voltage with the charger. Second, I had swapped the drain and source pins of the Q3 MOSFET. Now that everything works as expected, the board project should be correct I you want to produce it.

Code

The firmware is developed within the Arduino framework and utilizes a non-blocking logic to monitor environmental changes in real-time. The core functionality revolves around an adaptive dimming algorithm: the system reads the ambient lux levels via the VEML7700 and applies a square root function to calculate the ideal LED duty cycle. This function actually work like the luminosity on the phone, so it increase if the lux of the room are high, while decrease if there is not light in the room. Maybe it is counterintuitive but it works for me. Change it as you want. To prevent annoying flickering or constant micro-adjustments, the code implements a hysteresis logic, only triggering a brightness transition if the change in light is significant. Furthermore, the integration with the LD2410 mmWave radar allows the lamp to manage power efficiently, executing smooth fade-in and fade-out transitions whenever a user enters or leaves the desk area, ensuring the light is only active when actually needed.

I am working on a version of the software which expose a web page to interact with the light in real time. In the meantime, I uploaded the version of the sketch that actually works the best, with is the sketch_monitor_lamp_working.ino

Parts

35
QtyValueFootprintReferences
6Conn_01x01Connector_Wire:SolderWirePad_1x01_SMD_1.5x3mmJ4, J5, J7, J8, J9, J10
210kResistor_SMD:R_0402_1005MetricR4, R9
210uFCapacitor_SMD:C_0603_1608MetricC2, C3
2AO3401APackage_TO_SOT_SMD:SOT-23Q1, Q2
2MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2
110Resistor_SMD:R_0603_1608MetricR1
1100kResistor_SMD:R_0603_1608MetricR8
1100uFCapacitor_SMD:CP_Elec_5x5.4C5
110kResistor_SMD:R_0603_1608MetricR5
110nFCapacitor_SMD:C_0402_1005MetricC4
11µFCapacitor_SMD:C_0402_1005MetricC1
122Resistor_SMD:R_0603_1608MetricR7
13.3kResistor_SMD:R_0603_1608MetricR6
149.9kResistor_SMD:R_0603_1608MetricR3
15.1kResistor_SMD:R_0603_1608MetricR2
1510Resistor_SMD:R_0402_1005MetricR10
168uHcomponents:L_Sumida_CD75L1
1AO3400APackage_TO_SOT_SMD:SOT-23Q3
1ESP32-C3_SUPERMINI_THCustom_Sensors:MODULE_ESP32-C3_SUPERMINI_THU3
1HUSB238Custom_Components:DFN-10LIC1
1LD2410C_ConnectionConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ3
1SS14Diode_SMD:D_SMAD2
1SS34Diode_SMD:D_SMAD1
1TPS5430DDAPackage_SO:TI_SO-PowerPAD-8_ThermalViasU1
1USB_C_Receptacle_PowerOnly_6PConnector_USB:USB_C_Receptacle_GCT_USB4125-xx-x_6P_TopMnt_HorizontalJ1
1VEML7700_ConnectionConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ2

Similar boards

  • 2 layers46.5 × 78.5 mmShaun proj, the printed circuit board in 3D

    Shaun proj

    SFBdragon/eee3088f-project

    Collaborative repo for the UCT EEE3088F Project of team 69.

    99 partsCERN-OHL-P-2.0
  • 2 layers70 × 65 mmFluepdot, the printed circuit board in 3D

    Fluepdot

    Fluepke/Fluepdot

    Project for controlling Annax flipdot panels used by the Berliner Verkehrsbetriebe

    116 parts17AGPL-3.0
  • 2 layers96 × 50 mmPager, the printed circuit board in 3D

    Pager

    justinlindh/bramble

    Privacy-first LoRa mesh networking for ESP32-S3, built with ESP-IDF

    97 parts2MIT
  • 2 layers150 × 40 mmBicopter, the printed circuit board in 3D

    Bicopter

    InputBlackBoxOutput/Bicopter

    Design files for a PCB Bicopter

    79 parts1MIT
  • 2 layers100 × 85 mmESP32 MediaCarrier routed, the printed circuit board in 3D

    ESP32 MediaCarrier routed

    xmyoot/esp32-media-carrier

    ESP32 multimedia carrier board with 7–24 V DC buck regulator, 3.2 W Class-D I2S audio amp, WS2812 LED ring driver, and SPI TFT display header

    97 partsMIT
  • 2 layers140 × 80 mmHet68-pwr vn, the printed circuit board in 3D

    Het68-pwr vn

    fedurca/het68_pcb

    pcb design description

    65 parts
  • 4 layers65 × 56 mmRp2040-board, the printed circuit board in 3D

    Rp2040-board

    barycz/rp2040-board

    49 parts

Questions

How big is the Monitor lamp custom pcb PCB?

It measures 50 × 35 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Monitor lamp custom pcb use?

35 parts, built around the TPS5430DDA, AO3401A, AO3400A and SS14. 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 Monitor lamp custom pcb KiCad files?

From the giakk/monitor_lamp repository on GitHub, at the commit this page was made from: the board is monitor_lamp_custom_pcb/monitor_lamp_custom_pcb.kicad_pcb and its schematic monitor_lamp_custom_pcb/monitor_lamp_custom_pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Monitor lamp custom pcb design in my own project?

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