Flash firmware onto an avr device running a bootloader that speaks the avr109 protocol.
This is a fork of https://github.com/tmpvar/chip.avr.avr109 which will always allow the CATERIN bootloader regardless of the user specified board signature.
if (d.toString() !== that.signature && d.toString() !== 'CATERIN') { // avr109 will always accept CATERIN bootloader
fn(new Error('Invalid device signature; expecting: ' + that.signature + ' or CATERIN - received: ' + d.toString()));
}
var avr109 = require('chip.avr.avr109');
var serialport = require('serialport');
var sp = new serialport.SerialPort('/dev/tty.usbmodemfd121');
var fs = require('fs');
sp.on('open', function() {
fs.readFile(__dirname + '/test.hex', function(err, data) {
avr109.init(sp, { signature: 'LUFACDC' }, function (err, flasher) {
if (err) {
throw err;
}
flasher.erase(function() {
console.log('initialized');
flasher.program(data.toString(), function(err) {
if (err) throw err;
console.log('programmed!');
flasher.verify(function(err) {
if (err) {
throw err
}
flasher.fuseCheck(function(err) {
if (err) throw err;
console.log('OK!');
});
});
});
});
});
});
});