Go Down

Topic: ShiftMatrix, Dreaming Big Video Display (Read 22622 times) previous topic - next topic


Well as usual its a long time since I posted last (real life gets in the way).

Recently at my local electronics shop (Jaycar) I was pleased to find they had a range of "Arduino like" devices and add on shields/hardware. They all seemed to be from the same company, FreeTronics. I haven't heard of them before but one of the products caught my eye, it was call DMD (Dot Matrix Display). http://www.freetronics.com/products/dot-matrix-display-32x16-red

This is a self contained unit with 512 LEDs (32x16) Mono colour (Red in this case but apparrently more colours are coming). So I bought it and I am trying to find time to have a look under the hood of the demo code. It seems the product is only new but it seems well constructed and the LEDs are very bright. The demo library is very easy to use but unfortunately it does not support PWM (Damn!) but from the notes in the library it seems that its is possible to get PWM implemented. It just hasn't been done yet. So with that in mind I am going to have a play with the library. If I can get PWM to work then this is a good unit that is readily available and I am happy with the price. And it will DRASTICALLY reduce build time. Which for me at the moment is a huge plus as I don't have much time.

I am still aiming for 64 x 64 which means I would need 8 of these boards...that is on the order of $300 but I am able to spread out that purchase and buy them 1 or 2 at a time. Where as if I were to try and "Make" these myself it would be a little cheaper but would require A LOT more time and I would have to buy all the components up front. So from that point of view that is a trade off I am willing to make.

So has anyone looked at this device or tried to do PWM on boards like this? I am going to go trawl through the forum now and see if there is anything similar that maybe I can adapt. Otherwise my current plan is to try and modify Elco's ShitMatrixPWM library to talk to this device. Not sure how much effort is required but as this device use SPI for the main information and 4 line switches to select the rows I think it should be possible to get it to work. I will let you know how I fair.


May 22, 2012, 05:36 am Last Edit: May 22, 2012, 05:38 am by milamber Reason: 1
Again, Months have passed. But for me they have been productive months.

I am very happy with the output of the Freetronics DMD device mentioned in the above post. I have been able to modify (Butcher :P) the ShiftMatrixPWM library to work on these boards. I have even managed to get it working with 2 boards, 1024 red LED's, fully addressable and running at 50Hz with 32 brightness levels.

The way this hardware works though is very different to what ShiftMatrixPWM expects. I have had to make some major changes under the hood to format the information correctly to work with these displays. So much so I don't think you could still call this ShiftMatrixPWM anymore as it wouldn't work with a normal row/column "hand made" matrix. So I will call what I have made DmdPWM (all original credit goes to Elcojacobs for making a great library to base this off).

With this DmdPWM library now created and tested, I can finally start to order the components to make the display. So the display will consist of:
     - 1 x USB to serial adapter (bought from ebay cheap)
     - 4 x Arduino Duemilanove boards
     - 8 x Dmd's
     - 1 x 5v 40amp Power Supply

Currently I am testing with 1 Duemilanove and 2 Dmd's and using an ATX power supply (Looking to get a bench supply :)).
Here is a video being down scaled and serially sent to the Arduino with 2 Dmd's attached. This is just a fire effect on a loop.

I am still trying to round out the library code and clean it up but if anyone is interested in it, let me know. I haven't had anyone else test it yet. If you have one or a similar display (32x16, 1/4 scan and a zigzag register setup (not sure what to call it)) contact me.


I am curious as to how your project went in the end. Currently I'm trying to have a video feed on a 16x16 matrix...I think there's a long way ahead as I'm trying to get the shiftMatrixPWM working on my 4x4  :smiley-roll: .


Hi nataliew,

Time has not been my friend lately. Sadly I have not gotten any further on this project. But I did manage to clean up my DMDPwm library and I have posted it on the Freetronics forum board. (If anyone here is interested in it let me know)

You asked in another thread about the setup of the row data/latch and the column data/latch. The best I can off on that would be to tell you to have a look at my fritzing image on the previous page. It shows the connections I was using for my 16x16 colour matrix. But simply there are two chains of shift registers. One for column control and one for row control. Once you have them setup It should all work.


Once again long time between posts.....but we have progress.
I have obtained a USB to Serial adapter and have now tested connecting the TX of that to the RX of 2 Arduino's. This is what I have been banking on the whole time and it worked perfectly. Each Arduino waits for an assigned start byte and then acts on the bytes following the start byte. It then counts the bytes until it has a full module worth and displays them. The next start byte is received by the next Arduino and the sequence is repeated. This is how I plan to scale up to having 4 Arduino's working together, each controlling 2 DMD's. Thereby giving me a 64x64 resolution LED video screen.

I have ordered more panels (10 infact) and I am waiting for them to be delivered. Once I have them I will be attempting to scale up to full size.

In the mean time have a look at the 2 videos below. I used my camera phone and it is not great at capturing the LED's as they are quite bright. So I apologize for the image quality.


Hopefully in the coming weeks I will be able to show you the 64x64 in action.....I hope you like the colour GREEN!!!


Wow cool. All you need now is 1920 x 1080 leds with little space between them and you have a lovely wall sized hd display.
Maybe you can tap into free to air MPEG DBV feeds.
Imagine the power consumption though!


I just read your thread, im looking to apply shiftpwm to a 4x4x4 RGB cube (ShiftPWM3D ?)

I havnt been able to watch any of the videos or pictures, It says:
There was an error encountered while loading this

Have you posted the pix/video somewhere else? I would still like to see them :D


Hi Hippynerd,

Not sure what is happening. I just tested the videos (here at work) and the ones in the thread do seem to be working. Unfortunately I don't have the videos hosted anywhere else. You could see if they work direct on the vimeo site (http://vimeo.com/user7190193). Everything in that profile is for this project.

I have thought of using ShiftMatrixPWM to do a cube. In 4x4x4 I would do 4x4 as a direct wire up. (4x4=16, 16x3=48 LED's) So I would use 6 SR's and then have 1 SR (That would have controlled the ROW) to control the Plane. This should be well within the range that ShiftMatrixPWM can do (only 192 individual LED's). I am not sure if ShiftMatrixPWM will work correctly this way but for the life of me I can't see any reason it would not? I would certainly ask in the ShiftPWM thread and see if anyone else has actually used this for a cube.


Thank you, I can see the videos on vimeo. i've tried on 2 computers here, and they both give me the same error message.
That is exactly how I had originally planned the RGB 4x4x4 cube, I even soldered up a stack of 7 shift registers all nicely piggybacked, but after experimenting with 8RGB LEDs and 3 shift registers, I decided to do 6 shift registers for the RGB, and I ended up using a ULN2003 to control the anodes (which I had thought were cathodes, based on their markings).

I soldered it up, but its not working right. I tried a few things, but have decided to put it down while I work on a charliecube design (just leds, wires and a nano).


Go Up