# 200 W Bicolor LED Video Light

![Assembled 200 W video light prototype](docs/images/light-assembled-hero.jpeg)

A battery-powered, RP2040-controlled video light built around four 50 W bicolor LED modules. The system provides more than 200 W of electrical LED power, adjustable brightness and warm/cool mixing, active cooling, a physical control interface, and an integrated 13-series-cell battery-management design.

I developed the complete project over approximately three months, from system architecture and component selection through schematic capture, PCB layout, assembly, firmware, power-up, debugging, rework and high-power testing. It was submitted as a university semester project, but its scope went far beyond the course requirements. The class provided the deadline and opportunity; the architecture, power level, battery system, thermal design and two full PCB iterations were self-imposed.

The project was especially valuable as an exercise in hardware integration. It combines high-voltage battery power, multi-channel switching LED drivers, several auxiliary power rails, an RP2040 embedded controller, a user-interface board, battery monitoring, USB, thermal constraints and mechanical packaging on one compact platform.

> [!WARNING]
> This repository contains a functional engineering prototype, not a production-ready product. It operates from a 13S battery at potentially dangerous voltage and power levels. The LEDs produce enough light to cause permanent eye damage, and exposed components can become hot enough to cause burns. The battery-protection subsystem has not been fully validated. Do not reproduce or operate this design unless you understand high-power electronics and lithium-battery safety.

## Project overview

| Item | Implementation |
|---|---|
| Maximum tested input power | Approximately 220 W, measured from a regulated supply |
| Battery | 13S lithium-ion or lithium-polymer pack; currently powered from an e-bike battery |
| Light source | 4 × 50 W bicolor LED modules |
| LED channels | Warm and cool channels, approximately 800–850 mA per LED channel |
| LED drivers | 4 × Allegro ALT80800 dual-string switching drivers |
| Controller | Raspberry Pi RP2040 with external QSPI flash |
| Controls | Rotary encoder, blackout button, display and PWM fan control |
| Cooling | Dynatron A51 copper server heatsink with a 120 mm PWM fan |
| PCB revisions | Two complete versions |
| V2 BOM cost | Below CHF 150, compared with more than CHF 200 for V1 |
| Current state | V2 operates from battery and has reached full power for short tests |

![V1 and V2 side by side](docs/images/v1-v2-comparaison.jpeg)

## What I designed and built

I was responsible for the entire engineering process:

- system-level architecture and power budgeting;
- selection and validation of the LEDs, drivers, regulators, BMS, controller and cooling hardware;
- schematic capture and PCB layout in KiCad;
- BOM preparation and sourcing;
- manual SMD assembly, QFN replacement, USB-C connector replacement and board-level rework;
- RP2040 firmware using the Pico SDK;
- controlled bring-up with current-limited laboratory supplies;
- oscilloscope-assisted fault finding;
- dummy-load validation of each LED-driver channel before connecting the LEDs;
- high-power, thermal and functional testing.

The most difficult part was keeping low-voltage digital electronics reliable while switching more than 200 W from a battery that can exceed 50 V, then fitting the result into a PCB smaller than the heatsink while controlling cost and temperature.

## From V1 to V2

The first version was made functional through extensive rework, but it exposed several weaknesses that justified a complete second revision. V2 was not a cosmetic update: the LED-driver architecture, power tree, battery interface, HMI and mechanical footprint were substantially redesigned.

### Main V1 issues

- The 12 V converter used an unsuitable regulator and a severely undersized inductor, causing excessive current at startup.
- Two flash-memory footprint pins were swapped and had to be rewired manually.
- The initial BMS REGSRC implementation was unsuitable for the battery voltage.
- The LED-driver PWM filter prevented complete turn-off at very low duty cycles.
- Missing pull-down resistors allowed the LEDs to flash during reset and programming.
- The potentiometer direction was reversed.
- The heatsink mounting holes were slightly misplaced.
- Eight small LED drivers increased cost, occupied more area and had inadequate thermal margin.

Despite these problems, V1 was repaired sufficiently to validate most of the architecture. The debugging work directly informed V2.

### V2 improvements

- Replaced eight ZXLD1366 drivers with four higher-current ALT80800 drivers.
- Reduced the LED-driver cost from roughly CHF 17 to roughly CHF 6.
- Added thermal-pad-equipped drivers with significantly better high-power behaviour.
- Added ballast resistors to improve current sharing between parallel LED strings.
- Redesigned the 12 V and 3.3 V power tree using smaller, more appropriate converters.
- Added automatic selection between battery-derived and USB-derived 3.3 V supplies.
- Added a separate HMI board with display, encoder, potentiometer and blackout control.
- Added a power test panel and direct driver-control points to simplify bring-up.
- Added isolated I²C and ALERT paths between the low-side-switched BMS and the controller.
- Reduced the PCB from larger than the heatsink to comfortably within its footprint.
- Reduced the complete BOM from more than CHF 200 to below CHF 150.

![V2 assembled PCB](docs/images/v2-assembled-top.jpeg)

![V2 KiCad 3D render](docs/images/v2-kicad-3d.png)

## Current status

The V2 board is usable from its battery input. Brightness control, warm/cool mixing, the rotary encoder, blackout button and proportional fan control operate correctly. The LED drivers have been tested at full output and remain thermally well behaved, unlike the drivers used on V1.

The system has reached approximately 200 W several times and approximately 220 W was measured at the input. Full-power operation was limited to a few minutes because the LED modules were temporarily coupled to the heatsink using ordinary computer thermal paste rather than a permanent low-resistance thermal epoxy. The LED aluminium substrates approached temperatures that made longer tests undesirable, while the driver electronics remained comparatively cool.

The current mechanical assembly is an open prototype: the heatsink supports the PCBs, fan and LEDs, but there is no enclosure or controlled airflow duct.

![Light operating ](docs/images/light-operating.jpeg)

(Impossible to take a picture with the leds at even remotely high power)

## Known limitations

The following limitations affect optional or newly added V2 features rather than the core LED-driving function:

- **USB-only operation:** the component selected to generate 3.3 V from USB is a boost converter rather than a buck converter. The board therefore cannot currently be safely powered from USB alone. Battery-powered operation is unaffected.
- **Potentiometer:** it was connected to an RP2040 GPIO without ADC capability. Brightness can still be controlled through the working HMI, but the potentiometer cannot be read without a hardware modification.
- **BMS validation:** the BQ7694006-based 13S protection circuit survived connection to a battery pack, but its firmware, measurements, balancing, protection thresholds and isolated communication have not been fully tested.
- **Display connector:** the two-sided FFC connector allows the cable to be inserted with the wrong orientation. One display was damaged this way. A keyed or single-contact-side connector would be preferable.
- **Thermal validation:** no long-duration 200 W test has been completed. Permanent LED attachment, improved airflow and temperature sensing are required before sustained operation can be considered validated.
- **No LED temperature feedback:** the PCB contains no thermistors near the LED modules, so the controller cannot implement closed-loop thermal protection.
- **Firmware quality:** the current firmware is a minimal Pico SDK application for PWM generation and HMI input. It is not included because it was developed as test firmware rather than as a clean, maintainable release.

## Engineering lessons

This project involved several mistakes, including incorrect component selection, footprint errors, assembly shorts and thermal-design uncertainty. They are documented because resolving them was a major part of the engineering work.

The V2 bring-up required repeated QFN replacement, flash replacement, USB-C connector replacement, inspection of hidden solder shorts, rail-by-rail measurements and oscilloscope debugging. Current-limited supplies were used throughout, and each driver output was tested into an electronic load before connecting an LED module.

The main lessons were:

- verify the complete function of a regulator, not only its advertised output voltage;
- review every footprint against the package drawing before manufacture;
- assign fixed-function MCU pins before flexible GPIOs;
- add test points and independently controllable subsystems early;
- validate power stages with dummy loads before risking expensive loads;
- design startup and reset states explicitly rather than relying on MCU firmware;
- treat thermal interfaces and airflow as part of the electrical design;
- include temperature sensing and hardware protection in high-power prototypes;
- perform structured schematic, BOM and assembly reviews before ordering.

More broadly, the project demonstrated ambition, adaptability and resilience. Neither revision worked perfectly at first, but every major fault was investigated until its mechanism was understood and either repaired or clearly documented. V2 corrected all known V1 failures and became a much smaller, cheaper and more robust platform.

## Hardware architecture

```text
13S battery (approximately 40–55 V)
│
├── Four ALT80800 switching LED drivers
│   ├── Warm channels: LED modules 1–2 and 3–4
│   └── Cool channels: LED modules 1–2 and 3–4
│
├── 12 V buck converter
│   ├── PWM cooling fan
│   └── 3.3 V battery-side regulator
│
├── 13S BQ7694006 battery-management circuit
│   └── Isolated I²C and ALERT connection to the RP2040
│
└── RP2040 control electronics
    ├── External QSPI flash
    ├── Warm/cool PWM outputs
    ├── Brightness and blackout control
    ├── Rotary encoder and display
    └── Fan PWM output
```

Each 50 W LED module contains a warm and a cool string. One driver regulates the same-colour channels of two modules. The four-driver arrangement therefore provides two warm groups and two cool groups. The RP2040 controls their intensity through PWM, allowing overall brightness and colour balance to be adjusted independently.

## Basic operation

> [!CAUTION]
> Do not look directly at the illuminated LEDs. Start all testing at minimum current and minimum PWM duty cycle. Keep a current-limited supply, suitable eye protection and an emergency disconnect within reach.

1. Mount all four LED modules to a suitable heatsink using a properly specified thermal interface. Do not perform sustained high-power testing with loose modules or ordinary temporary thermal paste.
2. Connect the LED channels, fan and HMI board according to the schematic net names and connector pinout.
3. Verify that no power rail is shorted before connecting a battery.
4. For initial bring-up, use a current-limited laboratory supply within the expected 13S voltage range instead of a battery.
5. Confirm the 12 V and 3.3 V rails before fitting or enabling the LED loads.
6. Test each LED-driver channel into a suitable electronic load.
7. Connect the LED modules and begin with a low PWM duty cycle.
8. Use the rotary encoder to adjust the control value and the blackout button to disable the LED output immediately.
9. Confirm that the fan speed rises with LED output.
10. Monitor LED-board and heatsink temperature continuously during testing.

The board should currently be treated as battery-input only. Do not use the USB connector as a power source unless the USB 3.3 V regulator circuit has first been corrected.

## Reusing or revising the design

The repository contains the latest KiCad project. V1 remains available through Git history but is intentionally not maintained as a separate published design.

For a derivative revision, the highest-priority corrections are:

1. replace the USB boost converter with a suitable 5 V-to-3.3 V buck regulator;
2. route the potentiometer to an ADC-capable RP2040 pin;
3. replace the reversible display connector with a keyed or unambiguous connection;
4. add thermistors near the LED modules and implement hardware and firmware thermal shutdown;
5. validate the BMS, isolation and battery cutoff behaviour independently;
6. improve permanent LED mounting and direct airflow through the heatsink fins;
7. perform long-duration tests at several power levels before enclosing the system.

![bare V2 PCB](docs/images/v2-bare-pcb.jpeg)

![it works](docs/images/wow.jpeg)

![it works #2](docs/images/wow2.jpeg)

## Repository scope

This repository is provided as a portfolio project and as a reference for engineers developing related hardware. It is not an actively maintained product, and pull requests are not expected. The design may be copied, modified and reused at the user's own risk.