Wallboard 2.0

From Randomdata
Revision as of 20:52, 15 October 2013 by Jeroenh (talk) (Created page with "A followup project to the reverse engineering of the Wallboard. =Wallboard Reverse Engineering= The first project reverse engineered the Wallboard protocol through a Moxa...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A followup project to the reverse engineering of the Wallboard.

Wallboard Reverse Engineering

The first project reverse engineered the Wallboard protocol through a Moxa eth-rs232 controller and a cable. The cable has gone lost unfortunately.

New Project

The new goal is to connect a Wallboard to a Raspberry Pi in some way and make a Wallboard available as a clock with extra functions.

A first attempt was to use the serial interface of the RPi directly. Unfortunately, the RPi only has 3.3V and the Wallboard likes to have 5V for its interface. The end result was that the current Wallboard text was deleted, but nothing else could be gotten out of it.

A next attempt was to create a USB to audio-plug cable. We re-used the cable to the RPi serial, and connected that to a serial cable, and used an FTDI chip to convert it to USB. Using a Python program below we managed to get some text to get displayed on the Wallboard.

We searched on Farnell for parts to make this into a nicer cable, and we actually managed to find just just the right cable. The only problem was that the receive and transmit was swapped (probably). We tested them and confirmed that they did not work out of the box. We swapped the cables and it still did not work.

Whipping out the logic analyser we found that the signal on the transmitting was inverted compared to our previously hacked together cable. Fortunately, this cable has a programmable FTDI chip, which can be reprogrammed using the FT_Prog application from [1]. We successfully inverted the Rx and Tx signals, and we replicated the results from our previously engineered cable.

Python implementation prototype

import serial
a = "\x02\x80\x80\x7e\x03"
port = serial.Serial("/dev/ttyAMA0", baudrate=1200,timeout=1)

Open Problems

- The text we send is displayed and flashes by very quickly, and repeats very quickly which is not what is supposed to happen.
- Sometimes the write operation just plainly does nothing or freezes what is there.
- The Wallboard not only receives bytes, but also sends bytes back. Sometimes it just echoes back what you sent, but other times other stuff gets sent back. We have no idea what that is.

It looks like the reverse engineering was not complete, or has not been documented fully...