We bought 6 T100s and the newest Bluerobotics ESCs to use on our MATE ROV. We have wired them up according to the documentation and connected them to an Arduino running the BlueRobotics sample code. When powered on, the motor beeps 3 times. When the Arduino boots and runs the code, the motor beeps 3 times again, then a 4th longer beep. It doesn’t spin at all, with any signal between 1100 and 1900.
We tried with our own code, placing the 1500µs signal in the main loop of the program instead of in the setup section. With this code, the motor beeps thrice, then emits 2 more long beeps, indicating that the ESC is successfully initialized. However, in none of these circumstances does the motor spin after beeping.
What could be causing this issue? Even though our power supply can only output up to 2 amps right now, that should still be sufficient to make the motor spin at a low speed, right? We’ve tested with multiple T100s ESCs, and Arduinos, and all combinations exhibit the same problem.
Not necessarily, the speed controller must send an initial ‘burst’ of power to get the motor spinning. This may lead to a spike that brings the voltage down and the esc resets. Actually, come to think of it, this would explain exactly the behavior you describe. After the ESC resets, you hear the initial three beeps again, and the arduino never sends the initialization signal again at that point. The esc beeps low to indicate that it sees the 1700 signal at this point.
We tested with a higher amperage power supply (a 430W computer PSU) and connected the Arduino and PSU to common ground. We get the exact same behavior. With the sample code, 4 beeps. With our code, 5 beeps. No motor spinning.
Good to hear you have it working! The new R3 ESCs take a little longer to boot up than the R1 and R2, and thus require a longer neutral signal to initialize.
This has already been increased and reflected in the documentation once before, with the delay increasing from 1 second to 3 seconds in the sample code. Is 3 seconds not enough in your setup?
Thank you for your help please:
We are testing a set of 6 t100s. We have 3 joysticks topside and an Arduino on the rov . 4 of the t100s are wired together to run up and down. the 5th motor is on the right side of the rov, the 6th motor is on the left side of the rov.
Our arduino uno is 30 feet down a tether this year and in the waterproof canister. We use the arduino code correctly, but the signals all seem to be randomly turning on whatever motor it feels like. Even if we rewire the joysticks. Sometimes one joystick can even get all 6 motors going at once! Its like ghost signals. Do you think that the timing at startup is causing this problem? Or should we move the arduino up topside?
What protocol are you using to communicate with the onboard Arduino? Serial? This sounds like it’s being caused by crosstalk. I recommend shielding your cables and/or using a different protocol, like UDP, to send signals to your Arduino.
Do you have a recommendation on shielding? a wire? It is the best option because learning about different protocols is not on the horizon for the team yet.
We have 6 t100 motors, and 6 esc controllers. positive and negative from 12 volt headed down the tether to a bus bar that powers the 6 esc controllers and an arduino.
From the 12 volt to the control box we have a positive and negative that steps down to 5 volts to power the 3 joysticks.
from the joystick to bus bar we have signal wires that meet up with the signal wires in the tether. the signal wires come down to a breadboard. joystick signal wires goes into inputs on arduino, esc signal wires go into outputs on arduino.
4.there is a small signal wire ground that goes into the arduino and and connects all the esc grounds to the negative output on the arduino.
We seem to successfully run one motor at a time, but as soon as we run 2 motors or more, the motors start turning on seemingly randomly when we touch the joystick, and even sometimes when we don’t touch the joystick. We tried to isolate a faulty joystick, or a faulty arduino, or any faults in the breadboard connections, and we even changed our programming delay to 7000 but still, the t100’s are running rogue. Yesterday we even tried to add capacitors to each line, but that did not do much. We though that maybe our laptop or iphones were too close to the signals, or that maybe the florescent lighting in the shop was affecting it, but once we isolated it all, it still seems that the tether lines are cross communicating.
The 4 up and down motors will usually not be used at the same time as the two forward reverse moving motors, and our tether is only 30 feet long at the moment.
This makes me think this may be a power issue. The T100s can draw a lot of current, and if the voltage drops under load, this could wreak all sort of havoc with your control system, the ESCs, and anything else on board your ROV. Furthermore, if there is a significant mismatch between ground voltage powering the ESCs and at the signal, similar issues can arise. This can happen if the PWM signals need to travel a long way. You say your tether is 30 feet long, but what gauge of cable are you using to power the vehicle? This is where I would first look to chasing down voltage drops. If possible, try replacing you tether with a short section of thick cable, and see if the problem goes away. It would also be helpful to monitor voltage on board the vehicle while increasing throttle.