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?
You need to be a member of diydrones to add comments!
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.
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.
Gary
jcheger/frsky-arduino
FrskyD and FrskySP libraries for Arduino. Contribute to jcheger/frsky-arduino development by creating an account on GitHub.
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.
jcheger/frsky-arduino
FrskyD and FrskySP libraries for Arduino. Contribute to jcheger/frsky-arduino development by creating an account on GitHub.
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 http://www.rcgroups.com/forums/showthread.php?t=851708
billpa's blog - RC Groups
RC Groups - the most active Radio Control model community: electric and fuel rc airplanes,rc helis,rc boats and rc cars. Features discussion forums,…
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....
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.
Thanks for the program and how to guide. I just wonder, i see a wire from your digital pin 0 going somewhere, and its also in the code as interrupt pin. Where is this wire going, as i don't see it connected to any other wire of the rpm sensor. I would use this for rpm <10.000 for testing only so I would not encounter the problems you state.
Replies
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.
Paul
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.
Gary
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 http://www.rcgroups.com/forums/showthread.php?t=851708
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...
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.
Hi Randy,
Thanks for the program and how to guide. I just wonder, i see a wire from your digital pin 0 going somewhere, and its also in the code as interrupt pin. Where is this wire going, as i don't see it connected to any other wire of the rpm sensor. I would use this for rpm <10.000 for testing only so I would not encounter the problems you state.
Thanks,