ID.nl logo
Wat zijn WebUSB en Web Bluetooth?
© Reshift Digital
Huis

Wat zijn WebUSB en Web Bluetooth?

WebUSB en Web Bluetooth zijn twee gelijkaardige standaarden die webapplicaties toegang geven tot apparaten via respectievelijk usb en bluetooth. Het grote voordeel: je dient geen speciale software te installeren voor toegang tot die apparaten. Het nadeel: voorlopig werkt het alleen nog maar in Chrome.

Stel je voor: je hebt een leuk nieuw apparaatje gekocht, zoals een rekenmachine of een smartwatch, en je wilt de firmware updaten om van de nieuwste functies gebruik te maken of een bug op te lossen. Maar de fabrikant levert alleen een updateprogramma mee voor Windows, en toevallig gebruik je Linux of macOS. Wat nu? Of erger: wat als het om een randapparaat gaat waarvan de fabrikant alleen maar drivers voor Windows voorziet, en je het niet eens op andere besturingssystemen kunt gebruiken?

En dat terwijl de meesten van ons een groot deel van hun tijd in de webbrowser doorbrengen. Waarom zouden we niet die webbrowser rechtstreeks toegang kunnen geven tot apparaten via usb of bluetooth, zodat je geen drivers of updateprogramma’s specifiek voor elk besturingssysteem nodig hebt? Dat exact is de insteek van WebUSB en Web Bluetooth.

WebUSB

WebUSB is volgens de specificatie een api die een manier aanbiedt om usb-apparaten veilig met het web te verbinden. Ze hergebruikt de bestaande usb-afspraken, maar past die aan de ons vertrouwde interface van de webbrowser aan. Het is dan ook een javascript-api. Dat maakt WebUSB onmiddellijk ook cross-platform, en in principe kan iedereen met wat kennis van webontwikkeling apparaten aanspreken via WebUSB.

WebUSB is nog geen officiële standaard van het World Wide Web Consortium (W3C). Ontwikkelaars van Google hebben WebUSB in 2016 voorgesteld aan de Web Incubator Community Group (WICG) van het W3C, een platform voor experimentele webtechnologieën. Sinds Chrome 61 is WebUSB-ondersteuning ook in de webbrowser van Google ingebouwd. Andere webbrowsers zijn voorlopig nog niet overstag gegaan, zoals je bij de website Can I use kunt zien.

©PXimport

Je webbrowser die toegang tot usb-apparaten krijgt, is dat niet vragen om beveiligingsproblemen? Uiteraard hebben de ontwikkelaars daarover nagedacht. Zo moet een webapp altijd toestemming van de gebruiker krijgen voordat ze toegang krijgt tot een specifiek usb-apparaat.

Bovendien krijgt je browser alleen toegang tot apparaten die specifiek aangeven dat ze WebUSB ondersteunen. Je webbrowser kan dus niet zomaar aan de bestanden op je usb-stick, je externe usb-toetsenbord afluisteren of het beeld van je usb-webcam bespioneren. Uit een analyse door F-Secure in 2017 bleek dat WebUSB met aandacht voor beveiliging is ontwikkeld.

Firmware-updates

WebUSB is nog niet echt ingeburgerd. Het enige apparaat met WebUSB-ondersteuning dat we zelf al in handen hebben gehad, is de rekenmachine van NumWorks: die laat toe om de firmware te upgraden van in je webbrowser zonder dat je je zorgen hoeft te maken over drivers en firmwaretools.

Maar je kunt zelf ook WebUSB in je eigen projecten gebruiken. Zo is er een Arduino-bibliotheek voor WebUSB. Hiermee kun je in je eigen Arduino-sketch met de webbrowser communiceren. Let op: dit vereist dat je zowel html- en css-code voor de kant van de computer schrijft als Arduino-code voor de kant van het Arduino-bordje dat je via usb aansluit.

©PXimport

Web Bluetooth

Een vergelijkbare standaard, eveneens door Google uitgebracht, is Web Bluetooth. Die laat webapps toe om met apparaten in de buurt te communiceren via bluetooth. En net zoals bij WebUSB wordt ook hier gewoon gebruikgemaakt van bestaande afspraken, in dit geval van bluetooth low-energy (BLE).

Elk BLE-apparaat biedt specifieke diensten (services) aan met eigenschappen (characteristics). Er bestaan standaardprofielen voor bijvoorbeeld hartslagmeters, temperatuursensoren enzovoort, en sommige producenten implementeren hun propriëtaire profielen in hun apparaten, die dan bijvoorbeeld met hun eigen mobiele apps kunnen communiceren. Dankzij Web Bluetooth kun je communicatie met BLE-apparaten in een webapp aanbieden, die op alle platforms werkt, zolang het maar in Chrome is.

©PXimport

Firmware-upgrades via bluetooth zijn extra handig, omdat het vaak om apparaatjes gaat die klein zijn of normaal niet zo gemakkelijk via usb aan te sluiten zijn. Bij de via javascript te programmeren Espruino Puck.js bijvoorbeeld kun je via Web Bluetooth je code naar het apparaatje uploaden.

Verder heb je ook het project web-bluetooth-dfu waarmee je de firmware van apparaten met chips van Nordic Semiconductor kunt upgraden. Het gaat dan om de Nordic nRF51822-, nRF52832- of nRF52840-chips. Die zitten onder andere in de eerste versie van de Puck.js, maar ook in de RuuviTag-bluetooth-sensor.

Onbegrensde mogelijkheden

Meer nog dan met WebUSB zijn met Web Bluetooth de mogelijkheden onbegrensd. Talloze gadgets ondersteunen bluetooth, en die zijn nu allemaal via webapps aan te sturen als je een beetje van html en javascript kent en de bluetooth-eigenschappen van het apparaatje kunt ontcijferen. De Web Bluetooth Community Group heeft enkele leuke demo’s op zijn GitHub-pagina staan, waaronder het aansturen van een bluetooth-labelprinter, speelgoedautootjes en uiteraard het uitlezen van een hartslagsensor.

Net zoals bij WebUSB overigens is ook hier over de beveiliging nagedacht: een webapp die toegang tot een bluetooth-apparaat wil, toont eerst altijd een lijst met gevonden bluetooth-apparaten, en de gebruiker dient aan te geven tot welke apparaat de webapp toegang krijgt. De bluetooth-GATT-api is bovendien vrij klein, zodat het aanvalsoppervlak beperkt blijft.

Volgende stap

Na WebUSB en Web Bluetooth staat er al een volgende technologie te wachten. Google heeft in Chrome versie 81 technologie toegevoegd om op een Android-toestel nfc-tags uit te lezen in de webbrowser. Het gaat om Web NFC. Je kunt hiermee in een javascript-api boodschappen van nfc-tags uitlezen of boodschappen naar nfc-tags schrijven.

Het is voorlopig nog een experimentele functie die je expliciet moet inschakelen. Dat kan met de optie #experimental-web-platform-features in chrome://flags. En zo krijgen webapplicaties meer en meer toegang tot hardware op een platformonafhankelijke manier. Als nu Firefox nog zou volgen, zou het helemaal handig zijn.

▼ Volgende artikel
God of War-studio onthult komende zomer mogelijk nieuwe game
Huis

God of War-studio onthult komende zomer mogelijk nieuwe game

Sony's Santa Monica Studio, de ontwikkelaar van de God of War-games, zou aankomende zomer wel eens een nieuwe game kunnen onthullen.

Daar lijkt een opmerking van God of War-acteur Christopher Judge naar te hinten. Judge speelt de rol van Kratos in de moderne God of War-spellen, en werd onlangs aan de tand gevoeld door een streamer op Fan Expo in Vancouver - al lijkt het er op dat Judge niet doorhad dat hij werd opgenomen.

Daar werd hij gevraagd naar de aankomende remake van de God of War-trilogie. Deze remake werd vorige week tijdens de State of Play-uitzending aangekondigd. Duidelijk is dat TC Carson daarin de rol van Kratos gaat vertolken, aangezien hij die rol ook in de trilogie speelde voordat Judge het stokje overnam.

In gesprek met de streamer liet Judge dan ook weten dat hij niet voorkomt in de remake van de trilogie. Hij meldt echter wel dat de remake een "nieuw vechtsysteem" zal bevatten. Daarna opperde hij het volgende: "Eind deze zomer ga je waarschijnlijk horen over wat we aan het doen zijn."

De nieuwe Santa Monica Studio-game

Hoewel hij Santa Monica Studio niet bij naam noemt, is het gezien de context van het gesprek mogelijk dat Judge het over een nieuwe game van die ontwikkelaar had waar hij wederom een rol in heeft.

Cory Barlog, de creative director van Santa Monica Studio, werkt volgens berichten al enige tijd aan een nog onaangekondigd project. Een betrouwbare insider liet onlangs doorschemeren dat de game in 2027 uit zal komen en dat het grootste gedeelte van de studio aan dit nieuwe spel werkt. De remake van de God of War-trilogie zou zich nog maar in pre-productie bevinden.

Volgens eerdere geruchten zal de nieuwe Santa Monica Studio-game geen compleet nieuwe IP betreffen, maar wel zo aanvoelen. In combinatie met Judge's recente opmerking speculeren fans dat het mogelijk om een nieuwe God of War-game gaat met een compleet andere setting - net zoals het in 2018 verschenen God of War geheel anders aanvoelde dan de trilogie die daarvoor kwam.

Tv-serie gebaseerd op God of War

Ondertussen wordt er hard gewerkt aan een tv-serie gebaseerd op God of War, waarvan de opnames als het goed is deze maand van start gaan. De serie komt op een nog onbekend moment naar Amazon Prime Video.

Afgelopen januari werd al onthuld wie de rol van hoofdpersonage Kratos gaat spelen. Dat is Ryan Hurst, bekend voor zijn rol in Sons of Anarchy. In de game God of War Ragnarök speelde hij daarnaast de rol van Thor. In de tv-serie zal hij dus van rol wisselen. Callum Vinson gaat de rol van Kratos' zoon Atreus spelen.

▼ Volgende artikel
Waar voor je geld: 5 gamingmuizen voor minder dan 120 euro
© ID.nl
Huis

Waar voor je geld: 5 gamingmuizen voor minder dan 120 euro

Ben je fanatiek gamer en doe je dat op een desktopcomputer of laptop? Dan mag een goede gamingmuis natuurlijk niet ontbreken. Wij vonden op Kieskeurig.nl goede gamingmuizen voor minder dan 100 euro.

Logitech G Pro X

Logitech G Pro X Superlight is een draadloze muis die communiceert via een meegeleverde 2.4 GHz USB-ontvanger met je Windows-computer. Binnenin bevindt zich een Hero 25K-sensor, waarmee je de gevoeligheid kunt instellen tot een maximum van 25.600 dpi. Je laadt de ingebouwde accu op via de meegeleverde micro-USB-kabel. Wanneer de batterij volledig is opgeladen, gebruik je het apparaat tot 70 uur onafgebroken voordat je deze weer op de stroom moet aansluiten. Het ontwerp weegt 63 gram en heeft een symmetrische vorm, al bevinden de twee duimknoppen zich uitsluitend aan de linkerkant.

In totaal heb je de beschikking over vijf programmeerbare knoppen: de linker- en rechtermuisknop, een klikbaar scrollwiel en de twee genoemde zijknoppen. Aan de onderkant van de behuizing zitten teflon-voetjes (PTFE) die contact maken met de ondergrond. Via de Logitech G Hub software op je pc pas je de instellingen van de DPI en de knoppen aan. De muis heeft een polling rate van 1000 Hz, wat betekent dat de positie duizend keer per seconde aan het systeem wordt doorgegeven.

Gewicht: 63 gram
Programmeerbare knoppen: 5
Sensor: 25.600 dpi

Razer DeathAdder V3

Razer DeathAdder V3 verbind je met je computer door middel van een vaste, gevlochten kabel met een USB-A-aansluiting. Deze muis heeft een asymmetrisch ontwerp dat specifiek is gevormd voor rechtshandig gebruik. Onder de linker- en rechtermuisknop zijn optische schakelaars geïnstalleerd die door middel van een lichtsignaal registreren wanneer je klikt. De interne Focus Pro 30K optische sensor ondersteunt resoluties tot maximaal 30.000 dpi.

Je bedient in totaal zes knoppen, waaronder een speciale knop aan de onderkant waarmee je schakelt tussen verschillende, vooraf ingestelde DPI-profielen zonder dat je de software hoeft te openen. Verder ondersteunt het model een maximale polling rate van 8000 Hz. Dit houdt in dat de muis vaker per seconde gegevens naar je Windows-pc stuurt dan standaardmodellen. Het gewicht van de behuizing bedraagt 59 gram. Om de functies van de knoppen toe te wijzen of macro's in te stellen, gebruik je de Razer Synapse 3-software. Je slaat deze instellingen vervolgens direct op in het ingebouwde geheugen van het invoerapparaat, zodat ze behouden blijven als je hem op een ander systeem aansluit.

Gewicht: 59 gram
Programmeerbare knoppen: 6
Sensor: 30.000 dpi

SteelSeries Rival 5

SteelSeries Rival 5 beschikt over negen afzonderlijk programmeerbare knoppen. Aan de linkerzijde van de behuizing vind je naast de reguliere knoppen ook een tuimelschakelaar die je zowel omhoog als omlaag kunt bewegen, plus een extra knop aan de voorkant van het duimgedeelte. Het apparaat is ontworpen voor rechtshandigen en weegt 85 gram. De registratie van je bewegingen gebeurt via een TrueMove Air optische sensor.

Deze sensor heeft een maximaal bereik van 18.000 dpi en een registratiesnelheid van 400 IPS. Je sluit het apparaat aan op een vrije USB-poort van je Windows-systeem via de vaste, met microvezel beklede kabel. De behuizing bevat tien verlichtingszones die onafhankelijk van elkaar in te stellen zijn via de SteelSeries GG-software. In deze applicatie pas je ook de CPI-waarden en de toewijzing van de negen knoppen aan. De hoofdschakelaars onder de muisknoppen zijn ontworpen met een IP54-certificering, wat inhoudt dat ze afgeschermd zijn tegen de invoer van stof en opspattend water. Er zijn grote glijders van PTFE op de onderkant gemonteerd voor de verplaatsing over een muismat.

Gewicht: 85 gram
Programmeerbare knoppen: 9
Sensor: 18.000 dpi

Corsair M65 RGB Ultra

Corsair M65 RGB Ultra is opgebouwd rondom een frame van geanodiseerd aluminium. Aan de onderkant van dit frame bevinden zich drie uitsparingen waar je meegeleverde gewichtjes in kunt plaatsen. Hiermee verander je het standaardgewicht van 97 gram naar maximaal 115 gram en pas je het zwaartepunt van het apparaat aan. Een opvallend kenmerk aan de linkerzijkant is de zogeheten 'sniper-knop'. Wanneer je deze ingedrukt houdt, verlaagt de muis tijdelijk de DPI-waarde, wat de cursorbeweging in Windows vertraagt.

In totaal zijn er acht programmeerbare knoppen aanwezig. De optische Marksman-sensor registreert bewegingen tot een instelbaar maximum van 26.000 dpi. De verbinding verloopt via een vaste USB-kabel en het apparaat maakt gebruik van AXON-technologie. Deze technologie maakt een polling rate tot 8000 Hz mogelijk. Binnenin is een zes-assige gyroscoop en versnellingsmeter ingebouwd. Met deze sensoren meet het apparaat de fysieke kanteling, waardoor je via de iCUE-software acties kunt koppelen aan het optillen of scheefhouden van de muis.

Gewicht: 97 gram / aanpasbaar tot 115 gram
Programmeerbare knoppen: 8
Sensor: 26.000 dpi

Glorious Model O 2 Wired

Glorious Model O 2 Wired heeft een gesloten voorkant, maar is op de handpalmsteun en de onderzijde voorzien van uitsparingen in een honingraatpatroon. Door deze fysieke structuur te gebruiken, is het totale gewicht van de behuizing op 59 gram gehouden. Aan de voorzijde bevindt zich een vaste, flexibele kabel met een standaard USB-A-stekker voor in je pc. Het apparaat maakt gebruik van een BAMF 2.0 optische sensor. Je past de resolutie van deze sensor handmatig aan tot een bovengrens van 26.000 dpi, waarbij snelheden tot 650 IPS worden geregistreerd.

De linker- en rechtermuisknop zijn voorzien van mechanische schakelaars. Bovenop de muis, direct achter het scrollwiel, bevindt zich een knop waarmee je stapsgewijs de DPI-waarde wijzigt. De actuele stand lees je af aan een indicator aan de onderkant. Via de Glorious Core-software pas je in Windows zaken aan zoals de 'lift-off distance', de polling rate (tot 1000 Hz) en de reactietijd van de knoppen. Er zijn in totaal zes knoppen in de behuizing verwerkt.

Gewicht: 59 gram
Programmeerbare knoppen: 6
Sensor: 26.000 dpi