WHY2025 ligt alweer 4 maanden achter ons. Prima tijdstip om eens dingen te gaan doen met de badge.
Dit topic is vooral om bij te houden wat ik gedaan heb (en wat ik nog wil doen).
Waarom? (WHY, hihi)
Ik was half aanwezig bij de meshcore workshops bij eth0 en op de space. Ik dacht eerst niet geïnteresseerd te zijn omdat ik nog meer hardware zou moeten aanschaffen, maar iemand (ik weet niet meer wie, maar bedankt!) vertelde me dat de badge in principe ok meshcore kan draaien.
Wat dan?
MeshCore
- Board definitie (die door iemand anders al deels gemaakt was) verder uitgewerkt
- Hij noemt zichzelf geen
Xiao C6meer
- Hij noemt zichzelf geen
- Naast BLE ook varianten voor USB (extern serieel) en intern serieel toegevoegd
- (in de Android/iOS/web app is dit ‘experimenteel’ maar met meshcore-cli werkt dit gewoon net zo goed als BLE, het is tenslotte hetzelfde protocol bovenop een eenvoudiger transportlaagje)
BadgeVMS
Voor context: de badge heeft 2 ESP32’s, een P4 als main processor (met scherm en toetsenbord), en een C6 als coprocessor (met Wifi en LoRa).
- De P4 kan nu starten zonder te crashen als de C6 niet de wifi firmware draait
- De settings app kan nu dealen met de afwezigheid van wifi
- De settings app kan nu instelbaar de C6 flashen met meshcore of wifi firmware
- MeshCore en Micropython zijn nu submodules, en worden automatisch gebouwd en geflasht mee met de rest
- Apps in de launcher kunnen nu dealen met interpreters en argumenten
- UART driver gemaakt zodat een BadgeVMS app met de C6 kan praten
- Erg eenvoudig en incompleet, het heeft enkel een
read()enwrite(), alle configuratie is hardcode. uiteraard TODO voor later, maar het werkt alvast voor de MeshCore firmware
- Erg eenvoudig en incompleet, het heeft enkel een
- TODO: drivers voor GPIO (voor de vibrator en ledjes)
MicroPython
De badge draait een MicroPython port die anders is dan de upstream ESP32 port. Het is geen bare metal firmware maar een BadgeVMS app. Het komt met een terminal emulator en een REPL, maar tot voor kort was dat eigenlijk alles.
- De compositor module uitbreiden zodat de framebuffer ook echt werkt
- Keyboard event handling toegevoegd
- UART module toegevoegd
- niet API-compatible met de
machine.UARTdie je wellicht kent, dit is ook een TODO voor later
- niet API-compatible met de
- Upgrade van upstream MicroPython 1.25 naar 1.27
- Het badge MicroPython repo is gemaakt met
git subtreeipv gitsubmodule. Dat was ff wennen maar werkte prima.
- Het badge MicroPython repo is gemaakt met
- TODO: uitzoeken waarom lokale imports niet werken. Heeft te maken met de syntax voor filesystem paden in de vorm
APPS:[meshcore_ui]app.pyterwijl de code slashes verwacht - TODO: een module voor GPIO (voor de vibrator en ledjes)
Hardware
- De twee draadjes zoals gedocumenteerd op de WHY2025 wiki gesoldeerd (foto)
- Vanwege bekende redenen de 18650 houders eraf gewipt. Vervolgens kom je 4 maanden oude natte epoxy tegen. Lekker. Ging er redelijk makkelijk af met 99% IPA.
- Batterij geupgrade met ironisch genoeg de Tanmatsu batterij, gekocht bij @renze, maar dan wel twee stuks. Ja dat past (foto)
- De case die Flummer heeft ontworpen platter gemaakt, gezien er toch geen 18650’s meer in hoeven.
- Dat was maar 3 regels OpenSCAD code (foto)

- Dat was maar 3 regels OpenSCAD code (foto)
- Een cover voor de aan/uit-knop geprint (foto)
- De solder bridges voor de vibrator en de ledjes (foto)
Al het bovenstaande is voornamelijk yakshaving om een MeshCore UI app te bouwen in MicroPython.
Doelen:
- Wél open source (itt tot de Flutter app of de Ripple firmware)
- Minder lelijk dan de Ripple UI
- Werkende demo op tijd af voor of tijdens Congress (…)
Stretch goals:
- Compatible met andere hardware:
- Tanmatsu
- T-deck
- …suggesties?
Ik was gisteren bij TkkrLab om de batterijtjes op te halen (en ook gewoon omdat gezellig) en renze was bezig met lora support in de Espressif hosted firmware, voor de C6 van de Tanmatsu. Goeie kans dat ik dat werk kan hergebruiken en dan hebben we lora en wifi tegelijk. Tegelijk kan Renze dan wellicht mijn MeshCore UI werk hergebruiken, en dan heb je dezelfde MeshCore UI op de Tanmatsu/Konsool en WHY2025 badge.