Basic implementation of the Ymodem-protocol as used in Particle devices. Currently created and tested only to send firmware files to a Particle Photon.
npm install particle-ymodem
npm install serialport
var lightYModem = require('particle-ymodem');
var serialPort = require("serialport");
var fs = require('fs');
var file = fs.readFileSync('./firmware.bin');
var serialPort = new serialPort.SerialPort('/dev/cu.usbmodemfd131', {baudrate: 28800}, false);
var progressCallback = function(val){ console.log( Math.round(val.current*100/val.total) + '%' );}
var logCallback = console.log;
var modem = new lightYModem();
modem.transfer(file, serialPort, progressCallback, logCallback);