I am integrating 6 T100 motors with pre installed ESC with arduino UNO and controlling their speed with I2C . The system used for communication between laptop and the arduino is Ethernet.
I connected the motors through same I2C and changed their adressses without using pull up resistor for SDA and SCL.
When i operate each motor individually everything works fine ! . When i integrate the full system some unknown problems happens.
1- while operating more than 2 motors … there is a motor or 2 keeps flashing red LED waiting for calibration and it takes too long to calibrate and sometime it doesn’t calibrate successfully then it works randomly with almost full speed without giving it any signal.
2- motors don’t respond to any signal.
3- eventually i managed to get more than 2 motors working ( don’t know why the reason they worked yet ) … i did dry run and everything was working fine … then i tested them in water … the same problems appeared … i give signal to stop the motors … the motors stop but the same motor which takes too long to calibrate operates on with full unknown speed.
i don’t think it is a power problem because i am using a power supply 48volt 40 A then 6 converters 12 volt 20 A to give power to each motor.
I am not sure what is the problem now ? is it from my hardware or from my software ? or i should be using the servo library to give the speed instead of controlling the speed of 6 motors using I2C bus.
I’m sorry you’re having some issues! I’m sure we can figure them out.
I2C is relatively sensitive to long cable lengths and when you’ve got six thrusters on the bus, there can be errors. When using multiple thrusters, we generally slow down the I2C bus frequency to make it more reliable. We recently added a few lines of code the setup function in the Arduino_I2C_ESC library example to do this:
// Optional: Add these two lines to slow I2C clock to 12.5kHz from 100 kHz
// This is best for long wire lengths to minimize errors
TWBR = 158;
TWSR |= bit (TWPS0);
If you haven’t already, please add that to your code and see if it helps. I think this is probably causing the issues with initialization and inaccurate throttle response.
If that isn’t working reliably, please try it out with PWM control. That will help to see if there is an issue with I2C only or if it affects the thrusters regardless.
ok i changed the freq of the i2c and still the same problem … i tested the servo library but didn’t test in water yet i will test it and tell you the results but there are some strange things …
**there is always 1 motor takes too long to calibrate or two … using the servo library i tried to change the delay to make it take enough time to calibrate but the problem is solved only when i keep resetting the power many times till it calibrates
** when i turn on the power using the power boards i made … i get shocked from electricity from the body of the motor (bolts of the motor base becomes conductive … also the pins of the arduino uno)
do you think this may be a power problem ?? … the power of the motors don’t reset … i am using 48 v source and a converter to convert 48 to 12 volt to power the motors ( the converter rating 48-12v 20A)
The shocking issue is definitely not good. That sounds like your 48V power source might be making it into the water somehow. That’s definitely a strange issue. Which bolts on the motor are you talking about? Is it the bolts that hold the BlueESC to the rest of the thruster?
well i tried i am still trying with i2c and pwm and still same problem with one motor who don’t want to calibrate …
actually i am building 2 Rovs (both with 6 T100) with almost same hardware configuration and the same scienario happens with both rovs … random 2 motors or 1 don’t always to calibrate
sometimes the motor finishes calibration but it eventually doesn’t work … i removed the pwm signal and the strange thing that the motor still calibrating … does it calibrate only from the power ?
ok i think i found the solution … i tested the motors for relative long periods in air before … now if i want then to calibrate i must put them in water then get them out of water till they calibrate and then they work fine is this logic?!!
there is one motor still don’t want to calibrate … i think it won’t work anymore
The motors do not calibrate from power alone and should not calibrate if the signal is disconnected. When powered up, there will be a series of beeps. Once calibrated, you will hear one more long beep.