Skip to content

Firmata 2.5.0

Compare
Choose a tag to compare
@soundanalogous soundanalogous released this 08 Nov 20:22

What's new

Adds the ability to interface with serial devices via hardware (UART/USART) or software serial. See the serial feature protocol for details. An example Firmata client implementation of the new Serial feature can be found in the node-firmata client library. The new Serial feature is implemented in StandardFirmataPlus and StandardFirmataEthernetPlus. You will need to upload either of those sketches in order to user the Serial feature with a corresponding client library that also implements Firmata serial (which is so far only node-firmata, but hopefully other Firmata client libs will add support in the near future).

Also adds the ability to write a value to a single digital pin without needing to track state of the pins as is required with the DIGITAL_MESSAGE. See set digital pin value in the core protocol documentation.

Adds a new pin mode PIN_MODE_PULLUP to set the internal pullup resistor for a pin. This was required for Arduino Zero support. Firmata client library authors should migrate to this new pin mode, but continue to fall-back on the old method of digital write high to input pin if the Firmata sketch installed does not support PIN_MODE_PULLUP (you can determine this via the configuration query results - check for 0x0B).

This release adds support for the following boards:

  • Arduino Zero
  • Teensy LC
  • Pinoccio Scout (thanks to @makenai)

Authors of their own Firmata sketches, StandardFirmata variants, etc) should note the change of pin mode #defines. You'll see the old names are still supported but deprecated so you should migrate to the new ones if your sketch includes Firmata v2.5.

For the full list of changes since Firmata 2.4.4 see the revisions file.

Installation

See the readme file for instructions on updating Firmata.

If you're using Arduino 1.6.3 or older (including the 1.0.x series) you'll need to download the attached file below for your version (Firmata-2.5.0.zip for v1.0.x or Arduino-1.6.x-Firmata-2.5.0.zip for v1.6.x and 1.5.x) and update following these instructions. For Arduino 1.6.4 and newer, simply update via the Arduino library manager.

Known issues

If you're using Arduino 1.6.6 you will notice that the IDE will prompt you to update certain libraries via the library manager. If you update either the Servo or Ethernet libraries and then try to compile a Firmata sketch for a 3rd party board (Galileo, Edison, Teensy boards, etc), you may get a compiler error on the Servo or Ethernet library. This is because the Arduino library manager installs libraries in the sketchbook libraries folder and this location has highest priority when linking, higher-priority than the version of Servo or Ethernet that is bundled with the 3rd party library package. The solution if you find yourself in this position, is to remove that library temporarily from your sketchbook libraries folder and compile again, then the compiler should find the correct library. This is an Arduino issue, not a Firmata issue, but it affects Firmata.

A similar issue with a similar solution: If you try to compile StandardFirmataEthernet or StandardFirmataEthernetPlus for an Arduino Due, it will fail. Due needs Ethernet v1.1.1, but if you update the Ethernet library you'll run into the issue described above. This will likely not be fixed until the next Arduino release so it will require juggling library files until then if you switch between a Due and another board. Again, not a Firmata issue, but an Arduino issue that affects Firmata.