From: Jeff H. <sou...@gm...> - 2013-06-19 04:31:25
|
There was a inadvertent change in Firmata 2.3.5 that may have affected client libraries that send a response immediately after the first firmware version command is received. The blinkVersion method was called after printFirmware. In Firmata 2.3.6 the blinkVersion method is in the correct location (after Serial.begin, before printVersion and printFirmware). You can get the latest version from the usual places: github - https://github.com/firmata/arduino firmata.org - http://firmata.org/wiki/Download Also a general note for anyone working on a new Firmata client library. The blinkVersion method takes about 2 seconds to execute. While the uart can process serial input during this period, it is best to wait for the print firmware command to be sent (it's sent automatically on startup, after the blinkVersion sequence finishes). Print version is sent first (0xF9) (for legacy reasons) then print firmware (0x79) is sent. Upon receiving the end of the print firmware command (END_SYSEX) it's safe to send commands to the arduino board. You could try to send them earlier but you will not get a response until after the blink version sequence is complete. Also be aware that when you connect to an Arduino with auto reset support (serial DTR connected to Arduino Reset) a hard reset will occur when you make a serial connection from a client. So this is another reason you may need to wait for the initial firmware version command after making a serial connection with a board. I'll write up a guide for firmata client developers in the near future and post it on firmata.org and in the firmata github wiki. -jeff |