Glass: het scherm is generiek, de interface is een bericht
Geplaatst: 2026 | Categorie: Hardwareplatform
Het scherm met drie knoppen erop
Elke machine wil er vroeg of laat een. Een pers in het atelier die het lopende programma moet tonen en een grote rode stop. Een bestelwagen die de volgende levering nodig heeft en een knop “klaar”. Een testopstelling met een temperatuur, een balk en twee schakelaars. Niets exotisch. Drie knoppen en een getal.
En dan vraag je wat het kost om te bouwen.
Je krijgt een firmwareproject. Een board kiezen, vechten met een displaydriver, een touchcontroller met ongedocumenteerde reset-timings, een Bluetooth-stack, een buildomgeving, een pad voor updates over de lucht, en iemand die daar de komende vijf jaar eigenaar van is. Drie maanden later staat er een scherm met drie knoppen op, en zodra de werkwijze verandert, hercompileer je firmware en loop je met een USB-kabel door het gebouw.
Drie knoppen en een getal is de vraag. Vijf jaar firmware-engagement is de offerte.
Het scherm was nooit het moeilijke stuk. De koppeling was dat. Elke toepassing moest firmware worden.
De splitsing die dat oplost
Glass is een draadloze HMI-terminal: een ESP32-S3 met een touchscreen van 4,3 inch, of een vierkant van 4 inch, dat helemaal niets weet over jouw toepassing.
Een app koppelt zich via Bluetooth LE en stuurt één declaratieve interface als één compact bericht. Schermen opgebouwd uit zeven bouwstenen: box, tekst, knop, lijst, voortgang, meter, afbeelding. Daarna stuurt de app key/value-waarden in die bindings. Aanrakingen en antwoorden komen terug als events.
Dat is het hele idee.
De terminal tekent. De app beslist. Wat ertussen zit, wordt nooit gecompileerd.
Verandert de indeling, dan stuur je een andere config. Verandert de betekenis van het getal, dan stuur je een ander getal. Er is geen firmwareproject per toepassing, want er staat geen toepassing op de terminal.
Na die eenmalige config is het verkeer minimaal, en net dat maakt van een Bluetooth-verbinding een verstandige plek voor een live dashboard. En omdat de terminal niets van toepassingen weet, is hetzelfde fysieke scherm op je bureau ‘s ochtends een keukentimer en ‘s namiddags een vergaderzaalpaneel.
Wat eromheen zit
HMIKit, de Swift-SDK. Beschrijf het scherm één keer, geef het door, en zet daarna waarden. Het praat met een echte terminal over Bluetooth of met de Mac-simulator over TCP, met dezelfde code. Het is een ObservableObject, dus een SwiftUI-view volgt de verbinding rechtstreeks.
De simulator. De renderer compileert voor macOS: dezelfde LVGL, dezelfde fonts, dezelfde pixels. Geen benadering van het scherm, wél het scherm. Render een PNG voor je iets flasht. Gecompileerd naar WebAssembly draait hij ook in een browsertab, waar nul van de 384.000 pixels verschillen van de native build.
De editor in de browser. Bouw een indeling op glass.glue.blue, zie ze renderen in die pixelidentieke preview, exporteer als JSON, Swift of JavaScript, en deel ze als URL. Geen account, geen backend. De hele site draait in de browser.
Glass Bridge, een menubalk-app voor macOS en Windows die de Bluetooth-verbinding bezit en die lokaal aanbiedt. Ze spreekt exact dezelfde draad als de simulator, dus een script dat tegen de simulator geschreven is, stuurt echte hardware aan zonder één regel wijziging. Elke JavaScript in elke browsertab zet nu pixels op een fysiek scherm.
Claude Buddy, en daar houdt het op een demo te zijn. Wanneer een codeeragent toestemming vraagt om een commando uit te voeren of een bestand te wijzigen, verschijnt die vraag op het glas op je bureau, met Allow en Deny als echte knoppen die je met je vinger indrukt. Geen antwoord binnen 150 seconden en het valt stil terug op de terminal.
Een beslissing die het toetsenbord verlaat en iets wordt dat je met je vinger indrukt.
Het stuk dat het eerlijk houdt
Er is één machineleesbare specificatie: JSON-schema’s, een compatibiliteitsbestand per firmwareversie, 17 interfacevectoren en 32 encodeervectoren, elk met hun bytes, hun hash en een gerenderd beeld.
Er bestaan drie aparte encoders, in C, Swift en TypeScript. Alle drie getest tegen diezelfde bytes. Een nieuwe bouwsteen is niet af tot het schema, de vectoren, de firmware en elke SDK het eens zijn. Dat is wat verhindert dat één hardwareplatform er vier subtiel onverenigbare worden.
De toestemming leeft op het glas.
De eerste keer dat een onbekende app zich meldt, vraagt het scherm het, en iemand met een vinger beslist. Het token is van de app, nooit van de bridge, nooit van de site. Bridges geven het onaangeroerd door.
Wifi doet één ding: updates over de lucht via Foundry. Een panic of een watchdog laat een core dump achter, en de volgende check-in meldt de resetreden, het laatste kruimelspoor, het vrije geheugen en een backtrace. Er is namelijk geen seriële console om mee te kijken, en een scherm dat willekeurig herstart moet kunnen zeggen waarom.
Voor wie dit is
Iedereen die op het punt stond een firmwareproject te starten voor een scherm. Je hebt er waarschijnlijk geen nodig. Je hebt een indeling nodig en een stroom waarden.
Machinebouwers en ateliers. Eén terminal, één gedeelde firmware, een interface die verandert wanneer het proces verandert in plaats van wanneer de releasekalender het toelaat. Een indeling die voor het verkeerde schermformaat getekend is, wordt geweigerd met een duidelijke melding op het scherm, niet als een verhaspelde puinhoop getekend.
iOS- en Mac-ontwikkelaars. De SDK is een Swift-package. Een dashboard voor je app op een echt scherm is een namiddag werk, en je kunt het in de simulator renderen voor er hardware op je bureau ligt.
Webontwikkelaars. Installeer de bridge, richt een WebSocket op de loopback, en stuur fysieke hardware aan vanuit een browsertab, zonder klik en zonder keuzedialoog.
Wat er nu al op draait
Roadbook ‘71 zet het volgende kruispuntschema, de afstand en de instructie op een terminal die op een dashboard geplakt zit, volledig berekend op de telefoon en één keer per seconde als waarden verstuurd. Een Mac-host spiegelt wat er speelt, hoesje inbegrepen. De demopagina’s van de site draaien een boekingskalender, een weerpaneel met stadszoeker, een lichtbediening en een keukentimer, elk een echte kleine webapp waarvan de toestand naar het glas gespiegeld wordt.
Aan de slag
Ga naar glass.glue.blue. Bouw een indeling in de editor en zie ze renderen in een preview die de firmware zelf is. Open de demo’s en bedien ze in de browser. Ligt er een board op je bureau, koppel het dan met Web Bluetooth vanaf diezelfde pagina.
Dat scherm met drie knoppen erop hoeft geen project meer te zijn.
Glass is gebouwd door glue.blue - wij plakken oplossingen op problemen. Permanent.
→ Open de editor → Contacteer ons
Geplaatst in: Hardware, Embedded, Bluetooth, HMI