Close

Palette:firmata

Summary

Firmata is an Arduino sketch allowing for configuration and control of the Arduino using messages formatted as MIDI.

More information on the firmata protocol can be found here: https://github.com/firmata/protocol

See also https://jmarsico.github.io/rsma2019/tutorials/td_arduino/

PythonIcon.pngPalette:firmata Ext


Getting Started

  • Install the latest Arduino IDE on your computer and connect your Arduino board.
  • In the Arduino IDE, under `File`, select `Examples>Firmata>Standard Firmata` and upload it to your board.
  • Close the IDE and select the port your Arduino is conencted to on the firmata COMP's Port parameter.
  • Toggle the Active parameter. The component will attempt to communicate with the Arduino and create all necessary parameters for pin-modes and pin-values.
  • Via the now available Pin Modes and Pin Values pages, setup and control your Arduino.
  • The CHOP output form the component contains all pin values.


Parameters - Firmata Page

Help Help - Opens this page.

Version Version - THe current version of this component.

Firmata Type Firmatatype - The installed firmata type as reported by the arduino board.

Firmata Version Firmataversion - The installed firmata version as reported by the arduino board.

Active Active - Toggle to establish a connection between the component and the arduino board.

Port Port - Select the port the arduino board is connected to.

Baud Rate Baudrate - Set the Baud Rate for the serial connection.

Reset Reset - Reset all stored settings of the arduino board.

Query Version Queryver - Request the installed firmata type and version from the arduino board.

Query Board Capabilities Querycap - The capability query provides a list of all modes supported by each pin.

Query Pin States Querystates - The pin state is any data written to the pin (it is important to note that pin stateĀ != pin value).

Query Analog Mapping Queryanalog - The analog mapping query provides the information about which pins (as used with Firmata's pin mode message) correspond to the analog channels.

Report Analog Pins Reportanalog - Enable the reporting of analog pin values from the arduino.

Report Digital Pins Reportdigital - Enable the reporting of digital pin values from the arduino.

Sampling Interval Samplinginterval - The sampling interval sets how often analog data and i2c data is reported to the client. The default for the arduino implementation is 19ms.


Parameters - Pin Modes Page

This page will have a list of menu parameters the length of the number of pins on the arduino board. For each pin, the menu will reflect the pins supported modes:

  • DIGITAL_INPUT
  • DIGITAL_OUTPUT
  • ANALOG_INPUT
  • PWM
  • SERVO
  • SHIFT
  • I2C
  • ONEWIRE
  • STEPPER
  • ENCODER
  • SERIAL
  • INPUT_PULLUP



Parameters - Pin Values Page

This page will have a list of either float and toggle parameters for each pin depending on the pin's mode. Pins set to an input type will be read-only.



Parameters - Servo Page

Min Pulse Minpulse -

Max Pulse Maxpulse -


Operator Outputs

  • Output 0 - The CHOP output reflects the arduino's pin values.

TouchDesigner Build: