I've fixed a bug that caused the remote audio triggering to go off on the sound of the shutter when using the camera self timer. I'm not sure if I had to fix it in the audio trigger code, or to make remote_shot() do the appropriate waiting so it's "fixed" for all code (still haven't looked at the code deeply enough to know everything that depends on remote_shot()).
Change here:
https://bitbucket.org/roaldfre/magic-lantern-for-500d/changeset/f1fd1bbb3d91This probably needs to be pushed to the 550D branch as well.
There is also another bug, I think -- patched here:
https://bitbucket.org/roaldfre/magic-lantern-for-500d/changeset/28208abed6d1Did not have any cases where it went wrong, but the flow of the code seemed odd to me (first draw the default icon, then call display() so it can override if necessary).
Probably needs to be in 550D as well.
Lastly, I've noticed that we have drifted quite a bit from the 550D branch code. I would recommend trying to get in sync with them again.
However, the code at both ends needs some refactoring to maintain workable between the different branches. For example, zebra.c is *full* of 'magic numbers'. All literal constants (eg adresses, resolutions, ...) should belong in a separate header file as defined named constants. The only literals you should potentially use are 0, 1, 255, 256, etc (and even then you should be careful).
This would allow the 550D and 500D branch to use pretty much the exact same code, but with the appropriate header files differing in their values.
Also, zebra.c (and others) seem to be full of logic spread here and there, with monolithic functions that are hundreds of lines long. This could use some refactoring into separate functions, trying to separate logical decision structure from the raw data manipulations etc and giving more overview (and documentation) and maintainability.
(Just my 2c)