esc

The ESC (electronic speed control) has got the main function to modulate the 3 phases of the motor in order to control the speed of the motor.

The main characteristics are:

Curent:30A

suggested: battery 2-4S

weight:25g

This esc has got a BEC that can provide a 5v/2Ain order to power the rpi .

There are also some interesting features for the quadcopter:

start mode: it is possible to decide the time for the start up of the motor.The dafault value is a soft start, it means it take 1 second to reach the requested speed.

Low voltage protection: it can reduce the power when the battery is decreasing the voltage under a thresold. By default, for a 3S, it will reduce the power when the voltage is lower then 8.5V. This is for preserving the lipo battery.

The esc received a pulse from the rpi and convert it to motor speed.

This signal has by default a frequency of 50hz and the pulse width can vary from 1ms (motor speed =0) and 2ms (max motor speed) with a possibl estep of 10us (=0,01ms)

IMPORTANT: ESC needs a procedure for inizialisation.It can vary by model. This is the description for my model:

First Start (to “calibrate throttle”)

DO NOT connenct power cables

Connect motor to ESC (and mount motor firmly!)

Set throttle to max (in our rpi, set PWM to 2000us)

Connect power cables

ESC using the motor frame, sounds 2 beep closly to indicate the throttle is calibrated.

Set throttle to min(in our rpi, set PWM to 1000us)

Standard Startup

DO NOT connenct power cables

Connect motor to ESC (and mount motor firmly!)

Set throttle to min(in our rpi, set PWM to 1000us)

Connect power cables

ESC using the motor frame, sounds a tri-tone ,that means ESC is started, N beep where N is the number of the battery cells, N beep for the battery level,finally a beeeep for ESC ready.

Increase throttle (in our rpi, set PWM to 1050us) and the motor moves.

I think it depends on the esc used. In my case .No. In fact i recently tested also the case that the esc is already powered thar i start rpi and sw.
In this case i commented the line for the first set of pwm to 100%.
As soon as i connect esc power it start to beep every sec. As soon as i set the pwm to 0 % the esc does the init and than it is ready. It means i can use the bec of tje esc to power rpi.

Hi, Alex, Slenerotech, It IS possible to reverse, but you need an ESC that can do it – I have a pi -> adafruit pwm chip -> hobbyking ESC -> brushless, the adafruit is just cos I needed more than one esc and motor, and the pi only has one pwm output. Anyway, on mine the ESC can do all sorts of cunning things – it can reverse (there is a sequence needed, you need to be in neutral (1500us) for a number of cycles, and then go to something in ‘reverse’ meaning between 1000 and 1500. It can also do breaking, meaning introducing a hall effect resistence and hence recharge the battery by slowing the motor, this is again by a certain sequence – you need to come off the throttle (1500-2000) and go straight to reverse without pausing at all, but then to go into reverse you have to return to neutral zone for a bit and then reverse again. The tiny scrap of paper included wiht my $10 ESC described its various modes and reverse/breaking features surprsingly well.

Hi Danny. Thank yuo for this info. I never hear about this option. Can you tell us the esc model? Do you need a special motor also? One comment about the pi pwm: i’ m using a python library callef rpio and so i can customiz any io pin. Teorically i could have all pwm (apart from pin dedicated to the power and ground)

Hi, I see someone asked last year about the reversing and if a special motor was necessary – apologies for only just seeing them. No, no special motor needed, just a normal brushless, the difference was in the ESC driving it. The reversing by ESC & software probably only really feasible for land-loving craft as the ESC was very bulky and heavy compared to ESCs available for flying vehicles, not sure if just the gigantic capacitors added the weight or if the heatsink strapped to it was the culprit.

Thanks a lot for this explanation. Had been looking for something like this for days. I appreciate the great help you have done by uploading the raspberry pi code. Please do keep updating stuff and keep up the great work.

2ms is not the motor speed but how often the motor can receive a command to change its speed.
Consider that now the whole controller cycle is around 8/12 ms. So I can change the motor speed according to this timing.

Hi there jimbo, I’d entirely forgotten I’d done this. I’m afraid I have no idea what the model of ESC was anymore. It was a ‘car’ esc, meaning it had things like reverse and hall-effect breaking. The $ sign I used was probably an attempt to mean euros by the way. I see now that the PWM chip and i2C fun I had last year would no longer be necessary as the Pi now has libraries to put out reliable PWM signals on lots of pins.