Like just about everyone we know, [Luis] decided a gigantic RGB LED matrix would be a cool thing to build. Gigantic LED matrices are very hard to build, though: not only do you have to deal with large power requirements and the inevitable problems of overheating, you also need to drive a boat load of LEDs. This is not easy.
[Luis] found a solution to the problem of driving these LEDs with a new, fancy ARM Cortex M4 microcontroller. All Cortex M4 ARMs have DMA, making automatic memory transfers to peripherals and LED strips a breeze.
The microcontroler [Luis] is using only supports 1024 transfers per transfer set, equating to a maximum of 14 LEDs per transfer. This problem can be fixed by using the ping-pong mode in the DMA controller by switching between data structures for every DMA request. Basically, he’s extending the number of LEDs is just switching between two regions of memory and setting up the DMA transfer.
The result is much better than [Luis]’ original circuit that was just a bunch of SPI lines. It also looks really good, judging by the video below. It’s not quite a gigantic LED matrix yet, but if you want to see what that would look like, check out the huge 6 by 4 foot matrix hanging in the Hackaday overlord office.
Here is an example on a Xmega as well.
http://forkineye.com/electronics/ws2811-easy-way-dma-xcl-xmega8e5/
How do they control the dots on a flipdot display? Here is 44,000 of them and they all need to be individually addressable.
https://www.youtube.com/watch?v=7oSH-aZKyU8
1)each pixel is binary only (not Xbit colors)
2) they will maintain the state even without power, so sequential write is quite fine
3) they are (at least!) an order of magnitude slower, so normal micros are fine
True. In that video they have, err, overdriven them rather considerably.
If you want a huge LED matrix, it’s going to be cheaper and neater to use the Chinese LED panels designed for video walls – available in a wide variety of pitches, and insanely cheap – 64×32 6mm pitch panels are $20-30 on Aliexpress – under a couple of cents per LED
These panels are really cool, I just received my first two last month. Do you have any suggestions on how to drive them? I’m currently on a raspberry pi’s GPIO using python (insanely slow @ gpio), which is causing flicker. There are some inexpensive FPGAs for driving
You can just about drive single panels with a fast MCU, but it’s a struggle to get a fast enough refresh rate. You really need an FPGA, which also makes things a lot easier. as you can generate all the colour channels simultaneously.
I did a video on this : http://www.youtube.com/watch?v=Sq8SxVDO5wE
If you want to do really big arrays something like a Zynq (fpga + dual ARM9) could make it quite easy. It’s not that hard to run a standard linux and have the programmable logic read the frame-buffer to what ever interface you can come up with.
I think I’d treat it like a display — build a dual-port display RAM, one port to the processor to update the content, one port to an FPGA display controller. For extra credit, you could have two pages in RAM, update one while displaying the other, then switch (at the frame rate, if you can update fast enough).
Had the same problem trying to drive a 32×32 panel from Adafruit with a raspberry pi. This library was the best I could get it: https://github.com/hzeller/rpi-rgb-led-matrix
I’ve had much better results with the SmartMatrix library for Teensy 3.1: http://docs.pixelmatix.com/SmartMatrix/library.html
I’ve used the SmartMatrix Library too and it was totally capable to drive my 32×128 Display @ 70 FPS!
There are some forks that support bigger Displays out of the box.
At the time it was more for the challenge and I wanted an excuse to learn more on how to use the Tiva.
I couldn’t follow through with the project neither with my money nor with the robotics club money that I go to.
In the end it was more of a cool learning experience than anything else (maybe later the club will want to make one)
If you had a few of these fourty kilos of solder, too much time one your hands and the world’s compliment of ocd, perhaps you might be able to produce a full resolution monitor. Maybe with a huge fresnel lens to increase the effective detail.
It could make for a great art exibit or perhaps just playing old dos games.
You have to be kidding me… I literally just opened code composer to start working on a way to drive mass amounts of LEDs using DMA and SPI modules on the new MSP432. Well Im sure there will still be plenty of differences between my MSP432 and the Tiva-C series to keep me busy
The MSP432 should have a similar DMA since it’s an ARM-M4F also and also has GPIO with 8 pins (some of them). I’m still waiting for my MSP432, maybe I’ll do something similar just for fun.
16050 LEDs will make a 150×107 display.
Another one: https://github.com/ain101/SedecimWS2811