Home

Handheld gamen zonder accu: zo speelt de Turner van de TU Delft dat klaar

Volwaardig handheld gamen zonder accu leek tot voor kort een toekomstdroom, maar de TU Delft heeft aangetoond dat het wel degelijk mogelijk is. Met de nieuwe Turner-handheld kunnen mensen zowel Game Boy Color-spellen als DOOM spelen. Energie krijgt het apparaat via zonnepanelen of een zwengel. Hoe werkt deze console? En is deze technologie binnenkort al commercieel levensvatbaar, of zijn acculoze handhelds voorlopig doomed?

Volwaardig handheld gamen zonder accu leek tot voor kort een toekomstdroom, maar de TU Delft heeft aangetoond dat het wel degelijk mogelijk is. Met de nieuwe Turner-handheld kunnen mensen zowel Game Boy Color-spellen als DOOM spelen. Energie krijgt het apparaat via zonnepanelen of een zwengel. Hoe werkt deze console? En is deze technologie binnenkort al commercieel levensvatbaar, of zijn acculoze handhelds voorlopig doomed?

De fysieke opbouw van de Turner-console is ontworpen rondom een modulaire architectuur die bestaat uit vier loskoppelbare hoofdmodules. Het gaat om een moederbord dat alle componenten verbindt, een cpu-module voor de rekenkracht, een powermanagementmodule die de zonnecellen en de zwengel aanstuurt en het laadniveau monitort, en een speciale loggingmodule. Een Ambiq Apollo4-soc levert de daadwerkelijke rekenkracht, terwijl de loggingmodule draait op een onafhankelijke ESP32 PICO-microcontroller.

In de console zit wel een accu voor de loggingmodule, zo is te zien op GitHub. Die module staat los van de werking van de console en is alleen geïnstalleerd om het gebruik ervan beter te onderzoeken. De TU Delft wilde daarmee informatie verzamelen over hoe mensen met de console omgaan. Dat moet beter inzicht geven in hoe zulke consoles het best ontworpen kunnen worden.

Omdat het apparaat geen chemische accu heeft, buffert het apparaat energie kortstondig. Dit gebeurt in een 6V-supercondensator met een capaciteit van 1,5 farad. Dat wil zeggen dat de supercondensator 1,5 coulomb per volt kan opslaan. De totale capaciteit bedraagt 27J, genoeg om een klein ledlampje met een vermogen van 0,1W vierenhalve minuut te laten branden.

Hoelang de speler de console kan gebruiken, hangt sterk af van de omgeving, zegt hoofdonderzoeker Przemysław Pawełczak: "Wanneer de speler de crank niet gebruikt om de supercondensator op te laden en er geen licht op de zonnepanelen valt, is de speeltijd beperkt tot enkele minuten. In het andere extreme geval – in een onbewolkte buitenomgeving met volle zon – zijn er vrijwel geen onderbrekingen zichtbaar."

Om mensen te stimuleren om de crank regelmatig te gebruiken om energie op te wekken, koppelden de onderzoekers hem aan bepaalde in-game-effecten. Zo hebben ze bij DOOM de broncode aangepast en de zwengel gekoppeld aan het minigunwapen.

Bij de Game Boy-emulator Gaembuoy, die de onderzoekers onder meer gebruikten om Tetris te draaien, was een minder diepe integratie in het spel mogelijk, doordat de emulator geen toegang geeft tot de broncode van de spellen zelf.

Daarom kozen de onderzoekers ervoor de crank de snelheid van de emulator te laten vertragen. Op die manier krijgen spelers meer tijd om de blokjes op de juiste plek te manoeuvreren. Pawełczak: "Ik denk dat een directe engine-integratie de beste optie is, omdat dit de meeste flexibiliteit biedt om een game te optimaliseren en te integreren met verschillende energiebronnen."

De visuele weergave verloopt via een 5 inch groot transflectief lcd-scherm. Dit type scherm is ideaal voor energiezuinige applicaties, omdat het invallend omgevingslicht kan reflecteren. Daardoor is er geen backlight nodig en dat scheelt behoorlijk in het energieverbruik.

"Het is inderdaad zo dat schermverlichting – zelfs bij de geavanceerdste schermen – een grote energieslurper is", legt Pawełczak uit. "We hebben binnen de opties in de console de mogelijkheid om de backlight van ons scherm hoger te zetten, maar dit gaat ten koste van stroomgebruik en dus de tijd voordat interactie vereist is via de zwengel. Ook zal het kleurenpalet van de game meespelen, waardoor in relatief donkere games mogelijk meer backlight vereist is dan in lichtere games."

De Turner haalt zijn stroom uit wisselvallige bronnen. Voor de energievoorziening via de acht zonnecellen zet de console een buck-boostconverter in. Die zet de variabele gelijkspanning uit de zonnepanelen om naar een constante gelijkspanning. De buck-boostconverter heeft maximum power point tracking (mppt) om het optimale werkpunt van de zonnecellen te vinden.

Voor de stroomopwekking van de handzwengel is een toegewijde microcontroller gekoppeld aan de DC-motor van de zwengel. Deze controller voert mppt uit op 10kHz. Dat betekent dat het systeem 10.000 keer per seconde berekent wat de efficiëntste belasting is om het maximale rendement uit de fysieke draaibeweging van de gebruiker te halen.

Omdat standaardbesturingssystemen niet gemaakt zijn om honderden keren per uur uit te vallen, hebben de onderzoekers een custom, lichtgewicht C-kernel ontwikkeld. Deze gebruikt modulaire api's, die de hardwarecomplexiteit abstraheren. Daardoor kan de ontwikkelde kernel ook werken met andere hardware dan die van de Turner-console.

De kernel is opgedeeld in api's voor de invoer, het scherm, de instellingen, checkpointing en logging. De ontwikkelaar kan ervoor kiezen om bepaalde onderdelen in of uit te schakelen tijdens de compilatie, wat de geheugenvoetafdruk van de kernel verandert. De kernel biedt verder een flashbestandssysteem dat bestand is tegen stroomuitval, beheert de gebruikersinterface, rendert de menu's en ondersteunt een downloadmodus.

De kernel heeft vier hardwareonafhankelijke drivers:

  • De graphicsdriver reguleert de framerendering en verzorgt v-sync om screentearing te voorkomen. Op systemen met voldoende geheugen (ongeveer 5Mbit voor twee 32bit-frames op 320x240) ondersteunt de driver ook double buffering.
  • De graphicsdriver reguleert de framerendering en verzorgt v-sync om screentearing te voorkomen. Op systemen met voldoende geheugen (ongeveer 5Mbit voor twee 32bit-frames op 320x240) ondersteunt de driver ook double buffering.

  • De schermdriver vertaalt de commando's vanuit de graphicsdriver, zoals de instellingen voor helderheid, contrast en rotatie, naar de fysieke mogelijkheden van de hardware.
  • De schermdriver vertaalt de commando's vanuit de graphicsdriver, zoals de instellingen voor helderheid, contrast en rotatie, naar de fysieke mogelijkheden van de hardware.

  • De driver voor de crank communiceert met de externe mppt-microcontroller van de zwengel.
  • De driver voor de crank communiceert met de externe mppt-microcontroller van de zwengel.

  • De flashdriver is opgedeeld in een interne en externe module. Het mram van de cpu verzorgt persistente opslag die byte-addressable is. Dat betekent dat de processor direct specifieke bytes kan aanspreken en overschrijven, terwijl traditioneel flashgeheugen met grotere blokken werkt. De opslag heeft bovendien geen alignmentrestricties. De externe driver trekt deze abstractie door naar extern (off-chip) flashgeheugen, waardoor de Apollo4-cpu dit kan lezen en schrijven alsof het lokaal geheugen is.
  • De flashdriver is opgedeeld in een interne en externe module. Het mram van de cpu verzorgt persistente opslag die byte-addressable is. Dat betekent dat de processor direct specifieke bytes kan aanspreken en overschrijven, terwijl traditioneel flashgeheugen met grotere blokken werkt. De opslag heeft bovendien geen alignmentrestricties. De externe driver trekt deze abstractie door naar extern (off-chip) flashgeheugen, waardoor de Apollo4-cpu dit kan lezen en schrijven alsof het lokaal geheugen is.

    Door de non-preemptive architectuur van de kernel kan het besturingssysteem de game niet dwingen om te stoppen. In plaats daarvan bepaalt de applicatie zélf wanneer zij de controle moet teruggeven aan de kernel. Op die manier kan de applicatie aan het eind van elk frame via api-aanroepen alle vereiste taken laten uitvoeren, zoals checkpoints maken, de lading van de condensator weergeven en andere interfaceobjecten tonen boven op de applicatie.

    Doordat de game na elk frame de controle teruggeeft via een api-call, kan de kernel aan het einde van iedere cyclus een checkpoint maken. De flashdriver schrijft de huidige staat van het spel op dat moment direct weg naar het on-chipgeheugen en ververst tegelijk de weergave (zoals de laadindicator van de condensator). Zulke checkpoints schrijft de kernel weg op het moment dat de powermanagementmodule ziet dat het laadniveau van de supercondensator kritiek laag is en stroomuitval dreigt.

    Zodra de supercondensator daadwerkelijk leeg is, valt het systeem uit. Maar als de speler weer een slinger aan de zwengel geeft, herstart de console extreem snel. Omdat de kernel zo klein is, hoeft deze zelf niet in een checkpoint opgeslagen te worden; het booten van de custom kernel duurt slechts 2,25 milliseconden.

    Overigens gaat het niet om een volwaardige kernel, erkent Pawełczak. "De 'kernel' is slechts een wrapper rond de game-emulators, ons checkpointingsysteem en het optiemenu waarmee de gebruiker de Turner configureert", legt hij uit. "Hij heeft geen drivers voor audio of draadloze controllers. Alle functies die niet noodzakelijk zijn voor de console, zijn gewoon niet aanwezig. Daarom kan hij zo snel booten."

    Het initialiseren van alle hardwarecomponenten na een stroomstoring duurt 127 milliseconden. Vervolgens laadt de kernel direct het laatst gemaakte checkpoint in, geeft hij de controle terug aan de applicatielaag en laat hij de speler doorspelen.

    Door double buffering voorkomt de console dat data corrupt raakt, zegt Pawełczak: "Als de Turner weer voldoende energie heeft opgewekt om op te starten, herstel hij het laatst valide checkpoint. Het maken van een checkpoint gebeurt altijd in een andere buffer, zodat er altijd één geldig checkpoint aanwezig is. Pas als het checkpoint klaar is, wordt hij als valide beschouwd en mag de andere buffer overschreven worden."

    Geen geheugencorruptie, onbeperkt gamen in de zon, een 5"-scherm … het begint bijna te klinken als een 'echte' console. Zouden zulke consoles op de markt kunnen komen? Voorlopig ziet Pawełczak daarvoor weinig kans: "We hebben een paar jaar geleden onze eerste acculoze console gemaakt. Dat was echt een proof of concept. De Turner is bruikbaar, maar je zal niet heel lang veel plezier hebben met het gamen op deze console. We hebben daarvoor nog steeds niet de sweetspot gevonden wat betreft energie."

    Volgens Pawełczak kunnen spelers met beperkte zon en snelle, kleine bewegingen van de zwengel ongeveer tien tot vijftien minuten spelen totdat zij weer flink moeten gaan cranken. "In de zon is de speelduur in theorie onbeperkt, maar die omstandigheden komen in Nederland alleen in juli en augustus voor. Dus deze console is eigenlijk beter geschikt voor landen met heel veel zon. Maar ik denk dat het uiteindelijk wel mogelijk is om een acculoze console te maken die beter geschikt is voor de minder zonnige landen."

    Redactie: Imre Himmelbauer • Eindredactie: Marger Verschuur

    Source: Tweakers.net

    Previous

    Next