A little tidbit from Devantech if you are running version 7 of the firmware you can save your servo start positions
you write 0x5A to register 126 (dec)/7E (hex)
I use a different Ic2 library but I included an example here of my servo save function. I have a little function that checks for the SD21 and returns the address, firmware version and battery voltage. The voltage is a little useless as I use a BEC but it does confirm the BEC is functioning correctly.
Code notes:
The Address of the SD 21 is set globally
The delay is there to give the communication time to complete,
it is a debugging and testing setting only.
// Firmware Version 7 allows saving servo info
void Save_servo()
{
// we write 0x5A to register 126 Decimal (7E hex)
// fixed value
err_c = I2c.write(SD21,0x7E); // set the register pointer
if (err_c != 0)
{
Serial.print(err_c);
Serial.println(" Save_Servo - Error setting Servo pointer");
}
err_c = I2c.write(SD21,0x7E,0x5A);
if (err_c != 0)
{
Serial.print(err_c);
Serial.println(" Save_Servo - Error Saving Servo setting");
}
delay (10);
}