Pduino 0.5/Firmata 2.1 beta release


There are some nice updates to Firmata and Pduino. This release mostly adds extensions to the protocol to support more pin modes and their respective messages (Servo, I2C, Shift Registers, etc). Here are some specifics:

  • Servo support for StandardFirmata
  • support for using analog pins as digital I/Os for StandardFirmata
  • new message to set the poll rate of StandardFirmata
  • I2C Firmata example (needs Pd implementation)
  • switch back to 57600 for standard bitrate
  • made Firmata.begin(57600) explicit in all examples

Please test and report and bugs or issues. We are trying to get this included in the upcoming Arduino 0017 release. Depending on the 0017 release schedule, we might be able to squeeze in Shift Register/Matrix support too. Also, just to note, this update includes code from (in alphabetical order):

Ayah Bdeir
Erik Sjodin
Hans-Christoph Steiner
Jeff Hoefs
Shigeru Kobayashi
Zach Lieberman

(I hope I didn't forget anyone, let me know if I did).



Ok, some minor tweaks and additions, please test on the Arduino Mega too! There is support in funnel and Pduino for the new stuff, plus Processing and others coming soon.

  • updated I2C and SAMPLING_INTERVAL macros
  • added Arduino Mega support
  • added SHIFT_DATA to Firmata.h to claim for future implementations
  • renamed somethings for clarity and consistency (but left old names in for a bit)

Please test and report and bugs or issues. We are trying to get this included in the upcoming Arduino 0017 release.

Hi, everything works well for me, except I can't seem to get servos working with StandardFirmata. The servos work well with ServoFirmata, but I'm not able to switch to servos when StandardFirmata is open. I noticed some notes in the code about servo support, ("TODO does the Servo have to be detach()ed before reconfiguring?") is this still conditional? I'm assuming that servo support in StandardFirmata means that you're supposed to be able to switch the pin function from within the patch, right?

I'm running OS X 10.5.7, Arduino 16, and using an Arduino NG.

Is this perhaps because of the Arduino I'm using?


Hmm, I've heard other reports of servo troubles, we are in the process of including support for the new MegaServo library that's now the default Servo library in 0017, so there might be issues. Here's a bugfix release that might or might not help the servo issue: