Need more info about Blue ESC

Please i need to know what does throttle_h & throttle_l mean?

and why in library it shifted to right then send the speed ?

and if i want use Raspberry Pi is there useful links

and thanks

The throttle is set by a 16 bit signed integer. This is set by sending two bytes, each consisting of 8 bits, one at a time. throttle_h is the byte containing the more significant bits, and throttle_l is the byte containing the less significant bits (lower value). The two bytes are put together to form the 16 bit value as such:

hhhhhhhhllllllll

On the arduino side, the throttle command is stored in a 16 bit integer. In order to send the 16 bit value over i2c to the motors, it must be sent one byte at a time. That is what the shifting is about.

// Send motor speed command to ESC
void Arduino_I2C_ESC::set(int16_t throttle) {
Wire.beginTransmission(_address);
Wire.write(0x00);
Wire.write(throttle>>8); // here we send the first byte of the throttle value, throttle_h
Wire.write(throttle); //here we send the second byte of the throttle value, throttle_l
Wire.endTransmission();
}

 

Thanks

Have you any Links for Blue ESC to use it with Raspberry Pi

is 0x00 register?

Yes, 0x00 is the register where data begins to be written. The second byte, throttle_l, is written to 0x01. There is example code for using the blueESC with arduino, but if you want to use the raspberrypi, you need to write your own code. There are a lot of tutorials online using i2c on the raspberrybi with the i2c-tools package.

i have problem with raspberry pi that when i connect raspberry pi and motor i2c and make scan for i2c motor run in full speed and stop and it doesnot show that there is motor and if i scan it again it show that there is motor in i2c

thanks

Hany,

I have a couple comments:

  1. Make sure you are using a 5V to 3.3V level converter to connect the ESC I2C to the Raspberry Pi. The Raspberry Pi can be damaged by 5V I2C signals.

  2. Some of the early BlueESCs need to have their PWM signal wire connected to ground while using I2C to avoid sporadic issues like you described. I would try that.

-Rusty

Ok , i used logic level converter but i will try what you say about connect PWM to ground

Thanks

Thanks @Rusty

it worked as you said by connecting the PWM signal to Ground

 

Thanks very much.

Excellent!