031317_2050_TinkeringTu9.jpg

Tinkering Tuesday – HUEify RGB Strips mit dem NXP JN5168

Wie schon angekündigt soll unsere Nachtkonsolenbeleuchtung mittels eines ZigBee Light Link kompatiblen Chips, dem NXP JN5168, an das Philips Hue System angeschlossen werden. Peter Visser, alias PeeVeeOne (www.peeveeone.com) hat da eine super Vorarbeit geleistet.

Die benötigten Teile sind mittlerweile da. Das ist zum einen der Chip selbst (Amazon: RF MOD, IEEE802.15.4, STD PWR, INT ANT JN5168-001-M00Z By NXP) und dann ein relativ beliebiger FTDI zu USB Serial Converter.

JN5168 anlöten und neue Firmware aufspielen

Da sich meine Lötkünste schon im normalen Bereich, also einem Rastermaß von 2,54mm eher so in Grenzen halten, war ich mit dem Breakout der Pins vom JN5168 maßlos überfordert. Coolerweise war auch mein Lehrmeister in Sachen Elektronik (www.doktor-andy.de) begeistert von dem Projekt, sodass er sofort bereit war mir das anzulöten. Mit einem Schluck Bier und daraus folgender ruhiger Hand am Montagabend wurden dann mit dünnem Kupferdraht die benötigten PINs herausgeführt:

Andy mein Lötmeister! Er sei gepriesen!
Die erste Kupferleitung ist angelötet

Wirklich notwendig für das Projekt sind:

  1. Pin 3 (SPIMISO): der muss auf GND gelegt werden um den Chip programmieren zu können
  2. PIN 17 (VDD): 3,3V (wichtig, am FTDI nicht vergessen von 5V auf 3,3V umzustellen)
  3. PIN 18 (GND): Ground
  4. Pins 19, 20, 21 (DIO 11-13): dies sind die PWM Pins, die für die Ansteuerung des RGB-Strips benötigt werden

Wir haben zusätzlich noch Pin 22, den Reset-Pin, herausgeführt, aber letztlich garnicht benutzt. Kurz stromlos stellen geht auch.

20170306_190156
Kleine Spinnenbeine aus Kupfer

 

Mit blieben dann nur kleine Zuarbeiten, wie etwa das Auftrennen der Streifenrasterplatine in der Mitte:

20170306_190222
HiWi Boris bei der Arbeit

Auf dem Breadboard mit dem FTDI verbunden (Rx an Tx und umgekehrt…):

Die Programmierung ging nach Anleitung von www.peeveeone.com beim ersten Versuch gleich durch. Erst den EEEPROM löschen:

Dann die neue Firmware aufspielen:

Freudig erregt bin ich nach Hause gefahren und hab die Philips Hue App angeschmissen und die Bridge auf die Suche nach dem neuen Lichtlein geschickt. Wichtig ist erst die Suche zu starten, dann den Strom am JN5168 anschließen. Und wer hätte es gedacht: Sofort erkannt!

Angezeigt wird sie als „Color Light 1“

Also auf zum nächsten Schritt, den RGB-Strip ansteuern.

RGB-Strip an Arduino betreiben

Damit ich mir den JN5168 nicht gleich verbrate, weil ich irgendwas nicht korrekt angeschlossen hab, wird erstmal mit dem Arduino die Verkabelung getestet. Dazu nutze ich im Grunde das Anschlussdiagramm von Adafruit aus dem RGB-Strip-Tutorial. Ich habe mich für die Nutzung von MOSFETs entschieden und habe bei Conrad den BUZ11 besorgt. Davon 3 angeschlossen und den Beispiel-Code von Adafruit aufgespielt bringt das gewünschte Ergebnis:

Das einzige was auffällt ist, dass der RGB-Strip nicht korrekt beschriftet ist. Die Pins sind wie folgt gekennzeichnet: + – R – G – B allerdings ist die eigentliche Belegung + – R – B – G. Naja, zum Glück ist wenigstens der + Pin richtig…

Nun gut, dann geht es ans Eingemachte. Die PWM-Pins wurden an den JN5168 angeschlossen, GND entsprechend mit an GND vom Arduino angeschlossen und auch der 3,3V Anschluss vom Arduino an den VDD vom JN5168 angeschlossen. Hier ein Video vom ersten anschalten:

Mehr gab es beim ersten Mal leider nicht zu bewundern, da der Empfang in meinem Arbeitszimmer so schlecht war, dass die meiste Zeit nichts passiert ist. Am nächsten Abend habe ich die Schaltung ins Wohnzimmer rübergebracht. Dabei hatte ich einige Kabel abgemacht um es separat zu tragen. Danach habe ich erstmal 1,5h damit verbracht das Ganze wieder zusammenzusetzen und herauszufinden warum „genau der gleiche Aufbau“ einfach nicht funktioniert. Weder am Arduino noch am JN5168 hat der Strip geleuchtet. Bis ich dann am Abend gemerkt habe, dass ich ein GND-Kabel auf der anderen Seite des Breadboard Siderails angeschlossen habe und nicht bedacht habe, dass die in der Mitte nochmal getrennt sind (im Bild mit rot gekennzeichnet und dann auch mit einem Jumper-Kabel überbrückt)…

Am Wochenende wurde dann alles nochmal richtig getestet und verkabelt und siehe da, es wird Licht und die Farben ändern sich. Allerdings leider nicht ganz so wie erhofft. Grün geht, blau geht, rot irgendwie nicht so richtig und das wichtigste: der Strip lässt sich nicht ausschalten sondern wird dann einfach komplett hell. Spricht eigentlich ja dafür, dass da was mit Common Anode / Common Cathode LED verkehrt läuft, aber eigentlich sollte das alles korrekt sein. Hier mal als Video:

Als erstes habe ich dann den Strip nochmal an den Arduino angeschlossen und geschaut, ob ich bei direkter Ansteuerung jeweils einer Farbe die entsprechenden LEDs zum Leuchten bringen kann. Das funktioniert.

Das erste was ich nun tun werde ist mir nun die Verkabelung am JN5168 nochmal zu Gemüte führen (also mal nur jeweils einen Kanal des Strips anschließen und schauen wie sich die jeweilige LED verhält). Dazu wird dann die Entwicklungsumgebung von NXP installiert und dort etwas geforscht. Das ist da wo der eigentliche Spaß beginnt! Der Doku kann man entnehmen, dass man mehrere Endpoints (also mehrere Lampen) auf einem Chip konfigurieren kann. Außerdem kann man den Chip auch als Aktor (also als Lichtschalter / Dimmer Switch) konfigurieren. Nicht ganz eindeutig ist, ob man auch einen Mischbetrieb fahren kann. Wenn ich richtig lese, dann nicht. Aber das werde ich trotzdem ausprobieren. Aber dafür muss erstmal wieder Zeit her.

4 thoughts on “Tinkering Tuesday – HUEify RGB Strips mit dem NXP JN5168

  1. Echt tolles Projekt! Bin gerade dabei das nach zu bauen. Hättest du vielleicht einen Schaltplan des funktionierenden Projekts? Bin mir nicht ganz sicher wegen der Versorgung der einzelnen Komponenten.

    1. Hi. Sorry für die späte Antwort, in letzter Zeit kommt sehr viel Kommentar-Spam rein, deswegen verliere ich manchmal den Überblick…
      Ich habe das Projekt aufgrund meines anderen Projekts (Playmobil Stage) leider hintenanstellen müssen, werde aber in den kommenden Monaten wieder daran weiterarbeiten.
      In meinen Foglebeiträgen findest du einige Mehrinformationen, z.B.:
      Ein Schaltbild zum Anschluss des JN5168 an einen Arduino Mega findest du unter http://www.boriswerner.eu/tinkering-tuesday-hueify-jn5168-to-arduino-mega-pwm-extension/
      Mein LED Driver Board unter http://www.boriswerner.eu/tinkering-tuesday-hueify-pwm-to-rgb-led-strip-driver-board/ (hier bitte den Kommentar von Matze unten beachten). Dort wird an J1 die externe Stromversorgung angeschlossen. Allerdings ist dort die Versorgung des Mega noch nicht vorgesehen. Da muss ich nochmal ran.
      Sonst einfach mal auf das Stichwort „Hue“ hier unter dem Beitrag klicken oder im Inhaltsverzeichnis stöbern.
      Falls du konkrete Fragen hast sag gerne Bescheid.

  2. Der BUZ11 ist nicht geeignet zur direkten Ansteuerung durch Logikpegel (er leitet nur wenig und verbrät Wärme) und sollte, wenn man auch nur etwas Strom für die LED benötigt, durch z.B. einen IRLZ34 oder den IRLZ44 ersetzt werden. Ebenfalls sollten an jeden Gate Pulldown Widerstände gegen Masse vorgesehen werden, um das Aufblitzen der LED zu verhindern, solange der Port des Controllers noch nicht initialisiert ist. Hier tun es ein paar kOhm, z.B. 4k7 – 100k.

    1. Hi Matze, danke für die Hinweise. Ich weiß, dass der nicht optimal ist, aber er funktioniert ganz gut…
      Ich habe vorher noch nichts mit MOSFETs zu tun gehabt, deswegen habe ich mich auf meine Recherchen gestützt, die den BUZ11 als „nicht optimale aber sichere Bank“ hervorgebracht haben. Auch als ich beim Conrad den Menschen am Teileschalter nach einer Logic Level Alternative zum BUZ11 gefragt habe wurde ich nur mit großen Augen angesehen….
      Ich hatte auch mal einige IRFs glaube ich in der Auswahl, die aber unverhältnismäßig teuer waren.
      Ich werde aber definitiv beim nächsten Mal die von dir vorgeschlagenen testen.
      Die Widerstände gegen Masse hatte ich auch nicht auf dem Schirm. Sind aber letztlich hauptsächlich kosmetisch oder?

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *