Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
flipdot:start [2013/10/20 17:08] – [Aktuelles] argv | flipdot:start [2024/03/07 22:07] (current) – linuxhackerman | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | = Flipdot | ||
+ | |||
---- dataentry Projekt ---- | ---- dataentry Projekt ---- | ||
Projekt_url | Projekt_url | ||
Name : Flipdot | Name : Flipdot | ||
- | Beschreibung_wiki : Die Flipdotmatrix die uns zukam in Betrieb nehmen | + | Beschreibung_wiki : Flipdotmatrixen |
Links_urls | Links_urls | ||
Bilder_imgs | Bilder_imgs | ||
Line 8: | Line 10: | ||
Lizenz | Lizenz | ||
Beteiligt | Beteiligt | ||
- | Termine_page | + | Termine_page |
- | Status | + | Status_ |
Kategorie_tags | Kategorie_tags | ||
Verwandtes_tags | Verwandtes_tags | ||
---- | ---- | ||
- | ====== | + | Uns ist irgendwann mal ein Rudel Flipdot-Panels zugelaufen, die wir sowohl im Münchner Club als auch in andere Hackerspaces verteilt haben. Die Panels wurden in verschiedenen Konfigurationen zu mehreren Displays aggregiert und zeigen z.B. den Clubraum Status, das Channel Topic oder aktuelle (politische) Nachrichten im Schaufenster an. |
- | * **2013-10-14**: fehlende Kanthölzer und zusätzlich Holzbretter (Holzbretter als Netzteil-Unterlage zum mit' | + | |
+ | Es gibt verschiedenste Treiberplatinen und Ansteuerungshardware, | ||
+ | |||
+ | Der Quellcode sammelt sich im [[https:// | ||
+ | |||
+ | |||
+ | Ein Panel hat die Abmessungen 30x24x6cm und wiegt mit vier Haltern ca. 1,2 kg. Zwei Panels mit Rücken aneinander haben zusammen ca. 9 anstatt 6 cm Tiefe. | ||
+ | |||
+ | == Nomenklatur | ||
+ | |||
+ | Um dem Chaos ausnahmsweise entgegen- und nicht zu-zuwirken legen wir hier feste Worte für die einfachere Kommunikation fest! | ||
+ | |||
+ | * **Panel** | ||
+ | * FIXME: Sollte man nicht lieber 16 Spalten × 20 Zeilen verwenden? Dann entspräche eine Modulzeile einem 16 Bit Wort, was auch die interne Aufteilung von üblichen Framebuffern entspricht. | ||
+ | * Treiberplatine | ||
+ | * Panelzeile | ||
+ | * Panelspalte | ||
+ | * Der Ursprung ist oben links (wenn man von vorne draufschaut) und mit X0Y0 beschriftet | ||
+ | * **Assembly** | ||
+ | * **Display** == Ein Display besteht aus einer bis mehreren Assemblies und ist für den Betrachter eine zusammenhängende Installation. Z.B. die drei Assemblies im Clubschaufenster, | ||
+ | * **Window** == Ein rechteckiger Bereich in einem Display. Diese Bereiche können als Resource an verschiedene Teilnehmer vergeben werden die darauf schreiben dürfen. | ||
+ | |||
+ | **ACHTUNG**: | ||
+ | |||
+ | |||
+ | == Displays | ||
+ | |||
+ | Wir haben aktuell folgende Flipdot-Displays: | ||
+ | |||
+ | ^ ^ Anzahl | ||
+ | | Mini | 2 | Zeigt den Clubstatus an, kann (offiziell? | ||
+ | | Zeile | ||
+ | | [[wand|Schaufenster / Wand]] | ||
+ | | [[mobil|Mobil / Demo]] | ||
+ | |||
+ | === Zeile | ||
+ | |||
+ | 176x20 Pixel. | ||
+ | |||
+ | Es gibt mehrere Möglichkeiten die Zeile anzusprechen: | ||
+ | - UDP: Wie alle Displays beherrscht auch die Zeile ein triviales UDP-Protokoll: | ||
+ | - In #ccc auf darkfasel: Alle Posts, die " | ||
+ | - < | ||
+ | |||
+ | === Bildformat | ||
+ | Es muss ein animiertes 144x120 gif sein mit einem delay auf dem frame. am besten sowas wie 600 sekunden oder so | ||
+ | |||
+ | Schwarz-weiss: | ||
+ | |||
+ | Bug: Aktuell scheinen die linkesten 16 pixel am rechten Rand angezeigt zu werden. | ||
+ | |||
+ | Workaround: '' | ||
+ | |||
+ | einfach per ssh das gif in ~/ | ||
+ | |||
+ | === Schaufenster / Wand | ||
+ | |||
+ | Das Fenster ist ca. 210x215cm – damit braucht es dann 7x9, also 63 Panele. | ||
+ | |||
+ | Web-UI: http:// | ||
+ | == Change Log | ||
+ | |||
+ | * **2013-10-20**: | ||
+ | {{gallery>? | ||
+ | IPs: | ||
+ | links 2001: | ||
+ | mitte 2001: | ||
+ | rechts 2001: | ||
+ | |||
+ | * **2013-10-19**: fehlende Kanthölzer und zusätzlich Holzbretter (Holzbretter als Netzteil-Unterlage zum mit' | ||
* **2013-10-14**: | * **2013-10-14**: | ||
- | {{gallery> | + | {{gallery>? |
* **2013-09-30**: | * **2013-09-30**: | ||
Line 41: | Line 112: | ||
* Ziel: Streaming eines (virtuellen) Framebuffers | * Ziel: Streaming eines (virtuellen) Framebuffers | ||
- | ====== Einführung ====== | ||
- | Wir haben 198 schwarze und 4 blaue Panels mit je 20x16 Pixeln | ||
- | Bisher wurden nur die schwarzen verbaut. | + | == Steuerplatine |
- | + | ||
- | Davon stecken insgesamt | + | |
- | * 54 x in den drei großen Displays fürs Schaufenster | + | |
- | * 2 x im Minidisplay Hauptraum | + | |
- | + | ||
- | Unterwegs sind | + | |
- | * 4 x bei den Ingolstädtern; | + | |
- | * 1 x bei Karsten (Student-Robotics-Student von lila) | + | |
- | * 4 (oder 6?) x bei Flop | + | |
- | * 6 x Hannover, Mcfly | + | |
- | * 2 x Hamburg, Mcfly | + | |
- | * 1 × datenwolf | + | |
- | * 6 x Metalab Wien, overflo | + | |
- | ====== Nomenklatur ====== | + | |
- | Um dem Chaos ausnahmsweise entgegen- und nicht zu-zuwirken legen wir hier feste Worte für die einfachere Kommunikation fest! | + | |
- | + | ||
- | * Modul (Panel) == 1 Object voll mit Dots; besteht aus: Dot-Matrix mit 16 Zeilen und 20 Spalten. Hat hinten noch die Treiberplatine dran. | + | |
- | * FIXME: Sollte man nicht lieber 16 Spalten × 20 Zeilen verwenden? Dann entspräche eine Modulzeile einem 16 Bit Wort, was auch die interne Aufteilung von üblichen Framebuffern entspricht. | + | |
- | * Treiberplatine == nimmt seriell Daten entgegen und gibt dieses Parallel auf die Dot-Matrix eines Moduls. | + | |
- | * Zeile == horizontal aggregierte Ansammlung von Dots, typischerweise 20 Dots | + | |
- | * Spalte == vertikal aggregierte Ansammlung von Dots, typischerweise 16 Dots | + | |
- | * Der Ursprung ist oben links und mit X0Y0 beschriftet | + | |
- | + | ||
- | **ACHTUNG**: | + | |
- | + | ||
- | ====== Steuerplatine | + | |
* 10 8-Stufe Schieberegister (80 bit) [[http:// | * 10 8-Stufe Schieberegister (80 bit) [[http:// | ||
* Aufgeteilt in row + column register | * Aufgeteilt in row + column register | ||
Line 78: | Line 121: | ||
* FIXME: Wo kommt die Zahl her, gilt das für ein Modul, also eine Steuerplatine? | * FIXME: Wo kommt die Zahl her, gilt das für ein Modul, also eine Steuerplatine? | ||
- | ===== Pinbelegung | + | == Pinbelegung |
Thx an x5444 von den Ingolstädern für das PIN-Layout! | Thx an x5444 von den Ingolstädern für das PIN-Layout! | ||
Line 84: | Line 127: | ||
Das col register is 16px lang. | Das col register is 16px lang. | ||
- | ^ 1 | ?1 ^ 2 | ?2 | | + | ^ 1 | ?1 ^ 2 | GND | |
^ 3 | ROW_DATA | ^ 3 | ROW_DATA | ||
^ 5 | STROBE | ^ 5 | STROBE | ||
- | ^ 7 | ROW_OE | + | ^ 7 | WHITE_OE |
- | ^ 9 | COL_OE | + | ^ 9 | BLACK_OE |
^ 11 | COL_CLOCK ^ 12 | GND | | ^ 11 | COL_CLOCK ^ 12 | GND | | ||
^ 13 | ROW_CLOCK ^ 14 | GND | | ^ 13 | ROW_CLOCK ^ 14 | GND | | ||
^ 15 | COL_DATA | ^ 15 | COL_DATA | ||
^ 17 | DO ^ 18 | GND | | ^ 17 | DO ^ 18 | GND | | ||
- | ^ 19 | ?2 ^ 20 | GND | | + | ^ 19 | ?1 ^ 20 | ?2 | |
+ | |||
+ | * ?1 == durchverbunden, | ||
+ | * DO == Ausgang des zweiten nichtinvertierten Schieberegisters für die Spalten auf der input Seite bei Kaskadierung von Modulen | ||
+ | * ?2 == ind ein wenig komisch, die sind jeweils ein bestimmter pegel (hab ich grad nicht im kopf) sobald an einer der steuerplatinen in der kette die matrix die tatsächliche display-einheit verbunden ist | ||
+ | |||
+ | |||
+ | == Historie | ||
+ | |||
+ | Ursprünglicher Standort über der A9 bei Fröttmaning: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Wir haben 198 schwarze und 4 blaue Panels mit je 20x16 Pixeln | ||
+ | |||
+ | Bisher wurden nur die schwarzen verbaut. | ||
+ | |||
+ | Davon stecken insgesamt | ||
+ | * 54 x in den drei großen Displays fürs Schaufenster | ||
+ | * 2 x im Minidisplay Hauptraum | ||
+ | * 24 x im mobilen Flipdot | ||
+ | |||
+ | === Verteilung | ||
+ | |||
+ | 70 Vergeben: | ||
+ | * 4 x bei den Ingolstädtern; | ||
+ | * 1 x bei Karsten (Student-Robotics-Student von lila) | ||
+ | * 6 x Hannover, Mcfly (gewannen eine Wild Demo Compo: http:// | ||
+ | * 2 x Hamburg, Mcfly, Attraktor | ||
+ | * 1 × datenwolf | ||
+ | * 6 x Metalab Wien, overflo https:// | ||
+ | * 8 x Dortmund, Eimann | ||
+ | * 3 x Karlsruhe | ||
+ | * 3 x Darmstadt, bios | ||
+ | * 6 x ccc Köln | ||
+ | * 4 x AFRA - Abteilung-für-Redundanz-Abteilung (Martin weis mehr) | ||
+ | * 2 x Tausch gegen neuen Münzer Matemat (Bekommt noch 2, Martin weis mehr) | ||
+ | * 4 x + 1 Steuerplatine normal für OpenLab Hackspace/ | ||
+ | * im Tausch gegen Datenhandschuh und Geekend | ||
+ | * 2014-01-14: Haben über krobin ein Ersatzteilmodul bekommen. Pixel waren kaum noch drauf, aber Spulen und Transistoren. | ||
+ | * 6 x Southampton(UK) + fuer SoMakeIt/ | ||
+ | * 3 x Chaostreff Salzburg via ahuemer. Geplante Projekte: Julia Mengen Betrachter, Mate Counter für das baldig kommende Geekend bei uns. | ||
+ | * 2? x foobar Essen via gammlaa | ||
+ | * 3 x [[http:// | ||
+ | * 2 x Hackerspace Budapest | ||
+ | |||
+ | am 31c3 rausgegeben von Gigo an ccczh | ||
+ | * 2 x [[https:// | ||
+ | * 2 x [[http:// | ||
+ | * 2 x [[http:// | ||
+ | * 2 x [[http:// | ||
+ | |||
+ | === Requests | ||
+ | |||
+ | Wir haben noch ca. 11 Panels zu vergeben, Hackerspaces werden bevorzugt. Die Plan-Spalte wird nur von Mitgliedern des Fliptdot-Vergabe-Kommitees geändert. | ||
+ | |||
+ | ^ Angefragt | ||
+ | | 1 defektes | - | com ]aet[ flipdot.org | ||
+ | | 2 | 1 | Attraktor Hamburg via mc.fly | ||
+ | | 4 | 2 | [[https:// | ||
+ | | 1 oder 2 | 0 | Philip Dusl | Abholen @ muCCC | ||
+ | | 4 | 2 | [[http:// | ||
+ | | | 2 | www.hackerspace-bielefeld.de | ||
+ | | 2 | | [[http:// | ||
+ | | 2-4 | | daniel domscheit-berg / havel: | ||
+ | | 4 | | FabLab Nürnberg: charlie ]ät[ fabfolk ]dod[ com | Abholung, Uebergabe auf Veranstaltung, | ||
+ | ^ ^ ~~=sum(range(1, | ||
+ | |||
+ | |||
+ | Sonstige | ||
+ | * 1 x Marian Kleineberg -> Jan kümmert sich | ||
+ | |||
- | ?1 == durchverbunden, | + | == Archiv |
- | DO == Ausgang des zweiten nichtinvertierten Schieberegisters für die Spalten auf der input Seite bei Kaskadierung von Modulen | + | |
- | ?2 == ind ein wenig komisch, die sind jeweils ein bestimmter pegel (hab ich grad nicht im kopf) sobald an einer der steuerplatinen in der kette die matrix die tatsächliche display-einheit verbunden ist | + | |
- | ====== Schaufenster ====== | + | * [[https:// |
- | Das Fenster ist ca. 210x215cm, die es zu füllen gilt. Damit braucht es dann 7x9, also63 Panele. | ||
- | ====== [deprecated] Krobin und Sepi's Vorschlag ====== | + | == Live interaction at rc3 |
- | ===== BOM ===== | + | |
- | * uC: ATMEGA162 (~3-5€ für 100, 1 Stück) | + | |
- | * ethernet: ENC28J60 (~3€ ab 1 Stück) | + | |
- | * ethernet buchse mit magnetics: ~2€ / Stück | + | |
- | * Step-down converter LM2675-3.3: 2€ / 100 Stück oder 4€ einzeln | + | |
- | * total/board min 11€ | + | |
- | * total: 200*11€ = 2200€ | + | |
- | Da noch platinen hergestellt werden müssten und ethernetkabel | + | See the flipdot in our rc3.world assembly in the couch area or at [[https://webex.muc.ccc.de/rc3lounge|RC3 lounge]] via Jitsi. |
- | ===== Modulcontroller ===== | + | |
- | Jedes Modul bekommt einen Modulcontroller. Er ist mit einem AVR mit SPI bestückt. Desweiteren hat er einen [[http://ww1.microchip.com/downloads/ | + | |
- | ===== Displaycontroller ===== | + | You can send own pixel data to the flipdot using IPv6 (only! Still using legacy IP? Time to upgrade) UDP packets to the Host flip.y.nu port 2424. |
- | Alle Module werden über eien Hub mit einem Raspberry PI oder anderem Linux Rechner verbunden. Auf dem Raspi läuft ein eigener [[http:// | + | |
- | ===== Protokoll ===== | + | There are a few examples in our [[https:// |
- | Module bekommen ein ganzes Bild (16*20 = 320 Pixel ~ 40Byte) pro Ethernet frame übertragen. Man könnte auch eine Art Diff übertragen um höhere Framerates zu erlauben. | + | |
- | ===== Warum? ===== | + | For a quick start try out [[https://pla.y.nu/flipdot-gameoflife.tar|this archive]] containing an adapted version of the game of life script. Beware: it needs python2. Example use: python2 gameoflife.py random |
- | Framebuffer hat den Vorteil dass man sehr viel Inhalt dafür hat: Mplayer, X11, eigenes Zeug, Konsole, SDL, etc. Ethernet ist gut weil die Verkabelung einfach ist, weil man Switches benutzen kann, weil die Ansteuerung einfach ist, evenutell später auf UDP/IP umsteigen kann, es multicast und broadcast kann, es grosse Reichweiten hat, zuverlässig ist, einfach zu debuggen ist, standard ist. | + | |
- | AVR hat den Vorteil einer guten freien Toolchain, relative niedrigen Preises, genügender Performance. | + | |
- | ===== Stromaufnahme der Komponenten ===== | + | Unfortunately so far the animations won't stop when you send data (unlike our [[https:// |
- | * Atmega core 4MHz@3V = 5mA | + | |
- | * I/O Pin = max 40mA | + | |
- | * ENC28J60 TX = 180mA | + | |
- | * Total ~ 500mA | + | |
- | Also wären 1A@3.3V ganz nett |