The display is constructed from strips of tri-colour LEDS controller type WS2811 running at 400kHz. There are 8 strips each with 40 individually controlled LEDS. The controller is a BV500 ByPic device which can easily control 8 or more of these strips simultaneously.
The display was built as a concept to test the speed and feasibility as such not much effort was put into the actual design so there are some problems particularly with the power supply. If you want to build something like this then read the text in full as there are some valuable lessons that can be learned.
In use the update is very quick, probably quick enough for video but with only 320 pixels total that is not practical. It does however make a good display and the images and animation is only limited by the imagination.
The display will operate stand alone with pre-programmed information but it has Bluetooth and so can be controlled remotely.
This is a video of the display working, sorry about the quality but is does give an idea of how the display can operate.
Step 1: How it Works
This is the actual back of the display sowing the component parts.
The power is derived by two 2A regulators, one regulator feeds strips 0 to 3 and the other one feeds strips 4 to 7 however this is not really enough if the LEDs are full on. At full brightness each LED consumes about 35mA so in theory each strip would need 1.4A each. This is a display, not a light, however and so that situation can be avoided, even so if this was not a prototype I would provide a power supply that could provide at least 10A.
In practice if the regulators are supplied with 6V they can actually illuminate the full display for short (a few seconds) periods.
The demo display routine never has all of the displays on full at once.
ControllerThe controller is a PIC32 with the ByPic operating system installed. This makes it easy to program the controller remotely (because all it needs is text) and carry out what-if scenarios over the Bluetooth link.
The controller also provides the 3.3V required for the Bluetooth transceiver as it has an on board regulator.
The BV500_T controller with PCB
The controller board uses lines B0 to B8 to control the LED strips. The clock/data signal is derived by careful software timing. The WS2811 LED controller only requires one line to control each LED strip and so only 8 lines are needed for all 8 strips.
An I2C interface is obtained from B8-B9, when I2C is used these lines are dedicated to the I2C interface by the PIC32 hardware. This interface is used to communicate with the real time clock, the RTC clock PCB has built in pull up resistors so these are not needed separately.
Power to the board is via the +5V pin derived from one of the regulators and the 3.3V output is used for the Bluetooth transceiver. The Bluetooth is connected to TX and RX shown on the diagram as B10 and B11. This in-fact is UART2 and is the main communication for the ByPic software. All of the development and programming can be done via Bluetooth if required. If not there is a separate connector on the left hand side of the board for this purpose. It is unfortunate that the Bluetooth does not put out a DTR signal that can be used to reset the processor from time to time.
This is a ByVac product BV206. A cheaper product could be used but with the cheaper versions it is not always possible to access the AT commands. With access to the AT commands you can change the Baud rate of the Bluetooth module to match the native baud rate of the BV500 which is 115200. The alternative is to use the SYS_COMBAUD constant to match the BV500 to the Bluetooth. Quite often they are fixed to 9600 which is a bit slow for development.
Having the Bluetooth module enables the display to be programmed after it has been built and in situ. It could be high up on a wall and you would still be able to access it.
An improvement would be some kind of reset hardware in case something went wrong. There is a watchdog on the BV500 that could be implemented but it would be good if say an independent bit of hardware detected a particular character or sequence of characters from the Bluetooth and exerted reset. This would not be difficult to implement.
RTC (Real Time Clock)
This is not necessary to the operation of the device but it seams that a good use for the display for some part is to use it to display the date and time. The device used is the BV4239 which is based on the DS1307
This also has an EEPROM which is not being used. This device has a built in battery and requires 5V and an I2C interface.
The LEDs come on a strip of flexible PCB as shown and 8 strips of 40 LEDs have been used to create the rectangular display. They are normally bought in lengths of 4 or 5m but be warned that they are manufactured in smaller strips. Why is this important? The 4 or 5m lengths consist of several strips joined together, unfortunately some distance is lost when joining the strips and so where the join occurs the LEDs are closer together. This matters when creating a display as the LEDs will not line up. They need un-joining and re-joining with some wire to ensure that the distances between the LEDs are maintained.
For this display the strips were stuck down onto a piece of 3mm acrylic 85mm x 670mm using 6mm double sided tape. The connections were made to the left hand side of the display with the LED strip arrows pointing to the right. Using double sided tape works very well but more though is needed on mounting the acrylic to a frame as at the moment it is a bit Heath Robinson.