Both the 1100D and the EOSM are currently in the same situation with the wrong FPS override values. I looked up the code, fps-engio.c, and found where the code was intentionally broken to prevent these platforms from being compiled. It is rather easy to change it so these platforms do compile but of course the point is to fix it. a1ex asked for users to run some tests and report the results which was done on both platforms but sadly for users of these cameras the developers that know what to do with these numbers are too busy and not that interested. This isn't to criticizes, they are unpaid volunteers and this is just the way free and open source software is developed. You want something, you have to figure it out.
This is the header to fps-engio.c and it has some clues. Unfortunately the link goes to an outdated Google spreadsheet which points to a newer spreadsheet but it is rather cryptic and I can't see where the values reported need to be plugged in to get the correct timer values.
@dmilligan - is there any hint at all where to look for some sort of documentation on this? Apparently the 1100D and EOSM use different methods to change timer B but I can't get much further than that.
/**
* FPS control with engio calls (talking to DIGIC!)
* This method is portable: works on all cameras.
*
* https://docs.google.com/spreadsheet/ccc?key=0AgQ2MOkAZTFHdEZrXzBSZmdaSE9WVnpOblJ2ZGtoZXc#gid=0
*
**/
/**
* fps_timer_b_method
* Notes by g3gg0:
*
* okay i found how to directly change the sensor frame rate without patching and copying memory areas.
* it doesnt matter which mode is selected.
*
* on 600D v1.0.1 it is calling engio_write() with a buffer that writes the rate.
*
* unsigned long frame_rate[] = {
* FPS_REGISTER_B, 0xFFFF, // timer register
* FPS_REGISTER_CONFIRM_CHANGES, 0x01, // coherent update
* 0xFFFFFFFF // end of commands
* };
*
* void run_test()
* {
* void (*engio_write)(unsigned int) = 0xFF1E1D20;
* frame_rate[1] = 0xFFFF; // timer value as usual [Alex: timer value minus 1 on certain cameras]
* engio_write(frame_rate);
* }
*
*
**/
This might be better discussed in a development topic but broken nightlies keep coming up in the user topics. Besides, I'm not a developer--I know just enough to get myself into trouble.