Reverse engineering – P10 LED matrix display nu direct toegankelijk via Arduino/C++ – DMD2 Library

2 maart 2022

Afgelopen jaar heb ik voor een project LED Matrix Displays toegepast. Deze LED displays zijn gebaseerd op de P10 standaard en hebben een resolutie van 16×96 pixels met een enorm heldere lichtopbrengst. De standaard-driver voor dit display is de webbased ZH-5W1 LED Display controller. Opvallend aan deze controller is dat deze alleen via een native webinterface kan communiceren.

Voor het plaatsen van een goed zichtbare teller boven een productielijn kreeg ik recent de vraag voor een helder display – ook met vol daglicht. Het display is deze opstelling krijgt sensorwaarden gestuurd vanuit een IR sensor welke op de lopende band geplaatst is en daarmee automatisch registreert hoe vaak er nieuw product passeert. Daarnaast is er ook het verzoek voor het implementeren van een count-down tellerweergave, welke laat zien hoeveel er op dat moment nog geproduceerd moet worden om het dagvolume te behalen.

Om de lokaal verzamelde data weer te geven heb ik de standaard display controller met een reverse engineering onderzocht en heb ik vervolgens op de P10 SPI bus direct een Arduino aangesloten. Na wat puzzelwerk en het vinden van een goed werkende library (DMD2) heb ik een passende oplossing gevonden, waarmee op heldere wijze afwisselend inzicht gegeven wordt in de actuele productiesnelheid en de hoeveel welke die dag nog geproduceerd moet worden. Een praktische, haalbare aanpassing waarbij de P10 LED Matrix display direct ingezet kan worden.