OpenServo.com Forum Index OpenServo.com
Discussion of the OpenServo project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Coming OpenServo EEPROM changes...

 
Post new topic   Reply to topic    OpenServo.com Forum Index -> Software
View previous topic :: View next topic  
Author Message
mpthompson



Joined: 02 Jan 2006
Posts: 650
Location: San Carlos, CA

PostPosted: Fri Jun 16, 2006 7:42 pm    Post subject: Coming OpenServo EEPROM changes... Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
mpthompson



Joined: 02 Jan 2006
Posts: 650
Location: San Carlos, CA

PostPosted: Sun Jul 02, 2006 9:30 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic    OpenServo.com Forum Index -> Software All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group