Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
flipdot:start [2014/04/03 23:13] – [Requests] andi0flipdot:start [2024/03/07 22:07] (current) linuxhackerman
Line 4: Line 4:
 Projekt_url       :  Projekt_url       : 
 Name              : Flipdot Name              : Flipdot
-Beschreibung_wiki : Die Flipdotmatrix die uns zukam in Betrieb nehmen+Beschreibung_wiki : Flipdotmatrixen in Betrieb nehmen
 Links_urls        :  Links_urls        : 
 Bilder_imgs       :  Bilder_imgs       : 
Line 10: Line 10:
 Lizenz            : -- Lizenz            : --
 Beteiligt         : sepi, jan, lilafisch, martin, krobin, fpletz Beteiligt         : sepi, jan, lilafisch, martin, krobin, fpletz
-Termine_page      : flipdot:termine +Termine_page      : 
-Status            api und protokoll definieren, mehr testen+Status_           done
 Kategorie_tags    : Hardware, Software Kategorie_tags    : Hardware, Software
 Verwandtes_tags   : Display, Schaufenster Verwandtes_tags   : Display, Schaufenster
 ---- ----
  
 +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.
  
 +Es gibt verschiedenste Treiberplatinen und Ansteuerungshardware, die auch mal besser dokumentiert werden müsste. :-) 
  
 +Der Quellcode sammelt sich im [[https://github.com/muccc/flipdots|flipdot git]].
  
-====== Howto ===== 
  
-Beliebiges Bild an Wand schickenEs wird automatisch skaliertSchwarz-Weiß Bilder erzeugen bessere Ergebnisse. +Ein Panel hat die Abmessungen 30x24x6cm und wiegt mit vier Haltern ca1,2 kgZwei Panels mit Rücken aneinander haben zusammen ca. 9 anstatt 6 cm Tiefe.
-  nc 2001:7f0:3003:cafe:ba27:ebff:fe23:60d7 2323 < <file>  +
-   +
-Animiertes senden (noch sehr buggy): +
-<code> +
-#!/bin/bash +
-rm -rf output +
-mkdir output+
  
-convert $1 output/$1.png+== Nomenklatur
  
-for i in `ls -v output/*` +Um dem Chaos ausnahmsweise entgegen- und nicht zu-zuwirken legen wir hier feste Worte für die einfachere Kommunikation fest! 
-do + 
- nc 2001:7f0:3003:cafe:ba27:ebff:fe23:60d7 2323 < $i +  * **Panel** == 1 Object voll mit Dots; besteht aus: Dot-Matrix mit 16 Zeilen und 20 Spalten. Hat hinten noch die Treiberplatine dran. 
- sleep 0.2 +    * 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. 
-done+    * Treiberplatine == nimmt seriell Daten entgegen und gibt dieses Parallel auf die Dot-Matrix eines Moduls. 
 +    * Panelzeile == horizontal aggregierte Ansammlung von Dots, typischerweise 20 Dots 
 +    * Panelspalte == vertikal aggregierte Ansammlung von Dots, typischerweise 16 Dots 
 +    * Der Ursprung ist oben links (wenn man von vorne draufschaut) und mit X0Y0 beschriftet 
 +  * **Assembly** == Ein bis mehrere Panel sind zu einem größeren Aggregat zusammengebaut worden und haben eine gemeinsame Steuerungseinheit. Im Club stehen drei Assemblys im Schaufenster rum. 
 +  * **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, eine Assembly die aus einer "Zeile" panels besteht und im Clubhauptraum den ganzen Raum umrundet. Eine Einpanelassembly die nur den Clubstatus anzeigt. 
 +  * **Window** == Ein rechteckiger Bereich in einem Display. Diese Bereiche können als Resource an verschiedene Teilnehmer vergeben werden die darauf schreiben dürfen. 
 + 
 +**ACHTUNG**: Eventuell ist im Rest der Wikiseite alles vertauscht. Das sollte später gefixt werden! 
 + 
 + 
 +== Displays 
 + 
 +Wir haben aktuell folgende Flipdot-Displays: 
 + 
 +^                               ^ Anzahl  ^                                                                               ^ 
 +| Mini                          |  2      | Zeigt den Clubstatus an, kann (offiziell?) nicht direkt angesprochen werden. 
 +| Zeile                          11     | Zeigt Topic aus #ccc an                                                       | 
 +| [[wand|Schaufenster Wand]]  |  63     | drei Assemblies die in der Regel als ein großes Display betrieben werden      | 
 +| [[mobil|Mobil / Demo]]        |  ??     | mobiles, wasserfestes Case                                                    | 
 + 
 +=== Zeile 
 + 
 +176x20 Pixel. 
 + 
 +Es gibt mehrere Möglichkeiten die Zeile anzusprechen: 
 +  - UDP: Wie alle Displays beherrscht auch die Zeile ein triviales UDP-Protokoll:  `2001:7f0:3003:beef:ba27:ebff:fe89:4cd2` Port `2323
 +  - In #ccc auf darkfasel: Alle Posts, die "Alarm" enthalten sowie Topic-Änderungen werden angezeigt. 
 +  - <del>https://muc.pads.ccc.de/flipdot wird angezeigt (BETA)</del> Landet aktuell auf der Wand, nicht auf der Zeile 
 + 
 +=== Bildformat 
 +Es muss ein animiertes 144x120 gif sein mit einem delay auf dem frame. am besten sowas wie 600 sekunden oder so 
 + 
 +Schwarz-weiss: Image -> Mode -> Indexed...:  use black and white (1-bit) palette 
 + 
 +Bug: Aktuell scheinen die linkesten 16 pixel am rechten Rand angezeigt zu werden. 
 + 
 +Workaround: ''gm convert tdoh.gif -affine 1,0,0,1,-16,0 -transform -draw 'image Over -112,0 144,120 tdoh.gif' tdoh2.gif'' 
 + 
 +einfach per ssh das gif in ~/gifs/active legen 
 + 
 +=== Schaufenster / Wand
  
-rm -rf output +Das Fenster ist ca. 210x215cm – damit braucht es dann 7x9, also 63 Panele.
-</code>+
  
-====== Aktuelles ======+Web-UI: http://[2001:7f0:3003:beef:ba27:ebff:fee3:ff77]:8000/ 
 +== Change Log
  
   * **2013-10-20**:    * **2013-10-20**: 
 {{gallery>?flipdot-ph*.jpg&lightbox&4}} {{gallery>?flipdot-ph*.jpg&lightbox&4}}
 IPs: IPs:
-  links 2001:7f0:3003:cafe:ba27:ebff:fe86:8697 +  links 2001:67c:20a1:1033:33c3:beef:1234:0001 
-  mitte 2001:7f0:3003:cafe:ba27:ebff:fe23:60d7 +  mitte 2001:67c:20a1:1033:33c3:beef:1234:0002 
-  rechts 2001:7f0:3003:cafe:ba27:ebff:fe71:dd32+  rechts 2001:67c:20a1:1033:33c3:beef:1234:0003
  
   * **2013-10-19**: fehlende Kanthölzer und zusätzlich Holzbretter (Holzbretter als Netzteil-Unterlage zum mit'rollen) wurden besorgt und Flipdotpanel für das linke Schaufenster wurde mit vielen Helfern fertiggestellt.   * **2013-10-19**: fehlende Kanthölzer und zusätzlich Holzbretter (Holzbretter als Netzteil-Unterlage zum mit'rollen) wurden besorgt und Flipdotpanel für das linke Schaufenster wurde mit vielen Helfern fertiggestellt.
Line 76: Line 112:
     * Ziel: Streaming eines (virtuellen) Framebuffers     * Ziel: Streaming eines (virtuellen) Framebuffers
  
-====== Einführung ======+ 
 + 
 +== Steuerplatine 
 +  * 10 8-Stufe Schieberegister (80 bit) [[http://www.nxp.com/documents/data_sheet/74HC_HCT4094.pdf|74HC_HCT4094]] 
 +    * Aufgeteilt in row + column register 
 +  * Normalbetrieb am orginal-'Tafelrechner': 23V (24V?!), 0.2A -> 0.5 Watt 
 +  * Einmal komplettes Durchschieben: 1.6A fuer ca. 2 Sekunden -> 74 Joule, 37 Watt 
 +    * FIXME: Wo kommt die Zahl her, gilt das für ein Modul, also eine Steuerplatine? 
 + 
 +== Pinbelegung 
 +Thx an x5444 von den Ingolstädern für das PIN-Layout! 
 + 
 +Das row register ist 24px lang. (effektiv werden beim chainen noch 4px fnord mitgeschickt) 
 +Das col register is 16px lang. 
 + 
 +^ 1  | ?1        ^  2 | GND      | 
 +^ 3  | ROW_DATA  ^  4 | GND     | 
 +^ 5  | STROBE    ^  6 | GND     | 
 +^ 7  | WHITE_OE  ^  8 | GND     | 
 +^ 9  | BLACK_OE  ^ 10 | GND     | 
 +^ 11 | COL_CLOCK ^ 12 | GND     | 
 +^ 13 | ROW_CLOCK ^ 14 | GND     | 
 +^ 15 | COL_DATA  ^ 16 | GND     | 
 +^ 17 | DO        ^ 18 | GND     | 
 +^ 19 | ?1        ^ 20 | ?2     | 
 + 
 +* ?1 == durchverbunden, kann man wohl am abschluss für nen rückkanal nutzen, so dass man die anzahl der segmente zählen kann 
 +* 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: 
 + 
 +{{:flipdot:flipdot_a9.png?direct&200|}}
  
 Wir haben 198 schwarze und 4 blaue Panels mit je 20x16 Pixeln Wir haben 198 schwarze und 4 blaue Panels mit je 20x16 Pixeln
Line 85: Line 156:
   * 54 x in den drei großen Displays fürs Schaufenster   * 54 x in den drei großen Displays fürs Schaufenster
   * 2 x im Minidisplay Hauptraum   * 2 x im Minidisplay Hauptraum
 +  * 24 x im mobilen Flipdot
  
-====== Verteilung ======+=== Verteilung
  
-    * 4 x bei den Ingolstädtern; designated! http://bytewerk.org/index.php/Schaufenster_Tetris und http://bytewerk.org/index.php/Flipdot-Matrix+70 Vergeben: 
 +    * 4 x bei den Ingolstädtern; http://bytewerk.org/index.php/Schaufenster_Tetris und http://bytewerk.org/index.php/Flipdot-Matrix
     * 1 x bei Karsten (Student-Robotics-Student von lila)     * 1 x bei Karsten (Student-Robotics-Student von lila)
-    * 4 (oder 6?) x bei Flop +    * 6 x Hannover, Mcfly (gewannen eine Wild Demo Compo: http://xayax.net/flippin_the_dots/ )
-    * 6 x Hannover, Mcfly+
     * 2 x Hamburg, Mcfly, Attraktor     * 2 x Hamburg, Mcfly, Attraktor
     * 1 × datenwolf     * 1 × datenwolf
Line 103: Line 175:
     * 4 x + 1 Steuerplatine normal für OpenLab Hackspace/Chaostreff Augsburg, via gamambel im IRC -- als Wall im Space und für Veranstaltungen.     * 4 x + 1 Steuerplatine normal für OpenLab Hackspace/Chaostreff Augsburg, via gamambel im IRC -- als Wall im Space und für Veranstaltungen.
       * im Tausch gegen Datenhandschuh und Geekend       * 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/StudentRobotics (lilafisch)     * 6 x Southampton(UK) +  fuer SoMakeIt/StudentRobotics (lilafisch)
 +    * 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://flipdot.org/blog/|flipdot]] Kassel, http://vimeo.com/99262516
 +    * 2 x Hackerspace Budapest
  
 +am 31c3 rausgegeben von Gigo an ccczh
 +    * 2 x [[https://www.ccczh.ch|CCC Zürich]]  
 +    * 2 x [[http://bastli.ch|Bastli]] ETH Zürich - daraus wurde unsere [[http://bastli.ch/uploads/coffeedot.jpg|Coffeedot-Anzeige]] zur [[http://bastli.ch/uploads/coffedot-machine.jpg|Studenten-Kaffeemaschine]]!
 +    * 2 x [[http://zurich.fablab.ch|Fablab Zürich]]
 +    * 2 x [[http://coredump.ch|coredump]]
  
-===== Requests =====+=== Requests
  
-Anzahl ^ Hackerspace/Person ^ Transport ^ Kommentar ^ +Wir haben noch ca. 11 Panels zu vergeben, Hackerspaces werden bevorzugt. Die Plan-Spalte wird nur von Mitgliedern des Fliptdot-Vergabe-Kommitees geändert.  
-| 2 | Attraktor Hamburg via mc.fly |   + 
-| [[http://flipdot.org/blog/|flipdot]] Kassel   | +^ Angefragt  Plan                                ^ Hackerspace/Person                                     ^ Transport                                   ^ Kommentar                                                                                                  
-| 4 | foobar Essen via gammlaa |  |  | +1 defektes | -                                   | com ]aet[ flipdot.org                                  | auf 32c3 übergeben                          | Haben 2, aber defekte Pixel, deswegen Ersatz aus defektem Panel                                            | 
-| 2? | Chaostreff Salzburg via ahuemer |  | Wir nehmen gerne so viele ihr entbehren könntWir haben Platz! Geplante Projekte: Julia Mengen Betrachter, Mate Counter für das baldig kommende Geekend bei uns. | +| 2          | 1                                   | Attraktor Hamburg via mc.fly                                                                       Haben schon 2 (siehe oben)                                                                                 
-oder CCC Zürich   +4          | 2                                   | [[https://​stratum0.org|Stratum 0]] Braunschweig                                                   als Twitter/IRC/...-Wall fürs Easterheg                                                                    
-| 4| [[http://basli.ch|Bastli]] ETH Zürich   +oder 2   0                                   Philip Dusl                                            Abholen @ muCCC                                                                                                                                        
-Fablab Zürich   +| 4          | 2                                   | [[http://lug-hgw.de/|LUG Greifswald]]                  auf 31c3 übergeben                          Außenwerbung / Statusanzeige / Termine                                                                     
-| [[https://​stratum0.org|Stratum 0]] Braunschweig |  als Twitter/IRC/...-Wall fürs Easterheg +           2                                   www.hackerspace-bielefeld.de                                                                       |                                                                                                            
-1 oder 2 | Philip Dusl  +2          |                                     | [[http://hackerspace-bamberg.de|Hackerspace Bamberg]]  |                                             | Würden gerne unsere Fenster mit schönen interaktiven Krams dekorieren                                      
-|  | LUG Greifswald |  |  | +| 2-4                                            daniel domscheit-berg / havel:lab                      Abholung, Uebergabe auf Veranstaltung, etc  Wuerden einen hacker/makerspace im Aufbau gern mit idealerweise 2x2 Displays versorgen, fuer Auge und Ohr  | 
- http://coredump.ch |  |  | +4                                            | FabLab Nürnbergcharlie ]ät[ fabfolk ]dod[ com                      Abholung, Uebergabe auf Veranstaltung, etc  Statusanzeige, Twitterwall und Veranstaltungsshowcase  | 
-|  | www.hackerspace-bielefeld.de |   |+^            ^ ~~=sum(range(1,0,col(),row()-1))~~  ^                                                                                                                                                                                                           Summe |||
  
  
Line 126: Line 208:
     * 1 x Marian Kleineberg -> Jan kümmert sich     * 1 x Marian Kleineberg -> Jan kümmert sich
  
-unklar ob bereits oben mit drin: 
-    * 4 x Simon Gantenbein Schweiz 
  
-==== FAQ ==== 
  
-Fragen z.B. hier oder im [[:IRC]] stellen. +== Archiv
-====== Nomenklatur ====== +
-Um dem Chaos ausnahmsweise entgegen- und nicht zu-zuwirken legen wir hier feste Worte für die einfachere Kommunikation fest!+
  
-  **Panel** == 1 Object voll mit Dots; besteht ausDot-Matrix mit 16 Zeilen und 20 SpaltenHat hinten noch die Treiberplatine dran. +[[https://wiki.muc.ccc.de/flipdot:start?rev=1385812570#deprecated_krobin_und_sepi_s_vorschlag|krobin_und_sepi_s_vorschlag]]
-    * FIXMESollte man nicht lieber 16 Spalten × 20 Zeilen verwendenDann 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. +
-    * Panelzeile == horizontal aggregierte Ansammlung von Dots, typischerweise 20 Dots +
-    * Panelspalte == vertikal aggregierte Ansammlung von Dots, typischerweise 16 Dots +
-    * Der Ursprung ist oben links (wenn man von vorne draufschaut) und mit X0Y0 beschriftet +
-  * **Assembly** == Ein bis mehrere Panel sind zu einem größeren Aggregat zusammengebaut worden und haben eine gemeinsame Steuerungseinheit. Im Club stehen drei Assemblys im Schaufenster rum. +
-  * **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, eine Assembly die aus einer "Zeile" panels besteht und im Clubhauptraum den ganzen Raum umrundet. Eine Einpanelassembly die nur den Clubstatus anzeigt. +
-  * **Window** == Ein Rechteckiger bereich in einem Display. Diese Bereiche können als Resource an verschiedene Teilnehmer vergeben werden die darauf schreiben dürfen.+
  
-**ACHTUNG**: Eventuell ist im Rest der Wikiseite alles vertauscht. Das sollte später gefixt werden! 
  
-====== Steuerplatine ====== 
-  * 10 8-Stufe Schieberegister (80 bit) [[http://www.nxp.com/documents/data_sheet/74HC_HCT4094.pdf|74HC_HCT4094]] 
-    * Aufgeteilt in row + column register 
-  * Normalbetrieb am orginal-'Tafelrechner': 23V (24V?!), 0.2A -> 0.5 Watt 
-  * Einmal komplettes Durchschieben: 1.6A fuer ca. 2 Sekunden -> 74 Joule, 37 Watt 
-    * FIXME: Wo kommt die Zahl her, gilt das für ein Modul, also eine Steuerplatine? 
  
-===== Pinbelegung ===== +== Live interaction at rc3
-Thx an x5444 von den Ingolstädern für das PIN-Layout!+
  
-Das row register ist 24px lang(effektiv werden beim chainen noch 4px fnord mitgeschickt) +See the flipdot in our rc3.world assembly in the couch area or at [[https://webex.muc.ccc.de/rc3lounge|RC3 lounge]] via Jitsi.
-Das col register is 16px lang.+
  
-^ 1  | ?1        ^  2 | ?2      | +You can send own pixel data to the flipdot using IPv6 (only! Still using legacy IPTime to upgrade) UDP packets to the Host flip.y.nu port 2424.
-^ 3  | ROW_DATA  ^  4 | GND     | +
-^ 5  | STROBE    ^  6 | GND     | +
-^ 7  | ROW_OE    ^  8 | GND     | +
-^ 9  | COL_OE    ^ 10 | GND     | +
-^ 11 | COL_CLOCK ^ 12 | GND     | +
-^ 13 | ROW_CLOCK ^ 14 | GND     | +
-^ 15 | COL_DATA  ^ 16 | GND     | +
-^ 17 | DO        ^ 18 | GND     | +
-^ 19 | ?2        ^ 20 | GND     |+
  
-?1 == durchverbunden, kann man wohl am abschluss für nen rückkanal nutzen, so dass man die anzahl der segmente zählen kann +There are a few examples in our [[https://github.com/muccc/flipdots/tree/master/scripts|flipdot git]] but they need some tweaking for the resolution and the destination host.
-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 ======+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
  
-Das Fenster ist ca210x215cm, die es zu füllen giltDamit braucht es dann 7x9also 63 Panele.+Unfortunately so far the animations won't stop when you send data (unlike our [[https://wiki.muc.ccc.de/acab|ACAB]])so depending on the shown animations your frames interleave with the current display or are almost invisible... We are working on that.
  
- 
-====== Archiv ====== 
- 
-* [[https://wiki.muc.ccc.de/flipdot:start?rev=1385812570#deprecated_krobin_und_sepi_s_vorschlag|krobin_und_sepi_s_vorschlag]] 
  • flipdot/start.1396566786.txt.gz
  • Last modified: 2021/04/18 12:32
  • (external edit)