Skip to content
A utility to generate an Arduino file from a selection of Firmata features.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Firmata Builder


A module to generate an Arduino sketch (.ino) file from a selection of Firmata features. It is currently used by However, because it is modular it could also be wraped to create a cli utility or even used in an IDE.

To use:

  1. Install ConfigurableFirmata

  2. Install Node.js

  3. Install from source or install the firmata-builder npm module

    source code:

    $ git clone && cd firmata-builder
    $ npm install

    npm package:

    $ npm install firmata-builder
  4. Navigate to the examples directory and run one of the following command:

    $ node demo.js
    $ node demo-wifi.js
    $ node demo-ethernet.js
    $ node demo-ble.js

    The first command above will generate a file named ConfiguredFirmata.ino and the second will generate a file named ConfiguredFirmataWiFi.ino in the same directory, etc. These examples also demonstrate the format of the object to be passed into the build method.

  5. Open ConfiguredFirmata.ino in the Arduino IDE and accept the prompt to move ConfiguredFirmata.ino into a ConfiguredFirmata sketch folder.

  6. Compile and upload ConfiguredFirmata for your particular Arduino board.


Firmata Builder opens the door to offer a larger selection of features than can be offered with the all-in-one StandardFirmata approach. You can include as many or as few features as your application needs (within the constraints of the board you are using). It is also possible to wrap existing Arduino libraries to use them as Firmata features. See FirmataEncoder for an example. This makes it much easier to mix custom features with standard features (digital and analog I/O, I2C, etc).


I'm looking for contributers, especially in figuring out how to make what is currently builder.js and features.js something that can scale well to support contributed Firmata features. If you want to get involved, contact me and/or join the gitter.

You can’t perform that action at this time.