Pokażę tu jak można zmienić oprogramowanie lampki LED sterowanej przez WiFi. Temat obejmie jej pełny demontaż, podłączenie programatora UART, konfigurację oraz przywrócenie całości do stanu używalności bez użycia kleju. Przy okazji też zmniejszę programowo prąd LEDów, by nieco przedłużyć jej życie.
Zacznijmy od samego zakupu. Z Chin taką lampkę można sprowadzić nawet za około 10 zł. W naszym kraju jest nieco drożej. Całość można często spotkać pod nazwą "żarówka LED", choć jest to tylko potoczna nazwa i nie jest poprawna. Pokazany tu egzemplarz normalnie współpracuje z Tuya. Jego oznaczenie to TY-E14-220VB*AT, WiFi LED Bulb RGB CW WW 5W AC. Oznaczenie RGB CW oznacza dostępność kolorów oraz temperatur bieli. Druga nazwa modelu produktu to C3009.
Najpierw zdejmuję kopułkę, często wystarczy mocniej pociągnąć, a potem płytkę z diodami LED.
W tym przypadku jest ich pięć typów - czerwone, zielone, niebieskie, ciepła i zimna biel. Steruje nimi BP5758.
BP5758 to stałoprądowy kontroler LED. Wyróżnia go sterowanie przez protokół zbliżony do I2C (bez adresowania), co zmniejsza ilość potrzebnych linii z MCU - wystarczy linia danych i zegar, nie potrzeba pięciu PWM.
Nasz polski firmware który będę wgrywać już BP5758 wspiera.
Niżej mamy płytkę z zasilaczem i modułem WiFi:
Moduł WiFi opiera się o LN882H, którego też nasz firmware wspiera:
Arkusz danych LN882H, wyprowadzenia, moduły WiFi (LN882HK, LN882HKx, LN882), oprogramowanie sprzętów
Teraz trzeba tę płytkę wyjąć. Najpierw zdejmujemy gwint:
Potem uwalniamy drugi przewód:
Gotowe, teraz tylko nie zgubić części:
Taśmy też nie polecam wyrzucać, chyba, że damy własną - ona chroni przed spięciem z obudową.
Oznaczenie PCB: SY-E14-WIFI-BL-5L. Oznaczone są też ścieżki od zasilania i magistrali dwuprzewodowej.
Widać mostek prostowniczy:
Obok widoczna jest antenka i układ zasilacza - BP2525.
A tu są pady do programowania...
Trzeba wylutować moduł WiFi. Inaczej nie dostaniemy się do padów. Moja metoda na wylut to topnik i plecionka - po usunięciu spoiwa moduł sam wypada.
Potem nakładam spoiwo na pady - łatwiej się lutuje:
Oznaczone wyprowadzenia:
Do programowania potrzebny jest konwerter USB na UART. Boot podłączamy do masy.
Kabelki też przed lutowaniem pobielam.
Cały układ - zewnętrzny LDO 3.3V jest lepszy od zasilania z konwertera USB na UART, moduł WiFi może nie uruchamiać się gdy brakuje wydajności prądowej.
Kiedyś flashowaliśmy LN882H tak:
Teraz wspiera go nasz flasher:
https://github.com/openshwprojects/BK7231GUIFlashTool
A więc, najpierw kopia zapasowa wsadu:
Potem wgrywanie OBK - flasher sam może pobrać plik binarny z Githuba:
Potem odłączamy boot od masy i odcinamy na chwilę zasilanie. Potem powinien pojawić się AP:
Można skonfigurować nasze WiFi i piny urządzenia:
Można ustawiać piny ręcznie:
Najprościej jest wgrać szablon OBK:
Kod: JSON
Instrukcja wgrywania szablonu:
Teraz zostaje wyjaśnić komendy z szablonu. Normalnie edytuje się je w "Short startup command" w opcjach:
- BP5758D_Current 3 3 ustawia prąd LEDów, osobno RGB, a osobno CW. To pozwala zmniejszyć grzanie się całości i przedłużyć życie elektroniki
- LED_Map ustawia kolejność kolorów - może być ona dowolna, a firmware oczekuje RGBCW
- PowerSave 1 włącza oszczędzanie energii
Dobór prądu poprzez BP5758D_Current pozwala nam zadecydować pomiędzy czasem życia produktu a poziomem jasności jaki chcemy uzyskać.
Końcowy efekt (po złożeniu w całość):
Zostaje połączyć z HA, opisuje to nasz tutorial: https://www.youtube.com/watch?v=pkcspey25V4
Podsumowując, w ten sposób można uwolnić lampkę LED Tuya od chmury i sparować z Home Assistant. Tym razem największą trudnością był demontaż całości, ale udało się to zrobić bezdestrukcyjnie i po złożeniu całość dalej działa. Potencjalnie problemem jest też z przegrzewaniem się produktu, ale to występuje już fabrycznie, a my możemy tylko to polepszyć - zmniejszając prąd LEDów przez odpowiednią komendę. Bez tego szybko osiągniemy i 100°C:
Tyle, że teraz mamy nad tym kontrolę i w razie czego możemy zmniejszyć prąd segmentów. Sami decydujemy, jak mocno będą się grzać LEDy. To znacznie większy poziom kontroli niż to, co oferowała nam aplikacja producenta, więc pewnie było warto...
W kolejnej części spróbuję uruchomić animacje na kilku takich lampkach LED - użyję do tego protokołu DDP.
PS: Repozytorium użytego firmware:
https://github.com/openshwprojects/OpenBK7231T_App
Fajne? Ranking DIY Pomogłem? Kup mi kawę.