
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
browser-serialport
Advanced tools
Robots in the browser. Just like node-serialport but for browser/chrome apps.
Robots in the browser. Just like node-serialport but for browser apps.
Nodebots are awesome but HTML5 apps have access to a lot of APIs that make sense for robotics like the GamepadAPI, WebRTC Video and Data, Web Speech API, etc. Also you get a nice GUI and its easier to run. I have also made a fork of Johnny-Five to work with Browserify as well by modifying it's dependancy Firmata to use browser-serialport.
You will not be able to add this to your normal website.
This library only works in a Chrome Packaged App as this is the only way to get access to the serial ports API in the browser. Incidentally, since NW.js (a.k.a. node-webkit) now fully supports the Chrome Packaged App platform, this means you can also use this library in NW.js v0.13+.
If you want help making your first Chrome App, read the "Create Your First App" tutorial.
There is currently no Firefox extension support but that might come soon if possible.
npm install browser-serialport
Opening a serial port:
var SerialPort = require("browser-serialport").SerialPort
var serialPort = new SerialPort("/dev/tty-usbserial1", {
baudrate: 57600
});
When opening a serial port, you can specify (in this order).
The options object allows you to pass named options to the serial port during initialization. The valid attributes for the options object are the following:
Note, we have added support for either all lowercase OR camelcase of the options (thanks @jagautier), use whichever style you prefer.
You MUST wait for the open event to be emitted before reading/writing to the serial port. The open happens asynchronously so installing 'data' listeners and writing before the open event might result in... nothing at all.
Assuming you are connected to a serial console, you would for example:
serialPort.on("open", function () {
console.log('open');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
});
serialPort.write("ls\n", function(err, results) {
console.log('err ' + err);
console.log('results ' + results);
});
});
You can also call the open function, in this case instanciate the serialport with an additional flag.
var SerialPort = require("browser-serialport").SerialPort
var serialPort = new SerialPort("/dev/tty-usbserial1", {
baudrate: 57600
}, false); // this is the openImmediately flag [default is true]
serialPort.open(function (error) {
if ( error ) {
console.log('failed to open: '+error);
} else {
console.log('open');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
});
serialPort.write("ls\n", function(err, results) {
console.log('err ' + err);
console.log('results ' + results);
});
}
});
You can also list the ports along with some metadata as well.
var serialPort = require("browser-serialport");
serialPort.list(function (err, ports) {
ports.forEach(function(port) {
console.log(port.comName);
console.log(port.pnpId);
console.log(port.manufacturer);
});
});
Browser-serialport doesn't as of 2.0.0 support parsers.
You can get updates of new data from the Serial Port as follows:
serialPort.on("data", function (data) {
sys.puts("here: "+data);
});
You can write to the serial port by sending a string or buffer to the write method as follows:
serialPort.write("OMG IT WORKS\r");
Enjoy and do cool things with this code.
FAQs
Robots in the browser. Just like node-serialport but for browser/chrome apps.
The npm package browser-serialport receives a total of 1,465 weekly downloads. As such, browser-serialport popularity was classified as popular.
We found that browser-serialport demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.