I currently have a 36vbdc 800w motor connected to a 36v 800w motor speed controller (similar to what they use to control ebikes) just like this one: https://aws.robu.in/wp-content/uploads/2016/02/919811586_739.jpg (I don't know how to upload pics or wiring diagrams to my question or I would). image of motor speed controller

I would like to use a 2.4ghz 4ch RC remote transmitter and receiver to control the motor speed instead of the wired throttle I currently use, which is a 3pin hall sensor (+5v, Gnd, sensor) twist throttle.

Is there any way to connect the RC receiver to the motor controller to use the remote transmitter to control motor speed? How would I go about this?

I believe both the RC signal and the hall sensor are PWM, but do I need a receiver board to interface with the RC receiver and the motor controller?

Would I need to implement arduino into the equation?

  • 1
    \$\begingroup\$ Tip: 'GHz' or gigahertz, 'V' or volt, 'W' or watt. Capitals matter. \$\endgroup\$
    – Transistor
    Dec 1, 2021 at 11:20

1 Answer 1


RC servo signal is a 1-2ms pulse with repetition period of ~20ms. Ebike controllers generally accept an analog voltage between 0-5V (with 1V=off and 4V = full throttle). You will need an interface to convert from one to the other. Possible solutions range from purely mechanical (servo attached to a potentiometer) to an MCU with D/A converter.

The Arduino can measure servo pulse width with pulseIn() and produce an 'analog' output with analogWrite(). On most Arduinos the analog outputs are actually 0-100% PWM at ~490Hz. To convert this to true analog you need a low pass filter or integrator which averages the pulses, eg. this simple RC filter:-


simulate this circuit – Schematic created using CircuitLab

A side effect of integrating the PWM pulses is slower throttle response. Here is the result of simulating the above circuit in LTspice, with a 0.5 second 50% throttle burst:-

enter image description here

  • \$\begingroup\$ Bruce, But arduino can't take that much current... \$\endgroup\$ Dec 6, 2017 at 6:26
  • \$\begingroup\$ Bruce, Also, where is the RC receiver in your schematic? \$\endgroup\$ Dec 6, 2017 at 6:27
  • \$\begingroup\$ "But arduino can't take that much current..." - that's OK, the motor controller doesn't take that much current on its throttle input. \$\endgroup\$ Dec 6, 2017 at 7:25
  • \$\begingroup\$ "where is the RC receiver in your schematic" - sorry the receiver connections seemed so obvious I didn't bother putting them in the diagram. Each channel has 3 pins: Signal, +5V, and Ground. Connect +5V and Ground to same on Arduino. Connect Signal to the Arduino pin you are reading with pulseIn(). Here's an example:- stormgate.org/tricopter/receivercircuit.jpg \$\endgroup\$ Dec 6, 2017 at 7:44
  • \$\begingroup\$ Bruce, sorry I'm new to all of this so I apologize if my questions seem obvious or remedial. Having said that, I'm still a little confused... So the 3 hall sensor (throttle) wires from the motor controller (instead of connecting to the twist throttle) would connect to the arduino, and the 3 pins from the RC receiver would also connect to the arduino? \$\endgroup\$ Dec 7, 2017 at 10:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.