Interface & Application Programming

For this weeks assignment I decided to continue on from last week and create an LED matrix controller application which can simultaneously driving multiple matrixes.

The software has been developed in Java and allows the user to scan for attached matrixes before allowing for the individual controller of each. The user can select individual LEDS on the matrix through the interface which then sends this pattern to the array of matrixes where the data is displayed.

I2C Data Bus

The I2C communication protocol is a two wire interface that allows for the intercommunication of up to 127 devices. As the intention is to create an array of LED matrixes this protocol is used to send each segment of the larger display for output. This provides half duplex communication and so a master slave architecture is created where the master signals for each connected device to either send or receive data. To ensure that there is no conflict during communication a master or routing micro controller has been used.

Display Router

In order to distribute the displayed image across the matrixes a routing micro controller is used which orchestrates the communication across the data bus. This board bridges the divide between the computer which communicates via serial and the LED displays on the I2C bus.

The routing board constantly scans the bus and requests data from each found device regarding their current status and the state of any attached sensors. This data is then stored and forwarded onto the computer when requested through serial. Similarly the display configuration is sent via serial to the router where it is then forwarded on to each appropriate board for display.

Basic UI

I2C Bus Scan

LED Matrix Control Example

Vinyl Matrix V2