user26312: I have a few Arduino boards connected to my computer running firmata and I want the computer to be able to differentiate between them even when I unplug them and plug them back into a different USB port in a different sequence. My solution was to save and read a Unique I.D. into each Arduino's EEPROM, but I am not sure how to accomplish this using firmata?
I want to save a few bits of data to the Arduino UNO with EEPROM, but the Arduino has to be running code compatible with firmata. Is this possible?

user19867: You have to edit the Firmata source code and add a few lines of code:

add the EEPROM library
include the library into the Firmata code
in the setup() function use the EEPROM library to read the id from the EEPROM

How do you plan to write that data into your Arduino EEPROM?
If you want to do that via serial connection than you also need to add that code.
I have done something similar in an example for my VoltageReference library, specifically in EEPROMCalibration.ino
UPDATE
After a little investigation I understand there is the possibility to exchange generic messages and handle generic commands via Firmata: commands 0x00-0x0F are reserved for customization. On the Arduino side you can use:
void storeToEEPROM(int id) {
  ...
}

void readFromEEPROM() {
  char buf[12];
  Firmata.sendString(itoa(the_id, buf, 10));
}

void setup() {
  ...
  Firmata.attach(0x00, storeToEEPROM);
  Firmata.attach(0x01, readFromEEPROM);
  ...
}

That will allow you to write and read the id using those two custom commands.

26312: <p>I have a few Arduino boards connected to my computer running firmata and I want the computer to be able to differentiate between them even when I unplug them and plug them back into a different USB port in a different sequence. My solution was to save and read a Unique I.D. into each Arduino's EEPROM, but I am not sure how to accomplish this using firmata?</p>

<p>I want to save a few bits of data to the Arduino UNO with EEPROM, but the Arduino has to be running code compatible with firmata. Is this possible?</p>
 19867: <p>You have to edit the Firmata source code and add a few lines of code:</p>

<ol>
<li>add the EEPROM library</li>
<li>include the library into the Firmata code</li>
<li>in the setup() function use the EEPROM library to read the id from the EEPROM</li>
</ol>

<p>How do you plan to write that data into your Arduino EEPROM?
If you want to do that via serial connection than you also need to add that code.
I have done something similar in an example for my <a href="https://github.com/rlogiacco/VoltageReference" rel="nofollow">VoltageReference</a> library, specifically in <a href="https://github.com/rlogiacco/VoltageReference/blob/master/examples/EEPROMCalibration/EEPROMCalibration.ino" rel="nofollow">EEPROMCalibration.ino</a></p>

<p><strong>UPDATE</strong></p>

<p>After a little investigation I understand there is the possibility to exchange generic messages and handle generic commands via Firmata: commands 0x00-0x0F are reserved for customization. On the Arduino side you can use:</p>

<pre><code>void storeToEEPROM(int id) {
  ...
}

void readFromEEPROM() {
  char buf[12];
  Firmata.sendString(itoa(the_id, buf, 10));
}

void setup() {
  ...
  Firmata.attach(0x00, storeToEEPROM);
  Firmata.attach(0x01, readFromEEPROM);
  ...
}
</code></pre>

<p>That will allow you to write and read the id using those two custom commands.</p>
