Firmata is a generic protocol for communicating with microcontrollers from software on a host computer. It is intended to work with any host computer software package. Right now there is a matching object in a number of languages. It is easy to add objects for other software to use this protocol. Basically, this firmware establishes a protocol for talking to the Arduino from the host software. The aim is to allow people to completely control the Arduino from software on the host computer.
If you are interested, we can help you use this protocol with any software whatsoever. The protocol is quite simple. We will all benefit if we use a common firmware. Then microcontroller boards become really cheap sensorboxes in addition to all the rest of the stuff you can already do with them. Check out the Examples page to see Firmata in action.
Firmata Test Program
This "firmata_test" program works with boards running StandardFirmata version 2.2 or higher on standard Baud rate 57600.
If you need to quickly test your hardware, this stand-alone program can access all pins. It runs from a single file (no installation needed), for quick and easy testing!
For Linux (32 bit)
For Linux (64 bit)
http://www.pjrc.com/teensy/firmata_test/firmata_test.64bit_2 (Ubuntu 12.04)
http://www.pjrc.com/teensy/firmata_test/firmata_test.64bit_2_log (Ubuntu 12.04, with log window)
For Mac OS-X
http://www.pjrc.com/teensy/firmata_test/firmata_test_OSL.tgz (unicode compatible, by Orion Lawlor)
Using Arduino 0022 or later, open the code with the File > Examples > Firmata > StandardFirmata menu, and then upload it to your Uno.
Versions of arduino previous to 0022 (December 2010) have a baud rate error on Uno which corrupts communication. The Firmata Test program can open the serial port, and the receive counter at the bottom of the windows keeps increasing, but nothing works. If you're having this problem, you can fix it by just upgrading to a recent Arduino software version.
Arduino 0022 also fixed a bug in Uno's 8u2 firmware which impacted Linux. If your Uno is an early model, you may need to use the dfu-programmer tool to flash the 8u2 firmware. The Windows and Mac OS-X drivers do not seem to be sensitive to this issue.
Previously, this page said that all Arduino Uno boards come with StandardFirmata 2.2 pre-loaded. This may have been true at one point, but it's no longer the case.
To display all Pins (including missed Pin 14 and Pin 15 as shown in the picture above), it is necessary to change the sampling interval in file StandardFirmata.ino from 19ms into 99ms :
int samplingInterval = 99;
To use firmata with the Arduino Leonardo you must update the firmata library in the Arduino application to firmata version 2.3.2 or greater.
To use the Firmata with the Arduino Due in the Arduino 1.5.2 IDE for the Due you will need to update to the latest Firmata version. Download Firmata-2.3.5.zip and follow the instructions in the readme to copy Firmata to the proper locations in the Arduino 1.5.2 IDE. Note you need to copy the library to the sam library directory (and also to the avr library) directory (see hardware/arduino/sam and hardware/arduino/avr) in the Arduino application directory.
Editing this Wiki
In order to prevent the spam we've been getting recently, you must be logged into an account to edit pages. If you don't want to make an account, you can use this one:
- Username: firmata
- Password: pleaseedit
If you have an account, you can also change the passwords for other users: http://firmata.org/wiki/Special:PasswordReset