Any seggustion for make RGB Screen - Page 1
Forum section: electronics / general

author: rozeh
author_rank: Regular Contributor
timestamp: September 14, 2013, 12:01:35 pm
content: Hi everybodyi want to make a screen like this:oror this:but i confused, now. i don't know which MCU or processor is suitable?(AVR, ARM...etc(in other word, which is enogh for this job?)) i don't want to waste my money.and please help me for make this screen. i think a 32*32 RGB is suitable for me. i don't know how can i play/show video/image in it.

author: mrflibble
author_rank: Super Contributor
timestamp: September 14, 2013, 12:14:27 pm
content: Step 1: find cheap chinese supplier for the panelStep 2: browser TI website for suitable controller chippies, since they make a ton of IC's suited for big panels.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 14, 2013, 12:17:22 pm
content: Adafruit do some of these , with controllers and documentation.You'd struggle to even buy the LEDs for the cost of these panels.To get anything more than rudimentary displays you'll need an FPGA to generate the drive waveforms fast enough

author: mariush
author_rank: Super Contributor
timestamp: September 14, 2013, 12:20:35 pm
content: The videos you linked to should explain but if you really want more technical stuff in something relatively easy to understand, you should look at this guy's led related videos :https://www.youtube.com/playlist?list=PL0JWuCHXfJ2zXVRqFRFVq-lNt_xtCYMjx---Each pixel on those screens is a RGB led , which is basically 3 leds (red, green, blue).By changing the amount of time a led stays lit, you can simulate various colors ... for example if all three leds are on, you get white, if you keep the red lit up half a second and half a second it stays off while the other leds stays on, you geta color close to this one.So you can put several such rgb leds together and you have a row of pixels, then you can put several such rows to get a larger display. Microcontrollers can drive lots of leds using shift registers, darlington arrays etc.What microcontroller you need depends on what you want to achieve (how many colors, 256 colors, 16 bit, 24 bit, how many frames per second etc ...If you want just one microcontroller to process a larger amount of leds, you'll need one running at a higher frequency, maybe an ARM processor.However, you could use a cheaper microcontrollers that each control just a small section, let's say 8x8 pixels or 16x16 pixels and then use another microcontroller to send each such square the color information to show on that square.As for how to send image to such thing, VGA, s-video, composite are all analogue signals relatively easy to decode (and there is plenty of documentation and code and examples out there if you only google for it) using microcontrollers so using a fast enough microcontroller it's possible to read something like 320x240 25 fps and display it using leds.

author: rozeh
author_rank: Regular Contributor
timestamp: September 14, 2013, 12:21:05 pm
content: Thanks mrflibble and MikeFPGA! really? can i do this job by a STM32F103RET6?

author: mrflibble
author_rank: Super Contributor
timestamp: September 14, 2013, 12:24:43 pm
content: If you can do it with an STM32 would depend a bit on how big your panel is going to be. Smaller panels you can probably get away with an STM32 and use DMA to pump out the waveforms. For anything big I'd say it's fpga time.

author: rozeh
author_rank: Regular Contributor
timestamp: September 14, 2013, 12:30:31 pm
content: Thanks mariush,i think the 25 fps,256 colors is suitable!(please say to me anything that i need!)@mrflibble32*32 RGBjust this size, now.

author: amyk
author_rank: Super Contributor
timestamp: September 14, 2013, 12:41:25 pm
content: This shows you can get a 32x32 pixel 5mm pitch panel for around $37, and a slightly bigger 6mm pitch for slightly cheaper, $27:http://asram.en.alibaba.com/product/850043433-218471447/16x16_32x16_32x32_pixels_waterproof_p10_outdoor_rgb_led_panel_full_color.htmlAnother price list here:http://www.bradsprojects.com/forum/viewtopic.php?f=16&t=849Making Adafruit's as usual 3-4x the going price...Mike has a video on how to drive these types of displays too:You *can* use your main MCU to generate the display bitstream, but a better solution especially for larger panels, and a good exercise in digital design, is to use SRAM and other ICs (or an FPGA) to create your own display controller.25FPS and 32 x32 RGB means a minimum of 76800 pixels/sec for basic 8-colour (on-off for each subpixel) mode. Depending if the controller built into the panel has PWM or not, you may need to do dithering to gain additional colours.

author: mariush
author_rank: Super Contributor
timestamp: September 14, 2013, 12:51:38 pm
content: watch the videos I linked to... without understanding how a microcontroller is able to turn on and off lots of leds there's not much you can do even if i tell you what you need. And even if I say what you need, i can't tell how to write code if you don't know how everything works, so watch the videos.but basically it's rgb leds, shift registers, microcontroller, some resistors and capacitors, npm transistors or darlington arrays.25 fps means you have 1000 ms / 25 = 40 ms ... 40 ms is the time a microcontroller would have to turn on the leds and keep turning them on and off to simulate the specific color for that pixel in that 32x32 matrix, until the new frame comes.256 colors means 8bits per pixel ... so let's say or 3 bits for red, 2 bits for green, 3 bits for blue3 bits means 0 to 7, 0 being completely turned off, 7 being completely turned on so if you want to properly simulate a pixel, in those 40 ms each led from those 3 leds (red, green, blue) needs to be turned on and off at least 8 times, so that your eye sees that as a particular color.Then, depending on how powerful is your microcontroller you may only be able to turn on let's say 8 row of pixels at a time , so you have 40ms/ 4 sets of 8 rows = 10 ms to light up each row. So now within 10 ms you need to flip the leds on and off at least 8 times, therefore the microcontroller needs to be fast enough to go through leds quite fast, at 10ms of time / 8 levels = 1.25ms per led.So the microcontroller must run at a frequency high enough to do all the math and stuff in less than 1.25ms.