Skip to the content
PCBKitNew board
2 layers64.8 × 74.5 mmReadingLampController, the printed circuit board in 3D

ReadingLampController

vsi5004/ReadingLampController

A repurposing of my LCC Lighting Controller hardware into a customizable, Matter enabled, RGBW reading lamp

Size
64.8 × 74.5 mm
Copper layers
2
Thickness
1.69 mm
Parts
67
Nets
39
Pads
188
Tracks, vias
278, 202
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
20 Feb 2026
Updated
20 Feb 2026

Overview

ReadingLampController is an open-source printed circuit board by vsi5004, from the vsi5004/ReadingLampController repository on GitHub. It is a 2-layer board of 64.8 × 74.5 mm with 67 parts on 39 nets, routed with 278 tracks and 202 vias.

It is built around the SN74LVC1G125DCK, TJA1051T/3/1 and ADS1115IDGS, with the AP63205WU, LM358 and BBPY00160808152Y00 among its other parts. Its parts include 17 capacitors, 11 resistors, 11 connectors, 7 ICs and 4 diodes. It belongs with the lEDs and displays boards and the ESP32 boards of this library.

Main components

8

README

README.md

Reading Lamp Controller

A fully open-source smart reading lamp with Matter/Google Home integration. Features a cylindrical RGBW LED shade, rotary encoder control, analog color mixing, and multiple dimming modes including an animated fire effect.

License


Reading Lamp Render

Features

  • Matter/Google Home — On/off control via WiFi after BLE commissioning
  • Rotary encoder — Short press cycles modes, long press turns off, rotation controls brightness
  • RGBW color mixing — Four potentiometers for real-time red, green, blue, and white adjustment
  • Four dimming modes:
    • Uniform — All LEDs at equal brightness
    • Vertical Fade — Light expands from center row outward
    • Radial Fade — Light wraps around the cylindrical shade
    • Fire Flicker — Animated flame effect with realistic flicker-out
  • Smooth transitions — Perceptual gamma correction and interpolated fades

Project Structure

This repository contains everything needed to build the lamp from scratch:

text
ReadingLampController/
├── Firmware/           # ESP32-S3 firmware (PlatformIO)
├── PCB/                # KiCad schematic and PCB design
├── Mechanical/         # CAD files (Fusion 360, STEP, DXF for CNC/laser)
└── Doc/                # Additional documentation

Firmware

The firmware runs on a Seeed XIAO ESP32-S3 and is built with PlatformIO. It uses the pioarduino platform fork to enable Matter support via Arduino Core 3.x.

📁 Firmware Documentation — Build instructions, flashing, Matter commissioning, usage guide

📁 Architecture Guide — Deep-dive technical documentation for contributors

PCB

The PCB is based on my LCCLightingController project — a general-purpose ESP32-S3 lighting controller with I²C ADC, rotary encoder support, and LED strip output. This lamp runs custom firmware tailored for the cylindrical RGBW shade and Matter integration.

Mechanical

CAD files for the lamp body, shade, and hardware. Designed in Fusion 360 with exports for fabrication:

FileDescription
Reading Lamp.f3zFull Fusion 360 project
Reading Lamp v5.stepSTEP export for other CAD software
*.dxf2D profiles for CNC routing or laser cutting
*.3mf3D-printable parts and jigs

Hardware Overview

ComponentSpecification
Controller PCBLCCLightingController — custom board with MCU, ADC, and connectors
MCUSeeed XIAO ESP32-S3 (mounted on controller PCB)
LED Strip88× SK6812 RGBW LEDs (8 columns × 11 rows, zigzag wiring)
ADCADS1115 16-bit I²C ADC (on controller PCB)
Rotary EncoderAdafruit I²C Rotary Encoder (seesaw)
Potentiometers4× linear pots (R, G, B, W channels)

Quick Start

Prerequisites

Clone & Build

bash
git clone https://github.com/vsi5004/ReadingLampController.git
cd ReadingLampController/Firmware/ReadingLampController

Open the Firmware/ReadingLampController folder in VS Code. PlatformIO will auto-configure the project.

Windows users: Set this environment variable before building:

powershell
$env:SCONSFLAGS = "-j1"
platformio run

Flash

Option A — Pre-built binary (no dev environment needed):

Download the latest *-merged.bin from the Releases page and flash with esptool:

bash
pip install esptool
esptool.py --chip esp32s3 --port COM3 write_flash 0x0 ReadingLampController-*-merged.bin

Option B — Build from source:

powershell
platformio run --target upload

Commission

Open a serial monitor at 115200 baud to see the Matter pairing code:

powershell
platformio device monitor

On first boot, use the Google Home app to commission the device as a Matter accessory.


Usage

ActionEffect
Short pressTurn on (if off) / Cycle dimming mode (if on)
Long press (≥1.5s)Turn off
Rotate encoderAdjust brightness
Turn potsAdjust R/G/B/W color mix
Hold reset button (5s)Factory reset (erases Matter credentials)

License

This project is licensed under the BSD 2-Clause License. See LICENSE for details.


Contributing

Contributions are welcome! For firmware changes, please review the Architecture Guide first to understand the codebase structure and design decisions.


Acknowledgments

Parts

67
QtyValueFootprintReferences
7100nFCapacitor_SMD:C_0603_1608MetricC5, C10, C11, C12, C13, C14, C15
510kResistor_SMD:R_0603_1608MetricR15, R16, R17, R18, R19
4MountingHoleMountingHole:MountingHole_3.2mm_M3_PadH1, H2, H3, H4
4Screw_Terminal_01x03TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-3-3.5-H_1x03_P3.50mm_HorizontalJ2, J7, J8, J9
310uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C3, C16
310uFCapacitor_SMD:CP_Elec_5x5.3C1, C8, C9
3220RResistor_SMD:R_0603_1608MetricR10, R43, R44
3FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3
222uFCapacitor_SMD:C_0603_1608MetricC6, C7
24K7Resistor_SMD:R_0603_1608MetricR29, R30
2BBPY00160808152Y00Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderFB1, FB2
2EXT_BTN1TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_HorizontalJ5, J6
2RJ45CustomLibrary:RJ45_TE_CONNECTIVITY_5555164-1_Horizontal-Low_ProfileJ3, J4
2UserButton_Switch_SMD:SW_Tactile_SPST_NO_Straight_CK_PTS636Sx25SMTRLFSSW3, SW4
10.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4
1100Resistor_SMD:R_0603_1608MetricR20
11uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC17
13v3Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
14.7uHCustomLibrary:IND_B1047AS-4R7N=P3L1
15vJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU2
1AP2114-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U5
1AP63205WUPackage_TO_SOT_SMD:TSOT-23-6U4
1CAN RXLED_SMD:LED_0603_1608MetricD25
1CAN TXLED_SMD:LED_0603_1608MetricD24
1EXT POWERTerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-3.5-H_1x02_P3.50mm_HorizontalJ1
1Factory ResetButton_Switch_SMD:SW_Tactile_SPST_NO_Straight_CK_PTS636Sx25SMTRLFSSW2
1I2C BreakoutConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ11
1LM358Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU6
1LOGOComponents:lcc-logo-registered-mediumG***
1MOUDLE-SEEEDUINO-XIAO-ESP32S3CustomFootprints:MCU_Seeed_ESP32C3_THU8
1NUP2105LPackage_TO_SOT_SMD:SOT-23D15
1RGBW LEDTerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-3-3.5-H_1x03_P3.50mm_HorizontalJ10
1SN74LVC1G125DCKPackage_TO_SOT_SMD:Texas_R-PDSO-G5_DCK-5U1
1TJA1051T-3Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU7
1WiFiLED_SMD:LED_0603_1608MetricD1

The 66 most common of 67 parts.

Questions

How big is the ReadingLampController PCB?

It measures 64.8 × 74.5 mm and has 2 copper layers, 1.69 mm thick.

What parts does the ReadingLampController use?

67 parts, built around the SN74LVC1G125DCK, TJA1051T/3/1, ADS1115IDGS and AP63205WU. 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 ReadingLampController KiCad files?

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

Can I use the ReadingLampController design in my own project?

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

Similar boards

  • 4 layers61 × 81 mmEsp32OlcbIO, the printed circuit board in 3D

    Esp32OlcbIO

    atanisoft/Esp32OlcbIO

    ESP32 OpenLCB IO Board

    52 parts12
  • 4 layers48.5 × 33.5 mmHFLink Plus, the printed circuit board in 3D

    HFLink Plus

    LX050724/HFLink

    完全使用FPGA实现的高速DAP

    130 parts25Apache-2.0
  • 2 layers37 × 70.9 mmOpendiag, the printed circuit board in 3D

    Opendiag

    maximus64/opendiag-hardware

    OpenDIAG - Open Source OBD2 Interface (Hardware)

    148 parts5CERN-OHL-S-2.0
  • 2 layers105.6 × 73.3 mmSTM32F767ZI LCC PNET Router, the printed circuit board in 3D

    STM32F767ZI LCC PNET Router

    RobertPHeller/RPi-RRCircuits

    A collection of circuit designs for various MCUs, not just Raspberry Pis relating to Model Railroading

    52 parts24
  • 2 layers115.2 × 78.6 mmL0destar, the printed circuit board in 3D

    L0destar

    m4rkw/l0destar

    l0destar open-source tracker project

    164 parts43
  • 4 layers160 × 118 mmPolygonus Universal Base, the printed circuit board in 3D

    Polygonus Universal Base

    FOME-Tech/Polygonus-Universal

    Open source 88pin universal base (NOT A PNP)

    91 parts4