Ikea Trådfri

Aus Hobbyelektronik.org
Wechseln zu: Navigation, Suche

Trådfri, wie es aussieht kein richtiges schwedisches Wort, das für das drahtlose Beleuchtungssystem von Ikea steht.

Da ich mittlerweile ein paar Lampen aus dem Möbelhaus bei mir im Einsatz habe, wollte ich mich ein wenig damit auseinandersetzen

Anmerkung: Einige Teile des Artikels sind aus dem Blog übernommen

Kabelloser Dimmer 003.478.31

Tradfri Dimmer, nahezu unsichtbar auf weißem Grund

Teardown

Nimmt man das "User-servicable" Gehäuse vom Dimmer ab, bekommt man folgendes zu Gesicht:

Die Typenbezeichnung ist also neben der Ikea-Nummer ICTC-G-1. Obwohl das Gehäuse den Anschein macht, als wäre es Ultraschall-verschweißt, ist es nur geklipst. "Built to a price", das Schweißen wäre ein zusätzlicher Produktionsschritt und die Spritzguss muss sowieso ran. Mit einem vorsichtig angesetztem Schraubendreher lassen sich die Gehäuseteile trennen und die Leiterkarte kommt zum Vorschein:

Das Rückteil ist weniger spektakulär – ein Magnet und eine Kontaktfeder für die Batterie. In der anderen Hälfte steckt die "Magie":

Der Codename für das Leiterkärtchen ist allen Anschein nach "Nebula_1F". Ich bin kein Trekkie, aber ist das eine Anspielung auf eine Schiffsklasse? Halbwegs futuristisch ist die Bedienung immerhin…

Hirn und Herz ist ein Silabs EFR32 MG1P132GI. Für ein Datenblatt sollte man den Suchbegriff auf "EFR32MG1" einschränken: "Mighty Gecko Mesh Networking Wireless SoCs for Zigbee and Thread"-Produkt-Familie beim Hersteller.

Leider hört es da auch schon fast auf. der IC rechts unten (mit der Aufschrift "I4BEB2 P10343") dürfte ein EEProm sein (nachdem der Gecko wohl keinen internen hat), bei den oberen beiden (Aufdruck "S2 636" und "628") dürfte es sich vermutlich um Magnetometer und Gyro handeln. Letzteres vermutlich eher links oben, da diese Komponenten meines Wissens etwas höhere Pulsstromaufnahmen (schließlich muss die Mikromechanik angeschubst werden) haben.

Schön an den Geckos ist, dass man die Pins ziemlich komfortabel auf die gewünschten Funktionen routen kann, für’s Reverse Engineering ist das allerdings nicht so ganz schön.

Wenn man die Leiterbahnen etwas verfolgt erkennt man, dass es die Leiterkarte mehr als 2 Lagen hat, halbwegs erstaunlich, bei der vergleichsweise geringen Komplexität. Bei der Leiterkartenproduktion wurde das aber wieder reingeholt: Die Leiterkarte ist gestanzt statt gefräst und das Material sieht eher billig als günstig aus. Immerhin sind die Kontakte vergoldet und es wurden einige Testpunkte spendiert – da wird sicher ein I²C dabei sein.

Reverse Engineering

Mit ein bisschen Probing lässt sich der I²C der beiden ICs oben ermitteln.

Sobald der Mikrocontroller mit Strom versorgt wird, wird auch fleißig kommuniziert - mit den Devices 0x19 und 0x6B (jeweils 7-Bit-Adressen).

Die Initialisierung selbst gab zumindest mir keinen richtigen Aufschluss darüber, was das Bauteil auf Adresse 0x19 ist.

Dreht man den Dimmer, sieht man allerdings recht schnell, wer auf 0x6B reagiert:

Wenig schreiben, viel Lesen - das muss ein Sensor sein. Mit ein wenig Scripting habe ich versucht, die Daten vom Logic auseinanderzupflücken (analyze_i2c.py und ein bisschen Excel). Ich habe noch nicht geprüft, ob das Script so funktioniert wie es beabsichtigt war, allerdings stehen die für die Drehung relevanten Daten in Register 0x3F:

Alle Aufzeichnungen (Init, Drehen in/gegen Uhrzeigersinn liegend und vertikal) zum Untersuchen und herumspielen gibt es natürlich zum herunterladen: Datei:Tradfri dimmer rev i2c comm.zip

Dominik hat sich die Mühe gemacht und das Layout genauer analysiert:



Fernbedienung 303.388.49

Tradfri Fernbedienung

Teardown

Habe ich noch nicht selbst durchgeführt, aber Heise.

Dominik, der sich auch etwas näher mit dem Zerlegen und Umbauen der Fernbedienung auseinandergesetzt hat, gab folgende Tipps:

  • Das Gummi auf der Rückseite an zwei Stellen (45° versetzt/viertel Kreis) bis aufs Plastik drunter einschneiden (Teppichmesser)
  • Das Gummi abziehen (kleine Zange und wenn verfügbar ein bisschen Heißluft)
  • Dann schneide/reiße ich mich von der Batterie aus nach Außen (kleine Zange/Seitenschneider)
  • Ist erst einmal ein Schlitz da, ploppt der vordere Teil heraus (mit etwas biegen und drück)
  • Das mit dem Dremel war mir bis jetzt zu gefährlich, am Ende ist dann nur das PCB hin und der Dremel voller geschmolzenem Plastik

Wandhalterung für Unterputz-Dosen

Dominik war es auch, der ein 3D-Design erstellt hat, mit dem man die Fernbedienung in die gleiche Form wie Jäger/Busch-Schalter zu bringen. Da er selbst keine Homepage/Blog hat, bat er mich, sein Design zur Verfügung zu stellen:

Vielen Dank dafür!

Da ich selbst unerfahren in Sachen 3D-Druck bin, kann ich die Daten leider nur as-is weitergeben.

Alle Rechte bleiben bei Dominik (Kontakt kann ich in beidseitigem Einverständnis vermitteln). Unter Vorbehalt ist die kommerzielle Nutzung ausgeschlossen.

Datei:Tradfri remote frontplate.zip


GU10-Lampe 803.652.70

Teardown

Zu dem Zeitpunkt, als ich die GU10-Lampe gekauft habe, war sie mit IIRC knapp 7 Euro diegünstigste verfügbare Lampe mit Funk. Mittlerweile (02/2019) hat sich der Preis mit 13 Euro fast verdoppelt. Ob sie anfangs unter Preis verkauft wurde, möchte ich nicht beschwören.

Frisch as der Packung sieht sie wie folgt aus:

Der Deckel bzw. die Optik lässt sich mit einem flachen Schraubendreher erstaunlich leicht entfernen, innen ist das Teil auf ersten Blick eher unspektakulär:

Ein herumflatterndes Kupferfähnchen? Sieht nach einem late fix zum Bestehen der EMV-Prüfungen aus. Das LED-Modul hat keine Wärmeleitpaste im Rücken und die leicht verklebte Metallplatte lässt sich mit sanfter Gewalt (mit dem Schraubendreher am Schraubloch hebeln) herausnehmen. Dahinter begrüßt einen die Elektronik – oder zumindest das Funkmodul.

Es sieht besser aus als es ist. Ich bin mir nicht sicher, ob das Shielding seinen Namen verdient hat, es wackelt wie ein Kuhschwanz. Eine saubere elektromechanische Verbindung sieht auf jeden Fall anders aus. Ein bisschen mehr hebeln und das Innere erblickt das Tageslicht:

Das Silabs-Logo lässt sich erahnen, links unten sitzt auch ein "alter Bekannter". Bin mir ziemlich sicher, dass es sich hier um einen EEProm handelt. Im Bild sieht man auch, dass das Modul by design eher bescheiden eingelötet ist: unter der linken Kante sitzt ein SMD-Widerstand, unter der rechten nicht. Da man sowas maschinell nicht vernünftig gelötet bekommt:

Mit ein bisschen Zug kommt auch das Netzteil + Controller raus. Es ist hinten nicht verlötet und sieht von oben zwar sehr eng gepackt aber dennoch halbwegs ok-ish aus:

Von unten sollte man es – zumindest wenn man Elektroniker ist und einen schwachen Magen hat – besser nicht ansehen. Verdammt viele Handlötungen, mehr Lötzinn als mir lieb ist und noch mehr ekelhafte Flussmittelrückstände.

Der 5-Beiner oben ist mit ZR7IB beschriftet (kein Datenblatt auffindbar). Das Bauteil im SO-8-Gehäuse heißt BEH7JB (auch nix zu finden). Die Qualität dieser Leiterkarte ist leider nicht wirklich rühmlich.

Einen High-Pot-Test würde ich angesichts solcher Lötstellen nicht unbedingt machen:

Reverse Engineering

Die Beschaltung des Funkmoduls kann man anhand der Leiterkarte relativ einfach ermitteln:

Von in dieser Ansicht unten von links nach rechts:

Pin Funktion
1 unbekannt
1 unbekannt
1 unbekannt
1 PWM Out
1 GND
1 3,3 V

Jemand anderes hat eine genauere Untersuchung durchgeführt und alle Pins gemappt.

Was kommt raus? An den Logic Analyzer angeklemmt zeigt sich bei niedrigster Helligkeit eine On-Time von 94,92 µs und eine Frequenz von genau 600 Hz. Der Duty-Cycle ist also bei 5,695 %.

Den Slider in der App auf etwa die Hälfte gezogen ergibt sich ein Duty-Cycle von ca. 24 %, bei dreiviertel sind es 50 % Duty-Cycle. Die Frequenz bleibt konstant.

An dieser Stelle endet meine Untersuchung. Der Github-User basilfx ist da deutlich tiefer in Sachen Hacking eingestiegen.