ESC and DAC for sending controlling from Arduino Nano

Hi there!

I'm trying to control an ESC from an Arduino Nano. The ESC has a potentiometer to control the speed of the motor.

This is the ESC:

I tried to hook a PWM output to the wiper of the potentiometer, but it doesn't work. It seems this ESC doesn't accept PWM, only a constant voltage. It seems that a NE555p timer controls the speed.

I bought a MCP4725 DAC and after hooking it up to the Arduino Nano, it outputs a steady voltage.

This is the one: Mcp4725 I2c Dac Breakout Module Development Board - Integrated Circuits - AliExpress

I programmed it to output 2.5V (middle of the range of the ESC after checking with the multimeter) and checked it with a multimeter. It outputs 2.37V. Then I connected the output of the DAC to the wire were the potentiometer wiper was connected to the ESC, but... it doesn't work.

Any advice would be appreciated.


You need to replace the pot with a fixed resistor (of same value) and drive the wiper connection separately.

If you try to inject current to the wiper directly it'll disturb the error-sensing circuitry used to detect wiring faults in the pot. This safety feature is seen with motor controllers to prevent runaway motors if a wire breaks or shorts.

Thanks for the answer.

I forgot to tell that I left the potentiometer hooked (so I suppose it should still have that 100KOhm resistor) and only cut the wiper leg to connect it to the DAC.

Still doesn't work. Any other advice?


Did you connect the 0V end of the pot to the DAC/Arduino GND?


No sir.

I connected the GND of the DAC to the GND of the 555 timer.

With your solution, the ESC is now full speed always. I checked the potentiometer and it has nearly 10V across the legs.

So I'm still not able to control it.


Why not bypass timer 555 and control directly?

Less things, less issues I suppose.

How can I do that? Where do I connect the DAC output in the ESC?


No, without a DAC. I have not used such a motor control board and I do not have much experience with motors. I assume that timer 555 is used as a PWM generator with adjustable duty cycle. Arduino has PWM pins. Maybe it would be good to increase the PWM frequency because the link says 'Frequency: 25KHz'.
If the timer 555 runs at 5 volts, it will almost certainly happen by just turning off its output and instead connecting a pin to the PWM from the Arduino, but it may be best to use an optocoupler between the Arduino and the driver for safety.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.