GPN17:Badge-Development: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
|||
(40 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
== '''Idee:''' == | == '''Idee:''' == | ||
<gallery> | |||
Datei:IMG_20170201_010254.jpg | |||
Datei:IMG_tiwr24.jpg | |||
Datei:IMG_20170203_020336.jpg | |||
Datei:Badge3.png | |||
Datei:Badge.jpg | |||
Datei:Gpn_badge.png | |||
Datei:Badge2.png | |||
Datei:Badge1.png | |||
</gallery> | |||
Zeile 25: | Zeile 36: | ||
* Vorbestellung erfolderlich. | * Vorbestellung erfolderlich. | ||
* Anwendungsideen: Gulasch-Push-Notification (GPN), Spiel (mit NFC), Nickdisplay | * 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: | * Optinal, falls Budget hergibt: | ||
** NFC / IR | ** NFC / IR | ||
** Flugzeugform, mit LEDs dort wo auch bei Flugzeugen Licht ist. | ** Flugzeugform, mit LEDs dort wo auch bei Flugzeugen Licht ist. | ||
** Temperaturmessung | |||
== '''Platinendesign''' == | == '''Platinendesign''' == | ||
Zeile 34: | Zeile 47: | ||
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) | 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) | ||
Mögliches Design: | Mögliches Design: | ||
Zeile 41: | Zeile 55: | ||
[[Datei:Gpn.png|600px]] | [[Datei:Gpn.png|600px]] | ||
''' | [[Datei:gpnotifier.png|600px]] | ||
== '''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: | |||
{| class="wikitable" | |||
!colspan="3"|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 | |||
Sensor auslesen/(Im Netzwerk)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 | |||
Pixelflut-Client (mit dem Bewegungssensor) | |||
=== Interaktion mit der Veranstaltung === | |||
Push Notifyer! | |||
LEDs auf Badge von der Lounge kontrollierbar machen. DMX? | |||
=== Spiele === | |||
Multiplayer-Pong sp,2p,4p (JanHenrik) | |||
Tron 2p~6p | |||
Gulasch-Kart 2p~6p (JanHenrik) | |||
Bomberman 2p,4p | |||
hide'n'seek-IRL(RSSI)aka "meet a hacker/se" | |||
-> Zwei(oder Mehr) zufällige Spieler starten das Spiel und müssen sich dann auf dem Event finden. Es werden keine Namen ausgetauscht, Funktioniert nach dem "Heiß/Kalt" prinzip. Motor vibriert stärker umso näher die teilnehmer sich sind. Positionsfindung via RSSI | |||
cards against Gulasch | |||
== '''Komponenten:'''== | == '''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:''' | '''Display:''' | ||
http://www.pollin.de/shop/dt/MjgxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_mit_Touch_und_LED_Beleuchtung_MC28G03A.html | http://www.pollin.de/shop/dt/MjgxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_mit_Touch_und_LED_Beleuchtung_MC28G03A.html | ||
Zeile 68: | Zeile 217: | ||
* gar nicht mal so scheiße | * gar nicht mal so scheiße | ||
* _genau_ richtige breite | * _genau_ richtige breite | ||
GGf. sollte man einen P-Mosfet zum Abschalten vorsehen, weilwegen weniger Strom. | |||
NOKIA | NOKIA | ||
Zeile 81: | Zeile 233: | ||
ESPxxxx | ESPxxxx | ||
Nicht billig!: | |||
https://de.aliexpress.com/item/50pcs-lot-ESP8266EX-ESP8266E-ESP8266-WiFi-chip-QFN-IC-Best-quality/32690057144.html | |||
Flash: | Flash: | ||
Zeile 89: | Zeile 244: | ||
Möglichst länglich | Möglichst länglich | ||
Möglichst Groß! | Möglichst Groß! | ||
Halter: | |||
https://de.aliexpress.com/item/Hot-selling-single-bay-18650-battery-sled-1042-SMT-SMD-18650-battery-holder/32732476922.html | |||
https://de.aliexpress.com/item/DVISI-100pcs-3-7V-2200mAh-18650-Li-ion-Rechargeable-Battery-with-ProtectION-Plate-for-LED-Flashlight/32750541356.html | https://de.aliexpress.com/item/DVISI-100pcs-3-7V-2200mAh-18650-Li-ion-Rechargeable-Battery-with-ProtectION-Plate-for-LED-Flashlight/32750541356.html | ||
Zeile 107: | Zeile 265: | ||
https://de.aliexpress.com/item/200PCS-DW01-SOT23-6-DW01A/32686112219.html | 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. | |||
Buchse: | |||
https://de.aliexpress.com/item/Free-shipping-Small-Horn-5-pin-micro-usb-jack-5-p-micro-usb-connector-Tail-Charging/32305190506.html | |||
UART/USB | |||
https://de.aliexpress.com/item/CP2102-GMR-CP2102-GM-CP2102-QFN-28-IC-100pcs-lot-Free-shipping/32257070150.html | |||
ESD Schutz | |||
https://de.aliexpress.com/item/IP4220CZ6-Dual-USB-2-0-integrated-ESD-protection-to-IEC-61000-4-2level-4/32684609750.html | |||
Zeile 112: | Zeile 292: | ||
https://de.aliexpress.com/item/Free-shipping20PCS-Drag-cup-0610-6-10mm-3V-Micro-phone-Vibration-motor-Small-Toy-vibration-motor/32781800274.html | https://de.aliexpress.com/item/Free-shipping20PCS-Drag-cup-0610-6-10mm-3V-Micro-phone-Vibration-motor-Small-Toy-vibration-motor/32781800274.html | ||
https://www.aliexpress.com/item/20pcs-lot-original-Ultra-Micro-Vibration-Motor-Rotor-Motor-DC-Massager-Motor-1-5-3V-Electric/32733390086.html | |||
Winner? : | Winner? : | ||
https://de.aliexpress.com/item/100pcs-lot-Original-import-DC-1-5V-3V-Super-Micro-Vibration-Motor-Double-Vibarting-Wheels/32708975014. | https://de.aliexpress.com/item/100pcs-lot-Original-import-DC-1-5V-3V-Super-Micro-Vibration-Motor-Double-Vibarting-Wheels/32708975014.html | ||
oder die: | oder die: | ||
Zeile 122: | Zeile 304: | ||
'''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 € | |||
{{Navigationsleiste GPN17}} | {{Navigationsleiste GPN17}} |
Aktuelle Version vom 18. August 2023, 12:21 Uhr
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)
Mögliches Design:
Gelb = Platine (wird später auch Rot sein)
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
Sensor auslesen/(Im Netzwerk)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
Pixelflut-Client (mit dem Bewegungssensor)
Interaktion mit der Veranstaltung
Push Notifyer!
LEDs auf Badge von der Lounge kontrollierbar machen. DMX?
Spiele
Multiplayer-Pong sp,2p,4p (JanHenrik)
Tron 2p~6p
Gulasch-Kart 2p~6p (JanHenrik)
Bomberman 2p,4p
hide'n'seek-IRL(RSSI)aka "meet a hacker/se"
-> Zwei(oder Mehr) zufällige Spieler starten das Spiel und müssen sich dann auf dem Event finden. Es werden keine Namen ausgetauscht, Funktioniert nach dem "Heiß/Kalt" prinzip. Motor vibriert stärker umso näher die teilnehmer sich sind. Positionsfindung via RSSI
cards against Gulasch
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 €