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: 31914

Reply to This

Replies to This Discussion


    Ah, the blue wire?  I think that may just be a ground to keep the ground voltage the same because the Uno and the copter are using different power sources.  The uno is powered from a 5V AC adapter while the copter is powered from a battery.

thanks for the info. when i run the code i only get weird letters instead of values. weird, will look unto it some more. I only have a motor connected to a battery without a real quad, just want to know the rpm of the motor. Could the ground be the problem?

I imagine the weird letters are caused by the baud rate being incorrect when connecting to the arduino.  So it's probably just a display issue.  If you're using the Arduino Serial monitor then there's a drop down and it should probably be set to 115200 or 57600.

Has there been any recent resolution to this inquiry? I'm about to start on my sailplane project and the last of the telemetry issues to be resolved is the motor speed issue.

Guys I was also facing the same problem ,,, 
But then I found out the solution . 
The problem is with the wiring ..
The wires should be connected in the following manner to arduino :

The pinout of our RPM sensor( which uses a standard Futaba servo connector wire), is:
a) white = signal
b) red = ground (yes, this is not a typo)
c) black = 4V 

I think all of us got tricked by the red and blck wire connection.. 
Thanks to the post by "billpa" in hobby king website.. 
without which I could'nt have solved this issue... 
hope this solves the issue for RPM measurement... 
courtesy of this post

Guys to calculate RPM using the same sensor in arduino please use the following formula ...

RPM = ((interrupt count)*(60))/(no.of poles)  

note : this formula is for the interrupts counted every 1000milli seconds i.e 1 sec... 

interrupt count = no. that you get from the interrupt counter in arduino (you can use the code given by Randy)
no.of poles = divide the no.of poles by 2 
eg.  14 pole motor use 7 as no.of poles.... 

hope all are benifited by this post... 

I got it working, referencing to jcheger's code. You have to download the Arduino FreqCount library. 

Wire 1 and wire 2 are connected to wires from ESC to motor. There is a 1K ohm pull up resistor for the white signal wire. Black wire is connected to 5VCC and red is to GND. 

Hello guys,

I have been following this post, and trying to measure the rpm of my brushless motors using the Eagletree brushless sensor. Haven't seen any other discussions about this on other sources since this topic. I have followed the connection requirement (black to vcc, etc) as per this post, the install of the libraries, use of the jgcheger's code. However, the code seems to give an error when compiling:

jcheger31mar18:37: error: no matching function for call to 'FrskySP::FrskySP(int, int)'

 FrskySP FrskySP (10,11);

jcheger31mar18:37: error: no matching function for call to 'FrskySP::FrskySP(int, int)'

exit status 1

no matching function for call to 'FrskySP::FrskySP(int, int)'

candidate expects 1 argument, 2 provided

constexpr FrskySP::FrskySP(const FrskySP&)

 class FrskySP {

exit status 1

no matching function for call to 'FrskySP::FrskySP(int, int)'

When I change the line to : 

 FrskySP FrskySP (11);

It compiles and uploads, and the serial monitor shows the text

FrskySP rpm sensor freqcount

but no other information in the serial monitor.

Would appreciate any advice.


FYI - I was looking for an RPM sensor and came across this discussion.  My local hobby shop had a Spektrum brushless RPM sensor in stock so I thought I'd give it a try.  It's made by Eagle Tree so it's most likely the same unit discussed here.  Spectrum supplies air and ground versions.  Not sure what the difference would be.  Anyway they seem to have sorted out the funky wire colours.  The red lead is V+ and the brown is ground.  I only needed wire 1 to get an output.  As a bonus, I found it worked well at both 5V and 3.3V.  It's working well for RPM feedback on my Raspberry Pi. My scope showed it might be better to use the falling edge.


Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service