Chrome Browser + 8051 Microcontrollers

in STEMGeeks2 years ago

IKUJYHTGRFDXS.pngThese days I don't often see actual improvements to software. Most "improvements" just add more bloat atop the already existing bloat; however, the Chrome browser has a really neat ability to use Bluetooth and serial ports connected to your computer.

I've used this to do some interesting (at least to me) things, such as remotely connect to a computer at a Boy Scout pinewood derby race and implement a simple browser-based timing interface that communicates with the track's timers via RS-232 and displays the results. From there, it's an easy task to export the results to a spreadsheet or further process the times using Javascript.

Something that interests me more is figuring out how to use this to extend embedded systems based on 40-year old microcontroller cores (Silicon Labs 8051s in particular). Chrome allows the microcontroller to connect to the computer via Bluetooth, and a presentation system written in Javascript handles converting the terminal-based communications from the 8051 into a GUI for the user.

I have about 8,051 ideas for how this can be used, including allowing control of an embedded system from across the planet, without requiring the embedded system to have any special firmware, or requiring the user to download anything but a browser many people already have installed. Additionally, it makes embedded systems accessible from mobile devices without having to go through the bass-ackwards and convoluted chore of creating mobile apps.

This also compliments an already existing piece of the operating system I've written to enable devices like 8051s to share resources such as flash and RAM, as well as allow firmware to access ports and other hardware on remote devices as if they were on the 8051 where the firmware is executing. By writing a node for this system in Javascript and connecting to the 8051, the computer running Chrome can do all the usual things but also act as a vast array of secondary or tertiary storage, perform complex calculations, and so on.

Finally, another interesting application is to perform automated configuration/troubleshooting/updating of an embedded system via the embedded system's terminal and using Javascript in Chrome on the laptop, desktop, or even under the direction of a server running PHP. And again, the wonderful thing is no additional software is required on any of the systems, as long as Chrome is already installed.

In the screenshot above, the "host" system automatically queried the embedded system once it was connected. The host asked for the number of output ports on the embedded system, and received a reply of 4. The host then requested the status of each port, and updated the GUI accordingly. Of course, the HTML/JS/CSS is still being worked on, and I'm hardly a guru at those two. For every item I add and get working, it seems I break something else. But, that's how things go when you rarely use a language.

Sort:  
 2 years ago 

I didn’t even know Chrome could do that.

!discovery 43

Glad the post gave you some new info!

Hello @tacticalcadaver

This is a nice resourceful post. Thanks for giving us some great insights about the chrome browser. This is the kind of post we appreciate in the Gitplait community.

Thanks again 😊👍

Your post has been curated with @gitplait community account because this is the kind of publications we like to see in our community.

Join our Community on Hive and Chat with us on Discord.

[Gitplait-Team]


This post was shared and voted inside the discord by the curators team of discovery-it
Join our community! hive-193212
Discovery-it is also a Witness, vote for us here

Congratulations @tacticalcadaver! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You received more than 900 upvotes. Your next target is to reach 1000 upvotes.

You can view your badges on your board And compare to others on the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Support the HiveBuzz project. Vote for our proposal!