1 Einleitung
Da UniFi OLED Displays* von der Community noch nicht gründlich untersucht wurden, sind hier einige Befehle, die ich durch Reverse Engineering herausfinden konnte.
Natürlich wäre es interessant, wenn die UNVR-Serie beispielsweise Videos auf dem UDM abspielen könnte.
Das Display scheint über USB angesteuert zu werden:
Copy && Paste: usb-Ubiquiti_Inc._Ulcd_application-if00
1.1 Deamon Log:
Mit lcm-control -d -c lässt sich der Debug Log vom Deamon in die Console printen.
1.1.1 Display Flashen:
Das Display lässt sich auch ohne irgendwelche Flasher und Jumper flashen.
Dazu gibt es ein CLI Tool, das hatte ich gestern durch Zufall gesehen.
Wenn man mehrmals hintereinander in den USB Stream irgendwas herein schreibt, wird der MCU in den Download/DFU Mode versetzt.
Die Display Firmware befindet sich übrigens in /usr/share/firmware/.
Ich rate hiervon jedoch dringend ab, da so das Display gebrickt werden kann!
1.2 Commands:
Mit den Commands lassen sich vorgefertigte Animationen oder Seiten laden.
1.2.1 UDM:
lcm-control --sender system-hook --command locate
lcm-control --sender system-hook --command screensaver
lcm-control --sender system-hook --command adopted
1.3 USW-Pro-8-PoE:
lcm-ctrl
SwitchPro8PoE-US2.7.2.123# lcmd -cd
lcmd: unrecognized option: c
Usage: lcmd [options]
Options:
-b <0-100> screen brightness
-e enable sending custom event
-i <timeout> screen idle timeout
-s enable screen sync
-a <interval> data feed active interval
-m <interval> data feed short interval
-h display this help and exit
Display More
1.4 Updates:
So wie es aussieht, sind die Updatepakete ohne Command und Sender versehen und bestehen lediglich aus ID und dem UI JSON Objekt.
1.4.1 Update Paket:
Der Deamon sendet konstant Daten an die USB Schnittstelle, egal ob diese derzeit angezeigt werden oder nicht.
TX:
RX:
Hier einige Beispielpakete:
1.4.2 UDM:
{"id":X,"ui":{"usage.cpu":38}}
{"id":X,"ui":{"network":{"experience.now":98}}}
{"id":X,"ui":{"throughput.rx":8384,"throughput.tx":12352}}
{"id":X,"ui":{"fan.rpm":1164}}
{"id":X,"ui":{"usage.mem":82}}
Das heißt konkret, dass Werte upgedatet werden, obwohl die zugehörige View gar nicht geöffnet ist, man könnte evtl. Energie und Bandbreite sparen, indem man nur Werte updatet, die wirklich auf dem LCM Display sichtbar sind.
1.4.3 UNVR:
Als kleine Anmerkung, ich habe im SRC vom Deamon den Command StartProtectStream gefunden, das Display wird jedoch mit einzelnen Frames gefüttert, welche sekündlich von der Protect API gezogen werden gefüttert.
Da ich keine UNVR habe, konnte ich leider noch nicht reverse engineeren, mit welchem CLI dies ausgelöst wird.
Wie immer sind Beiträge zu diesem Thema sehr willkommen.
Disclaimer:
Alle Anleitungen/Tutorials sind nach bestem Wissen und Gewissen verfasst, gehen immer von den definierten Software/Firmware-Versionen aus und sind auf das englische GUI ausgelegt.
Es gibt keine Garantie auf Erfolg. Im Falle eines Misserfolges hilft aber die Community hier sicherlich weiter.
Keiner der Autoren oder der Betreiber des Forums ist für die aus der Nutzung resultierenden Probleme/Herausforderungen verantwortlich.
Jegliche hier beschriebenen Schritte erfolgen ausnahmslos in eigener Verantwortung des Durchführenden.
Eltern haften für ihre Kinder.
Comments 23