My partner was gifted a Heliograf Light Soy lamp a while ago. It is a small, rechargeable lamp shaped like a soy sauce fish.
The lamp went mostly unused because it only has a manual push button to turn it on and off, which is too big of a hurdle when the rest of the lights turn on automatically.
I wanted to make it more functional for our house by making it smart and compatible with Home Assistant
The teardown. LEDs are on their own board, separate from the control board. The battery sits at the lowest point in the cap.
At first I thought I would re-use the original LED board so I traced everything out.
I wasn't able to figure out exactly which LED driver IC is used. It's got to be one of the LED drivers listed on LCSC and ChatGPT seems to think it's most likely CN5820 given the values used for the current sense resistor, inductor and number of LEDs driven.
In the end I decided having to build or find a constant current LED driver wasn't worth the time and complexity.
It's just easier to buy a NeoPixel Jewel and drive it directly from a QT Py. I also ordered an extra long USB C breakout board because the port on the QT Py is too short to work with the existing hole.
Then I swapped the internals over and flashed ESPHome on the Qt Py.
Original Mastodon posts: teardown and finished smart light.