Zum Inhalt springen

Led Matrix: Unterschied zwischen den Versionen

Wizard23 (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Benko (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(21 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Bild:Matrix_frontside.jpeg|thumb|300px|hypnomatrix is hypnotizing]]
=== WTF? ===
[[Bild:Matrix_backside.jpeg|thumb|300px|all hail to the hypnomatrix]]
 
For the LED Matrix we want to build on the [[CCCamp2007]] we decided to design a GNU LEDMatrix Controller/Driver setup. It will consist of two parts the FPGA board and a several driver electronics boards. Now almost one year later we're still working on it :)
[[Bild:Matrix_frontside.jpeg|thumb|200px|hypnomatrix is hypnotizing]]
[[Bild:Matrix_backside.jpeg|thumb|200px|all hail to the hypnomatrix]]
 
For the LED Matrix we wanted to build on the [[CCCamp2007]] we decided to design a GNU LEDMatrix Controller/Driver setup. It consists of two parts the FPGA board and a several driver electronics boards. Now almost one year later we're finally done!
 
''see also:'' [http://www.flickr.com/photos/1000points/2509802438/ metalab led matrix - demo "die ewigkeit schmerzt"](Video)
 
== Animations ==
 
Two Animations for the linuxwochen: [[Bild:Metalabanim.zip]]
 
 
<div>
<div style='float:left'>{{#ev:youtube|pHdAvMrkO0U}}</div>
</div>
<div style='clear:both'></div>


== Status ==
== Status ==
Everything is soldered and it works. We still need to figure out a fast way to get Video data to the matrix.
Everything is soldered and it works. We can stream videos via the parallel interface of the via board to the matrix with 72fps :)
 
* main svn: https://whatever.metalab.at/projects/FPGAMatrix/
* cliffords mplayer patch: http://svn.clifford.at/handicraft/2008/metaleds/
 
== Usage examples ==
clifford/mplayer/mplayer-bin -vo metaleds:/dev/lp0 -framedrop -vf scale -zoom -x 72 -y 48 test.avi
netcat -l -p 7000 > /dev/lp0
 
 
 
Format is: 72x48 bytes of pixeldata (ranging from 0x00 to 0x0F) followed by a single 0x80 (to flip framebuffers)
 
 
== Real-time access ==
 
=== Raw protocol ===
 
72x48 = 3456 octets of pixel data followed by a terminating 0x80 octet.
 
Each pixel data octet represents one pixel's brightness, ranging from 0 (0x00, off) to 15 (0x0F, brightest).
 
The pixels start at the upper left corner and are numbered in [http://en.wikipedia.org/wiki/Row-major_order row-major order] (see the diagram below).
 
All output is double-buffered on the fpga, so you have to send a 0x80 after the pixel data to flip the frame buffers.
<pre>
________________________
| 1  2  3 ...          72|
|73 50 ...            144| 
|.                      |
|.                      |
|...                3456|
|________________________|
</pre>
 
=== Using with C/C++ ===
You can use the metalib library from here; it comes with a couple of demos:
 
https://whatever.metalab.at/projects/FPGAMatrix/client/
 
=== Using with Python ===
You can use functions like getpixel, setpixel, submit with the python classes in https://whatever.metalab.at/projects/FPGAMatrix/python/
 
It supports the (now encouraged) way of using TCP. A example (Game of Life) is available.


== Specs ==
== Specs ==
Zeile 21: Zeile 79:
* 74HC595 shifting registers
* 74HC595 shifting registers
== New MiniITX Board ==
== New MiniITX Board ==
VIA EPIA-PD
VIA EPIA-M 1000G
 
 
* http://www.i2c-bus.org/  very good read on i2c specs
* https://help.ubuntu.com/community/ViaEpiaDriHowto  kernel stuff for i2c
* http://robots.net/article/983.html article on this board
* <nowiki>http://www.nxp.com/#/pip/pip=[pfp=41735]|pp=[v=d,t=pfp,i=41735,fi=,ps=0][0]</nowiki> i2c specs
* http://codesink.org/eeprog.html sample userland app using i2c on the via board
* http://www.linuxjournal.com/article/7136 i2c kernel driver linux stuff
 
There are three data transfer speeds for the I2C bus: standard, fast-mode, and high-speed mode. Standard is '''100 Kbps.''' Fast-mode is '''400 Kbps''', and high-speed mode supports speeds up to '''3.4 Mbps'''. All are backward compatible. The I2C bus supports 7-bit and 10-bit address space devices and devices that operate under different voltages.
 
Ohoh
 
http://archives.andrew.net.au/lm-sensors/msg29149.html
 
100kHz and 400kHz are *maximum* frequency for standard and high-speed
*I2C* busses. What your VIA bridge really is is an SMBus, so it must run
at a speed between 10kHz and 100kHz if I remember correctly.
 
As a matter of fact, I already measured both my VIA and Intel SMBus chips
at 16kHz, exactly like you. So I am not surprised at all by what you are
reporting.


1 Ghz
1 Gig RAM
MPEG2 Decoderchipset


kernel patch '''UNTESTED''':
http://archives.andrew.net.au/lm-sensors/msg29186.html


[[Kategorie:WhateverLab]]
[[Kategorie:WhateverLab]]
[[Kategorie:Projekte]]
[[Kategorie:Projekte]]
__NOTOC__