It's been a good weekend; the bugs that have been hounding
us for the last couple of weeks are almost all gone.
The largest problem was with the servo.c routine where
we just couldn't get the servos to actually move in anything
like a reasonable manner.
I'm glad to say that this bug has now been found and fixed :) The cause was very simple: somewhere along the way when we cleaned up the source and done some reorganising, we had defined the 'F_CPU' constant to represent a 8Mhz chip when we was actually using a 16Mhz chip. This sent out the timings on the servo routine. Unfortunately, it took us so long to find it because it was the last place we expected to find the error!
But find it we have and we now have smiles on our faces again with the knowledge that we can continue the project and start something more exciting very soon.
First job on the list will be a release of the most recent source code. We have a couple more nights of work to get everything into a sensible order, tidy the code up and remove all the debugging stuff. Hopefully this should be by the end of this week.
Sorry folks; we've had to put the version 0.3 release
back a little bit - we found a few bugs and one that
is a bit of a show stopper.
The first bug was a problem on our breadboard circuit. Before any release we like to have the software sitting for a few days working away. The strange thing is that the software would be ok for a while and then for no sudden reason it would just freeze.
This first bug has been solved but we have noticed that it does appear after a couple of days. The one item we found that appeared to fix this issue was a stack overflow within the I2C master source; we had defined an I2C buffer of 20 bytes but one of the slaves was communicating 32 bytes - hence the master was trying to stuff 32 bytes into it's local buffer and eventually going wrong.
The second bug that has stopped us releasing version 0.3 is due to the servo output; in short - they just don't move! This bug should be a lot easier to find that the 'hidden' stack overflow and we are hoping to have a release by the weekend.
Finally, v0.3 of the software is here.
After a small break from updating the site on a regular basis due to work commitments, we are not back at the helm.
There have been quite a few changes in the source code; Tthe chip count is now down to a reasonable number of two and the software has been reorganised to reflect this fact.
This version release sees the system actually working, all be it in a very none impressive way. The system can demostrate being used in it's manual override mode where the operator has full control.
Futher details and photos will be following.
Previous: February 2009 blog