Table of Contents Nomenklatur Displays Zeile Schaufenster / Wand Change Log Steuerplatine Pinbelegung Historie Verteilung Requests Archiv Live interaction at rc3 Flipdot Name: FlipdotBeschreibung: Flipdotmatrixen in Betrieb nehmen Source: https://github.com/muccc/flipdotsLizenz: --Beteiligt: sepi, jan, lilafisch, martin, krobin, fpletzStatus: doneKategorie: Hardware, SoftwareVerwandtes: 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 flipdot git. 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 == 1 Object voll mit Dots; besteht aus: Dot-Matrix mit 16 Zeilen und 20 Spalten. Hat hinten noch die Treiberplatine dran. : 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. 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 Schaufenster / Wand 63 drei Assemblies die in der Regel als ein großes Display betrieben werden Mobil / Demo ?? mobiles, wasserfestes Case Zeile 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. https://muc.pads.ccc.de/flipdot wird angezeigt (BETA) Landet aktuell auf der Wand, nicht auf der Zeile Schaufenster / Wand Das Fenster ist ca. 210x215cm – damit braucht es dann 7×9, also 63 Panele. http://[2001:7f0:3003:235e:ba27:ebff:fee3:ff77]:8000/ Beliebiges Bild an Wand schicken. Es wird automatisch skaliert. Schwarz-Weiß Bilder erzeugen bessere Ergebnisse. Wenn es nicht geht, mal anderes V6-Prefix testen. nc 2001:7f0:3003:235e:ba27:ebff:fee3:ff77 2323 < <file> Animiertes senden (noch sehr buggy): #!/bin/bash rm -rf output mkdir output convert $1 output/$1.png for i in `ls -v output/*` do nc 2001:7f0:3003:235e:ba27:ebff:fee3:ff77 2323 < $i sleep 0.2 done rm -rf output Change Log 2013-10-20: IPs: links 2001:67c:20a1:1033:33c3:beef:1234:0001 mitte 2001:67c:20a1:1033:33c3:beef:1234:0002 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-14: Holzspäne vom Vorkonstrukteur gekehrt!; alle Gewindestangen geflext, entgratet und gestapelt; Rollflipdotpanel in das linke Schaufenster gerollt; ein Kantholz gesägt und mit einem weiteren Flipdotpanel gebohrt und geschraubt; das dritte Flipdotpanel schräg dazu gestellt; 3x Kanthölzer werden vermisst bzw. nicht gefunden zum weiter machen; rest-Flipdotmaterial in eine Kiste gepackt; das Werkzeug vom Vorkonstrukteur!! und das eigene weggeräumt; den eigenen dreck wie Holzspäne gekehrt. Siehe: 2013-09-30: Das 48×120 gross Display ist jetzt unter 2001:7f0:3003:cafe:ba27:ebff:fe71:dd32 zu erreichen. In eventuellen Skripten einfach die IP und groesse anpassen. Das Netzteil ist normalerweise aus und muss mit dem Netzkabel erst mit Strom versorgt werden. Der Treiber startet automatisch. 2013-09-2x: Ein Netzteil, Treiberplatine und rpi wurden zusammengeschaltet. Ein schnell gehackter Treiber steuert alles an. 2013-09-07: fpletz, argv und martin haben versucht den MAX7301 unter Linux zum Laufen zu bekommen Kernel-Anpassungen nötig, daher erstmal Aufsetzen eines Cross-Build-Environments für RPi Kernel: elinux kernel compile guide Wir nehmen als Basis raspberrypi/linux/rpi-3.11.y Fnord! Fork: muccc/linux/rpi-3.11.y-max7301 Um den gpio-max7301 GPIO Device Treiber zu benutzen, muss man entweder Platform Code ändern/schreiben oder Device Table benutzen Wir machen Platform Code, weil DT neuen Bootloader und damit mehr Fnord erfordert hätte Commit Der RPi GPIO Treiber bcm2708_gpio ist kaputt, man kann nicht mehrere GPIO Devices haben… Fix: Commit TODO: Der RPi SPI Treiber spi-bcm2708 ist, diplomatisch ausgedrückt, unvollständig Der MAX7301 kann eigentlich nur 16 Bit pro Word, testweise auf 8 Bit runter (wegen Schieberegister), aber Fail-Commit Der BCM2708 kann erstmal nur 8 Bit pro Word, oder mehr wenn man DMA benutzt, der Treiber kann weder DMA noch mit anderen Wordsizes umgehen TODO: Evaluation dieses Pull Requests, auf den ersten Blick Fnord Wir brauchen einen Logic Analyzer (es sollen diverse im Club sein, aber keinen gefunden), da total unklar ist was auf dem SPI Bus wirklich passiert 2013-09-0x: jan hat Extension Boards für RaspberryPi mit MAX7301 per SPI gebastelt 2013-06-14: sepi/fpletz hacken an https://github.com/muccc/netfbd Ziel: Streaming eines (virtuellen) Framebuffers Steuerplatine 10 8-Stufe Schieberegister (80 bit) 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 : 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: Wir haben 198 schwarze und 4 blaue Panels mit je 20×16 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; http://bytewerk.org/index.php/Schaufenster_Tetris und http://bytewerk.org/index.php/Flipdot-Matrix 1 x bei Karsten (Student-Robotics-Student von lila) 6 x Hannover, Mcfly (gewannen eine Wild Demo Compo: http://xayax.net/flippin_the_dots/ ) 2 x Hamburg, Mcfly, Attraktor 1 × datenwolf 6 x Metalab Wien, overflo https://metalab.at/wiki/Flipdots 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/Chaostreff Augsburg, via gamambel im IRC – als Wall im Space und für Veranstaltungen. 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) 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 flipdot Kassel, http://vimeo.com/99262516 2 x Hackerspace Budapest am 31c3 rausgegeben von Gigo an ccczh 2 x CCC Zürich 2 x Bastli ETH Zürich - daraus wurde unsere Coffeedot-Anzeige zur Studenten-Kaffeemaschine! 2 x Fablab Zürich 2 x coredump 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 Plan Hackerspace/Person Transport Kommentar 1 defektes - com ]aet[ flipdot.org auf 32c3 übergeben Haben 2, aber defekte Pixel, deswegen Ersatz aus defektem Panel 2 1 Attraktor Hamburg via mc.fly Haben schon 2 (siehe oben) 4 2 Stratum 0 Braunschweig als Twitter/IRC/…-Wall fürs Easterheg 1 oder 2 0 Philip Dusl Abholen @ muCCC 4 2 LUG Greifswald auf 31c3 übergeben Außenwerbung / Statusanzeige / Termine 2 www.hackerspace-bielefeld.de 2 Hackerspace Bamberg Würden gerne unsere Fenster mit schönen interaktiven Krams dekorieren 2-4 daniel domscheit-berg / havel:lab Abholung, Uebergabe auf Veranstaltung, etc Wuerden einen hacker/makerspace im Aufbau gern mit idealerweise 2×2 Displays versorgen, fuer Auge und Ohr 4 FabLab Nürnberg: charlie ]ät[ fabfolk ]dod[ com Abholung, Uebergabe auf Veranstaltung, etc Statusanzeige, Twitterwall und Veranstaltungsshowcase Summe Sonstige 1 x Marian Kleineberg → Jan kümmert sich Archiv krobin_und_sepi_s_vorschlag Live interaction at rc3 See the flipdot in our rc3.world assembly in the couch area or at RC3 lounge via Jitsi. 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. There are a few examples in our flipdot git but they need some tweaking for the resolution and the destination host. For a quick start try out this archive containing an adapted version of the game of life script. Beware: it needs python2. Example use: python2 gameoflife.py random Unfortunately so far the animations won't stop when you send data (unlike our ACAB), so depending on the shown animations your frames interleave with the current display or are almost invisible… We are working on that. flipdot/start.txt Last modified: 2022/04/10 16:50by andi0