Thanks for the update. Here's my Firmata setup(). Its very similar to yours. The only difference is a section to wait for the U-boot to complete, and I set the baud to 115200 which works like a champ. I stole the U-boot section from Bridge.cpp.
void setup()
{
Serial1.begin(115200); // Set the baud.
// Wait for U-boot to finish startup. Consume all bytes until we are done.
do {
while (Serial1.available() > 0) {
Serial1.read();
}
delay(1000);
} while (Serial1.available()>0);
Serial.begin(9600); // For logging.
Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION);
Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);
Firmata.attach(DIGITAL_MESSAGE, digitalWriteCallback);
Firmata.attach(REPORT_ANALOG, reportAnalogCallback);
Firmata.attach(REPORT_DIGITAL, reportDigitalCallback);
Firmata.attach(SET_PIN_MODE, setPinModeCallback);
Firmata.attach(START_SYSEX, sysexCallback);
Firmata.attach(SYSTEM_RESET, systemResetCallback);
Firmata.begin(Serial1);
systemResetCallback(); // reset to default config
}