|
OverviewWhat is it?The MLMC is a smart LED matrix module that can be chained to produced a scrolling display. I call it smart because a display made of these modules can be extended without changing either the firmware on the module controller or the firmware on the display controller. Each individual module will take care of refreshing its section of the display in a very power efficient way. When new data is sent to the display old data is passed along the chain from one module to the next. This serial shifting action makes building an arbitrary length scrolling display very simple to implement. The LED matrix itself is hosted on a separate PCB to the module control circuitry. This separation makes it is simple to adapt the module to other LED matrices without changing the controller PCB or firmware. If you were producing a number of different sized displays you could use the same controller PCB for a module made from a 16 by 16 LED matrices as you might for a large module made using 16 by 16 individual 10mm LEDs.
Why did you design this?I liked all of the many LED matrix projects seen on the web and in Circuit Cellar magazine. To enlarge or adapt these displays would often mean a redesign of firmware and hardware. I had a small number of dense 16 by 16 matrices ( see Photo 2 above)sitting about from my times bargain hunting in Akihabara. These matrices are unused by any of the projects I have seen on the web and in magazines. These matrices have a strange footprint, the pin layout is a cross formation rather than two parallel rows of pins which is more commonly seen). This means work is needed to adapt existing projects to work. If I had built a system purely around the LED matrices I have then very few people could use the resulting design. I would also not be able to reuse the design once my limited supply of these matrices was consumed. By separating out the control hardware from the display hardware I am able to make a much more flexible and enduring design. I've always been a fan of the 2 Line LCD displays which are common in many projects. These have a standard well known interface so it is trivial to add one to a project. I want to bring that ease of implementation to scrolling LED matrix displays as I have many projects that could all benefit from a large display. I wanted to experiment with using shift-registers to expand digital outputs and compare it with using a more expensive µController with many IO pins. What has been done so far?
A number of prototype two layer PCBs have been manufactured by Batch PCB. Some basic screen display firmware has been written. The system currently uses one bit per pixel. The display data consists of 16 bit columns that are are clocked into the first module and displayed. As new data is being clocked in the last column in the modules buffer is clocked out. A preliminary compile time brightness control has been tested but it has not yet been developed on a dynamic (run-time) or pixel by pixel basis. The current test set of five modules demonstrates driving 1280 LEDs using just two power wires and two control lines. The average current draw by all five of the modules in total is 60mA. You can download everything done so far at https://github.com/brokentoaster/MLMCWhat still needs to be done?Hardware
Firmware
Software Library/Examples
What will be done?To call this project finished these are the things I hope to have published under a creative commons license.
How Long will it take to complete?It will probably never be completed. So I hope to publish unfinished work when it is suitably unfinished whenever I remember. |