austindavid
100 W
- Joined
- Apr 15, 2014
- Messages
- 204
OK, cruise -> brakes is the ESC. I've seen this too on my Flier and it went away after reflashing to different code. What I think is happening there (based on having seen it a few times and testing): the ESC sees a constant signal from cruise, and decides that's the new "neutral." Then when it drops back to the stick-neutral, the ESC thinks it's negative and applies brakes. Depending on where the cruise was set, this could be a lot of brakes.
The servo / ESC signal is a time pulse between 1 000 and 2 000 us (microseconds), once every 20 000 us. "Neutral" is exactly halfway, or 1 500 us. Usually
1 000 == full brakes, 2 000 == full power. Wiiceiver uses exactly 1 500 as neutral, 2 000 as full power, 1 000 as full brakes. Any controller will look for the middle stick position and call it 1 500, but it's impossible to know that the stick is perfectly centered. That's one reason for the trim tabs on a good RC controller. On a nunchuck, Nintendo just assumes the stick is centered when you power up the wii, so whatever position at startup = "center." If you hold it to the right when you turn it on, it will get screwed up -- letting it back to "center" ends up being pretty far left, for instance.
Wiiceiver doesn't do that. Some ESCs *do* perform that sort of checking, though, and cruise control is something of an unnatural thing for an ESC to see. In an RC car, and I imagine most ESC tests, the receiver will get a varying signal from idle, up, brakes, idle, etc. it's possible your ESC is programmed to treat a constant flat signal (even high, like 1 750 us) as the new "neutral." If the signal drops even a little (to 1 700, which is like 35% throttle) the ESC would interpret this as brakes...
I haven't been able to get into an ESC code, which is part of the reason Vedder's project exists. I'd love to be able to confirm the above, but I can't. I know it happened a lot on a flier with one code version, and stopped happening when I reverted. Some have a setting for automatically setting neutral, but on Flier I wasn't able to turn it off reliably.
On yours I'd recommend testing with the board upside down. Set cruise, speed up, slow down, see if you can hold a fixed speed for a long time, see what happens when you let it back to neutral, etc. If you can reliably get it to suck, lemme know. It would be easy to update 'cruise' to send slightly varying signals -- small enough to be unnoticable, but enough to keep the ESC from freaking out. If you can get the problem to repeat I will send over some code to hopefully fix it.
The servo / ESC signal is a time pulse between 1 000 and 2 000 us (microseconds), once every 20 000 us. "Neutral" is exactly halfway, or 1 500 us. Usually
Wiiceiver doesn't do that. Some ESCs *do* perform that sort of checking, though, and cruise control is something of an unnatural thing for an ESC to see. In an RC car, and I imagine most ESC tests, the receiver will get a varying signal from idle, up, brakes, idle, etc. it's possible your ESC is programmed to treat a constant flat signal (even high, like 1 750 us) as the new "neutral." If the signal drops even a little (to 1 700, which is like 35% throttle) the ESC would interpret this as brakes...
I haven't been able to get into an ESC code, which is part of the reason Vedder's project exists. I'd love to be able to confirm the above, but I can't. I know it happened a lot on a flier with one code version, and stopped happening when I reverted. Some have a setting for automatically setting neutral, but on Flier I wasn't able to turn it off reliably.
On yours I'd recommend testing with the board upside down. Set cruise, speed up, slow down, see if you can hold a fixed speed for a long time, see what happens when you let it back to neutral, etc. If you can reliably get it to suck, lemme know. It would be easy to update 'cruise' to send slightly varying signals -- small enough to be unnoticable, but enough to keep the ESC from freaking out. If you can get the problem to repeat I will send over some code to hopefully fix it.