Planung
Bitte hinter Ideen/Vorschläge Name + Datum zur einfacheren Planung schreiben, Danke! :)
Idee:
Für die GPN soll ein Badge her.
Eine Idee ist ein kleines Badge mit ESPxxxx, Akku, Display und Eingabedevice(s) zu haben. Dies soll z.B. als Pager dienen um Gulasch, Tschunk oder Ähnliches anzukündigen. (niklas, janhenrik, herbett 05.01)
Anforderungen
- Grafikdisplay
- HID (Buttons, Joystick, Touch).
- Vibrationsmotor (keinen Piepser!)
- CPU: ESP8266 (ESP32 zu teuer) --> kann wirklich jeder benutzen.
- LiPo oder LiIon
- Micro USB für laden und programmieren.
- Solderpads für LEDs (teilweise bestückt), zB WS2812, APA102
- Kosten maximal 10€ für den Besucher.
- Muss mit fertiger Software kommen (wie R0cket oder rad1o), Plug&Play
- Einseitige Bestückung (wird teuer bei Bestückung)
- SMD only (sonst zu teuer für Bestückung)
- Vorbestellung erfolderlich.
- Anwendungsideen: Gulasch-Push-Notification (GPN), Spiel (mit NFC), Nickdisplay
- Footprints für std. Bauelemente (z.B. Sensoren, LED's, Mikrofon, Piepser, Super-Sensor-Pack-9000...)
- Optinal, falls Budget hergibt:
- NFC / IR
- Flugzeugform, mit LEDs dort wo auch bei Flugzeugen Licht ist.
- Temperaturmessung
Platinendesign
Das Platinendesign soll optisch ansprechend sein. Da es nicht ganz trivial/praktisch ist die Platine als Drone anfertigen zu lassen haben wir uns folgendes überlegt:
Die Platine bekommt ein längliches Design mit Noppenspielbaustein-kompatiblen Bohrungen im oberen drittel so wie im unteren achtel. In diese wird dann Noppenspielbausteine als Flügel und Leitwerk eingesteckt. Somit erhält das Badge die Form und das Aussehen einer Drone. Ebenso lässt dies viel Freiraum für die Phantasie der Badgeinhaber.(janhenrik 05.01)
Eine Prototyping-area ist in der Mitte vorgesehen. Zu dieser sollen ALLE Pins des ESP noch mal hingeroutet werden.
Mögliches Design: Gelb = Platine (wird später auch Rot sein)
Display
Das Display wird vermutlich ein längliches, d.h. kann es vertikal oder horizontal auf dem PCB angebracht werden. Horizontal ist mit dem Risiko verbunden, dass es recht zerbrechlich/empfindlich ist solange wie keine Flügel eingesteckt sind.(janhenrik 05.01)
Software
Der Flash auf dem Badge verfügt über 8MB (64Mib). Der ESP kann zu Laufzeit jedoch höchstens 1MB adressieren. Deshalb werden mehrere, auswählbare ROMs zu je 1MB größe aufgespielt, die durch einen bootloader ausgewählt werden können. Dazu verwenden wir rBoot: https://github.com/raburton/rboot
Memorymap:
Memorymap | ||
---|---|---|
Adresse | Nutzung | Beispiel |
0x000000 | Bootloader config | obligatorisch |
0x002000 | Custom ROM (max 1MB) | GPNotifier |
0x102000 | Custom ROM (max 1MB) | .gif Player |
0x202000 | Custom ROM (max 1MB) | WiFi Scanner |
0x302000 | Custom ROM (max 1MB) | Pixelflut Server |
0x402000 | Custom ROM (max 1MB) | ??? |
0x502000 | Custom ROM (max 1MB) | ??? |
0x602000 | Custom ROM (max 1MB) | ??? |
0x702000 | Boot select | GUI + Joystick control |
Bis zum Verkauf haben alle Badges die gleiche Firmware. Die Bootconfig wird so eingestellt, dass der GPNotifier bootet. Dieser erwartet über USB-bitbang eine Configdatei mir Username, WLAN config, mqtt Server IP Adresse, etc. Nun wird bei Ausgabe des Badges die Config angepasst und via USB eingespielt. Das GPNotifier ROM ändert nun die bootconfig des bootloaders so ab, dass Adresse 0x702000 geladen wird und killt sich mit einem Softreset selber. Der ESP rebootet, und der Bootloader lädt ein ROM mit GUI und Joystickeingabe. Hier werden alle verfügbaren ROMs aufgelistet und es kann interaktiv ein zu bootendes ROM ausgewählt werden (als default wohl den GPNotifier). Wird die Auswahl bestätigt, schreibt das Boot select ROM die jeweilige Adresse in die Bootconfig, und löst ebenfalls via Softreset einen reboot aus. Nun bootet die Ausgewählte App.
Um eine andere App zu booten, kann ein GPIO (z.B. der Joystick) verwendet werden. Wird er beim einschalten gedrückt gehalten, wird wieder in das Boot Select ROM gebootet. Außerdem sollte jedes Custom ROM über eine Funktion verfügen, um die bootconfig auf Boot Select zu ändern und einen Softreset auszulösen (sowas aka "Exit button / reboot"). Das macht die Bedienung leichter und schont den Power Switch.
Eine Idee wäre es auch, eine Art AppStore anzubieten. Dann könnte man mittels eines AppStore-ROMs von einem Server ROMs an einen freien Slot des Flashs runterladen und diesen dann mittels bootconfig / Boot select ausführen. (Niklas 11.01.2017)
"Apps"
Zu der Grundsoftware wollen wir "Apps" (bei Rad1o als "loadables" bekannt) anbieten. Folgende sind möglich (Schreibt euren Namen dahinter wenn ihr dies als App schreibt):
Mathematische Sachen
- GOL
- langtons ant
- Fraktale
- Apfelmännchen
- etc
Pixelflut (JanHenrik)
wifi-tools
- network-scan
- port-scan
- ip-scan
- ping
- trace-route
- Nach der GPN(?!), Angriffe(mitm,deAuth,Bruteforce,ROP,...)
- etc
push-notifier
Einstellungen(and Systemtest)
Sensor auslesen/(network)loggen
Namensschild(mit Animationen)
led-foo
wifi-Fernbedienung(mouse/keyboard via wifi, or display, mtp-remote, etc.)
USB-Eingabegerät
gif-player(Eventuell auch webm und/oder via Stream)
goulash(tm)-nacktscanner/röntgendingsie (Jamba-Troll-App mit dem Gyro und einem statischen Bild eines Skelettes)
Großes Zeichenpad(Jeder bekommt einen Plot zugewiesen und kann pixelart mit dem Badge machen, nachher kommt ein großes Bild raus)
Regler(Temp,Licht,Bewegung,Alkohol(?)(proof of concept, max 0,1 promille, will niemanden zum (be)trinken animieren))
Chatprogramm(irc,xmpp?) eventuell nur Lesen
Fahrplan
Komponenten:
Hier die immer aktuelle und einzig gültige Teileliste:
BOM: https://docs.google.com/spreadsheets/d/1iimlYgi_jSKNMCs_KKNb-31OOcALHnjgBTikqFaacEc/edit?usp=sharing
Display:
http://www.pollin.de/shop/dt/MjgxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_mit_Touch_und_LED_Beleuchtung_MC28G03A.html
Pro: Billig, groß, gute Auflösung
Contra: scheiß Interface, bräuchte CPLD + RAM
http://www.buydisplay.com/default/serial-spi-1-5-inch-color-oled-display-128x128-graphic-module-ssd1351 Pro: alles Contra: teuer
https://de.aliexpress.com/item/1-29-inch-39PIN-Full-Color-COF-OLED-Screen-SSD1351-Drive-IC-128RGB-96-Parallel-SPI/32298565228.html Pro: alles Contra: etwas teuer
And the winner is:
- Unschlagbar günstig
- kein Steckverbinder
- yay
- gar nicht mal so scheiße
- _genau_ richtige breite
GGf. sollte man einen P-Mosfet zum Abschalten vorsehen, weilwegen weniger Strom.
NOKIA
xxxx Bestes Preis Leistung Dings. https://de.aliexpress.com/item/lcd-screen-digitizer-for-NOKIA-3110-3120-2680S-2323-7070-2680-3109-High-Quality-MOQ-1/1038929168.html
http://andybrown.me.uk/2012/03/06/reverse-engineering-the-nokia-2730-qvga-lcd/
Controller/MCU
ESPxxxx
Nicht billig!: https://de.aliexpress.com/item/50pcs-lot-ESP8266EX-ESP8266E-ESP8266-WiFi-chip-QFN-IC-Best-quality/32690057144.html
Akku
Möglichst länglich Möglichst Groß!
Laderegler
https://de.aliexpress.com/item/50PCS-TP4056-SOP8-4-2V-1A-current-New-and-original/32354647335.html
Gut, günstig, nehmen wir!
Tiefenentladeschutz
+
https://de.aliexpress.com/item/200PCS-DW01-SOT23-6-DW01A/32686112219.html
Joystick / Schalter https://de.aliexpress.com/item/Free-shipping-50PCS-LOTS-SMD-five-tact-switch-button-to-switch-press-the-joystick-in-multi/32727800636.html
Geht ggf, billiger, wir brauchen zwei weilwegen Power & USB select https://de.aliexpress.com/item/10pcs-MSS22D18-MINI-Miniature-SMD-Slide-Switch-2P2T-6Pin-for-DIY-Electronic-Accessories/32667809167.html
USB
Feature: Ich möchte einen Schiebeschalter, mit dem mal zwischen USB/UART und USB am ESP für USB bitbang wählen kann.
Vibrationsmotor (Rawr)
Winner? :
oder die:
LEGO
Leitwerk: 2x10 Rot
https://shop.lego.com/de-DE/Pick-a-Brick Nummer: 383221 Preis 0,25 €
Tragfläche: 2x20 Rot (oder 2x 2x10 Rot ? )
2x: https://shop.lego.com/de-DE/Pick-a-Brick Nummer: 383221 Preis 0,25 €