Does anyone know a quick, "non-surgical", non-optical DIY RPM sensor for brushless motors?


Wonder how the Brushless RPM Sensor/Tach from Eagle Tree System works? Does it use back-EMF to measure the RPM?

Views: 2460

Reply to This

Replies to This Discussion

bGatti,

Thanks. Your suggestion should be easy to implement and have the parts already. I will try to do a quick research on the RC pair, but I assume I need a fast capacitor (.1uF ceramic/disk) that can allow a charge fast enough for a 100kHZ range signal rise (at 5V), so it would yield a mesasurable wave peak/threshold.
The 100 kHz that bGatti mentioned is the PWM switching frequency of the ESC. That is not what you want to measure. You want the fundamental (or commutation) frequency of the signal, which is proportional to the RPM. The switching frequency is more or less fixed, although it varies between ESC manufacturers.

The formula governing the commutation frequency is RPM = (2*CommFreq*60)/# Poles. The number of poles is the number of magnetic poles in the motor. This varies from 2 to 20 or more. I think around 12 is common for RC motors.

So, for a 12-pole motor at 10,000 RPM, you would expect a commutation frequency of 1kHz. I checked Castle Creations website, and for their smaller ESCs, the switching frequency is fixed at 11kHz. Thus you want a low-pass filter that will pass a signal at 1kHz and mostly block the one at 11Khz. It should be simple enough the calculate values of R and C to try this out.

I'm not sure that a simple RC filter will filter the signal well enough, but it is worth trying. A 2nd order active filter would work much better. This site tells you how to build one.
Thank you both gents.

The motor I have is a 12 pole motor. Thanks for the tips and the excellent explanation. Will post my findings

hi there, what would be the best PWM frquency to set the ESC's to? 8 or 16 khz?

thank you!

See my implementation of a BLDC RPM sensor here: BLDC Hall Effect Sensor. The sensor simply uses at least one magnet (I use 4 to get higher update rate) and a hall switch (about $.40 on digikey).

-Todd
Todd,

Thank you for the info. I am hoping to do it "non-surgically". Will keep the info you posted handy.
Just throwing stuff out here, but wouldn't a hall effect sensor work for this? the brushless motor is basically a big spinning magnet, which is what the hall effect sensor needs... they use them for ignition timing in cars apparently as a type of distributor... Also, I could be wrong, but as far as I knew the brushless ESC uses the induction voltage generated on the non active solenoid as timing information, which means that the ESC knows exactly what the motor is doing, otherwise it would loose cycles under load... the hall effect sensor sounds like the right thing to me... they recommend you set it on a interrupt with an accumulator, check and reset the accumulator every x milliseconds, this will give you the rpm...

http://www.melexis.com/Assets/Hall_Applications_Guide__3715.aspx
anyone had any progress with this? i am also interested in the results...

I know this is an ancient post but in any case, I thought it would be super easy to hack the eagle tree brushless motor rpm sensor and feed it into an arduino but although I got it partially working the results were less impressive than I was expecting.

 

In any case, here is what I did in case someone attempts to try it again at some point in the future.

1. bought one of these rpm sensors from hobbyking.

2. connected wire1 of the rpm sensor to one of the motor leads

3. connected one of the three servo style wires to an arduino uno's digital pin 2

4. grounded the arduino uno to my quad's APM ground (i.e. bottom row of the right-angle-headers coming out of hte back of the APM).

5. loaded a simple sketch into the arduino uno which increments a value everytime an interrupt attached to digital pin2 fires.  the code is here.

6. printed the number of interrupts triggered in the past 0.1 seconds (10hz)

 

You can see from the graph below, what I did was increase the throttle in 4 steps.  This was generally captured although i thought it would be a less bumpy line.  You can also see that at the highest point, the uno starts reporting the rpm has dropped in half.  What I think has actually happened is that it can't keep up anymore and so it's catching only half the interrupts.

 

I also tried attaching a small cap to the lead from the rpm meter to the uno, that didn't work at all as it just filtered out all the 'pings' from the engine and the uno reported zero rpm.

RSS

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The third round was a reliablilty/aerial photography round for both planes and copters, which is now closed. Stay tuned for the next round, beginning soon.

A list of all T3 contests is here

 

© 2012   Created by Chris Anderson.

Badges  |  Report an Issue  |  Terms of Service