Not to belittle your project, I'm all for hackers hacking on interesting projects, but I really am confused why such an API exists within the browser. The MDN page talks about browser connected 3D printers and boards like the ESP32, but boggles my mind that time and energy was expended to enable this.
No longer (it now also runs Android* and certain Linux applications), but at the time Google proposed Web(MIDI/USB/Bluetooth) ChromeOS was only a browser-based operating system.
* Works on their x86 models, but depending on the specific application it's slower due to translation. Android apps runs best on ARM models.
One of the big benefits of web apps, is that they are truly portable. I can run my app on any machine with a relatively up-to-date web browser. Like it or not, this is leading to more and more serious work being done in the browser. Aren't APIs like this almost inevitable?
I really, honestly hope that this by some miracle will not happen. The "modern web" is the most bloated, slow and inefficient mess imaginable. Not knocking the browsers themselves, those are marvels of engineering, but yeah.
The value proposition of this is pretty great, actually, and the implementation of it can be rather simple even though the actual interfaces underneath are rather fucked up historically because at it's core it's merely just getting a stream of bytes in/out.
Ah, perfect. Was playing with Toit last Friday and it took me some time to successfully flash my device (for some reason could not easily find the instructions).
I also shortened and destroyed my ESP32 (while not paying enough attention :D) and more are coming this week, so will give this a try!
They're going to have to implement this sooner or later if they want to remain relevant. More and more happens in the browser, regardless of whether they like it or not.
Yes, as a FF user it’s becoming more and more clear that FF is falling behind on implementing new APIs. It’s frustrating having to keep Chrome around to load certain web apps.
This seems like the perfect thing to implement as a browser addon. If you think you need it, install it. Otherwise, the code doesn't touch your install.
Much like the container tabs extension, in terms of requiring an addon for certain functionality. Or, if mozilla doesn't do it themselves, a (horrifying though warning) third-party-extension with an external helper application to connect to the serial device, and a API polyfill injected into every page.
I would say the same thing for using a webcam in the browser or accessing the filesystem. But yet everyone use it today and a world without it is unimaginable.
Wrapping functionality with the right security is key, but I browsers in general is already doing a good job in that regard IMO.
Yes, but I really don't see the usecase for letting something potentially remote and untrusted to a serial device. How many people do actually need that? (Limited) filesystem access for web applications is also kind of dubious, outside of the trusty upload form.
28 comments
[ 0.18 ms ] story [ 70.1 ms ] threadHere to show a little library that makes it easier to write custom JavaScript code that flashes ESP32s.
The library uses the new WebSerial API available in Edge and Chrome browsers.
* Works on their x86 models, but depending on the specific application it's slower due to translation. Android apps runs best on ARM models.
- ChromeOS
- Project Fugu
- Microsoft collaboration regarding Chrome and PWA adoption
Edge having better support for new features than firefox.. Truly a brave new world
The whole platform looks really interesting.
Consider:
> Show HN: Trick people into flashing their ESP32s with your firmware by visiting your web page
You can try a demo here: https://unjavascripter-web-serial-example.glitch.me/
I ran into this specific API following the great blues wireless tutorial (cell connectivity cards and dev cards with ESP32 support) which only works in Chrome https://dev.blues.io/get-started/quickstart/notecarrier-af/
Much like the container tabs extension, in terms of requiring an addon for certain functionality. Or, if mozilla doesn't do it themselves, a (horrifying though warning) third-party-extension with an external helper application to connect to the serial device, and a API polyfill injected into every page.
Wrapping functionality with the right security is key, but I browsers in general is already doing a good job in that regard IMO.