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:


Egfrow wrote at 4/18/2016 10:22:25 PM:

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.

Leave a comment:

Your Name:


Subscribe us to

3ders.org Feeds 3ders.org twitter 3ders.org facebook   

About 3Ders.org

3Ders.org provides the latest news about 3D printing technology and 3D printers. We are now seven years old and have around 1.5 million unique visitors per month.

News Archive