Elektronica zonder batterij: "De moeilijkheid zit hem in doorgaan waar je was"

Door internet-of-things zou het aantal apparaatjes met batterij wel eens tot gigantische aantallen kunnen toenemen, met gevolgen voor het milieu van dien. We spraken met Przemyslaw Pawelczak en Vito Kortbeek van de TU Delft over de oplossing: batterijloze elektronica.

Van industriële toepassingen, gezondheidszorg en landbouw tot slimme huizen en smart cities, de verwachting is dat met internet verbonden apparaten voorzien van sensoren overal om ons heen gaan verschijnen. Over hoeveel apparaten we het dan hebben, daarover verschillen de meningen. Schattingen over de toename van het aantal internet-of-things-apparaten lopen uiteen van 25 tot 500 miljard tegen 2030. Hoe het ook zij, al die apparaten moeten ons leven makkelijker maken, maar er is een keerzijde bij dergelijke aantallen. Iot-apparaten beschikken vrijwel altijd over batterijtjes en als die niet goed verwijderd en gerecycled worden aan het eind van de levenscyclus van de elektronica, kon dat wel eens tot flinke milieuvervuiling leiden.

Przemyslaw Pawelczak
Przemyslaw Pawelczak

Dat voorkomen, was een van de drijfveren van Przemyslaw Pawelczak. Hij is assistant professor van de Embedded and Networked Systems Group aan de TU Delft en al jaren bezig met onderzoek naar een duurzamer, minder vervuilend internet-of-things. Elektronica batterijloos maken, lijkt niet zo moeilijk, ook niet bij internet-of-things, waarbij de apparaten vaak zonder aansluiting op het elektriciteitsnet moeten kunnen functioneren.

Die kunnen immers werken op omgevingsenergie, zoals zonne-energie, kinetische energie en thermische energie. Een beetje zonnepaneel is al voldoende om kleine sensorapparaatjes van stroom te voorzien, klaar. Maar zo makkelijk is dat niet, vertellen Pawelczak en Vito Kortbeek, promovendus in Pawelczak’s groep. Kortbeek: "Ook met een zonnepaneel werkt een systeem alleen als er stroom is. Hoeveel energie er beschikbaar is, hangt af van de omstandigheden zoals de aanwezigheid van zonlicht. Zoiets is onvoorspelbaar. Als je niks speciaals doet, start zo'n systeem telkens helemaal opnieuw op als er geen energie is en gaat er werk verloren, net als bij je pc als die plotsklaps uitvalt. De moeilijkheid zit hem in doorgaan waar je was." Het vakgebied dat zich hiermee bezighoudt is intermittent computing, rekentaken door systemen die met tussenpozen moeten kunnen functioneren en waarbij de uitvoering door reboots wordt gescheiden.

De condensator als buffer

Apparaten hebben batterijen nodig om de tijd bij te houden en de juiste tijd is vereist voor correcte werking van software. Zo moet een apparaat na een herstart weten waar het op welk moment was gebleven om de draad weer op te pakken. Haal de batterij weg en onderbrekingen worden een probleem. Laat nu juist bij iot-apparaten die stroom betrekken van omgevingsenergie, het risico op onderbreking groot zijn. Simpelweg het toevoegen van een realtime klok zonder batterij alleen is niet voldoende, vanwege de relatief lange opstarttijd van deze klok-elektronica.

Elektronica zonder batterij moet het hebben van energieopslag in condensatoren. Kortbeek: "Die dienen als buffer. Condensatoren zijn veel minder vervuilend voor het milieu dan lithium-ion-batterijen. Ook gaan ze veel langer mee door de andere opbouw." Een nadeel is dat die slechts een fractie kunnen opslaan van een batterij. Het gevolg is dat korte cycli kunnen ontstaan met herstarten van het apparaat als een zonnepaneel genoeg stroom levert, en uitval als de hoeveelheid onder een bepaalde hoeveelheid komt. Dit kan meerdere reboots per seconde en daarmee zogenoemde write-after-read- en time-based violations opleveren .

Batteryless intermittent computing

Pawelczak en zijn teamleden bij de TU Delft en de Northwestern University onderzochten daarom in de voorgaande jaren methodes om de software op andere manieren bewust te maken van de tijd. Zo'n methode ontwikkelden ze in de vorm van het Time-sensitive Intermittent Computing System, een framework dat werkt met checkpunten die weggeschreven worden naar non-volatiel werkgeheugen zoals fram en daarbij duidelijk maakt aan software hoe het om moet gaan met die checkpoints. Daarbij ontwikkelden ze ook hardware, die veertig keer sneller start dan realtime klokken, even zuinig is en een hogere resolutie biedt.

Om aan te tonen wat er mogelijk is met de ontwikkelde hardware en software voor batteryless intermittent computing, ontwikkelden de onderzoekers vorig jaar het spelplatform Engage. Dit is een draagbare spelcomputer die lijkt op de Game Boy en die gebruikmaakt van energie van enkele zonnepaneeltjes aangevuld met de kinetische energie die de gebruiker genereert met het indrukken van de knoppen. De Engage valt door zijn afhankelijkheid van die energie en de opslag in condensatoren regelmatig uit. Voor elke tien seconden die je aan het spelen bent, is er zo'n seconde aan spelonderbreking. Zodra er weer energie is, kan de speler dankzij de checkpoints direct verder spelen vanaf het exacte moment dat de spelcomputer uitviel, zonder dat daarvoor dus een batterij aanwezig is.

Dat medewerkers en studenten aan de universiteit aan zulke projecten werken is natuurlijk leuk, maar echte impact zouden ze alleen maken als ook de gemeenschap van makers met batterijloze elektronische apparaten op basis van omgevingsenergie in de weer zou gaan. Pawelczak en collega's hebben daarom een do-it-yourself-pakket samengesteld, met de naam BFree.

Weerstation met zonnepaneeltje

Ze hopen het maken van elektronica zonder batterij, zoals 'eeuwigwerkende' sensoren op zonne-energie, zo veel toegankelijker te maken voor ontwerpers, hobbyisten en programmeurs. Pawelczak: "We willen de elektronica-hobbyisten bewust maken van het feit dat een batterij niet noodzakelijk is. We richten ons daarbij op iot-applicaties voor bepaalde taken die in theorie oneindig moeten kunnen werken. We hopen dat eindgebruikers dit gaan testen en ontdekken wat de gebruikersscenario's kunnen zijn en waar de beperkingen liggen." Een toepassing die ze zelf bedacht hebben is het maken van een weerstation met zonnepaneeltje, vult Kortbeek aan: "Voor als je als gebruiker niet wilt dat je batterij tussen je bloemen belandt." De onderzoekers richten zich nog niet op elektronica met hoger verbruik, al zou in theorie het gebruik van meerdere geschakelde condensatoren mogelijk zijn.

BFree

Wie zelf aan de slag wil heeft vijf dingen nodig, is de belofte: een Adafruit Metro M0 Express-computingbord, een BFree-shield met nvm-controllersoftware, een build van BFree-core, een interpreter op basis van CircuitPython, een klein zonnepaneeltje of andere technologie voor omgevingsenergie en een condensator die als buffer dient. Basiskennis van Python zou voldoende zijn om met BFree aan de slag te kunnen gaan. Alles bij elkaar zou een gebruiker enkele tientjes kwijt zijn om met BFree aan de slag te kunnen. Bestaande Python-projecten zouden moeten werken door de interpreter. Kortbeek benadrukt wel dat het een onderzoeksproject is en dat er dus nog bugs aanwezig kunnen zijn.

BFree

De BFree-shield met zonnepaneeltje wordt op het Adafruit-bordje geplaatst, voorzien van de condensator. De BFree-software interpreteert Python-programma’s voor werking op batterijloze technologie en gebruikers zouden hier dan ook geen omkijken naar hebben. De software bepaalt daarvoor wanneer de checkpoint-snapshots aangemaakt moeten worden. Volgens Kortbeek kunnen gebruikers handmatig ook zelf instellen binnen welke periodes checkpoints weggeschreven moeten worden, afhankelijk van gebruikersscenario's en op welke momenten hoeveel energie vereist is voor de toepassing. Ze kunnen daarvoor de voltagetriggers in de Python-library aanpassen. Die snapshots bestaan uit de staat van het programma en gekoppelde accessoires en de waarde van variabelen. De interpreter slaat ze op in het fram op de BFree Shield. Als een diy-project stroom kwijtraakt en herstart als er weer even voldoende energie is, werkt deze verder op basis van het laatste checkpoint dat weggeschreven is.

BFree interpreter
De BFree Python-interpreter stuurt de
checkpointdata (data uit volatiel geheugen en registerwaarden) via de SPI-bus naar de BFree-shield.

Voor CircuitPython is gekozen omdat deze door Adafruit gesteunde afgeleide van MicroPython eenvoudig in gebruik is. Het platform is vooralsnog gericht op de Adafruit Metro M0 Express met ARM Cortex M0 en niet op andere platformen, maar volgens Pawelczak en Kortbeek is dit een populair computingbord voor iot-toepassingen.

Een beperking van het BFree-platform is dat instellingen van gekoppelde onderdelen zoals sensoren niet meegenomen worden bij de checkpoints. Die initialisatie van de configuratie moet de gebruiker nog wel zelf programmeren. De hoeveelheid fram is volgens Kortbeek geen beperking: voor de opslag van de checkpoints en overige data is slechts 64KB vereist, waar de BFree-shield over 256KB kan beschikken. Dit opent wel mogelijkheden om te experimenteren met geavanceerdere checkpointmechanismen. Daarnaast denken de onderzoekers na over shields met meerdere sensoren en emulatoren voor energy harvesting om de prestaties van de applicatie te testen. Bovenal hopen ze dat de makergemeenschap met killer-applicaties komt die ze zelf nog niet voorzien hebben.

Pawelczak denkt dat de door het team ontwikkelde technologie van invloed kan worden op het ontwerp van komende generaties apparaten en een internet-of-things mogelijk maakt dat schaalbaarder is dan nu het geval is: "De toekomst van iot is batterijloos."

De onderzoekers hebben de schematische tekeningen van de shield vrijgegeven en alle code staat op GitHub. Ze presenteren hun werk op UbiComp 2021, een evenement op het gebied van ubiquitous computing. Meer details staan in het onderzoekspaper BFree: Enabling Battery-free Sensor Prototyping with Python.

BFree BoardBFree Board

Door Olaf van Miltenburg

Nieuwscoördinator

22-09-2021 • 19:13

19

Reacties (19)

19
19
15
4
0
4
Wijzig sortering
Beetje jammer om supercondensatoren uit te leggen terwijl de onderliggende technilogy van die Bfree ferro-elektrisch geheugen betreft (FRAM). Dit is geheugen dat functioneert als SRAM, maar bij stroomuitval zijn toestand behoudt. DIt is een veelbelovende techniek van de afgelopen jaren en erg geschikt om SRAM dat door en batterij onderstroom wordt gehouden te vervangen (de dikke Dallas-chips op oude moederborden).

De kunst is zo veel mogelijk staat in het FRAM te bewaren, voor een spelletje bewaar je dus de gehele huidige speltoestand in het FRAM, zodat je bij een reboot alleen even hoeft te controleren of de speltoestand er redelijk uit ziet en zo ja onmiddelijk weer verder kunt spelen.

Supercondensatoren weliswaar ook een mooie technologie voor dit doel, maar hebben als nadeel dat ze snel leegraken en zijn dus vooral geschikt voor korte stroomonderbrekingen. Voor langere onderbrekingen is FRAM veel geschikter, het behoudt zijn waarde 20 jaar lang. Dus je kunt na 20 jaar een apparaat weer van zolder halen en verder gaan waar je was gebleven.

FRAM is net zoals SRAM direct adresseerbaar. Niet op een Raspberry Pi, waar daar kan je geen eigen geheugen op monteren, dus zul je het via GPIO indirect moeten adresseren. Op een computer waarbij je toegang hebt tot de data- en adresbus kun je evenwel een FRAM direct adresseren. Dat maakt het programmeren makkelijk, omdat het RAM zoals al het andere RAM is, je kunt de compiler dan instrueren bepaalde variabelen daar te alloceren, wat het programmeren een stuk makkelijker maakt. Want je kunt beter in C programmeren en direct variabelen lezen en schrijven dan in CircuitPython voor elke wijziging van een variabele een functieaanroep moeten doen.
Vraag me af of bv. de Linux kernel haar state in zulk SRAM zou kunnen onderbrengen. Ik weet dat er tickless kernels bestaan. Die doen enkel iets wanneer er interrupts af te handelen zijn.

Gecombineerd met een ePaper scherm gebruikt zoiets dan zo weinig energie dat men jaren op een kleine batterij verder kan. Of dus, zonder zelfs.
In theorie is dat mogelijk, de prijs van FRAM zal er voor zorgen dat dat niet 1-2-3 zal gebeuren.
Misschien een domme vraag, maar als deze apparaten met internet verbonden zijn, dan kan de “cloud” toch opslaan wat de laatste staat is, in dat geval kunnen ze altijd verder waar gebleven. Of is het de constante sync die dan teveel energie vraagt?
Yep. In zijn algemeenheid kost het draadloos opvragen van je informatie relatief veel energie, maar via het internet dat doen kost echt heel veel energie direct (omdat je een wifi module nodig hebt) en indirect (omdat het traag is). En dan klinkt wifi wel snel natuurlijk, maar als je het vergelijkt met lokaal een stukje data wat je hebt opgeslagen terug op halen, dan is de tijd die je nodig hebt om iets bij een cloud server vandaan te halen een eeuwigheid.
Duidelijk, zo leer je nog eens wat!
In het artikel wordt gesproken van meerdere interrupties per seconde. Zo snel heb je geen WiFi verbinding, dus denk dat dit ook wel meespeelt.

(Verder geen ervaring hiermee)
Dank voor je uitgebreide antwoorden. Ik heb de vragen niet gesteld maar wel veel geleerd!
In dit geval is IoT ook een beetje een "catch-all" term.
In het geval van BFree is het systeem niet per se verbonden aan het internet (of een ander netwerk). In de GitHub staat een voorbeeld app met LoRa (https://github.com/TUDSSL...ks/imwut-app-lora/main.py) maar zoals @Sissors al correct suggereert is de energie nodig om de hele staat van het systeem in de cloud op te slaan erg (te) veel.
Het ligt ook een beetje aan het doel van het betreffende apparaat. Het kan allicht zinvoller zijn om een soort lokale hub te hebben die de staat bijhoudt hiervoor, waar de batterijloze modules mee praten, die vervolgens het eventuele internetstukje doen. (IoT is een soort parapluterm geworden voor alles wat geen telefoon/tablet/televisie is, maar wel 'online'/'een app heeft'). Zoals al ergens anders is aangegeven: Wifi is pertinent traag. De handshake en connectie is langzaam met wifi, en je latency richting het internet kan ook vervelend zijn afhankelijk van waar je bent op de wereld.

Anekdotisch:
Ik heb zelf een aantal EnOcean wandschakelaars die met Home Assistant praten via de Zigbee module.

De wandschakelaar haalt z'n energie uit de knop je indrukt, verzend z'n data naar HA en gaat neem ik aan na verloop van tijd weer uit. Er zitten geen batterijen in de wandschakelaars. Ook de initiële koppeling/handshake van/naar HA ging op diezelfde manier.

Wezenlijk hoeft de knop geen echte staat bij te houden. Hij hoeft alleen maar eenmalig te leren met wie hij praat (welke Zigbee controller), een stukje statisch mesh netwerk. En vervolgens opsturen welke knop was ingedrukt. Ze maken ook gebruik van de Hue lampen in hun mesh-netwerk.
Ik kan mij herinneren dat Mythbusters ook wat energie wist te halen uit een radio golven of elektromagnetisch golven? Aan mijn terminologie schort het hier. Mijn vraag is zou een condensator uiteindelijk met energie van alle elektromagnetische golven ook opgeladen kunnen worden, en hoe lang duurt dit?
Ja dat kan. En het was mij een positieve meevaller dat die hier niet genoemd worden :P . Punt is namelijk dat met beperkte oppervlakte en alleen gebaseerd op de achtergrond straling, de hoeveelheid energie die je eruit kan halen gewoon heel erg beperkt is. Bekende uitzonderingen zijn iets als NFC, maar daar wordt bewust energie erin gepompt door de lezer, en hebben we het over een paar centimeter. En er zijn vast niche gebieden te vinden waar dit logisch is hoor, maar praktisch gezien is bijna altijd de energie die je uit RF kan halen zo laag, dat je beter af bent er een klein batterijtje in te zetten die 10 jaar mee gaat. Ja dan moet je een hele zuinige applicatie hebben, maar dat moet je sowieso als het alternatief is op RF straling het te laten draaien.

Maar in essentie is het een vergelijkbaar idee. Je hebt een extreem zuinig circuitje die uit RF straling een condensator oplaadt. Heeft die genoeg spanning dan schakelt de microcontroller erachter aan, doet zijn ding, en gaat weer uit.
Thnx voor je uitleg. Ik lees altijd dat processors op x nanometer gemaakt wordt en steeds energiezuiniger is hoe kleiner het aantal nanometer. Stel dat dit op 1 nm straks gemaakt kan worden, dan ben je er waarschijnlijk nog niet want het printbord zelf heeft grotere stroombanen? Of ga ik nu te kort door de bocht?
Dat is inderdaad één belangrijk punt. Los van je chipje zelf, heb je ook randcomponenten die stroom verbruiken. En die worden ook vast wel zuiniger natuurlijk, maar als er een zendertje bij moet, of een LEDje, etc, dan kosten die ook gewoon stroom.

Sowieso zitten zulke IoT chipjes op veel oudere processen. Ik gok dat de meeste die nu geintroduceerd worden rond de 28nm-65nm zitten. Dat heeft meerdere redenen. Belangrijkste is simpelweg financieel: zo'n 5nm wafer is enorm duur. Je kan er wel veel transistoren op doen, maar dat is eigenlijk alleen relevant voor de digitale circuits. Bij een GPU is dat veruit het merendeel van de chip, dus dan is het het waard. Zo'n IoT chipje echter, als je dingen als zijn interne sensoren (temperatuur, spanning, etc), de fysieke pinnen, etc meeneemt, dan is slechts een beperkt gedeelte digitale circuits. En die worden wel heel goed op 5nm, maar de rest veranderd weinig, terwijl je nog wel met de peperdure wafers zit.

Uiteraard in de loop der tijd worden ze wel steeds zuiniger nog, maar kijk je naar het voorbeeld hier, een weerstation, dan zal het energieverbruik van het daadwerkelijke processortje slechts een beperkt gedeelte zijn van het geheel.
Een LFP batterijtje werkt in zo'n gevallen even goed. Cobalt-vrij.
Wat heeft Cobalt er mee te maken of een batterij netjes gerecycled moet worden?

Overal een LFP batterijtje in stoppen is geen oplossing.
Die moet eerst weer opgeladen worden. FRAM heeft dat nadeel niet, je kunt zo'n apparaat op zonlicht onmiddelijk in de zon zetten, gebruiken, meteen weer in het donker nemen en de inhoud is nog steeds bewaard. Bij een batterij zou je pas weer backup hebben nadat de batterij is opgeladen.

Bovendien zijn er nog voldoende overige nadelen aan batterijen, het blijft chemisch afval en alhoewel lekkage bij dat soort type batterijen minder een probleem is, kan lekkage nog steeds grote schade in apparaten veroorzaken.
Zo'n computertje doet oude tijden een beetje herleven. Weg met het besturingssysteem, terug naar de boot-loader of zo. Er begint mij iets te dagen dat er in de jaren '70 of '80 ook al computer systeempjes waren die gewoon bot-uit gezet konden worden en na het weer aan zetten weer verder gingen waar ze gebleven waren.

En met 256 KByte geheugen moet er genoeg ruimte zijn om leuke programmaatjes te bakken. Laat zo'n dingetje maar gegevens oogsten. Soms is het genoeg om af en toe de gegevens te verzamelen, als er maar doorlopend wordt gemeten. Zo'n weer station bijvoorbeeld: Dag en nacht meten en alleen als er genoeg wind langs waait of als er genoeg licht is, dan de gegevens versturen.
Klopt. Zo werkte de eerste computers: het RAM geheugen stond fysiek in dezelfde positie als vlak voor de stroomonderbreking.

Bv. Ook de computer gebruikt voor de Appollo missies (naar de maan) werkte zo: reboot betekende 'stroom uit, na herstart doe gewoon verder met het geheugen hoe het stond ervoor'. Ze hadden zelfs een knop om dat geheugen te resetten. In case of bug.

Op dit item kan niet meer gereageerd worden.