Apr 16, 2016 | By Alec
Plugging a 3D printer into your USB port and pressing print – it sounds easy, but complex hardware setups like 3D printers just aren’t as ‘plug-and-play’ as a keyboard or a mouse. But that could fortunately change in the near future, as two Google engineers have just submitted a proposal for WebUSB API, which would allow hardware developers to safely and automatically configure USB-based devices through webpages (instead of through custom software). This could greatly simplify the process of installing and setting up equipment – perfect for complex USB-based devices such as 3D printers.
This interesting proposal has come out of the minds of Google developers Reilly Grant and Ken Rockot, who have recently uploaded their suggestions to the World Wide Web Consortium's Web Incubator Community Group (W3C WICG). It is still, however, a work-in-progress in every sense of the term. Grant and Rockot have already said that every WICG member is invited to contribute to this intriguing concept.
Now you might be thinking: surely plugging a device into a USB port and getting it to work isn’t so difficult? In a way, you are correct. For many common forms of hardware, like keyboards and webcams, it is indeed already quite easy for browsers and web applications to access those devices. “Today when you connect a device to your computer, you hope that somehow it will find the right driver and it will just work. For lots of devices it does, because there are standardized drivers for things like keyboards, mice, hard drives and webcams built into the operating system,” the developers explain. These connections are made by implementing one of about a dozen standard device classes (provided by the operating system developer) which specify a way for data formats to support the hardware’s features.
Unfortunately, specific classes do not yet exist for the next generation of gadgets, such as 3D printers and VR goggles. “These devices require hardware vendors to write native drivers and SDKs in order for developers to take advantage of them and this native code prevents these devices from being used by the web,” Grant and Rockot say. Hardware developers and users have no choice but to wait and hope that a specific piece of hardware becomes popular enough to warrant the creation of a separate class.
This is essentially the problem that the WebUSB API seeks to overcome. It does so by providing a way for hardware developers to safely expose USB-based devices to the web. “It provides an API familiar to developers who have used existing native USB libraries and exposes the device interfaces defined by existing specifications. With this API hardware manufacturers will have the ability to build cross-platform JavaScript SDKs for their devices,” the Google developers explain. “This will be good for the web because, instead of waiting for a new kind of device to be popular enough for browsers to provide a specific API, new and innovative hardware can be built for the web from day one.” This would obviously make devices far more appealing to many users.
Through this proposed WebUSB, a supporting website could thus install firmware updates and perform other basic tasks, and simply take a lot of work out of the hands of the users and providers. Importantly, it will do so safely. According to the Google developers, the API will come with origin protections that will put restrictions on the number of domains a device can access and from where it can receive updates. Because USB devices and computers automatically connect, this safety net will ensure that the device will not request data from other (possibly malicious) domains. This system, they say, will resemble cross origin resource sharing (CORS) protections commonly used for data transfers.
This is particularly good news for 3D printer developers and users. Instead of installing software drivers that configure and calibrate the 3D printer, a developer could simply take care of the whole process automatically by creating a web application. “WebUSB thus replaces native code and native SDKs with cross-platform hardware support and web-ready libraries,” the developers say. If a website owner wants to embed 3D printing support, they could simply incorporate a hidden iframe with setup code that the 3D printer manufacturer provides. This would enable JavaScript commands to be sent to the 3D printer, provided the user gives permission. Prepping a 3D printer could become easier than ever.
Posted in 3D Printing Application
Maybe you also like:
- New 3D Printed Pip-boy 3000 Mark II hits Instructables with more bells and whistles than ever
- GE’s $200M ‘Brilliant’ 3D printing factory in Pune, India to develop critical end-use parts
- Grab a coffee with Stephen Fry thanks to 3D printed coffee art
- Roger Bacon Eyewear: An eyewear 3D printed to perfectly fit your face, now coming to US market
- Noordung's e-bike features a novel 3D printed powerbox that lets you listen to music while you ride
- Sculpteo unveils four 3D printing materials used in super-fast CLIP process
- PyroGenesis to set up independent company for its 3D printable metal powder production department
- RZR: redesigning the classic men's razor with 3D printing
- Havenlabs to help US war veterans with flexible & customizable 3D printed prosthetics
The claim of connecting "securely" is the key difference.
Adam wrote at 4/17/2016 6:37:56 PM:
What? WebUSB was proposed by Mozilla in 2011 as a part of its WebAPI! Google it.