Driving LED matrix displays with an FPGA
Vložit
- čas přidán 3. 05. 2014
- Detailed look at methods for driving LED matrix displays, including simple LED displays and full-colour video screen modules.
Lattice XO2 devboard : uk.mouser.com/ProductDetail/La... - Věda a technologie
This video is singlehandedly making me reboot my 16x16 led icon t-shirt. Amazingly detailed, and super clear. Much appreciated!
Mike, the beauty and thoroughness of your understanding of this stuff is a joy to behold. You are a true professional.
You can tell a true professional by the aplomb they exercise, no matter what the activity. You've got it sir!
This is still one of my favorite videos of all time. more FPGA videos about driving LEDs are always welcome, by the way.
Great video on showing the practical applications of FPGAs. One of the required courses I need (that I completed this semester) for a double E degree involved using Altrea DE1 boards and low res VGA outputs (due to limited memory). To codify frollard statements (and to paraphrase my professors philosophy) " There are many ways to approach the problems, the key is knowing what you trying to solve."
Great video, thanks for taking the time to make it. There is nothing like a real word project with all the details explained to be interesting and informative. I don't know if you set out to create an instructional video but this is one of the best. Again, thanks.
I'm not going to tell you you have to make more videos, but I will say I'm glad to see you're getting more active.
Thanks for the uploads! :D
Great info! I've heard that VHDL is the standard in Europe. Did you actively decide to use it instead of Verilog, or just picked it up because resources were easier to find? Thanks for the detailed video.
Fairly random decision many years ago when I was doing the high-speed camera project - found a good VHDL book. Probably the wrong decision as some of VHDL is a PITA but I don't do enough FPGA to justify changing.
VHDL is generally taught in UK Universities and it seems to be the standard HDL in Europe. I was expecting a VHDL vs Verilog "outbreak" with that comment :).
correct. I work with VHDL and it is very nice to write and very good to read.
I'm in europe but I started learning FPGA in my own spare time, so I picked up verilog because the VHDL syntax scared me off instantly...
VHDL syntax is something scary and unnecessarily verbose in my opinion. I worked with it for a couple of years and converted myself to Verilog.
I always think I'm clever when I come up with some solution for coding an arduino 'efficiently'...then I watch one of your videos...This is fascinating. Wiring, fpga, component selection, and code routine...all splendid.
coding an arduino efficiently == dumping arduino and just using avr-libc right?
donpalmera Agreed - like I implied...I'm a total nub and finding ways to sneak a little proper-C or asm into the code makes me happy. Seeing how far I can stretch the very limited IDE is kinda fun.
donpalmera Is the difference big? I've noticed that codes I write in Atmel Studio tends to use less space than the equivalent code written in Arduino IDE, but so far I've only written fairly simple codes.
frollard No need to 'sneak in a little proper C' because the Arduino IDE uses C++ anyway, and with very few exceptions all normal C functions are supported.
Thanks for creating this excellent video Mike. I have been wondering for a long time how these LED panels work and how to drive them
Another awesome video Mike. You truly are a God of electronics. :)
I wish you could do a series of tutorials on VHDL. Great video, as usual, thank you!
Problem is I'd need to actually know it properly... I'm still very much in "winging it" mode.
mikeselectricstuff You could improve your own skills in the process :)
Great video!
My head hurts after watching the VHDL stuff. I'm trying to learn Verilog in my spare time. Going from "normal" programming to HDL is hard to wrap my head around.
I also enjoyed your iPod screen video series.
Wow, this Lattice devboard is amazing! The shipping costs are pure extortion, but I'm keeping my eye on getting one
Love the Young Frankenstein clips on the top left display! ;-)
thanks mike we need more vids like this really enjoyed this, more please and would love to see your pic and place in operation
cheers
Extremely interesting stuff, thank you for sharing!
That is really cool. I wish I had the wherewithal to play around with LED displays like that. I'd have the coolest Christmas lights on the block.
Glad I watched to the very end. I was wondering how you got the 8 bit and not 7 plus 1 check on your baud rate, now I know.
Great stuff
Thanks Mike for an excellent video as always. Some of the techniques you have described were new to me and I am sure would be useful to me at some-point in the future
Very good video indeed!!!
I'm a software guy who in later years found hardware and have now combined the two in order to make really useful projects. Just like you I'm spending a lot of time to develop visual gadgets and I have outgrown my trusted microcontrollers purely due to their lack of speed. (I develop visual feedback devices for autistic kids)
I have thought about going down the FPGA route for a while now but didn't know where to start, and everything seemed a lot more expensive, so this video was very informative to me!
I would really appreciate if you could make available the code you demonstrated in the end so people like me can have a working boilerplate or similar to analyse whilst learning VHDL.
I have made quite a few of my own LED panels and the costs you are mentioning are way below even my cheaper solutions so perhaps one should look closer to see what's available in China already?...
Very informative. I thought all would be revealed once I saw the code, but knowing nothing about VHDL, it was rather impenetrable! Mike - any chance you could publish the code so we can look through it and figure it out?
thanks mike for another great video
47 min video from Mike? Wow, guess it's time to get some dinner to go with it...
I love LED displays - thanks for the video even though most of it is wayyy over my head :).
Great video, thanks. What row driving MOSFETs did you use? I'm trying to understand your comment about driving a higher voltage by working out how you hooked that part up.
Thank you for the video Mike. Love your videos. I know that is asking too much, but can you do a video on rs485? Things like hardware design, number of units per bus, firmware aproach, etc. I see some of your videos that you use 485 to comunicate beetween boards, and i always curious how you implemented that. Thank you for your contribution to my knowledge with your videos.
this video is so so incredible
Hello Mike!
When i saw the black 64x32 RGB board i started playing with the idea of making lots of them in to a table top with a plexy plate on top. but how hard is it to make it work as a computer screen? Lets say it is doable... If you mount a camera in the cealing you can have software picking up stuff like a glass or a cellphone, generally an object, and make it interact with stuff put on the table.
Good evening Mike ! Love Your stuff, in my eyes, Your god of electronics :D
I would say so too. Never seen anyone be able to talk so fluidly about something so complex. If there was one, it would be him. He is able to figure anything out it seems. I though my parallel port driven 16*16 was awesome, this = OMG.
I want to try making a Pentium 4 compatable 16 core CPU with one of the $40 FPGAs and wire to the socket 478 and run at a few GHZ (at least 3). Learning from this guy will definitely give me a idea of complex engineering. I know its possible to put a ARM CPU in a cheap FPGA, why not make a P4 compatable one? Plus wouldnt it be awesome to brag how fast your 2001 era PC was LOL.
theLuigiFan0007 haha, was the project successfull ?:D
use the force
Not yet, it takes a while to reverse engineering the instruction set of the P4 before you can build a compatable one. The early intel 80* series chips were relatively easy to clone with less thatn 200 pins, now its a real feat if one can pull it off. Or I could build a translator interface that translated P4 data formats and instructions to ARM. It will take a lot of work to get it running, but its one of those goals I feel has to be completed while im still relatively young. I wish to design a series of CPUs someday (if I ever start or get a high position in a semiconductor manufacturer) that simply needs a pin adaptor to run on a Intel or AMD based board. I think it would not only be a good thing for competition, but it could cause other companies to take on the idea. If all components were mix and match with the current technology, making a system built specifically to one's needs and budget would be really easy.
Wow, this was more a letter than a reply, maybe I said too much LOL.
I also have a few other projects relating to high voltage and LED driver circuitry I occasionally work on. Just though I should reply even though I havent logged in for a while, as you asked a legitimate question which has a fairly important meaning to me.
Hi! You mention gamma correction and problems with number of bits. Have you looked into implementing the gamma function in the enable signals? So you could have just 4bit data, but the bit-"weight" is scaled according to the gamma function. I could see using 16bit PWM to generate the bit-weight while outputting just 4bit gray-scale.
Regards
That is excellent. I am looking for a FPGA board to drive 4 RGB LED panels each 64x32. 24 bit per pixel should be enough for my application, that is 4*64*32*3*8=200kbit per frame. I can drive them by daisy chaining panels, or wiring them in parallel to FPGA as separate panels. I do not need more than 10 Hz framerate, but 30Hz would be prefered so things like scrolling and synchronization between panel is better. I also need a double buffering so I can upload new frame for entire display, then swap a content quickly and atomically. That is because I am planning to use Raspberry Pi or other network connected micro / SBC to drive these, and UART timing isn't going to be the best.
Future upgrade to 16 panels (4 x 4 matrix of 64x32 RGV LED panels) would be awesome for me too. (800kbit per frame).
Or a 16x320 display that can display about 24 characters (16 pixels tall each) at the same time.
This video is 4 yeras old, so I am assuming there are better FPGA boards available these days, for projects like these or similar.
Lattice iEC40, i.e. www.mouser.co.uk/ProductDetail/Lattice/iCE40UP5K-B-EVN?qs=KeU%2faRU0YVWVQ39q7XFcHg%3d%3d looks like reasonable choice for this.
Thanks for the video mike! Do you know if the software to program Lattice FPGA's is free to use? I'm really intrigued by that Lattice FPGA that has most components built in, and it's also a QFP! I'd like to build my own FPGA board but soldering BGA's is something I'm quite worried about.
I believe some of the basic lattice software is free but does require registration. I also think their is an open source option being developed.
Great video, i'm really starting to like these long rambling about stuff videos.
Oh and I'm also curious what made you chose VHDL. Personally i got in to Verilog because the syntax seamed nicer and more C like.
Fairly random decision few years ago - found a good book that happened to be VHDL. Also I was told VHDL is more likely to catch stupid errors at compile time, whearas Verilog would compile almost anything & let you figure out why it doesn't work. Possibly the wrong decision as VHDL can be a PITA, but I don't do enough FPGA stuff to justify learning another language
mikeselectricstuff
The Verilog i learned was due to a freelance project needing a CPLD, month later had to learn VHDL in a uni class, hated it for its complexity and just kept using Verilog for my own stuff.
If i have not gotten in to Verilog on my own id probably be using VHDL too.
There is a great pinball display project going called 'pin2dmd' online that uses two of those panels side by side.
Thanks I m working on a giant screen 400x96, based on this video thanks for your help
Could use logarithmic intensity for the low brightness end
Effectively HDR
Looks a lot like my old job!
Decided to grab one of these panels off AliExpress - I have a little project Idea. Though I'll be driving it with an Arduino, might be time I got an FPGA dev board.
How do you get those MBI devices? I can't find them on digikey or mouser. I like the idea of a $0.20 16 channel constant current driver chip. I have used the TLC5921. Similar, but like $1+
James Fry currency conversion is easy. 20p = $0.32
07:31 While carefully listening and learning from Mike, I've been distracted by incoming mail sound. I thought it was from my computer. -.-
How reliable was that UART? Using the possibly metastable latch in the rising edge detect logic was probably a bad idea. :-)
Just came across the PCA9955ATW chip from NXP. Check it out if you haven't already. It can be used to drive RGB LED's. Can't wait to try it myself. Of course it's not available from distributors just yet but it looks like you can order samples
Digikey have stock. Only 8 bit though so no good for monochrome. Also a bit expensive
From where do you source those MBI5026 chips ?
Thanks for the Autobaud UART VHDL @ 41:33
Hi!!! Great Work. I need to create a controll for a RGB Matrix with ESP32 microcontroller. How Can I Start the code? I hope that you can help me :)
I thought one would program a fpga by placing logic gates, or modules together something like you design a circuit in a eCad program. silly me. now I wonder if complex chips are designed by code like vhdl that compile into a silicon layout.
You can do it from schematic, but HDL is so much more powerful that nobody really does it that way, and schematic entry in the tools is not being developed or has been dropped.
very impressive friend can you explain how to control register 74hc595 with fpga please? 👏🏻
is that your own plasma routine?
Great vid btw, love these led matrix displays
If you mean the flame effect, yes it's burning lighter fuel shot at 1000 frames per second.
mikeselectricstuff Ye the first effect you show on the chinese rgb video wall tile. I'm a programmer, that likes electronics :) more specifically, graphic effect programming, which is my true enjoyment. I would call that a plasma effect(google those together) more than a flame, but its your routine so its your call ofc :D. 1000fps is just insane by any standard. It cool to see your programming streak :) it always overcast by the wealth of your electronic knowladge.
what is this field of work called?
You can get 2.08m x 1.44m programmable 10-bit color LED sign boards for just under 2000 GBP.
The current Lattice iCE40 FPGAs are really useful for open source projects because there's a completely open toolchain now - but that only "speaks" verilog. Might that be a reason to learn verilog for you?
Came here via github.com/smunaut/ice40-playground/blob/master/cores/hub75/README.md btw
You are never one to do a video half way. That was great. I am pretty weak at understanding FPGA synthesis. What percentage of available gates were used by your project?
Hey Mike,
very cool video. Especially the technique the different length OE-pulsewidths. Made the method I used look quite idiotic. :)
Can you tell me, where you got this nice RGB matrix from?
Keep up the nice videos!
Greetings :)
Search P3 RGB LED on aliexpress
mikeselectricstuff Great, Thanks!
I'll give it a go! :)
Have a nice evening!
Could you do a new video with newer and cheaper parts, please. I would like to build a big Videowall for watching Television.
I understand that register need a latch clock and data pin while latch 0 clock from 0-1 and valor data performance
And now 6 years later, you can get 64x64 led panels for about $15!
Mike, I love when you do fundamentals types of videos talking about data buses and the core mechanics of this stuff, its super interesting.
I notice you don't seem to use logic analyzers at all, can you comment on this?
Keep up the good work, iceisfun@eevblog
Nice
Would you mind sharing that code somewhere, GitHub maybe? Anywhere, perhaps?
I find this entire video a freaking gold mine of information, and I'm doing lots of FPGA-driven LED stuff lately. Every single time I watch this video, I learn something I missed previously.
Casually coding without a syntax highlighter like its nbd
Theoretically you could use the lattice board with your code and these boards. Slightly lower resolution and well known supplier. www.adafruit.com/products/420
Where do you think Adafruit gets them?
Still a small fortune for a wall size display.