0.11.0-dev • Published 7 years ago

xod-arduino-builder v0.11.0-dev

Weekly downloads
1
License
AGPL-3.0
Repository
github
Last release
7 years ago

xod-arduino-builder

This package is a part of the XOD project.

The builder wraps Arduino IDE into nodejs Promise-based cli interface.

Prerequisites

  • Arduino IDE must be installed;
  • Arduino IDE executable must be callable;
  • Arduino IDE packages/ folder must be reachable.

Example

Start node cli session:

node

Import the builder and set utility display function:

const xab = require('xod-arduino-builder');
const $HOME = process.env.HOME;
const c = promise => promise.then(
  value => (console.log(value), Promise.resolve(value)),
  error => (console.error(error), Promise.reject(error))
);

Set paths to Arduino IDE executable and packages:

c(xab.setArduinoIdePathExecutable($HOME + '/programs/arduino-1.8.1/arduino'));
c(xab.setArduinoIdePathPackages($HOME + '/.arduino15/packages'));

View the raw official Arduino package index:

c(xab.listPackageIndex());

View the processed package index optimized for pav selection:

c(xab.listPAVs());
const pav = {
  package: 'arduino',
  architecture: 'avr',
  version: '1.6.16'    
};

Install the selected pav:

c(xab.installPAV(pav));

View the boards supported by the selected pav:

c(xab.loadPAVBoards(pav));
const pab = {
  package: pav.package,
  architecture: pav.architecture,
  board: 'uno'    
};

Compile the file for the selected pab:

const file = $HOME + '/programs/arduino-1.8.1/examples/01.Basics/Blink/Blink.ino';
c(xab.verify(pab, file));

View the available serial ports:

c(xab.listPorts());
const port = '/dev/ttyACM0';

Compile and upload the file for the selected pab at the specified port:

c(xab.upload(pab, port, file));