Open PizzaProgram opened 4 years ago
I would also like some info about goal of protocol. That it would like to be more efficient than ASCII based protocols, it counts on relatively low speed communication and also it does limit (not hard limit) messages length to have a good latency of commands. I.e. do not block communication channel for too long with single command. At least link to wiki can be helpful http://firmata.org/wiki/Design_Issues
Yes, most open source projects are not the strongest in documentation. Nobody likes to spend time with it. Worst, many people just "fork" (make their own copy), change it for their immediate need, and ... forget altogether that their experience could be useful for others.
@luvarpt , on the "goal of the protocol", the basic idea is that the Arduino has lots of input outputs, but is limited in power. So instead of cramping the logic of the program in a 32kB ROM / 2kB RAM, you put there a generic program, and you make a program on a PC/PI/whatever in whatever language that says "put pin8 high" and it does. So the Arduino with Firmata is a dumb "USB/Serial to Physical" bridge.
I looked at Firmata back in 2011 and abandoned it because what it actually does is move your problem ack to the PC, but the beauty of Arduino is that it repeats the program when you power it up. Not so with Firmata, since you make it dumb.
@PizzaProgram here are my short answers to your questions : 0: there is both one slave (the Arduino "server") and many master/client implementations (on PC, usinc C, javascript, processing, whatever). 1: it normally uses Serial, speed can be adapted to your wish (57600bps on StandardFirmata.ino)
Dear Developers! It is very helpful to read details for those, who are just beginning to understand what is this all about. It can save dozens of hours for everyone. That's why I'm asking:
Infos about:
Is this a "master" or "slave" program or both / choosable / set-able?
What timing does it use to communicate to each other?
How to handle / distinguish multiple boards attached to the same master?
How to scan / read devices on a I2C bus?
What is the difference between StandardFirmata and StandardFirmataPlus?
Which libraries are frequently maintained / tested / stable?
Thank you very much for this awesome work in the name of all of us!