Als ich mir in meinem Zimmer im Studentenwohnheim eine zweite Ebene eingezogen hatte, bemerkte ich schnell wie sich die eine Ecke meines Zimmers ohne Fenster und ohne Deckenlicht zu einem schwarzen Loch verwandelte. Glücklicherweise stand sowieso ein IKEA Besuch an, und von da an bezwangen zwei ROLFSTORP Lampen für je 7 € die Dunkelheit.
Im Alltag merkte ich aber schnell, dass mir das separate Anschalten zweier Lampen zu unpraktisch ist. Eigentlich wäre es viel praktischer, wenn die Lampen einfach zusammen mit der Deckenlampe angehen würden.

Erste Schritte
Auf die inneren Werte kommt es an
Frei nach diesem Motto habe ich die Lampe erstmal geöffnet. Das Gehäuse wird von einigen Plastikclips zusammengehalten. Nachdem man das Batteriefach geöffnet, die dortige Schraube gelöst und alle Batterien entfernt hat, lässt sich die Diffusorabdeckung abclipsen. Am besten ging das bei mir mit vorsichtigem Aufhebeln an einer der Stirnseiten mit einem Messer.

Danach kann man die Blende komplett abnehmen und sieht direkt die Platine mit den LEDs sowie, an einem Ende, einen silbernen Schaumstoffwürfel mit leitendem Metallnetz. Das ist die Elektrode für den Touch Knopf.

Aus der Nähe sieht man den Touch Sensor noch etwas besser. Das leitende Netz sitzt direkt auf einem kleinen Pad der Platine, der Schaumstoff darunter sorgt nur dafür, dass beim Zusammenbau genug Anpressdruck gegen das Gehäuse entsteht.

Als nächstes lässt sich die Platine aus den Halterungen herausklipsen. Auf der Rückseite sieht man neben den Kontakten für die beiden AA Zellen auch schon die komplette Elektronik neben dem Mikro USB Port auf der PCB.

Ein bisschen Reverse Engineering
Um die Lampe sinnvoll umzubauen, braucht man erstmal ein grobes Verständnis davon, wie die Schaltung funktioniert. Zum Glück ist die recht überschaubar gehalten. Abgesehen von den LEDs sitzen alle Bauteile auf der Rückseite neben dem Mikro USB Port. Die Schaltung besteht im Wesentlichen aus drei integrierten Schaltkreisen mit ihren jeweiligen passiven Bauteilen drumherum.

Auf der Platine sitzen drei ICs: CS32F302FE0, MT7282 und CN3085.
Der CS32F302FE0 sitzt an der Stelle, wo auch die Leiterbahn zum Touch Pad ankommt, und übernimmt vermutlich die kapazitive Auswertung des Touch Signals sowie die eigentliche Ablaufsteuerung der Lampe (an, aus, Helligkeitsstufen). Ein offizielles Datenblatt dazu konnte ich trotz einiger Suche nicht finden, der Chip scheint eine wenig dokumentierte MCU eines chinesischen Herstellers zu sein. Praktischerweise hat sich schon jemand anderes an genau dieser Lampe versucht und das Verhalten des Chips gemessen statt nur zu raten: im Forenthread bei All About Circuits wurde gezeit, dass ein Pin des CS32F302FE0 je nach gewählter Helligkeitsstufe eine unterschiedliche Analogspannung ausgibt, gemessen wurden dort etwa 1,49 V, 0,92 V und 0,63 V für die verschiedenen Stufen.

Diese Spannung geht über ein Netzwerk aus Widerständen, unter anderem R43 und R45, direkt auf den ADJ Pin des MT7282. Das ist laut Datenblatt ein Boost/Buck Boost/Buck Konstantstromtreiber für weiße LEDs mit einem Eingangsspannungsbereich von 2,5 V bis 40 V, der genau zu der Spule und der Schottkydiode neben dem Chip passt. Der ADJ Pin regelt dabei die Helligkeit, jede Spannung über etwa 1,6 V wird laut Datenblatt auf 100 % Stromausgabe geklemmt. So ergibt auch die verschiedenen Analogspannung des CS32F302FE0 Sinn: Sie steuern so den LED Treiber und damit das Helligkeitslevel.

Der dritte Chip, CN3085, ist laut Datenblatt ein Laderegler für NiMH Akkus mit bis zu 1 A Ladestrom, was gut zu den beiden verbauten AA Zellen passt. Für den Umbau kann man ihn getrost ignorieren, da die Lampe am Ende dauerhaft über USB betrieben wird.

Umbauanleitung
So soll die fertig umgebaute Platine am Ende aussehen, mit dem zusätzlichen Board und drei Litzen zur Hauptplatine.

Benötigtes Material
- Lampe
- Kleiner ESP32 (bei mir ein Adafruit QT Py ESP32 Pico, ein Waveshare ESP32 C6 Zero oder andere Boards sollten genauso funktionieren)
- Litzenkabel
- Lötkolben
Kabel am ESP32 anlöten
Es werden je ein Kabel an den 5V Pin, den GND Pin und einen digitalen Pin des ESP32 gelötet. In meinem Fall war das GPIO33.
Stromversorgung
Für die Stromversorgung nutze ich den Bypass Kondensator direkt neben dem Mikro USB Port. Sobald die Lampe eingesteckt wird, wird darüber auch der ESP32 mit Strom versorgt. Die Kabel dafür werden wie folgt angebracht:

Signal
Den digitalen Pin des ESP32 verbinden wir auf der linken Seite mit dem Knotenpunkt von R43 und R45. Diese beiden Widerstände bilden den oben beschriebenen Spannungsteiler, der normalerweise das Ausgangssignal des CS32F302FE0 auf den ADJ Pin des MT7282 gibt. Der ESP32 übersteuert dieses Signal jetzt direkt und übernimmt so die Helligkeitssteuerung. Der Nachteil dabei ist, dass wir dadurch die Fähigkeit verlieren, den Touch Sensor noch direkt zu verwenden, da der ESP32 das ursprüngliche Signal überschreibt. Wer den Touch Knopf parallel weiter nutzen möchte, findet im oben verlinkten Forenthread einen alternativen Ansatz über einen zusätzlichen Pullup Widerstand statt einer direkten Übersteuerung.

Robust machen
Anschließend kann der ESP32 direkt in das Batteriefach geklebt werden, dort ist ausreichend Platz. Der Batteriebetrieb ist für mich sowieso uninteressant, da ich die Lampe dauerhaft am Netzteil nutzen will. Die Kabel können danach ebenfalls festgeklebt werden, damit später beim Zusammenbau nichts lose in der Gegend rumhängt.

Programmieren
Jetzt kann der ESP32 per USB mit dem PC verbunden werden. Als Software habe ich mich für ESPHome entschieden. Damit lässt sich die Firmware für gängige Mikrocontroller allein über eine YAML Konfigurationsdatei erstellen, ganz ohne eigenen Code, und direkt in Home Assistant einbinden. Für meinen Fall reicht die monochromatische Lampe von ESPHome, die aus einem einfachen Helligkeitsausgang eine dimmbare Lampe macht und sich so ohne viel Aufwand programmieren und in Home Assistant einbinden lässt.
Anschließend kann alles wieder zusammengebaut und getestet werden. Der ESP32 sollte danach in Home Assistant auftauchen und sich von dort dimmen und zusammen mit der Deckenlampe schalten lassen.
Fazit
Auch wenn es inzwischen schon fast zwei Jahre her ist, dass ich die Lampen umgebaut habe, ist mir das als schönes kleines Projekt für einen Abend im Kopf geblieben. Für mich hat es alle Punkte erfüllt: schnell umzusetzen, günstig, praktisch, und seitdem läuft es fehlerfrei.

