# Project Redshift
Ich hab (vor langer langer Zeit) ein rotes LED Display gebaut.
64x8=512 Pixel .. vielleicht bauen wir noch 2,4 oder 5 Zeilen dazu...
64 x 12 = 768 pixel
Strom gemessen:
Gesamt: Standby: 1A, max(all on): 3,3A @ 5V
Spannung: 1,7V pro LED
Hardware:
12 x Platine(LED Board) 57x4cm pro Pixel-Zeile
Ein LED Board ist ein horizontaler Streifen mit 64 LEDs, 8 x 74LS164N Schieberegister, einem 74LS14 und einem BD244 Transistor (für blanking und LED Kathoden Strom)
Hardware Bugs in row 2(dritter Streifen von oben):
0,2,4,8,10: zu dunkel
6: sehr dunkel
15: aus
14te von hinten: wackelkontakt
Erklärvideo zu Schieberegistern:
https://www.youtube.com/watch?v=5qxHt4MK3u8
Es ist per WLAN steuerbar.
**Protokoll: MQTT** oder blinkenlights oder Pixelflut ?
byte 0 ist oben links
byte 7 ist oben rechts
byte 63 ist unten rechts
(darum kümmert sich die Funktion show_frame)
bit 0 ist jeweils links
![](http://www.23hq.com/23666/33959922_72e284e7c2928cd96f07fafec4a88bdc_standard.jpg)
https://www.youtube.com/watch?v=UWeVywR_sd0
https://www.youtube.com/watch?v=szZwZUXPbVs (mit Atmega32 und Borgware)
Fonts:
https://github.com/dhepper/font8x8
http://pelulamu.net/unscii/
UDP Datenübertragung:
https://thearduinoandme.wordpress.com/tutorials/esp8266-send-receive-binary-data/
pull Frames per Websocket ?
https://github.com/Links2004/arduinoWebSockets/blob/master/examples/WebSocketClient/WebSocketClient.ino
websocket server in Python:
https://gist.github.com/rich20bb/4190781
https://stackoverflow.com/questions/18947091/tornado-websockets-supporting-binary-part-2
*VNC - gute idee ? irgendwann mal testen
https://github.com/Links2004/arduinoVNC
http://wiki.niftylight.de/Category:Libniftyled
für mehr Helligkeits-Stufen:
ESP/arduino Multitasking mit Ticker:
https://github.com/esp8266/Arduino/tree/master/libraries/Ticker/examples
https://github.com/Toshik/TickerScheduler
http://arduino-er.blogspot.de/2016/04/nodemcu-esp8266-call-function.html
*
*Status
*
*Firmware mit WiFi, OTA, Text und MQTT für ESP8266:
in Nextcloud: Chaostreff/Projekte/redshift/redshift_binary_frame
alte Version: https://gist.github.com/mherweg/54baf4cb1cfe5066ac396977d6cb84cd
## das-labor.org Borgware 2D
Die "Borgware 2D" kann (fast) alles was wir wollen. Ich glaub' sie läuft auch auf Arduino Mega 2560 (ein Klon kostet $7.-)
(Wenn nicht , kann ich eine Atmega32 Platine löten)
Steuerung über CAN Bus oder seriell (am Raspberry oder mit ESP Modul). Seriell hat bei mir noch nie funktioniert :-(
Um die Borgware zu nutzen muss entweder die Hardware zurück-geändert werden auf: 1 x Daten(alle Zeilen zusammen) und 8 x Takt
oder in Borgware der Treiber geändert werden:
https://github.com/das-labor/borgware-2d/blob/master/src/borg_hw/borg_hw_borg_mh.c
https://wiki.das-labor.org/w/Borgware-2D
https://wiki.das-labor.org/w/Borg16#Software
https://wiki.das-labor.org/w/BorgTextAnim
https://wiki.das-labor.org/w/Borg16#Shell_auf_der_seriellen_Schnittstelle
https://wiki.das-labor.org/images/1/16/Borg16_getting_started.pdf
*Wahl des Controllers:
Atmel arduino:
Vorteil: das-labor.org Borgware läuft
Nachteil: kein WLAN, hard to modify & debug
ESP mit micropython:
vorteil: live IDE im Browser
Raspberry Pi Zero W:
vorteil: Linux
nachteil: 12€ teurer, SD Karte kann kaputt gehen, timing
http://www.frank-durr.de/?p=203
ESP arduino:
vorteil: OTA update ist möglich, Testprogramm läuft, WIFI & MQTT läuft.
## Zukunft / nice to have
* Zeit & Datum per ntp empfangen und anzeigen (sommer & winterzeitumstellung?)
* 4 Helligkeitsstufen: 0,1,10,11 -> hardware PWM an D6
* schöne client-software, um Texte und Bilder zum Display zu senden
* Adafruit GFX lib oder Teile aus das-labor.org's borgware 2D code nutzen (s.o.)
* scrolling füt bitmaps & text https://github.com/riyas-org/max7219/blob/master/MaxMatrix/MaxMatrix.cpp
* Erweiterung auf 64 x 13 pixel - Erfordert neues Gehäuse.
* Power on/off automatisch per soft-on des PC-Netzteils oder per Sonoff WLAN Relais?
* Verpol- und Überstrom-Schutz
DONE: schönes/kein Gehäuse/ Chassis, die "Kämme" 3D drucken.
DONE:* over the air update für die firmware (klappt nicht immmer)
DONE * 5V Stomversorgung: PC Netzteil wie das UFO (XT60 Stecker)
DONE(MQTT): Frames per TCP oder UDP empfangen (kann Borgware nicht)
DONE * Nokia-LCD library o.ä. für Text
DONE * 5x7 Font & Textausgabe in der Firmware
DONE Integration Adafruit GFX Lib
zusätzliche LED Platinen vorhanden :
4 x mit roten LEDs
1 x ohne LEDs , 74LS14 und ein paar 100nF fehlen noch
-> 8+5 = "Glückszahl" 13 ;-) -> 832 LEDs! :-)
z.B.
1 x Farbe X
11 x rot (davon eine Zeile "etwas anders rot" ;-) )
1 x Farbe X
dafür werden 3 x 64 = 182 LEDs benötigt. diffus, 5mm
oder 1000 Stück für $10.- ;-) https://www.aliexpress.com/item/1000PCS-5MM-Blue-LED-light-emitting-diode-Blue-Diffused-light/32332218634.html
grün oder gelb: 6ct/Stück (bei Reichelt)
https://www.aliexpress.com/item/Free-shipping-100pcs-Red-light-emitting-diodes-Red-turn-Red-5mm-led/32321154120.html
Test mit anderen Farben:
https://www.youtube.com/watch?v=7jAv57hpVN4
## Mechanik
an der Hinterkante sind 4 Stück 3mm Löcher, wir können die Platinen an 3mm Gewindestangen auffädeln (DONE)
## Board Anschlüsse
*FN LED Board 1000/1
### Stecker1
*1 -
*2 GND
*3 clear/reset(*): 1k Ohm pull up nach +5V
*4 clock(*) Blau
*5 blank(alle LEDs aus schalten) (PWM) geht direkt an die Basis des Transitors, der die Kathoden schaltet Grün
*6 -
*7 Data In(*) Gelb
### Stecker2
*8 Data Out
*9 clock
*10 clear/reset
*11 +5V
*12 +5V rot
*13 GND braun
*14 GND
*=geht jeweils durch 2 gatter des 74LS14
und danach zu dem/den Schieberegister(n)
Abstand Plantinenkante und Unterkante LEDs: nicht einheitlich, ca. 6mm
## Software
Es kann Befehle und Frames(Bilder) via MQTT empfangen.
Ihr seid alle herzlich eingeladen, bits und bytes an dieses Display zu schicken!
Wie das UFO und die ws2812-Tonne wird es durch ein PC-Netzteil mit 5V versorgt. Das Netzteil steht im Schaltschrank und kann per Fernbedienung/Funksteckdose eingeschaltet werden.
Sende einen Text via MQTT oder node-red: http://nodered/ui/#/0
Weitere Details im Pad: http://pads.c3re.de/p/redshift
Ähnlich wie beim WS2812-UFO kann man die Pixel per MQTT ansteuern. Das Topic lautet: huette/clubraum/000/redshift/actuators/set_pixel Folgende Befehle kann man an dieses Topic senden:
* 0-512 #ffffff (set one pixel)
* en rechts im Regal des Clubraums.
* Es kann Befehle und Frames(Bilder) via MQTT empfangen.
* Ihr seid alle herzlich eingeladen, bits und bytes an dieses Display zu schicken!
* Wie das UFO und die ws2812-Tonne wird es durch ein PC-Netzteil mit 5V versorgt. Das Netzteil steht im Schaltschrank und kann per Fernbedienung/Funksteckdose eingeschaltet werden.
* Sende einen Text via MQTT oder node-red: http://nodered/ui/#/0
* Ähnlich wie beim WS2812-UFO kann man die Pixel per MQTT ansteuern. Das Topic lautet: huette/clubraum/000/redshift/actuators/set_pixel Folgende Befehle kann man an dieses Topic senden:
* 0-512 #ffffff (set one pixel)
* 0-512 #000000 (clear one pixel)
* text Hallo (max 10 Zeichen Text anzeigen)
Zweites Topic: huette
* 0-512 #000000 (clear one pixel)
* text Hallo (max 10 Zeichen Text anzeigen)
Image Magick: convert bild.png -depth 1 bild.rgb
stream -map r -storage-type char test.png test1bit.rgb
gimp: Exportieren als .h
https://hackaday.com/tag/web-interface/
http://www.solderlab.de/index.php/software/glediator
*Verpolschutz Ideeen:
http://www.lothar-miller.de/s9y/categories/39-Verpolschutz
http://rn-wissen.de/wiki/index.php?title=Schutzschaltungen
http://chris.cnie.de/elektronik/verpolungsschutz.html