ID.nl logo
Welke microcontrollers bestaan er en waar zijn ze goed voor?
© https://ethereumcode.io/
Huis

Welke microcontrollers bestaan er en waar zijn ze goed voor?

Ze zitten in je auto, in je magnetron, in je wasmachine, maar ook in je pc, en ze vormen het hart van de Arduino- en ESP32-ontwikkelbordjes: microcontrollers. Onzichtbaar op de achtergrond wordt bijna ons hele leven erdoor draaiende gehouden. Welke microcontrollers bestaan er en hoe werken ze precies?

Als je een maaltijd in je magnetron zet, kies je de juiste tijd en instellingen en zet je hem aan. Aan het einde zegt je magnetron ‘ping!’ en is je maaltijd opgewarmd.

Heb je je al eens afgevraagd hoe dat werkt? Eigenlijk zit er in je magnetron een hele (kleine) computer die een programmaatje afwerkt dat enerzijds reageert op de knoppen en anderzijds, als je dat hebt, op het lcd-scherm. Ook stuurt de computer de elektronenbuis aan die de maaltijd met microgolven verwarmt. Die kleine computer is een microcontroller. Je hebt er waarschijnlijk tientallen in huis.

Een microcontroller is een chip die eigenlijk een hele computer in één pakket behuist. Daarin zitten een processor, geheugen (ram en rom) en allerlei poorten naar de buitenwereld. Terwijl je bij een gemiddelde processor voor je desktopcomputer dus nog een heel moederbord, ram-geheugen en storage nodig hebt om er iets nuttigs mee te doen, heb je bij een microcontroller slechts een beperkt aantal externe componenten nodig. Wat weerstanden en condensatoren zijn doorgaans voldoende voor een werkende microcontroller-opstelling.

Die verregaande integratie in een microcontroller is mogelijk omdat dit geen chip is voor flexibele apparaten, zoals pc’s. Microcontrollers zijn ontworpen om specifieke toepassingen uit te voeren, zoals in een magnetron, een pinautomaat, een wasmachine of een pacemaker. Een laag stroomverbruik en een lage kostprijs zijn voor die toepassingen belangrijk.

Lage prestaties met hoge impact

Low-end microcontrollers hebben dan ook een processorsnelheid van maar enkele MHz en slechts enkele kilobytes ram-geheugen. Kijk bijvoorbeeld naar de Arduino Uno, een populair ontwikkelbordje om mee te experimenteren. De microcontroller op dat bordje is de AVR ATmega328P. Die werkt op een kloksnelheid van 16 MHz, heeft 2 KB sram, 1 KB eeprom en 32 KB flashgeheugen.

Vergeleken met de gigahertzen, gigabytes en terabytes die we op onze pc’s gewend zijn, lijken die specificaties ondermaats. Maar toch kun je hiermee ongelooflijk veel projecten aansturen: muziekinstrumenten, robotautootjes, weerstations, je planten automatisch water geven... Je kunt het zo gek niet bedenken of iemand heeft het al weleens met die kleine ATmega328P gedaan.

Microcontroller of SoC? Waarschijnlijk heb je ook al gehoord van een system-on-a-chip (SoC), wat op het eerste gezicht hetzelfde lijkt: een processor geïntegreerd met andere componenten. De grens tussen wat we als een microcontroller beschouwen en wat als een SoC is nogal vaag. Maar doorgaans is een SoC met een snellere processor uitgerust, heeft die meer ram en bevat hij mogelijk radiochips (wifi en/of mobiel netwerk) of een ingebouwde gpu.  Alle smartphones en tablets zijn dan ook gebouwd rond een SoC, maar ook de Raspberry Pi, apparaten zoals een nas en slimme luidsprekers. Ook de Apple M1 is een SoC: deze integreert een arm-processor, ram, gpu, image-signal-processor, Secure Enclave (een coprocessor voor veilige opslag van sleutels) en controllers voor NVMe en thunderbolt 4.

Pinnetjes

Als je een low-end microcontroller zoals een ATmega328P van een Arduino Uno ziet, is het eerste wat opvalt de pinnetjes die eruit steken. Elk van die pinnetjes heeft een functie. Sommige sluit je aan op een voeding, zodat de chip stroom krijgt, maar de meeste dienen om met de omgeving te communiceren.

Komt de chip in een dip-behuizing, dan kun je die pinnetjes eenvoudigweg in een breadboard prikken. Door dan jumperwires in een gaatje in dezelfde rij als een pin te steken, verbind je het draadje met die pin. Op die manier bouw je eenvoudig elektronische schakelingen op met componenten die met de microcontroller kunnen communiceren.

Een Arduino Uno-bordje is dan eigenlijk gewoon een printplaatje waarop de ATmega328P is geplaatst en alle pinnetjes verbonden zijn met ofwel de headers op het bordje, ofwel met andere componenten van het printplaatje, zoals de spanningsregelaar, statusleds en de resetknop. Je kunt het eigenlijk vergelijken met een moederbord voor een processor: een Arduino Uno maakt een ATmega328P-microcontroller alleen wat handiger om te gebruiken en om andere componenten op aan te sluiten.

©PXimport

De eenvoudigste manier om met een microcontroller te communiceren is wat we GPIO noemen (general-purpose input/output). Elke GPIO-pin kunnen we aansturen door een bit op een specifiek adres in het geheugen van de microcontroller op 1 of 0 te zetten. Schrijven we er 1 naar, dan wordt een spanning van bijvoorbeeld 5 V over de pin gelegd; schrijven we er 0 naar, dan wordt de spanning 0 V.

Als je dan bijvoorbeeld tussen die pin en 0 V een led en een weerstand plaatst, gaat de led aan wanneer je 1 naar de pin schrijft en uit wanneer je er 0 naar schrijft. Bij een 1 vloeit er immers een stroom van 5 V naar 0 V. De weerstand dient om de stroom te beperken tot wat de led aankan.

Ook in de andere richting werkt dat. Als je de GPIO-pin als invoer configureert, zal de microcontroller de spanning die je aan de pin aanlegt (5 V of 0 V) interpreteren als een 1 of 0. Op die manier sluit je een knop aan op de pin. Druk je de knop in, dan maakt die intern een verbinding tussen 5 V en de pin van de microcontroller, waardoor die een 1 registreert. 

Laat je de knop los, dan wordt er doorgaans via een pull-downweerstand voor gezorgd dat de pin verbonden is met 0 V en dus een 0 registreert. Op dezelfde manier sluit je een PIR-sensor voor aanwezigheidsdetectie aan: de pin registreert dan 1 als de sensor iemand waarneemt en anders 0.

Protocols en bussen

Telkens 1 bit in of uit de microcontroller sturen, is voldoende voor eenvoudige toepassingen, maar vaak heb je complexere vormen van communicatie nodig. Daarvoor zijn er allerlei protocollen ontwikkeld. Bijvoorbeeld UART (universal asynchronous receiver-transmitter), een protocol voor seriële communicatie waarbij je bytes in twee richtingen kunt sturen. 

Het protocol beschrijft hoe je de opeenvolgende bits moet sturen. Zo bestaan er UART-modules die je in een usb-poort van je pc kunt steken. Communiceren met de microcontroller doe je dan door de RX-pin van de microcontroller met de TX-pin van de UART-module te verbinden en andersom: RX staat voor receive en TX voor transmit.

Voor communicatie met meerdere componenten, zoals sensoren, externe geheugens en schermen, maak je meestal gebruik van een bus zoals I²C (Inter-Integrated Circuit, uitgevonden door Philips) en SPI (Serial Peripheral Interface). I²C wordt ook wel Two-Wire genoemd, omdat er twee pinnen worden gebruikt: SDA om de seriële data door te sturen en SCL om een kloksignaal te sturen. 

SPI (ook weleens Four-Wire genoemd) heeft vier pinnen: SCLK voor de klok, MOSI voor communicatie van de master (meestal de microcontroller) naar de slave en MISO voor de andere richting, en SS om te selecteren met welke slave de master spreekt. Voor elke slave heb je een extra pin SS nodig. Bij de meeste microcontrollers zijn er specifieke pinnen aanwezig voor UART, I²C en SPI.

©PXimport

Digitaal of analoog

Tot nu toe hebben we het alleen maar over 0 en 1 gehad, digitale gegevens dus. Maar heel wat sensoren geven analoge gegevens door, bijvoorbeeld een temperatuursensor of druksensor waarvan de weerstand varieert met de gemeten waarde. Met een spanningsdeler haal je uit die variabele weerstand een variabele spanning, die dus een analoge voorstelling van de meetwaarde is. 

Gelukkig bestaat er een component die een analoge waarde (bijvoorbeeld een spanning) kan omzetten naar een digitale waarde (bijvoorbeeld een 10bit-getal): de ADC (analoog-digitaalomzetter).

ADC’s bestaan als losse componenten (bijvoorbeeld via I²C of SPI aan te sluiten), maar veel microcontrollers hebben ook zelf een of meer ADC’S ingebouwd. Ook in de andere richting bestaat er een component: de DAC (digitaal-analoogomzetter) zet een digitale waarde (bijvoorbeeld een 10bit-getal) om in een analoge waarde (bijvoorbeeld een spanning van 0 tot de voedingsspanning).

Sommige microcontrollers hebben ook een DAC ingebouwd. Al met al zijn microcontrollers dus de perfecte componenten om de digitale en analoge wereld te verenigen. Een Raspberry Pi bijvoorbeeld heeft geen ADC ingebouwd, terwijl een Arduino-bordje er meerdere heeft.

Microcontroller-behuizingen Dezelfde microcontroller kun je vaak in meerdere types behuizingen kopen. Op breadboards zul je vaak DIP-behuizingen tegenkomen: dual in-line package. De chip zit dan in een rechthoekig blokje met aan twee tegenovergelegen zijden pinnetjes die naar onderen uitsteken. Standaard liggen de pinnetjes 2,54 mm (een tiende inch) van elkaar, waardoor ze op een breadboard passen.  In massaproductie vind je eerder varianten van QFP (quad flat package), waarbij een vierkante behuizing aan elke zijde een rij pinnetjes heeft, met een afstand van 0,4 tot 1 mm, die op de printplaat worden gesoldeerd. Een soortgelijke behuizing is QFN (quad-flat no-leads), waarbij er geen pinnetjes uitsteken maar er onderaan de chip aan de vier zijden rijen kopersporen zijn die rechtstreeks op de banen van de printplaat aansluiten. Deze zijn moeilijk met de hand te solderen.

Microcontrollerfamilies

Net zoals er voor pc’s allerlei processorfamilies bestaan, heb je ook diverse families van microcontrollers. De belangrijkste onderverdeling is op basis van de processorarchitectuur. Populair bij hobbyisten zijn de 8bit-AVR-microcontrollers van Atmel (in 2016 overgenomen door Microchip). Ze zijn onderverdeeld in twee subfamilies: de ATtiny-serie met minder pinnen, geheugen en functies (de basismodellen hebben zelfs geen ram-geheugen, UART, I²C en SPI) en de krachtigere ATmega-serie die in de meeste Arduino-bordjes zit.

Een familie die zowel bij hobbyisten als industriële ontwikkelaars populair is, zijn de PIC-microcontrollers, die al sinds 1976 meegaan. Hun populariteit is te danken aan hun lage kostprijs, brede beschikbaarheid en heel wat bestaande code.

Een andere populaire low-end microcontroller in de industrie is de 8051. Oorspronkelijk werd deze in 1980 door Intel ontwikkeld onder de naam MCS-51. In 2007 is Intel met de productie gestopt, maar tientallen andere chipfabrikanten produceren nog altijd hun eigen klonen van de 8051, vaak met een snellere klok en extra functies. Ze worden gebruikt in auto’s, meetsystemen, transceivers voor bluetooth, Zigbee en andere draadloze protocollen, in usb-sticks enzovoort.

©PXimport

Als je naar de krachtigere microcontrollers gaat, kom je bij 32- en 64bit-families uit. De laatste jaren hebben vooral de Xtensa-processors van Tensilica (in 2013 overgekocht door Cadence) een flinke opmars gemaakt. Het zijn immers de processors in de ESP8266- en ESP32-microcontrollers van het Chinese Espressif. Deze zijn populair bij hobbyisten door hun geïntegreerde wifi en (voor de ESP32) bluetooth, en omdat ze eenvoudig te programmeren zijn in de Arduino IDE of via frameworks als ESPHome. De bordjes gebouwd rond de microcontrollers van Espressif zijn dan ook populair voor doe-het-zelf-domotica.

Tot de krachtigste en flexibelste microcontrollers behoren die gebouwd rond de ARM-architectuur. De high-end versies daarvan vind je in je smartphone en ook in computerbordjes zoals een Raspberry Pi, al spreken we dan meer van een SoC. 

ARM kent veel subfamilies, maar voor de klassieke microcontrollertoepassingen zijn vooral de ARM Cortex-M-processors (32 bit) gebruikt. Die vind je bijvoorbeeld in de AT SAM-serie van Atmel die in de krachtigere Arduino-bordjes zitten, in de populaire STM32-familie van STMicroelectronics, en in de nRF-serie van Nordic Semiconductor voor draadloze toepassingen, zoals bluetooth en thread.

Ontwikkelbordjes

Voor industriële toepassingen wordt een printplaat op maat ontworpen, waarop een microcontroller staat. Maar wie zelf aan de slag wil met een microcontroller, heeft een ontwikkelbordje nodig. Dat geeft eenvoudig toegang tot de pinnen van de microcontroller via standaard pinheaders en voegt zaken zoals een spanningsregelaar en usb-naar-UART-omzetter toe, zodat je het bordje eenvoudig op je pc kunt aansluiten.

Voor elke microcontrollerfamilie bestaan er wel ontwikkelbordjes in allerlei vormen en groottes. Voor de AVR-familie zijn de Arduino-bordjes populair. Sommige daarvan, zoals de Arduino Nano, prik je op een breadboard, maar de meeste komen in een groter formaat met vrouwelijke pinheaders waarin je jumperwires steekt. 

Voor de Espressif-microcontrollers is het kleinere formaat dat je op een breadboard prikt alomtegenwoordig. Voor de nRF-serie heeft Nordic Semicondictor grote ontwikkelborden, maar ook versies in de vorm van een stick die je in de usb-poort van je pc schuift. Ook de BBC micro:bit en micro:bit v2 zijn leuke ontwikkelbordjes voor de nRF-microcontrollers.

©PXimport

Microcontroller programmeren

Kijken we tot slot nog even naar hoe het programmeren van een microcontroller werkt. Als je gewend bent om voor een pc of een computerbordje zoals een Raspberry Pi te programmeren, krijg je zeker een cultuurschok wanneer je voor het eerst een microcontroller programmeert. Doorgaans draait er immers geen besturingssysteem op een microcontroller. Er draait slechts één programma op: wat jij schrijft. 

Dat programma schrijf je in het ingebouwde flash-geheugen. Als je de stroom uitschakelt en weer inschakelt, begint de microcontroller het programma onmiddellijk uit te voeren. Dat maakt een microcontroller betrouwbaarder in werking dan een processorbordje zoals een Raspberry Pi.

De best ondersteunde programmeertalen op microcontrollers zijn C of C++, maar die zijn niet het toegankelijkst. Het Arduino-ecosysteem lost dat op door een standaardbibliotheek en allerlei uitbreidingen aan te bieden. Die vormen een laag bovenop het onderliggende C++. 

Andere oplossingen zijn MicroPython en CircuitPython die een afgeslankte versie van Python op microcontrollers aanbieden, en Espruino dat het mogelijk maakt om JavaScript op een microcontroller te gebruiken. Voor industriële toepassingen gebruik je eerder een realtime besturingssysteem zoals Zephyr, dat je in C programmeert.

Ontwikkelomgevingen

Om het proces van code programmeren en de firmware naar je microcontroller flashen te vereenvoudigen, bestaan er allerlei ontwikkelomgevingen. Die tonen bijvoorbeeld fouten in je code, compileren met één druk op een knop je code tot machinecode in de instructieset van de processor, en flashen de firmware naar je ontwikkelbordje. 

Programmeer je een Arduino-bordje, dan doe je dat doorgaans in de Arduino IDE (wat staat voor integrated development environment). Maar dankzij de ondersteuning van andere bordjes kun je met de Arduino IDE ook ESP8266- of ESP32-bordjes programmeren.

Ook populair is PlatformIO, een opensource-plug-in die van Microsofts ontwikkelomgeving Visual Studio Code een ontwikkelomgeving voor microcontrollers maakt. Het voordeel van PlatformIO is dat je met één ontwikkelomgeving voor diverse platforms en frameworks voor microcontrollers kunt ontwikkelen, inclusief Arduino, Espressifs framework en Zephyr. 

Visual Studio Code is bovendien ook bruikbaar om voor een Raspberry Pi of je pc te programmeren. Op deze manier verenig je dus al je programmeerprojecten in één omgeving.

▼ Volgende artikel
Oliebollen bakken in de airfryer, kan dat?
© sara_winter - stock.adobe.com
Huis

Oliebollen bakken in de airfryer, kan dat?

De geur van versgebakken oliebollen hoort bij december. Toch ziet niet iedereen het zitten om met een pan heet vet aan de slag te gaan. Oliebakken in de airfryer lijkt dan een aantrekkelijk alternatief: minder luchtjes en ook nog eens minder vet. Maar levert bakken in een airfryer dezelfde oliebol op, of moet je toch de frituurpan uit het vet halen?

In dit artikel

Je leest waarom je geen klassieke oliebollen kunt bakken in een airfryer en wat daar technisch misgaat. Ook leggen we uit wat je wel voor oudjaarsalternatief kunt maken met de airfryer én hoe je de airfryer slim gebruikt om gekochte oliebollen weer knapperig en warm te maken.

Lees ook: Ontdek de minder bekende functies van je airfryer

Oliebollen bakken in de airfryer, kan dat? Het korte antwoord is duidelijk: nee, een traditionele oliebol bak je niet in een airfryer. Klassiek oliebollenbeslag is vloeibaar en heeft direct contact met hete olie nodig om zijn vorm en structuur te krijgen. Een airfryer is in de basis een compacte heteluchtoven. Zonder een bad van hete olie kan het beslag niet snel genoeg stollen. Wie het toch probeert, ziet het deeg door het mandje zakken of uitlopen tot een platte, taaie schijf. Dat ligt niet aan het recept, maar aan de techniek.

Waarom hete olie onmisbaar is

Zodra je het beslag van de oliebol in de hete olie van de frituurpan schept, ontstaat er vrijwel direct een korstje om de buitenkant. Binnen in de bol ontstaat stoom, waardoor de bol uitzet en luchtig wordt. Die combinatie van afsluiten en opblazen zorgt voor de typische oliebolstructuur. In een airfryer ontbreekt die directe warmteoverdracht. Hete lucht is simpelweg minder krachtig dan hete olie. Zonder direct contact met heet vet kan het beslag niet snel genoeg stollen. Daardoor blijft een echte oliebol uit de airfryer onmogelijk.

©Gegenereerd door AI

Wat wel kan: kwarkbollen uit de airfryer

Wie toch iets zelf wil maken in de airfryer, moet het klassieke oliebollenbeslag loslaten. Met een steviger beslag, bijvoorbeeld op basis van kwark, kun je ballen vormen die hun vorm behouden. Deze bollen garen prima in de hete lucht en krijgen een mooie bruine buitenkant. De uitkomst lijkt qua vorm op een oliebol, maar de structuur is compacter en de smaak meer broodachtig. Denk aan iets tussen een zoet broodje en een scone. Lekker, lichter en prima als alternatief, maar: het is geen oliebol zoals je die van de kraam kent.

Kwarkbollen uit de airfryer

Meng 250 gram volle kwark met 1 ei en 50 gram suiker tot een glad mengsel. Voeg vervolgens 300 gram zelfrijzend bakmeel toe, samen met een snuf zout. Meng alles kort tot een samenhangend deeg. Het deeg moet stevig zijn en nauwelijks plakken. Is het te nat, voeg dan een beetje extra bakmeel toe. Wie wil, kan rozijnen, stukjes appel of wat citroenrasp door het deeg mengen.

Bestuif je handen licht met bloem en draai ballen ter grootte van een kleine mandarijn. Leg ze met wat ruimte ertussen in het mandje van de airfryer, eventueel op een stukje bakpapier. Bak de bollen in ongeveer 12 tot 15 minuten op 180 graden. Halverwege kun je ze voorzichtig keren zodat ze gelijkmatig bruin worden.

Laat de bollen kort afkoelen en bestuif ze eventueel met poedersuiker. Vers zijn ze het lekkerst, maar ook lauw blijven ze prima eetbaar.

Wat ook goed kan: oliebollen opwarmen in de airfryer

Waar de airfryer wel echt tot zijn recht komt, is bij het opwarmen van gekochte oliebollen. In de magnetron worden ze snel slap en taai. In de airfryer gebeurt het tegenovergestelde. Door de bollen een paar minuten op ongeveer 180 graden te verwarmen, wordt de korst weer knapperig en warmt de binnenkant gelijkmatig op. Je oliebollen smaken weer alsof je ze net gebakken (of gehaald) hebt!

Samenvatting

Wil je de échte oliebol, dan heb je twee opties: zelf bakken in een frituurpan of halen bij de kraam. Bakken in de airfryer kan niet, omdat vloeibaar beslag niet geschikt is voor hete lucht. Je kunt bijvoorbeeld wel kwarkbollen maken, maar dat is toch anders. De grootste winst zit in het opwarmen van kant-en-klare oliebollen: in de airfryer gaat dat snel, ze worden heerlijk knapperig en je hebt geen last van frituurlucht in huis.


Nog even niet aan denken...

...maar voor 1 januari, je goede voornemens

🎆 Vuurwerk op je Galaxy Smartphone? 👇

View post on TikTok
▼ Volgende artikel
Zo krijg je oude randapparatuur weer werkend onder Windows 10 en 11
© ID.nl
Huis

Zo krijg je oude randapparatuur weer werkend onder Windows 10 en 11

Het spreekwoord 'krakende wagens lopen het langst' gaat helaas vaak niet op in de computerwereld. Moderne systemen reageren soms allergisch op oudere hardware. Toch zijn er methoden en slimme trucs om zulke apparaten te laten werken onder Windows 10 of 11.

Dit gaan we doen

Je hebt nog een oudere printer, scanner of ander randapparaat in de kast liggen. Weggooien kan, maar het is duurzamer en goedkoper als je het toestel weer aan de praat krijgt op je moderne Windows-systeem. Zulke apparatuur wordt helaas niet altijd meteen herkend. Fabrikanten bieden namelijk vaak geen ondersteuning meer en Windows bevat lang niet alle stuurprogramma's (drivers) voor oudere apparaten.

Toch is er meer mogelijk dan je denkt. We laten stap voor stap zien wat je kunt doen als Windows het apparaat niet herkent, als de juiste driver ontbreekt of niet compatibel is, en als Windows de installatie weigert. We gaan ook kort in op alternatieve methoden, zoals compatibiliteitsmodi, universele drivers en virtualisatie. Sommige technieken zijn eenvoudig, andere vragen iets meer inspanning en technische kennis. Het loont in elk geval de moeite om het apparaat weer aan de praat te krijgen.

Apparaat niet herkend

Wanneer je een oud apparaat aansluit, kan het gebeuren dat Windows het niet herkent.. Daardoor verschijnt het niet in de lijst met apparaten. Je controleert dit door via een klik met rechts op de Windows-knop Apparaatbeheer te openen. Verschijnt hier iets als 'Onbekend apparaat' of zie je een geel driehoekje of vraagteken, dan heeft Windows het apparaat wel fysiek herkend, maar geen juiste driver gevonden. Je leest hier meer over bij de passage Driverprobleem. Mogelijke oorzaken zijn het ontbreken van een plug-and-playdriver of een verouderd aansluitingstype.

Je kunt dan verschillende dingen proberen. Controleer eerst de aansluiting en de stroomvoorziening. Zorg dat het apparaat juist is aangesloten en ingeschakeld. Bij usb-apparaten helpt het soms een andere poort te proberen. Oudere usb1.1-apparaten werken vaak beter via een usb2.0-poort of een usb-hub met eigen voeding dan via een usb3.0-poort. Heeft je pc nog een parallelle of seriële poort? Controleer dan in het systeem-BIOS of deze is ingeschakeld. Heeft je toestel zo'n poort niet, dan ben je meestal aangewezen op een adapter (zie de passage Aansluitingen).

Een apparaat dat niet wordt herkend, is niet te vinden in Apparaatbeheer.

Handmatige installatie

Je kunt het apparaat ook handmatig proberen te installeren. Misschien heb je nog een cd-rom met de installatiebestanden, zodat het zo lukt. Heeft je pc geen cd-station meer, dan sluit je een extern cd-station aan of kopieer je de bestanden op een andere pc met cd-station naar een usb-stick. Je kunt er ook een iso-bestand van maken en dit met een dubbelklik als virtuele schijf koppelen op je pc. Je kunt dit doen met bijvoorbeeld Burnaware Free. Ga naar www.burnaware.com en kies voor ISO-bestand aanmaken.

Heb je geen cd-rom? Start dan Apparaatbeheer, open het menu Actie en kies Oudere hardware toevoegen. Kies De hardware opsporen en automatisch installeren, geef het hardwaretype aan, zoals Beeldapparaten of Draagbare apparaten, en selecteer het juiste product en model. Heb je zelf een geschikte driver gevonden (bijvoorbeeld op de site van de producent), klik dan op Bladeren en verwijs naar het installatiebestand (inf).

Voor printers open je Instellingen in Windows en kies je Bluetooth en apparaten / Printers en scanners. Klik op Apparaat toevoegen en kies bij De printer die ik wil gebruiken, staat niet in de lijst voor Handmatig een nieuw apparaat toevoegen. In het dialoogvenster laat je Mijn printer is iets ouder. Help mij met zoeken geselecteerd. Werkt dat niet, probeer dan Een lokale printer of een netwerkprinter toevoegen met handmatige instellingen, waarna je de juiste poort en het stuurprogramma kiest. Klik hier ook op Windows Update: zo is de kans groter dat Windows alsnog de juiste driver ophaalt. Je kunt ook een vergelijkbaar model uit de lijst proberen.

De wizard Hardware toevoegen laat je eerst uit een productcategorie kiezen.

Soorten aansluitingen

Gaat het om oudere apparaten, dan hebben die vaak een interface die je op moderne pc's niet meer vindt, zoals een parallelle of seriële aansluiting of firewire. Voor parallel gebruik je een usb-naar-parallel-adapter (meestal usb-A naar 36-pins Sub-D). De printer verschijnt dan als 'USB Printing Support' en werkt vaak met generieke drivers. Sommige oude drivers verwachten een echte LPT-poort met een logische naam als LPT1. Je kunt dan de gedeelde usb-printerpoort mappen naar LPT1 met het opdrachtprompt-commando

net use LPT1: "\\localhost\<printershare>" /persistent:yes

(met net use LPT1: /delete verwijder je deze koppeling). <printershare> is de gedeelde printernaam, zoals ingesteld via Instellingen in Windows: klik op de printernaam, kies Printereigenschappen en open het tabblad Delen. Zo kun je vaak nog printen vanuit oude DOS- of Windows-apps.

Voor een seriële poort (met een DB9 RS232-kabel) gebruik je eveneens een usb-adapter, liefst met FTDI-chip en aangesloten op een usb2.0-poort. Mogelijk moet je eerst de adapterdriver installeren voordat deze in Apparaatbeheer verschijnt (onder een naam als '[…] COMx'). Om het juiste poortnummer (zoals COM1) in te stellen, klik je met rechts op het apparaat, open je Poortinstellingen en klik je op Geavanceerd.

Koop altijd adapters van goede kwaliteit (en van een bekend merk), aangezien goedkopere exemplaren zich niet altijd aan de specificaties houden.

Voor firewire kun je de installatie van een PCIe-naar-firewire (IEEE 1394) adapterkaart overwegen. Met de Microsoft 1394 OHCI Legacy Driver activeer je deze vervolgens in Windows 10/11 en kun je bijvoorbeeld een oude DV-camera of audio-interface aansluiten. Klik hier voor een downloadlink met instructies.

De LPT-poort wordt semipermanent aan de gedeelde usb-printerpoort gekoppeld.

Driverprobleem

Wanneer Windows het apparaat herkent via een van bovenstaande stappen, blijft het afwachten of er een geschikte driver voor Windows 10/11 beschikbaar is. Je kunt eerst een generieke driver proberen, die vaak via de Windows-updatefunctie beschikbaar is. Klik in Apparaatbeheer met rechts op het apparaat, kies Stuurprogramma bijwerken en klik vervolgens op Automatisch zoeken naar stuurprogramma's / In Windows Update zoeken naar bijgewerkte stuurprogramma's.

Soms vind je geschikte drivers bij de optionele updates. Ga hiervoor naar Instellingen, kies Windows Update / Geavanceerde opties / Optionele updates en open Stuurprogramma-updates. Je kunt ook zoeken naar een basisdriver, add-onmodule of universele driver van de fabrikant, zoals de (Smart) Universal Printer Driver van HP.

Vind je geen driver op de site van de fabrikant, dan kun je er ook zelf naar googelen op basis van het hardware-ID. Start Apparaatbeheer, klik met rechts op het apparaat (eventueel bij Andere apparaten of Onbekend apparaat), kies Eigenschappen en open het tabblad Details. Stel Eigenschap in op Hardware-id's. Klik met rechts op een gevonden ID, kies Kopiëren en plak dit met Ctrl+V in een zoekmachine als Google. Mogelijk levert dit een geschikte driver op.

Heb je nog een driver voor Windows 7 of ouder, probeer dan de installatie in compatibiliteitsmodus. Klik met rechts op het installatieprogramma, kies Eigenschappen en ga naar het tabblad Compatibiliteit. Zet een vinkje bij Dit programma uitvoeren in compatibiliteitsmodus voor en kies de laatst ondersteunde versie, zoals Windows 7 of Windows XP (Service Pack 2). Door ook Dit programma als administrator uitvoeren te selecteren, vergroot je de kans dat Windows de oudere driver alsnog aanvaardt, zeker als het geen 'kernel-driver' met volledige systeemrechten betreft (zie ook de passage Driverblokkade). Dit is ons bijvoorbeeld al gelukt voor een Canon Pixma iP4200-printer.

Lees ook: De perfecte printer kiezen? Hier moet je op letten

Soms zitten driverupdates wat verstopt bij de optionele updates.

Alternatieve drivers

Je kunt ook op zoek gaan naar alternatieve, niet-officiële stuurprogramma's. Er zijn verschillende community's en fora die voor populaire oudere apparaten aangepaste drivers aanbieden of INF-bestanden hebben aangepast om ze onder nieuwere Windows-versies te laten werken.

Voor scanners is de alternatieve software van VueScan populair. Deze ondersteunt bijna achtduizend oude scanner-modellen en werkt vaak prima, al is de software niet gratis (vanaf circa 19 euro per jaar). Een proefversie is wel beschikbaar (je kunt eventueel een wegwerpadres gebruiken), zodat je kunt nagaan of je scanner werkt onder Windows 10/11.

Voor printers is het Gutenprint-driverpakket bekend, voorheen bekend als Gimp-print, al is dit alleen beschikbaar voor Linux en macOS. We hebben helaas niet de ruimte om hier dieper op in te gaan, maar je kunt een al dan niet virtuele Linux-machine op je netwerk opzetten (ook op een Raspberry Pi) en hierop Gutenprint installeren. Vervolgens deel je de printer zodat je deze ook op je Windows-pc kunt gebruiken. Voor scanners bestaat een vergelijkbaar project: Scanner Access Now Easy, eveneens voor Linux.

De kans is groot dat je met VueScan je oude scanner nog prima aan de praat krijgt.

Driverblokkade

Het kan gebeuren dat er wel een driver beschikbaar is, maar dat Windows 10/11 de installatie blokkeert. Mogelijk is de driver technisch incompatibel, bijvoorbeeld een 32bit-driver op een 64bit-systeem (Windows 11 is altijd 64 bit), of een kerneldriver die noodzakelijke kernelfuncties mist doordat deze niet meer worden ondersteund door het geüpdatete besturingssysteem. In dit geval kun je nog de compatibiliteitsmodus proberen (zie de passage Driverprobleem), maar het resultaat blijft onzeker. Je maakt dan meer kans via een virtuele machine met een oudere Windows-versie, zoals Windows 10 voor 32bit-drivers.

Soms blokkeert Windows 10/11 de installatie omdat de (kernel)driver niet digitaal is ondertekend. Ben je zeker dat het om een betrouwbare driver gaat, dan kun je deze controle tijdelijk uitschakelen. Open Instellingen, kies Systeem / Systeemherstel en klik tweemaal op Nu opnieuw opstarten. Kies vervolgens Problemen oplossen / Geavanceerde opties / Opstartinstellingen en klik op Opnieuw opstarten. In het menu dat verschijnt, kies je optie 7: Afdwingen van stuurprogrammahandtekening uitschakelen. Windows start nu zonder handtekeningcontrole, zodat je de driver kunt installeren. Bij de volgende herstart is de controle weer actief, maar de driver blijft werken.

Ga je liever voor een iets doortastender aanpak? Voer dan de Opdrachtprompt uit als administrator, voer het commando bcdedit /set TESTSIGNING ON in en herstart je pc. Deze draait dan in testmodus, zie de indicatie rechtsonder. Installeer de driver en voer daarna meteen bcdedit /set TESTSIGNING OFF uit, gevolgd door een herstart om terug normaal te werken.

Deze Windows draait tijdelijk in een (minder veilige) testmodus.

Virtueel alternatief

Lukt het niet om je oude apparaat met een van de bovenstaande workarounds aan de praat te krijgen binnen Windows 10/11, dan zit er weinig anders op dan een ouder of ander besturingssysteem te gebruiken. Het handigst is om dit als virtuele machine (VM) bovenop je huidige Windows te draaien. Binnen deze VM installeer je dan de originele driver en software voor het apparaat.

Geschikte gratis tools zijn Oracle VirtualBox en VMware Workstation Pro (na registratie op https://support.broadcom.com). Via bijvoorbeeld https://archive.org kun je naar schijfkopiebestanden zoeken en downloaden. Wij vonden er onder meer diverse Windows XP-iso-bestanden en installeerden een exemplaar in VirtualBox.

Dit kan als volgt. Start VirtualBox, klik op Nieuw en vul de gegevens in, zoals Microsoft Windows XP (32-bit). Bij ISO-image verwijs je naar je download. Vink Overslaan zonder toezicht aan, klik op Afmaken en vervolgens op Starten. Volg de installatie-instructies. Je bezit of vindt wellicht een geldige licentie voor deze oude Windows.

Koppel het apparaat aan een fysieke poort op je pc en geef deze vervolgens door aan de VM, zodat de virtuele Windows het apparaat herkent. Dit kan vanuit het menu Apparaten in het venster met een opgestarte VM.

Bij printers kun je ook delen via het VM-netwerk, zodat je vanuit je gewone Windows via het netwerk kunt printen naar de VM. Selecteer de (uitgeschakelde) VM in VirtualBox, kies Instellingen, open Netwerk en vink Netwerkadapter inschakelen aan. Stel eventueel Gekoppeld aan in op Bridged Adapter zodat de VM een ip-adres krijgt binnen hetzelfde netwerk als je host-pc.

Een oude HP-printer werd succesvol op een virtuele Windows XP geïnstalleerd.

Extra tips

Soms brengen fabrikanten firmware-updates uit die de compatibiliteit met een nieuwer besturingssysteem verbeteren. Het kan dus lonen om de firmware van het apparaat te controleren en eventueel te updaten. Raadpleeg hiervoor de bijbehorende instructies. Het is ook mogelijk dat sommige apparaten, zoals printers, een legacy- of compatibiliteitsmodus hebben, waardoor ze wel ondersteund worden door Windows of een generieke driver. Raadpleeg ook hiervoor de handleiding.

Tot slot nog een tip die we met enige terughoudendheid geven. Vind je geen geschikte driver op de website van de fabrikant, probeer dan eventueel een gratis tool als IObit Driver Booster of Snappy Driver (Lite). Soms halen deze nog een oude driver uit de online Microsoft Update Catalog die werkt. Dit kan helaas ook zomaar fout gaan, dus maak vooraf zeker een herstelpunt. Let ook op dat je geen ongewenste extra's mee installeert.

Driver-installers: als het echt niet anders kan, en nadat je een herstelpunt hebt gemaakt.

 Nieuwe printer nodig? Kijk op Kieskeurig.nl/prijsdalers om voor de beste deal!

Inkt en cartridges

Voor je printer