GPN17:Badge-Development: Unterschied zwischen den Versionen

aus dem Wiki des Entropia e.V., CCC Karlsruhe
Zeile 101: Zeile 101:
|}
|}


Bis zum Verkauf der Badges haben alle die gleiche Firmware.
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 kein 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.
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 kein 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.



Version vom 12. Januar 2017, 03:24 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)

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)


Gpn.png

Gpnotifier.png

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 kein 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 booten 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").

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)

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:

https://de.aliexpress.com/item/DHL-EMS-200pcs-1-44-128-128-SPI-LCD-Module-ST7735-driver-M71-3o/32787184344.html

  • 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

https://de.aliexpress.com/item/100-Tested-Wholesale-100pcs-For-NOKIA-2720-3110-3500C-3109-2680S-7070-2323C-Lcd-Display-Screen/32789711238.html

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

Flash: https://de.aliexpress.com/item/100-original-GD25Q40BTIG-GD25Q40BT-GD25Q40-25Q40BT-new-SOP-8/32721574027.html

Akku

Möglichst länglich 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/Wholesale-063048-3-7V-750mah-Lithium-polymer-Battery-with-Protection-Board-For-MP4-MP5-PSP-GPS/1471745129.html

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/10PCS-CEG8205-8205A-SOP-8-Dual-N-Channel-Enhancement-Mode-Mosfet/32759066456.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



Vibrationsmotor (Rawr)

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? :

https://de.aliexpress.com/item/100pcs-lot-Original-import-DC-1-5V-3V-Super-Micro-Vibration-Motor-Double-Vibarting-Wheels/32708975014.html

oder die:

https://de.aliexpress.com/item/50pcs-DC3V-0834-Mobile-phone-micro-flat-vibration-motor-Coin-motor-Mini-vibrator-motor-Free-shipping/32697497372.html


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 €