Matrixsignaalgever
Hoe komen we eraan?
RevSpace heeft een matrixbord. Het schijnt een prototype te zijn, een model dat om een of andere reden niet goed genoeg was voor boven de weg. Althans, dat is de overlevering; we hebben 'm gekregen van Duitse hackers tijdens het CCCamp in 2015 en meer informatie dan dit hadden ze niet.
Protocol
Het ding wordt aangestuurd via een geadresseerde bus, maar intern gaat dat verder als 5V TTL serieel op 9600 baud. Periodiek wordt de status teruggemeld in een bericht van 10 bytes. De eerste byte is steeds 0x59, de laatste byte is een simpele XOR-checksum. We slaan de veldbus over en hebben alleen gewerkt met de interne TTL, want dat is makkelijker en genoeg om beelden tevoorschijn te toveren.
Door middel van "cat /dev/urandom | tail random.log > /dev/ttyUSB0" en een beetje geluk hebben we het protocol om plaatjes tevoorschijn te toveren uitgepluist. Ook hierbij is de eerste byte 0x59 en de laatste byte een XOR-checksum, maar daartussen zitten slechts 5 bytes. Met brute force hebben we de volgende info gevonden:
Bytenummer | Waarde | Gegokte betekenis |
---|---|---|
0 | 0x59 | Commando |
1 | 0x08 | ?? Bij de meeste waarden krijg je het beeld heel even, maar gaat het direct weg. Als bit 4 aanstaat (8), blijft het beeld staan. |
2 | 0x00 - 0x14 | Helderheid. Maar dimmen is nog vervelender dan felle leds want het apparaat PWM't irritant traag. |
3 | 0x01, 0x02, 0xff | Type. 1 voor snelheid, 2 voor rijstrookdingen, 255 voor de overig |
4 | 0x00 | ?? |
5 | Snelheid: 50, 70, 80, 90, 100, 120 Rijstrook: 1=↙, 2=↘, 3=↓, 4=× |
Te tonen beeld |
6 | 1=normaal, 2=gele flashers, 3=rode rand | Modifier; niet alle combinaties zijn mogelijk (bijv. ↓ in een ○ kan niet). Als de flashers aanstaan, is dat altijd 0,6 s boven, 0,6 s onder en 0,8 s uit. |
7 | ... | XOR-checksum van voorgaande bytes |
Review
Dit exemplaar lijkt ongeschikt voor het echte werk. De frontplaat is niet waterdicht (hoewel in de rest van de behuizing alles keurig wachterdicht gemakt is), de 5mm leds prikken gewoon door gaatjes heen. Er zit een knopje in waarmee je door de mogelijke beelden kunt cyclen, maar daarmee kun je ook verwarrende onmogelijke beelden krijgen die boven 'n snelweg vast tot ongevallen leiden. Het dimmen gaat via een dermate trage PWM dat compleet desorienterend is voor iemand die daar gevoelig voor is.
Overigens heeft ie ook een demomodus die elke 5 seconden een nieuw beeld laat zien, waarin blijkbaar alleen zinnige beelden zitten. Die kun je activeren door dipswitches te veranderen. Interessant is dat de flashers in de demomodus een andere snelheid hebben dan in het echt (veel sneller).