First, I want to begin by saying that I am working with a group of Basic ESCs that have a history unknown to me. I don’t know what they have been used for or how they may have been abused. As such, I’m guessing about some things here. Anyway, here’s the situation. I have just come onto a project to create some basic rovers for an exhibit.
I was brought in, partly, because there seemed to be problems with initializing some of the ESCs. The initial ideas was that there were timing problems based on differences in hardware clock rates. That does not seem to be the case. In fact, I have one group of ESCs that work beautifully with my test system. They initialize exactly where you would expect (1500us), then proceed to ramp up/down smoothly and stop again at center. The other group of ESCs is a bit more interesting. My testing suggests that they are all initializing at 1500us. The first difference, however, is that none of them beep their status on startup. I can tell that they are initializing, however, because they DO respond during the time that they should be ramping up and down. The motor (or thruster) that I am using to test the ESCs will thrash every once in a while. It appears that the ESC is trying to spin up the BLDC, but it is failing for some reason. It’s weird though, because I’ve got more ESCs in this later group than in the first group.
So, what I have tried. I’ve got my test programs that initialize at 1500us. There are two tests I’ve done. One ramps up and down continually. The other sets a forward velocity for five seconds and then stops. Both of these programs work perfectly with the “working” group of ESCs, and fail totally with the “unknown” group. I have also tested several of the unworking ESCs using a servo tester. Again, I am able to get them to, apparently, initialize because they begin to try to vibrate after I move the control to the center pulsewidth.
So, I’m trying to verify if the problem is something I am doing wrong or if there is just something wrong with all these ESCs. I don’t have a great solution to checking if all three phases are switching properly. It sounds like there are no calibration routines available, so that’s not the issue. I tried to talk to the ESCs using BLHeliSuite and an Arduino configured for 1-wire communication. I never was able to connect. So, I’m out of ideas.
Given that I have several ESCs doing exactly what I would expect (reading the documentation) and working nicely with the code, I am inclined to trust that the code is correct. That basically leaves a problem with the ESCs. The question is, is there anything else I’m forgetting that I could do to identify where the problem lies? I’d really love to be able to go back to my supervisor and say something better than “I think they’re broken.” Even just saying, “they failed by …” would be much better.
Thanks in advance,
Martin Jay McKee