Difference between revisions of "LED tiles V2"

From London Hackspace Wiki
Jump to: navigation, search
(adding from mailing list thread to date)
Line 1: Line 1:
 
LED screen tiles donated by Tom (Mistamudd)
 
LED screen tiles donated by Tom (Mistamudd)
 
[https://groups.google.com/forum/#!topic/london-hack-space/RZeO143uh7A See mailing list thread here.]
 
[https://groups.google.com/forum/#!topic/london-hack-space/RZeO143uh7A See mailing list thread here.]
[[File:LED Tile V2.jpg|200px|thumb|right|LED tile]]
+
[[File:LED Tile V2.jpg|200px|thumb|right|LED tile in its packaging.]]
  
 
== Specs ==
 
== Specs ==
Line 10: Line 10:
 
[[File:LED Tile Pinout.jpg|200px|Pinout]]
 
[[File:LED Tile Pinout.jpg|200px|Pinout]]
  
There are 48 x MBI5034 LED controller chips on the PCB, which are 16 bit shift register constant current sinks.
+
There are 48 x MBI5034 LED controller chips on the PCB, which are 16 bit shift register constant current sinks. Datasheet : [[File:MBI5034 Datasheet VA.00-EN.pdf]]
 
 
Datasheet : [[File:MBI5034 Datasheet VA.00-EN.pdf]]
 
  
 
The controller chips are labelled R,G & B 1-16. So each chip does 16 LEDs of the same colour. They each have a current set resistor. You can also set the current gain in software from 12.5% to 200% but this set the gain for all LEDs attached to that chip, not individual LEDs. The default power gain is 100%.  
 
The controller chips are labelled R,G & B 1-16. So each chip does 16 LEDs of the same colour. They each have a current set resistor. You can also set the current gain in software from 12.5% to 200% but this set the gain for all LEDs attached to that chip, not individual LEDs. The default power gain is 100%.  
Line 28: Line 26:
 
The middle connector has :
 
The middle connector has :
 
* D1 & D2  
 
* D1 & D2  
* OE (Output enable)
+
* OE (Output enable) & LAT (Latch)
* LAT (Latch)
 
 
* A0 & A1
 
* A0 & A1
* CLK (Clock)
+
* CLK (Clock) & NC
* NC
+
 
 +
== Driving hardware ==
 +
Can be driven with an Arduino or Teensy. The data pins can be driven directly with 3.3V and the panel fully on pulls about 7 amps @ 5v.
  
 +
== Driving code ==
 
The serial data sent to D1 & D2 needs to be sent in 3 x 16 bit B,G,R frames, 64 times per row (i.e. one row is 384 bits) then this is latched, and then the output is enabled.
 
The serial data sent to D1 & D2 needs to be sent in 3 x 16 bit B,G,R frames, 64 times per row (i.e. one row is 384 bits) then this is latched, and then the output is enabled.
  
Line 57: Line 57:
  
 
[[File:LED Panel Bit Stream.png]]
 
[[File:LED Panel Bit Stream.png]]
 +
 +
== External links ==
 +
* Las Vegas Hackspace (Synshop) [https://github.com/krux702/led_panel_wall LED panel wall] project on GitHub, (includes a high res image of the PCB).
 +
 +
[[Category:LED tiles]]

Revision as of 22:50, 1 April 2017

LED screen tiles donated by Tom (Mistamudd) See mailing list thread here.

LED tile in its packaging.

Specs

The tile contains the matrix of 64 x 16 (1024) RGB LEDs and the driver ICs. Data is sent serially to the LEDs, configured in 'banks' and 'rows'.

Each tile is 500mm wide x 125mm high with LED pixels every 7mm pitch.

Pinout

There are 48 x MBI5034 LED controller chips on the PCB, which are 16 bit shift register constant current sinks. Datasheet : File:MBI5034 Datasheet VA.00-EN.pdf

The controller chips are labelled R,G & B 1-16. So each chip does 16 LEDs of the same colour. They each have a current set resistor. You can also set the current gain in software from 12.5% to 200% but this set the gain for all LEDs attached to that chip, not individual LEDs. The default power gain is 100%.

There are two address line inputs and the LED chips seem to be soldered in to banks of 4. Which makes sense.

There is an HC138 decoder on the address lines, and only the first four outputs seem to be wired. Again, matches the above.

There are also 8 dual FET chips, which seem to control the 4 banks.

The top connector is all Vcc (5v?)

The bottom is all ground

The middle connector has :

  • D1 & D2
  • OE (Output enable) & LAT (Latch)
  • A0 & A1
  • CLK (Clock) & NC

Driving hardware

Can be driven with an Arduino or Teensy. The data pins can be driven directly with 3.3V and the panel fully on pulls about 7 amps @ 5v.

Driving code

The serial data sent to D1 & D2 needs to be sent in 3 x 16 bit B,G,R frames, 64 times per row (i.e. one row is 384 bits) then this is latched, and then the output is enabled.

  BBBBBBBB BBBBBBBB GGGGGGGG GGGGGGGG RRRRRRRR RRRRRRR | BBBBBBBB BBBBBBBB GGGGGGGG GGGGGGGG RRRRRRRR RRRRRRR | BBBBBBBB BBBBBBBB GGGGGGGG GGGGGGGG RRRRRRRR RRRRRRR ... etc .. x 384 bits

There are two 'banks'; the top 8 rows and bottom 8 rows. There are loaded with data using two different data in lines, D1 & D2. The data lines are clocked and latched with the same shared clock and latch signals.

In each bank, there are 8 rows. A single stream of 384 bits loads two rows of 2 x 64 LEDs. The address lines A0 & A1 select which row is being loaded from the serial data.

To display a full tile, of all 1024 RGB LEDs, you need to :

  1. Set OE=HIGH & LAT=LOW
  2. For each address A0 & A1 = 0x00. 0x01. 0x10. 0x1 :
    1. Clock 384 bits of data on to D1 & D2, by toggling the CLK pin from LOW to HIGH
    2. Toggling LAT pin from HIGH to LOW to latch the 384 bits in to the driver chips.
    3. Toggle the OE pin LOW to turn the LEDs on for that row.
  3. Clock 4 x 384 bits of data to light every row of LEDs in sequence.

Repeat this very quickly as fast as you can ! :-)

The LEDs are either on or off, there is no brightness control of individual LEDs possible. To mix colours, you need to implement a PWM or BCM waveform with each refresh cycle of the panel.

LED Panel Bit Stream.png

External links

  • Las Vegas Hackspace (Synshop) LED panel wall project on GitHub, (includes a high res image of the PCB).