| View previous topic :: View next topic |
| Author |
Message |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Fri Jun 16, 2006 7:42 pm Post subject: Coming OpenServo EEPROM changes... |
|
|
I'll be doing some work around how the OpenServo stores information in the EEPROM. Basically, I'll be adding version information and a checksum value to the data stored in the EEPROM.
The version information is to prevent damage to the servo if the format of the OpenServo EEPROM data changes. It doesn't change that often, but when it does bad values could end up in the PID gains and the servo could potentially burnout the H-Bridges or exhibit weird behavior. The EEPROM version byte is independent from the firmware version and would change only when the EEPROM changes format.
The checksum is basically to detect at start-up if the information in the EEPROM is valid. Since the version information would be part of the checksum it will also detect when updated firmware can no longer use values in the EEPROM. When checksum fails, the OpenServo will load compile-time default values rather than the contents of the EEPROM.
I imagine these changes will appear within the next week if not the next few days.
-Mike |
|
| Back to top |
|
 |
mpthompson
Joined: 02 Jan 2006 Posts: 650 Location: San Carlos, CA
|
Posted: Sun Jul 02, 2006 9:30 pm Post subject: |
|
|
It took me a bit longer than I anticipated, but I finally implemented the EEPROM version and checksum in the OpenServo firmware as described above.
This should provide some protection against obsolete values stored in EEPROM from potentially damaging a servo when the firmware is updated. In the worst case, the servo is simply initialized to a default state.
Note: the EEPROM_VERSION value will be updated whenever changes are made to the OpenServo firmware that causes the format of data stored in the EEPROM to change. Hopefully such changes shouldn't be that often.
As always, I'm open to comments on how this was implemented and would welcome suggestions for improvement.
Over the next week I'll be finalizing my tweaks to the OpenServo PCBs I'll be ordering for my Biped robot and looking into Barry's suggestions for handling the velocity curves of OpenServo motion.
-Mike |
|
| Back to top |
|
 |
|