ID.nl logo
USB-buttonbox bouwen met Arduino
© Reshift Digital
Huis

USB-buttonbox bouwen met Arduino

Veel programma’s bieden handige sneltoetsen maar de toetsencombinaties zijn vaak lastig te onthouden. Games en simulators gaan nog een stap verder, en bieden hele schermen met aanpasbare bedieningsopties. Met een usb-buttonbox, die je zelf eenvoudig kunt bouwen, breng je een deel van die functies over naar fysieke toetsen met een beschrijving. Dat ziet er ook nog eens leuk uit en is wellicht de start van een nieuwe hobby.

Veel programma’s kun je via sneltoetsen bedienen, maar het valt niet mee de toetsencombinaties te onthouden. En soms is het toetsenbord niet praktisch of simpelweg niet in de buurt. Voor hedendaagse games geldt dat nog meer. Simulators als Flight Simulator 2020 en DCS World zijn zo realistisch dat je vrijwel elke functie in de cockpit kunt bedienen. Je ontkomt dan bijna niet aan accessoires, zoals een gashendel en joystick voor het vliegen, of een stuurtje om te racen. Op de accessoires vind je veel extra knoppen die je kunt toewijzen aan de gewenste functies. Maar zelfs dan moet je keuzes maken, gezien de talloze bedieningsopties. Een leuke uitbreiding en misschien wel het begin voor een levensecht(e) dashboard of cockpit is een zogenoemde usb-buttonbox, die je vrij eenvoudig zelf kunt maken. Je kunt ze ook inzetten voor bijvoorbeeld een volumeregeling of het bedienen van muziek! Ze zijn ook nog eens betrekkelijk eenvoudig en voor weinig geld te bouwen.

01 Benodigdheden

Het project vraagt om te beginnen uiteraard om een behuizing voor bijvoorbeeld nabij de pc. Van welk materiaal deze is gemaakt, maakt niet uit. Plastic is voordelig en makkelijk om mee te werken, zolang je oppast bij het solderen. Maar bijvoorbeeld aluminium kan ook. Voor de besturing zou je een zogenaamde joystick-controllerbordje met usb kunnen inzetten, maar hier kiezen we voor de flexibiliteit van een goedkope microcontroller.

We gebruiken een kloon van de Arduino Pro Micro (vanaf ongeveer 4 euro). Deze bordjes kun je zien als de kleine versie van de Arduino Leonardo. De basis is ook hier een ATmega32U4 van 8 bit die zich onderscheidt door de volledige usb-functionaliteit.

Microcontrollers op basis van de ATmega328 hebben dat overigens niet en zijn daarom niet geschikt. Voor het programmeren van de microcontroller gebruiken we de bekende Arduino-software. Met deze software worden ook meteen de vereiste drivers geïnstalleerd. Verder heb je wat aansluitkabeltjes nodig, gereedschap en natuurlijk de nodige schakelaars.

©PXimport

02 Gereedschap

Wat gereedschap betreft heb je voor het maken van de verbindingen een soldeerbout met soldeertin nodig. Gebruik je schakelaars met een ronde doorvoer, wat zeker de voorkeur heeft, dan hoef je alleen een gat in de juiste maat te boren. Gebruik een schuifmaat om de vereiste diameter gemakkelijk te bepalen. Verder heb je een boormachine en een voor het materiaal geschikte boor nodig. Een voordelige en praktische optie zijn de zogenoemde stappenboren met meerdere diameters, vooral als je door niet te dik materiaal moet. Je kunt alles met dezelfde boor afhandelen. Daarmee kun je, door deze voorzichtig iets verder te duwen, ook meteen de scherpe randjes er af slijpen. Bovendien kun je grotere diameters boren dan er mogelijk in je boor passen. Zo past een 12mm-boor lang niet altijd in de boorkop, terwijl die diameter voor sommige grotere schakelaars nodig is.

©PXimport

03 Schakelaars en regelaars

We beginnen het project met zes eenvoudige drukknoppen die je aan functies in software toe kunt kennen. Ze worden ook wel momentary pushbutton genoemd. Een kenmerk is dat ze terugveren nadat je ze hebt ingedrukt, als een toets op je toetsenbord. Afhankelijk van je project zijn er allerlei varianten. Zo heb je wipschakelaars die je twee kanten op kunt duwen en dus twee functies bedienen. Ook leuk zijn de bekende grote roodgekleurde paniekbuttons of de knoppen zoals je die op arcadekasten ziet.

Verder kun je allerlei andere soorten schakelaars en regelaars gebruiken. Een contactschakelaar met sleutel bijvoorbeeld, voor het aan- of uitzetten van de motor, of een druk- of wipschakelaar die ook de standen ‘aan’ of ‘uit’ heeft. Ook een leuke toevoeging is een draaiknop die linksom of rechtsom kan draaien, ook wel rotary encoder genoemd. Die is bijvoorbeeld inzetbaar voor een volumeregeling, zoals we verderop in dit artikel laten zien.

04 Aansluiten en configureren

We gaan in deze stap de microcontroller aansluiten op de pc, het bord configureren in Arduino en een klein demoprogramma laten draaien. Hiervoor hoef je nog niets aan te sluiten op de microcontroller. Sluit deze om te beginnen via usb aan op de pc. Als het goed is, gaat direct de rode led aan. Ga je in Windows naar Apparaatbeheer, dan zie je bij Poorten de aangesloten microcontroller, die in ons geval als Arduino Leonardo bootloader is geïdentificeerd, met daarbij de gebruikte com-poort (hier com3). Start nu Arduino. We gaan eerst een extra adres toevoegen voor borden. Ga daarvoor naar Bestand / Voorkeuren en vul achter Meer Board ManagersURL’s de volgende url in:

https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

Klik dan op OK. Ga naar Hulmiddelen / Board en kies Board Beheer. Je kunt nu SparkFun AVR Boards opzoeken in de lijst. Selecteer deze en kies Installeer. Hierna selecteer je de vrij universele SparkFun Pro Micro onder Hulpmiddelen / Board / SparkFun AVR Boards. Zorg daarna dat je onder Hulpmiddelen / Processor de juiste uitvoering van je bordje (meestal 5V/16 MHz) hebt gekozen!

©PXimport

05 Probeer je microcontroller

De Pro Micro heeft twee ingebouwde leds die het verzenden (TX) en ontvangen (RX) van data laten zien. Je kunt deze meestal niet gebruiken in je programma, maar bij dit bordje kan dat wél. Je programmeert deze zoals iedere digitale in- of uitgang. Voor de RX-led kan dat via pin 17. Voer het onderstaande programma in. Het programma zet de RX-led met vaste tussenpozen (0,5 seconde) aan en uit. Als je het hebt ingevoerd, kies je Schets / Upload (Ctrl+U) en de led zal beginnen te knipperen. Wil je de TX-led gebruiken? Deze bestuur je via een zogeheten macro, met de opdracht TXLED1 om deze aan te zetten en TXLED0 om de led uit te zetten. Programma’s in Arduino volgen steeds deze opzet: in het begin je definities voor bijvoorbeeld pinnummers, een functie setup() voor initialisatie en een lus loop() waarin herhaaldelijk opdrachten worden uitgevoerd.

int RXLED = 17; // Standaard pin voor RX LED

void setup()

{

pinMode(RXLED, OUTPUT); // RX LED als output gebruiken

}

void loop()

{

digitalWrite(RXLED, LOW); // RX LED aan

delay(500); // Wachten...

digitalWrite(RXLED, HIGH); // RX LED uit

delay(500); // Wachten...

}

©PXimport

Aansluitingen op de microcontroller

De Arduino Pro Micro en varianten bieden 18 I/O-pinnen die je allemaal als digitale ingang of uitgang kunt gebruiken, bijvoorbeeld voor het aanzetten van een led of lezen van een drukschakelaar. Deze zijn op de afbeelding lichtblauw gemarkeerd. Van die pinnen kun je er 9 als analoog naar digitaal converter (ADC) inzetten, voor bijvoorbeeld het uitlezen van een potentiometer. Deze zijn op de afbeelding groen gemarkeerd. Er zijn 5 pinnen die voor pulse width modulation (PWM) gebruikt kunnen worden (rood gemarkeerd), zodat je bijvoorbeeld via een pulse-trein de helderheid van een led in je programma kunt regelen. Er zijn meer uitvoermogelijkheden, bijvoorbeeld voor het aansluiten van lcd’s, maar hier beperken we ons tot de genoemde ingangen. De microcontroller krijgt zijn voeding gewoon via de usb-verbinding. Gebruik je de microcontroller voor andere toepassingen dan kun je een voeding op de VCC-pin aansluiten als de spanning precies 3,3 of 5 volt is (afhankelijk van de uitvoering van je bordje!). De RAW-pin biedt spanningsregulatie en is geschikt voor zo’n 6 tot 12 volt.

©PXimport

06 Schakelaar aansluiten

De Pro Micro kan zich dankzij de volledige usb-functionaliteit als muis of toetsenbord gedragen. We beginnen met een eenvoudig voorbeeld waarin via een drukschakelaar een toetsaanslag wordt verstuurd. Hiervoor gebruiken we de standaard Keyboard-bibliotheek van Arduino. Van de drukschakelaar gaat één aansluiting naar ground (GND) en de andere naar een digitale ingang, hier pin 4. Als je het onderstaande programma start, zul je zien dat na het indrukken van de schakelaar de a-toets wordt ontvangen in bijvoorbeeld de teksteditor die je gebruikt. We voegen eerst de bibliotheek toe en definiëren de pin:

#include <Keyboard.h>

int buttonPin = 4; // Button op pin 4

Binnen setup() stellen we daarna de button in als ingang (waar twee methodes voor zijn) en initialiseren de keyboard-emulatie:

void setup()

{

pinMode(buttonPin, INPUT); // Button als ingang instellen

digitalWrite(buttonPin, HIGH); // Zet de button op hoog

// pinMode(buttonPin, INPUT_PULLUP); // Alternatief voor bovenstaande twee regels

Keyboard.begin(); // Init keyboard-emulatie

}

In de lus reageren we op het indrukken van de button. We versturen het karakter a en bouwen een korte vertraging van 200 ms in om te voorkomen dat je scherm vol staat met deze letter.

void loop()

{

if (digitalRead(buttonPin) == 0) // Als button naar laag gaat (ground)...

{

Keyboard.write('a'); // Stuur toets a via toetsenbord

delay(200); // Korte vertraging

}

}

Je kunt het programma op vergelijkbare wijze uitbreiden met de andere drukschakelaars die je op dezelfde manier aansluit: de ene pin naar ground en de andere pin naar een eigen digitale ingang.

©PXimport

07 Speciale toetsencombinaties

Sneltoetsen vereisen in veel programma’s een combinatie met Ctrl of Shift. Ook zulke toetsen kun je programmeren. In plaats van Keyboard.write() gebruik je Keyboard.press(), dat ervoor zorgt dat een bepaalde toets wordt ingedrukt maar pas wordt losgelaten als je een ‘loslaat’-opdracht geeft. Als voorbeeld programmeren we Ctrl+B, dat bijvoorbeeld in het programma Word de optie vetgedrukt aan- of uitzet. Voor de Ctrl-toets kunnen we KEY_LEFT_CTRL invullen. Andere voorbeelden zijn KEY_LEFT_ALT, KEY_ESC, KEY_F1, KEY_TAB en KEY_RETURN. Een volledige lijst met speciale toetsen vind je via www.tiny.cc/keymod. Het programma blijft voor het merendeel gelijk als in stap 6. Je hoeft alleen beide regels in het blok if te vervangen door:

Keyboard.press(KEY_LEFT_CTRL); // Houd Crtl ingedrukt

Keyboard.press('b'); // Houd 'b' ingedrukt

delay(200); // Korte vertraging

Keyboard.releaseAll(); // Laat alle toetsen los

Hier wordt eerst de linker-Ctrl ingedrukt, daarna de toets b en na een korte vertraging worden beide toetsen losgelaten met de opdracht Keyboard.releaseAll().Als je het aangepaste programma gebruikt in Word, zie je dat met de toets de optie vetgedrukt wordt aan- en uitgezet.

©PXimport

08 Bibliotheek toevoegen

De Keyboard-bibliotheek voor Arduino ondersteunt niet alle toetsen. Hierdoor kun je bijvoorbeeld niet de standaard multimediatoetsen programmeren die veel toetsenborden hebben voor het pauzeren van nummers of regelen van het volume, of systeemtoetsen voor het starten van een programma als je browser of e-mailprogramma. In zulke situaties kun je de uitgebreidere HID-Project-bibliotheek gebruiken. Als voorbeeld gebruiken we deze bibliotheek in combinatie met een draaiknop (ofwel rotary encoder). Ze worden onder meer gebruikt om de rotatiesnelheid vast te leggen. Je kunt ze ook prima voor een volumeregeling gebruiken, wat we hier gaan doen.

De draaiknop kun je oneindig in beide richtingen draaien, waarbij linksom en rechtsom in feite aparte toetsaanslagen zijn. Je kunt de rotary encoder bovendien indrukken zoals een druktoets, wat we hier gebruiken om het volume op stil te zetten. Om de bibliotheek toe te voegen ga je in Arduino naar Schets / Bibliotheek gebruiken / Bibliotheken Beheren. Zoek de bibliotheek HID-Project op en kies Installeren.

©PXimport

09 Volumeregelaar toevoegen

We gaan pinnen 5, 6 en 7 op de microcontroller gebruiken. De draaiknop heeft aan één kant drie pinnen. De middelste sluit je aan op ground. De andere twee pinnen zijn voor de draaiactie, respectievelijk linksom en rechtsom. Die sluit je aan op pin 5 en 6. Aan de andere kant zie je twee pinnen voor de drukactie. Hiervan sluit je er weer één aan op ground en de andere op pin 7. Maak een nieuw bestand in Arduino met Bestand / Nieuw. In het programma voegen we eerst de bibliotheek toe en definiëren we de pinnen met de buttons:

#include "HID-Project.h"

#define VOLBUT_UP 6

#define VOLBUT_DOWN 5

#define VOLBUT_PUSH 7

In setup() stellen we de pinnen in als input en maken ze hoog met één commando. Daarna starten we de Consumer-API met Consumer.begin(). Deze API zorgt dat je bijvoorbeeld een mediaspeler kunt bedienen of de browser en andere speciale programma’s kunt openen.

void setup() {

pinMode(VOLBUT_UP, INPUT_PULLUP);

pinMode(VOLBUT_DOWN, INPUT_PULLUP);

pinMode(VOLBUT_PUSH, INPUT_PULLUP);

Consumer.begin();

}

In de lus reageren we op het laag zijn van een input, waarbij we afhankelijk van de button het volume verhogen, verlagen of op stil zetten. Met de vertraging (delay) zul je wat moeten experimenteren.

void loop() {

if (!digitalRead(VOLBUT_UP)) {

Consumer.write(MEDIA_VOL_UP);

delay(120);

}

if (!digitalRead(VOLBUT_DOWN)) {

Consumer.write(MEDIA_VOL_DOWN);

delay(120);

}

if (!digitalRead(VOLBUT_PUSH)) {

Consumer.write(MEDIA_VOL_MUTE);

delay(250);

}

}

©PXimport

10 Andere functies

In het voorbeeld gebruiken we de Consumer-API die we aanroepen met Consumer.begin(). Maar de bibliotheek biedt ook andere opties. Zo kun je op vergelijkbare wijze de zogeheten System-API gebruiken voor systeemfuncties als het afsluiten of laten slapen of ontwaken van je systeem. Verder heb je de Gamepad-API voor het emuleren van een spelcontroller. Ook kun je de Keyboard-API gebruiken, dat eigenlijk een verbeterde versie is van de Keyboard-bibliotheek van Arduino, die ook ongeveer hetzelfde werkt.

In Arduino kun je diverse voorbeelden ophalen via Bestand / Voorbeelden / HID-Project. Wil je een uitgebreidere gamecontroller bouwen, dan is de Arduino Joystick-bibliotheek een aanrader, deze vind je hier. Na het downloaden van het zip-bestand kun je deze aan Arduino toevoegen via Schets / Bibliotheek gebruiken / Voeg .ZIP bibliotheek toe. Open dan bijvoorbeeld Bestand / Voorbeelden / Joystick / GamepadExample of een van de andere voorbeelden. Je zult zien dat er veel overeenkomsten zijn met de in dit artikel gebruikte bibliotheken.

©PXimport

Te veel knoppen … te weinig ingangen?

Wil je een groot aantal knoppen aansluiten, dan kom je al snel ingangen te kort. Gelukkig kun je via een zogenaamde matrix veel meer toetsen aansluiten. Hierbij maak je rijen en kolommen, bijvoorbeeld 4×4 of 5×5. Heb je toch te weinig ingangen? Met een IO-expander kun je uitbreiden. Zo’n module werkt via de IC2-bus die je ook op deze microcontroller vindt. Een voorbeeld is de SX1509. Met slechts twee draden (voor de IC2-bus) krijg je er 16 digitale ingangen bij en daarmee kun je tot 64 buttons in een 8×8-matrix toevoegen!

▼ 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
▼ Volgende artikel
Het kan nog net! Overstappen zorgverzekering 2026: lagere premie én cashback
© ID.nl
Zekerheid & gemak

Het kan nog net! Overstappen zorgverzekering 2026: lagere premie én cashback

Wil je overstappen van zorgverzekering? Dat kan nog net! Wanneer je overstapt via CashbackXL profiteer je dubbel: je bespaart op de premie én ontvangt cashback-punten die je kunt inwisselen voor keiharde euro's. Kijk, zo ga je nog eens lekker 2026 in!

Tot en met 31 december heb je de tijd om je huidige zorgverzekering op te zeggen en een nieuwe te kiezen. Nú is dus het moment om actie te ondernemen. Er valt vaak honderden euro's per jaar te besparen door simpelweg te vergelijken. Maar waarom zou je genoegen nemen met alléén een lagere premie?

Punten scoren (en cashen!)

Als je via CashbackXL overstapt, ontvang je voor elke nieuw afgesloten zorgverzekering bij de grote vergelijkers Poliswijzer.nl, Zorgkiezer en Overstappen.nl 2.750 punten. Deze punten zijn geld waard: 1 punt staat gelijk aan € 0,01. Dit betekent dat je per overstap € 27,50 extra voordeel pakt.
Of je nu kiest voor a.s.r., VGZ Bewuzt, OHRA, Zilveren Kruis Ziezo of een van de vele andere verzekeraars uit de lijst: als je via de juiste vergelijker overstapt, pak je die bonus mee. In onderstaand overzicht zie je bij welke vergelijker je moet zijn voor een specifieke verzekeraar.

💡Slimme tip: zo krijg je meerdere cashbacks op één adres

Stappen jij en je partner allebei over? Let dan even goed op. Normaal gesproken geldt de regel: één cashback per vergelijker, per adres/gezin. Maar daar is een slimme oplossing voor. Wil je voor meerdere gezinsleden een cashback ontvangen? Sluit de verzekeringen dan af bij verschillende vergelijkers.

Voorbeeld: Jij sluit je nieuwe verzekering af via Poliswijzer.nl (2.750 punten) en je partner sluit af via Overstappen.nl (ook 2.750 punten). Zo ontvang je op hetzelfde adres twee keer de cashback!

Belangrijk om te weten: geduld wordt beloond

Overstappen doe je vóór 1 januari, maar de controle duurt even. Zorgverzekeraars keuren de aanvragen namelijk pas definitief in april 2026. Het duurt dus even voordat de punten in je account op 'goedgekeurd' staan, maar dat is het wachten waard.

Voorwaarden puntenactie zorgverzekering 2026

Wil je in aanmerking komen voor deze actie, lees dan onderstaande voorwaarden even aandachtig door:

• Je moet 18 jaar of ouder zijn.
• Het moet gaan om een nieuwe verzekering (als je verlengt bij je huidige verzekeraar (ook al sluit je een andersoortige verzekering af) dan geldt dat hier niet als overstappen.
• Alle genoemde cashbacks gelden altijd voor elk eigen risico.

Zo werkt de zorgverzekerings-cashback

Wil jij 2026 financieel goed beginnen? Volg dan deze stappen voor de perfecte tracking:

1. Maak een account aan op CashbackXL.
2. Klik bovenaan in de blauwe balk op Zorgverzekering 2026.
3. Bekijk in het overzicht welke verzekeraar via welke vergelijker (Poliswijzer, Zorgkiezer of Overstappen) beschikbaar is.
4. Klik op de link en start de vergelijking. Let op: accepteer alle cookies op de site van de vergelijker en zet je adblocker uit. Dit is noodzakelijk om de punten te kunnen registreren.
5. Sluit de verzekering af.
6. Je aankoop wordt geregistreerd en na goedkeuring in april 2026 kun je jouw punten verzilveren in euro's.

Waarom je CashbackXL kunt vertrouwen

CashbackXL is de grootste cashback-site van Nederland. De site registreert 97 procent van alle aankopen succesvol en scoort op Kiyoh een klantwaardering van een 9,0. Je ontvangt je uitbetaling maandelijks (of wanneer jij wilt, zonder minimumbedrag), krijgt de hoogste cashback-percentages en kunt terecht bij een toegankelijke klantenservice.