Skip to content

Conversation

@suda
Copy link

@suda suda commented Jun 2, 2014

Hi Swift,

I had two issues with BreakfastSerial and Yun board using StandardFirmata 2.3 (bundled with Arduino IDE 1.5.4):

  • initialization was failing with FirmataNotOnBoardException due to empty firmata_version property. It could be caused by changes in Firmata protocol, because 2.3 only responds with queryFirmware (0x79) which sets firmware and firmware_version. Also it's only done after boot, so I added protocol version query on init.
  • setting LED value didn't work without setting port mode to output, so I also added it in Led init.

I don't have any board other than Yun, so I'm unable to tell if these changes broke anything on other boards :(

@theycallmeswift
Copy link
Owner

Awesome, thanks for your contribution! The only question I have is about that call it iterate. I think it might be unnecessary, but you'll have to check that on your setup. Mind reporting back once you give it a try?

@theycallmeswift
Copy link
Owner

Actually, after looking at it further, my above comment is wrong because the board would raise an exception before it runs the thread. Disregard.

I'm still not convinced the iterate call is right though. What guarantee do we have that the first bytes we're going to iterate through are the version? Maybe it should be:

 while self.board.bytes_available():
     self.board.iterate()

@suda
Copy link
Author

suda commented Jun 2, 2014

You're right. Added in edcb504

@theycallmeswift
Copy link
Owner

LGTM. I'll verify that it works as expected on other boards and get this merged asap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants