In the last few weeks I was working on an alternative firmware for the Mikrokopter Brushless Motor Controllers. The main goal is (as always) to create a firmware that is under the terms of a known and proven Open Source License. In this case it is GPLv3. (I am thinking about relicensing it under some BSD like license, but I am not sure yet.)
The code is available at GitHub here. There is still a lot work to do, but the motor is starting and turning as it should. Well nearly. I have some slight problems with the startup code, that needs some further tuning. Also when you break the motor it does not always detect that no more commutations take place and freezes the motor in one place. I think that I still have some problems with the commutation detection and the debounce.
The next goal is to make it possible to change the commutation timing corresponding to the commutation detection. That means that it is possible to do the commutation slightly before or after the commutation detection. For that it is necessary to capture the time between detected commutations and according to that trigger the commutation cycles. I hope that the 8bit timer that I have available is enough. The only 16bit timer of the Atmega8 is occupied by PWM generation and I am not sure if I can use it for the timings too. :/ (needs more reading ^^)
I have to make a video of the running drive soon so I can show it to you ^^
For now it is all. Take a look at the Open-BLDC site for more info and links to some interesting resources I found about brushless sensor less drive controller techniques. ^^