Make RGB LED Display with xc-3 kit more Economical

XCore Project reviews, ideas, videos and proposals.
User avatar
Interactive_Matter
XCore Addict
Posts: 216
Joined: Wed Feb 10, 2010 10:26 am

Post by Interactive_Matter »

Hi,

I think I would rather go for bigger modules to justify the cost of the PCB & chips. Something like 64x64. This is 4096 pixels, which should be easily doable by the software.

The power consumption would be kinda awful: 64x64 ends up in 12288 single LEDs (3 LEDs per colour). Calculating with 20mA per LED (which is probably not enough for 1/8 scan) you get a whopping 246A, calculating with 50mA you end up with 614A - both values are neither encouraging nor do they sound realistic.

So what is the best approach:
Get some modules (if needed I know a seller on ebay, which either creates or offers RGB LED modules with MBI5031 at about 50$ for 16x16 pixels. Test them with the XC3 how they could be connected and what the realistic throughput is. Perhaps we can even analyse some performance calculations from the source code (refresh rates in contrast to # of pixels, network throughput). Then you can analyse the core usage to see how much cores you need for the LED Buffer, the ethernet stack and the driver.

I think with the network throughput could end up pretty close to 100Mbit. But I have to confess I have never tested that either. Perhaps somebody know some piece of documentation with those figures for the XMOS ethernet stack.

So testing ahead!

Marcus

PS: I must confess that I am more a software guy than a hardware guy - hence I rather test things than calculate theoretic numbers


nisma
Active Member
Posts: 53
Joined: Sun Dec 13, 2009 5:39 pm

Post by nisma »

16x16 = 8A worst case or 4.8A PSU at 12V and 55W using 1/10 mux. Using 1/6 mux the worst case
is 10.24A and 70W power requirement. If you consider 64x64, it´s 16x 16x16 panels.
8*16=128A . 10.2A*16= 164A. The cable cost explodes at that current rate.
That´s why even commercial panels use 16x16 subcomponents because the cable,
connectors, are standard at that amperage and is mutch cheaper compared to using 64x64 displays.
This is if you plan enought power. If you underpower the assembly, then less power is needed.

Further, i doubt highly that the chinese guy giving you the MBI5031 driver design the panel for 8A
(10mA for each led) static driving with a reliable design.

The Ethernet->4x-Xlink->driver->32 panel was a initial guess. Nothing more.
I think, using the 64/48 chips gives more flexibility that have only two xlinks and where the
controller and drivers shares the same pcb layout. Maybe it´s possible to use both ethernet and
the led driver without needing the separate controllers. I don´t know how many panels one controller
could handle, it depends on the driver used, layout and other factors and must be checked.
Using the Ethernet and driver on the same core, at least 16 panels (16x16) should doable.

32 panels (16x16) are 24k of ram and 48k of ram using double buffers. Maybe using the controller and
correct timing no double buffering is needed because the different cores act as double buffers.
In this case 64 panels are possible, maybe 96 too. Using lossless compression driving 30% more leds
seems possible. Using lossy compression, a 50% gain could be made.
This mean with lossless compression 128 panels could be connected, 200 using Yuv 4:2:0 coding
instead of 4:4:4 . As note, MPEG-2 (H.262) uses 4:2:0 coding. This means 51200 pixel using a 48/64 L1
device instead of 8192 pixel on 32 panels.

The hardware should be made for the maximum panels, it depends on the refresh rate
calcs and available pins. The SW should start with 32 panels and if this works, then it could be increased.
I don´t know if 200 panels are realistic. I don´t have made the reflresh time calcs and pincount ,
i was doing only the ram and thread usage consideration.
jagspaul
Experienced Member
Posts: 117
Joined: Tue Oct 18, 2011 3:28 pm

Post by jagspaul »

It is very good if one L1 (48 or 64 pin) can support 32 RGB module (16X16).
One L1 support 16 * 16 * 32 = 8192 pixel then 4 L1 can support 8192 * 4 = 32K pixel. If we make the system as follows then with 5 L1 (48 or 64) we can build 32K pixel capacity LED Tile and it is quite economical.

L1 (48 or 64) [Ethernet]
|
+ Xlink 0 -----> L1 (48 or 64) [LED Driver]-----[32 RGB Module (16X16)]
|...............................................|
|...............................................+ Xlink 0 -----> L1 (48 or 64) [LED Driver]-----[32 Module]
|
+ Xlink 1 -----> L1 (48 or 64) [LED Driver]-----[32 RGB Module (16X16)]
................................................. |
..................................................+ Xlink 0 -----> L1 (48 or 64) [LED Driver]-----[32 Module]

All the L1 PCB will follow same design. For Ethernet one Ethernet wings card (having PHY and MAGJACK) will be connected to the L1 board.

I should tell you that from very beginning I was asking to use multiple L1 (48 or 64) instead of 4 core BGA as because PCB fabrication for BGA is beyond of my reach. Now I can say that It is possible for me to fabricate the PCB with L1 48/64 chip. And I would like to tell you that I can also share the PCB files for this open source forum. So lets start with this excellent idea.

jags
nisma
Active Member
Posts: 53
Joined: Sun Dec 13, 2009 5:39 pm

Post by nisma »

This is a small pincount , not finished and the pin assignment are not final.

36 io pins.

Ethernet: 14 pins

X0D02 MII RX 4bit
X0D03
X0D08
X0D09


X0D26 MII TX 4bit
X0D27
X0D32
X0D33

X0D23 6x Control 1bit
X0D24
X0D25
X0D00
X0D10
X0D11


SPI Interface: 7 pins

X0D14 SPI config Flash, need to be 1bit and 4bit
X0D15
X0D20
X0D21
X0D22 SPI clock

X0D12 SD Card clock / LED
X0D13 SD Card Present / LED / switch


Xlink: 2X

X0D04
X0D05
X0D06
X0D07

X0D16
X0D17
X0D18
X0D19

7 pins free

1bit:

X0D01
X0D34
X0D35

1bit - 8bit (lower nibble)

X0D36
X0D37
X0D38
X0D39

Missing, status led.

Pincount: result seem to be 4x spi data link having
ethernt and led drivers on the same pcb.
If using using 48pins, the ethernet drivers and led
drivers must be on different boards.
48 pin device have 28 pins instead of 36, this is 8
pins less. The ethernet module consumes 14 pins,
so this is no issue with the exception that the lower
nibble of 8bit port must be used instead of a 4bit one.
The high speed 4bit sd card interface is not possible on
48 pin devices. 6 1bit pins are free for config spi and other
use.

Notes:
-The layout should be made for allowing using only one
link and giving out one 8bit port eventually removing
the 4bit spi access and reducing it to single bit access.
Further in this case, a ring link configuration should
be possible using optional populating for switching the
output connectors.
-this pins can drive 8mA current
X0D00
X0D10
X0D11
X0D23
X0D24
X0D25
X0D34
X0D35
jagspaul
Experienced Member
Posts: 117
Joined: Tue Oct 18, 2011 3:28 pm

Post by jagspaul »

nisma

I don’t understand the port used for SPI & SD card. SPI flash mem is needed for storing the code program and needs 4 port CS,DI, DO, CLK.
SD card interface is good idea. We can store a RAW movie file in SD card and display can play same file in stand alone with out Ethernet.

Also
I don’t find the port for LED driver (r0,g0,b0. r1,g1,b1, clk,gclk, a0,a1,a2,a3).
Can you give me a schematic so that I can start the PCB design.

jags
nisma
Active Member
Posts: 53
Joined: Sun Dec 13, 2009 5:39 pm

Post by nisma »

The sd and some spi flash device have 2x and 4x interface, with a datarate of 480Mbit/sec and
the only exception of command 03 limited to 320Mbit/sec. This interface needs a bit more i/o compared to the slower spi interface. The 3x interface exists too but only some card implements it.

Before beginning design the layout firstly there is a need to choose the leds and driver and interface for it.
If you want only have a small installation, then the led board shipped with the retired and unsupported
led board works. Otherwise the approach used don´t work for several reasons. Reason as ground loop,
different PSU, distance, cable or connector cost, interference.
Question. Do you want use the panels supplied by xmos ? If so, what is the price for one panel and
there specs. Serial to parallel and 1:8 / 1:10 / 1:16 mux or decoder are cheap. Cable driver and cable/
connectors are not so cheap. For this reason the multiplexing is embedded into the serial link.
Serial link that need differential drivers, ... . One ethernet cable as example (because it´s cheap and have
high frequency with optional shielding) you can have the clock, load, data-out, data-in signals using
differential signaling. It´s possible to have the signals with a driver ic on the panel itself distributing it.
Even in this case reducing the connector pins you reduce the price. It´s more a question what panel
you have, what driver, second source, second and third usage and so on. Example for second usage
is driving stripes of rgb leds using the HL1606 controller.
jagspaul
Experienced Member
Posts: 117
Joined: Tue Oct 18, 2011 3:28 pm

Post by jagspaul »

I have two 16 X 32 RGB module. One module has MBI5024 driver IC and another one MBI5030 driver IC. I will use this module to test the L1 tile and finally I decided to design PCB layout for indoor module (16 X 32) with driver IC MBI5024 & MBI5030 with 1:16 scan.

I found in many places small size (64 X 64 or 96 X 96) RGB display popularity is better than bigger one (240 X 352) due to low price. In our market MBI5024 is available for $0.2 and MBI5030 is available for $0.8. So Module made by MBI3024 is much more economical rather MBI5030. The main drawback is MBI3024 driver IC does not has in build PWM, PWM has to be maintained in the XMOS L1 controller and I think it is quite possible with XMOS L1.

If we can make another one design with L1 to support 4K pixel & soft PWM to drive MBI5024 then it will be an alternate solution of small size (64 X 64) low cost RGB display.

It is found that in XMOS LED tile application notes has support for both MBI3024 & MBI3030 driver IC. But I don’t know it is actually working or not.

So my intention is to design a L1 board which can be used for both MBI5024 & MBI5030 with 1:8 / 1:16 (decoder) scan.

Please note that I have gone through source code of MBI5026 driver but I could not understand who PWM is maintained. In found “#define BCM_BITS (10) // Color depth of output” this may be used for gray scale PWM. But as per my knowledge 256 gray scale level is no possible with this approach. Pleas have a look.

Regarding soft PWM my logic is as follows.
For example one port of the driver has to be drive with 200 gray scale. In this case at the start of the scan cycle the port has to be set with “1” after that one counter will be started (counter freq = PWM freq) and a comparator will compare the counter value with gray scale value. When both the value will same the particular port will be written as “0”. The counter continue counting up to 255. When the counter value will reach 255 it will be stop and new scan cycle will be started.

jags
User avatar
Interactive_Matter
XCore Addict
Posts: 216
Joined: Wed Feb 10, 2010 10:26 am

Post by Interactive_Matter »

Hi,

time for me to add some cents to the conversation.

First of all, yes my current calculation were way off. Somehow I really forgot to think about the scanning. but you were able to fix this, thanks

Second, my experience with software PWM in XMOS are a bit mixed. In the HL1606 project (it has no PWM either) I had some bad problems with colour rendering. So you are right. PWM chips give you far better results, while software PWM is possible but I think you end up with less colour depth or less update speed - with more flickering.

But I am really curious about your schematics - sounds very interesting - especially if you come up with some cost calculations.

Regarding the power usage I think a local step down converter is quite practicable to get the wattage into the modules - but that adds up considerable on the cost and uses a good amount of board space.

Marcus
nisma
Active Member
Posts: 53
Joined: Sun Dec 13, 2009 5:39 pm

Post by nisma »

Please expose you intended usage.
Example 3x led per color = 12V. If the led have a forward voltage of 3.3V, then 3x 3.3V=10V -> 12V supply.
12V supply is very usual. At extreme, usa old ATX supply. There are cheap. For what you want using
switching PSU ? for the 3.3V for the driver ? Or do you want use one led for every color and drive it at
4-5V ?

I don´t have made the power dissipation calcs, but the device is limited to 27-29mA driving.
With 1:8 Mux, this is approximate 2.9mA every led considering the resistor deviation.
Do you are sure that you want making multiplexing ?
If you double the chipcount for the MB15024 then the driving strength could be increased to 45mA.
This is 4.67mA using 1:8 mux. On 1:16mux, divide the values by two.

Sure, having a 16x16 panel with 2.9mA at 12V or 5V results in 8.9 or 3.7W peak and 5.3 or 2.2W real power needs. Doing the same calcs at 4.57mA the results are 14.4 or 6W peak and 8.6 or 3.6W real power for 12V and 5V respectivly.

16x16=6 IC driving 2.9mA or 12 IC driving 4.67mA.
annother possibility:
16x32=6 IC driving 45mA limited to 70% duty cycle results in 3.28mA every led.
If you consider the dot correction, then reduce this values to 60%, approximate 2mA in the
last case every led.

As conclusion, this type of led panels are hobbist type ones. There work on low light conditions.
Having the limit of 25Mhz then concatenating 6 ic gives out 10 bit on 120hz refresh rate, 12bits on 60
hz update rate. Every 16x16 panel (1:8 mux) need 4 lines or 3lines adding one AND/XOR/NAND/... ic.
I consider 4 lines for now. Worst case 36 pins - 8pins for xlink (xlink booting) = 13 panels or 3328 pixel
using 6 ic every panel and 1:8 mux. Using 1:16 mux, the led is driven at ridiculus 1.3mA, but the pixel
count doubles. This assuming 120hz update rate. If limiting to 60hz, then the pixel count
doubles too. One ethernet controller could drive 20 led driver boards. If compression or 4:2:0 is used, then
this number increases.

edit:

It´s possible to get a idea what is the current (resistor) on the actual matrix led board that uses
1:16 mux and how many MBi5024 it have. The current resistor is on pin 23 and it goes to ground line,
so it´s sufficient to measure pin23 and the ground line.

Annother question. What HW do you have.
- XC-3 LED Tile Control Kit
- Xjtag-2
- XMOS XS1-L1-64 devel board or equivalent
- Xmos led tile with the interface connector as documented in XC-3 Led tile control kit
jagspaul
Experienced Member
Posts: 117
Joined: Tue Oct 18, 2011 3:28 pm

Post by jagspaul »

nisma wrote:Please expose you intended usage.
Example 3x led per color = 12V. If the led have a forward voltage of 3.3V, then 3x 3.3V=10V -> 12V supply.
12V supply is very usual. At extreme, usa old ATX supply. There are cheap. For what you want using
switching PSU ? for the 3.3V for the driver ? Or do you want use one led for every color and drive it at
4-5V ?
Yes I want to use single LED for every color and the supply voltage is 5V.
nisma wrote: Annother question. What HW do you have.
- XC-3 LED Tile Control Kit
- Xjtag-2
- XMOS XS1-L1-64 devel board or equivalent
- Xmos led tile with the interface connector as documented in XC-3 Led tile control kit
Right now I have XC-3 Tile kit and Xtag-2 and some XMOS L1 64 pin chip. Which will be used in my new design PCB (LED Tile based on XMOS L1).

My question :
Have you gone through the source code of MBI5026 driver? Is it working? Is the driver maintaining soft PWM properly?
I have doubt on it. I don’t think it is working and it can support 8bit and 10 bit PWM.

jags