Speed sensing of small hobby motors


I have a number of small 'high speed' (5000-10000rpm max) "RC car" style hobby motors and I am interested to sense and control their speed with an Uno. Or even possibly higher speed for drone motors.

I was thinking either magnetic or optical. The problem is the shaft is not accessible in my application. I think it's possible to magnetize the shaft enough to read it with a Hall sensor (or put a flat on it), but haven't seen it or tried to do it.

So then I thought, you should be able to read the EMF from the motor itself - from the coils and magnets. Has anyone tried to do this or know of good references for motor speed sensing like this, or with an 'antenna'? Maybe you can sense high frequency voltage/current variation on the power wires themselves???

Here's a good reference to speed sensing using back-EMF:-
Measuring RPM from Back EMF

Another technique that is sometimes used for brush commutated DC motors is to sense the "Switching" ripple caused by the brush passing from one commutator bar to the next. I have used this approach in the past, but beware it only works with DC motors that use brushes and split commutators. It will also be sensitive to the specific motor you are using. For example, if you use a motor with 12 segments, then change the motor to one with 10, the speed sense will be different.

It is not a difficult thing to do, and here is an example of an example that combines a PWM speed control with the ripple sense feedback. You should be able to adapt the ripple sense part to your needs. Hobby Circuit - Medium Power 12v Brush Motor Speed Controller