View All Posts
read
Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
HELP SUPPORT MY WORK: If you're feeling flush then please stop by Patreon Or you can make a one off donation via ko-fi
#CIRCUIT ANALYSIS #DIY #ELECTRONIC HACKING #HACK #LED LIGHTS #LIGHT BULB #MICROCONTROLLER #PHILIP'S HUE #REVERSE ENGINEERING

I’ve got a bunch of Philip’s Hue Color light bulbs, so I thought it might be fun to take one apart and do a bit of hacking.

If you’re here from Hacker News - watch the video - it’s really good! (Even if I do say so myself)

Disassembling the Hue Light Bulb

First, we need to open up the light bulb. Using a spudger, carefully pry the plastic diffuser away from the base, working around the stubborn silicon sealant. I got slightly bored and once I’d made a gap shoved a screwdriver in there to pry it off.

Spudger

Next, remove the inner diffuser and the aluminum PCB with the LEDs on it. You might need to remove some surrounding plastic and metal for this.

LED PCB

To pop off the base of the light bulb I squashed it in a vice until the plastic cracked - you may want to find a less destructive method.

Inside the Hue Light Bulb

The power board and the logic board are separate components, they separate quite easily even when covered in the potting compound. Once they are separate you can attack each on in turn. Removing the potting compound from the power board is pretty easy. For the logic board there’s a plastic surround and the potting compound can be pretty difficult to get off - it’s easy to lose or damage some of the small ICs.

Lost Components

But after a bit of work you’ll end up with these three PCBS:

PCBs

The Power Board

There’s nothing too exciting about this - it takes in the mains voltage, runs it through a bridge rectifier and then there’s a switch mode power supply generating 5V along with a hight voltage (probably around 24V) for driving the LEDs.

POWER Board

LED PCB

The LED PCB has an 8-pin socket labeled A to H. B and C were pretty straightforward - they just connect to the thermistor. The other pins were slightly confusing, but by connecting the power supply through a resistor and trying different combinations, we can determine which pins that control the various LED colors.

LED PCB

This gives us the slightly confusing schematic below - but don’t worry all will become clear:

LED Schematic

The Logic Board

The logic board has 5 P-Channel MOSFETs, buzzing out the source and drain of these we end up with this much more sensible schematic.

Each set of LEDs can be bypassed by turning on the MOSFETs - it’s pretty clever.

LED Schematic Improved

The board uses an AP8802 step-down constant current LED driver, capable of supplying up to 1A. It’s configured to supply around 0.5A to the LEDs. What’s very clever with the way the LEDs and MOSFETs are laid out is that we only need one LED driver chip for all the LEDs - this is a relatively expensive component compared to the jelly bean MOSFETs, transistors and other components.

AP8802

The MCU on the logic board is an Atmel SAM R21, a 32-bit ARM Cortex M0+ processor with a 2.4GHz ISM band transceiver for Zigbee communication. It has 256KB of Flash and 32KB of SRAM and runs at 48MHz.

Atmel SAM R21

The transmitter on this uses a PCB antenna with a bunch of capacitors and inductors to tune it to the right frequency.

Does it still work? And some more reverse engineering

It does! If we solder some power cables on and provide it with 5V the light bulb shows up in the Hue app on my phone. It we connect 24V to the LED supply then they light up. We can control the colors from the Hue app - though since I lost one of the ICs we don’t get perfect colors.

It Works

With the board we can work out what signals are coming from the MCU. These resistors here are connected directly to the MCU and go through this set of ICs to drive the PMOS FETs. The schematic is something like this - we have a level shifter followed by a push-pull driver connected to the gate of the MOSFET.

LED Driver

Probing the resistors while changing the color in the Hue app we work out the signals for each of the colors and for the white LEDs.

Probing

The last thing I checked was the control input of the AP8802 - I wasn’t sure if this was being used to control the overall brightnesss, but it turns out that this is just left floating and is only pulled low when the light is fully turned off.

Hijacking the signals

With the R,G,B and white signals worked out we can now solder some wires to the MCU side of the resistors and connect them to a breadboard. By driving LEDs at low power directly from the MCU we can create various colors and control the brightness.

Wires

That works pretty well, we can control the LEDs without any problems. All three colors work and the two whites also work - though I’m suspicious that the “warm white” LEDs may be used for yellow.

Breadboard

I also tried out my old Moonlamp - it’s the first electronics project I posted to YouTube.

It’s got a RGB LED with a common annode. Since it doesn’t have a white LED I’ve just ORed the signal in with the RGB signals.

Moon Lamp Schematic

I’ve used my old board which already has MOSFETs on it for driving the LEDs. It works really well!

Moon Lamp

If you want to watch a video of it in action you can see it here:

#CIRCUIT ANALYSIS #DIY #ELECTRONIC HACKING #HACK #LED LIGHTS #LIGHT BULB #MICROCONTROLLER #PHILIP'S HUE #REVERSE ENGINEERING

Related Posts

The PCBs are in production - what have I messed up? - After some stress and trepidation, I finally took the plunge and sent my PCB design off for manufacturing. My design centers around building a large seven-segment clock with LED filaments. Jumping hurdles such as voltages, pin usage, and limiting the load on my power supply, I've settled on the ESP32 as the system's heart and come up with a final circuit design. While doing this, I've quickly realized I could improve my layout and fixed a small mistake. Also, I've prepared for either types of LED filaments - the high-voltage ones or the larger, 3v ones. However, I did bungle up a couple of things on the enable line of the shift registers and board layout. But hey, this is a learning curve, right? Can't wait to get the boards and see what other exciting errors surface!
Self Organising WS2811 LEDs - I've successfully used addressable WS2811 LED strings and an ESP-CAM board to create an adjustable lighting system. The best part is that the image processing code can be duplicated in JavaScript which allows you to use a plain dev board to drive the LEDs instead of needing a camera on your ESP32 board. If you want to replicate this project, you'll need your own ESP32 dev board and some addressable LEDs. After figuring out the location of each LED in 2D space, it's easy to map from each LED's x and y location onto a pattern you want to show on the frame buffer. Desiring to keep it accessible, I've posted detailed instructions and my sample code on GitHub, making sure anyone with basic knowledge can undertake this fun technological DIY project!

Related Videos

Hacking and Disassembling Philips Hue Lights - Learn how to disassemble a Philips Hue light and reverse engineer it to control other high-power LEDs through the Hue app, transforming devices like the Moon Lamp into a smart lighting system.
Incredible DIY Flame Lamp: 299 LEDs in 5 Meters! - Learn how to create a flame effect lamp using WS2812B LEDs, aluminum channels, and 3D printing to repurpose a broken lamp in this engaging and informative video.
Custom ESP32 PCB Soldering - Watch the process of soldering and testing a custom ESP32 circuit board for a Moon Lamp project, featuring various components like a linear regulator, output drivers, and indicator LEDs.
DIY Wireless LEDs Made Easy: Step-by-Step Guide - Learn how to create your own wireless LEDs by reverse engineering the circuit and using simple components. Understand the cost comparison between Aliexpress and DIY version to see if it's worth building your own.
Supersize Seven Segment Clock - Learn about the process of assembling a large LED filament clock in this hands-on project video, covering both hardware and software aspects. Watch as the creator troubleshoots and implements improvements throughout the build, resulting in a functional and impressive timepiece!
HELP SUPPORT MY WORK: If you're feeling flush then please stop by Patreon Or you can make a one off donation via ko-fi
Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
Blog Logo

Chris Greening


Published

> Image

atomic14

A collection of slightly mad projects, instructive/educational videos, and generally interesting stuff. Building projects around the Arduino and ESP32 platforms - we'll be exploring AI, Computer Vision, Audio, 3D Printing - it may get a bit eclectic...

View All Posts