Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : Mik-Matrix
Author | Message | ||||
Justplayin Guru Joined: 31/01/2014 Location: United StatesPosts: 326 |
A few months ago Mick contacted me and asked if I could create a moving sign using colour LED matrix modules. I promptly said “NO!”. A little time passed and Mick asked again and I said “No, MMBASIC is too slow.” A little more time went by and I'm day dreaming about a project which could be enhanced by a colored text output when Mick contacts me again. This time I say maybe I could do this but the driver board does not exist for the smaller sized matrix displays and it would be really be nice if connections between the boards were rotated 90 degrees. Why the 90 degree rotation? Because the typical layout for matrix driver boards display data in rows. Trying to display fonts in row format is a major pain to deal with if your font is not 8X8. Using a smaller font requires a lot if bit and byte manipulation to get more that one character onto a display. Plus, Scrolling any font requires constant bit and byte manipulations. With the display rotated 90 degrees the rows become columns and fonts are simply a series of whole bytes. With everything as whole bytes the font width no longer matters and scrolling is simply a matter of displaying a series of bytes and changing the starting position repeatedly. So, Mick has created the Mik-Matrix Bi-Colour LED display driver board and I have written some software to display moving messages. As with my previous programs, this program is not a "Finished Product". It is meant to inspire and demonstrate what might be done with these displays. It could use some enhancements such as a message editor to create and store the messages. Currently the messages are contained in DATA statements and you have to edit the main program to change them. I have an idea for an editor, but simply didn't have the time to create it. And the program could possibly benefit frome a Cfuntcion to speed up writing the data out the SPI port. Even though I have set the SPI port to a 5MHz clock, the data output speed seems to remain constant with settings of 1MHz and above. However, I'm not a C programmer. The program can be downloaded from here I have tried to add lot of comments of what is happening in the program, but I admit it contains some spaghetti code. It really should be re-written from the ground up. The current version is a continuous series of “Can you add this feature” requests and then grafting that feature on to the existing code. See Mick's PCB offerings for details about the Mik-Matrix board here and here --Curtis I am not a Mad Scientist... It makes me happy inventing new ways to take over the world!! |
||||
cicciocb Regular Member Joined: 29/04/2014 Location: FrancePosts: 70 |
Very nice job. I did one on the same style during my christmas holidays but a little bigger (1 meter x 20 cm) with very bright RGB led strips. I could post some pictures, if you want. |
||||
Justplayin Guru Joined: 31/01/2014 Location: United StatesPosts: 326 |
Please do, I love seeing what other people have put together. --Curtis I am not a Mad Scientist... It makes me happy inventing new ways to take over the world!! |
||||
cicciocb Regular Member Joined: 29/04/2014 Location: FrancePosts: 70 |
As promised, please find here some pictures; This is the display itself: This is the detail of the led strips This is how is powered (with a PC power supply) The controller (PIC + wifi module) A snapshot of the web control page taken from my iphone Some pictures If you are really interested I can try to post a video showing the scrolling text. Regards, Cicciocb |
||||
Justplayin Guru Joined: 31/01/2014 Location: United StatesPosts: 326 |
That looks really good. What PIC did you use? I saw a similar LED sign recently and the builder covered the front with a cheap corrugated white plastic panel which gave the bright LEDs a interesting soft glow. --Curtis I am not a Mad Scientist... It makes me happy inventing new ways to take over the world!! |
||||
cicciocb Regular Member Joined: 29/04/2014 Location: FrancePosts: 70 |
The pic is a pic32mx150. I bought but not yet installed a transparent plexiglass cover. The image is very bright, even outside in full day light conditions. For internal use, the brightness needs to be reduced at around 5% of the full level. Honestly I started the project to spend some time with my son during the christmas holidays, aiming to show a nice scrolling message outside the house. Now it's already taking dust in the garage.... If I have some time, i wish add a microphone and transform the display as a giant music bargraph. Cicciocb |
||||
Justplayin Guru Joined: 31/01/2014 Location: United StatesPosts: 326 |
Over the holidays I setup my little display on my desk showing the countdowns for Christmas and the New Year running. I put this together for Halloween and placed it on the front counter at the office. I covered it with some grayish fishnet and added some plastic spiders. --Curtis I am not a Mad Scientist... It makes me happy inventing new ways to take over the world!! |
||||
bigmik Guru Joined: 20/06/2011 Location: AustraliaPosts: 2914 |
GDay Cicciocb, That is really cool, I am curious as to how you control individual LEDs on those LED strips? Aren't all the LEDs on each strip in parallel? Regards, Mick PS.. I have thought about doing a version for the larger 50mm or 60mm displays. The problem with the 32mm displays is the cost of the Common CATHODE matrix and the fact they, for some unknown reason, are not very readily available. If I went to larger boards we might be able to use common ADODE types and fit cheap inverters on board.. Mik Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<< |
||||
cicciocb Regular Member Joined: 29/04/2014 Location: FrancePosts: 70 |
Hi Mick, all the leds are WS2812B. The display is simply a long strip of WS2812B, all connected in a daisy chain configuration. The total is long daisy chain of 8 strips of 60 leds (480 leds). As you can see from the controller picture, there is just one wire that control the entire strip (the green one). As each led needs around 50mA at full brightness, you can understand why I installed a PC power supply (50mA * 480leds = 24A and 24A * 5V = 120W!). I can confirm that, if I drive all the leds at full brightness, the emitted light it's very very bright. Cicciocb |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
Cicciocb, Nice project! How fast do you send the data to get a smooth scrolling text? You need to send 480 RGB packets for each change, is that right? Are you using SPI for that? Microblocks. Build with logic. |
||||
cicciocb Regular Member Joined: 29/04/2014 Location: FrancePosts: 70 |
Hello, as I start to forget easily, I'm not very sure about what I'm going to say. As I try to stick on the datasheet specification of the WS2812B, to refresh the display you need 1.25uS * 24bit * 480 led = 14.4mSec. If I remember well, it takes less than 10mS to scroll a pixel on the full display. So, I think that it's possible to acheive more than 30 refresh / second; this is very fast as I'm obliged to insert a delay to obtain a "correct" scrolling. I used the bitbang at the beginning with a satisfactory result but I switched to SPI associated with DMA; in this case there is plenty of cpu free time and, with a double buffering, you can nearly double the rate. Cicciocb |
||||
MicroBlocks Guru Joined: 12/05/2012 Location: ThailandPosts: 2209 |
Thanks. That would be fast enough. A friend of mine is into pin ball machines and asked me if i knew how to make a display that can show simple animations. With those speeds it will be possible. Microblocks. Build with logic. |
||||
Print this page |