Programming cheap ESCs for reverse


#1

Hi all,

I got some cheap ESCs from Amazon and I’m trying to get the to work in reverse. I’ve built a small jig with pogo pins and I’m able to flash SimonK using avrdude. It’s a generic atmega8 and it looks like it supports tgy just fine.

What’s got me stumped however is configuring SimonK to go in reverse. So far, this is what I’ve tried:

  1. get the latest version from GitHub, compiled it, uploaded it. It works just fine, but only forward.
  2. looks like the documentation on how to enable reverse is outdated, no idea how to enable it on the latest version. RC_PULSE_REVERSE is no longer a config option.
  3. got an older version from 2015, set RC_PULSE_REVERSE to 1, compiled it, uploaded it, and it still will only go forward?

I tried a bunch of other things, such as kkMulticopter flash tool, but it was completely broken for me, just threw a NullpointerException trying to download the firmware. Did it manually by following the steps the tool was trying to make, found tgy_reverse.hex and flashed it, but still only forward.

I also tried http://0x.ca/tgy/ but that looks broken, too.

Any ideas what would be causing this?


#2

I’ve recently gotten started myself in this area, trying to find an ESC that is easy to program and something I can purchase more of in the future. Rather than messing about with building custom firmware or trying to download files from sketchy file sharing sites, I did some looking around and it seems like BLHeli-S or BLHeli-32 devices are the way to go. They seem to be standardized and you use the same tool to configure them all, and they all seem to support reverse by just setting a flag with the USB programmer. I went with BLHeli-S myself, the tools are all free, and I’ve purchased multiple ESCs from Amazon and HobbyKing and they all work. I also found a 4-in-1 ESC that works too. So this is what I’d recommend to others right now.


#3

After some frustration, I was able to get it to work. For future reference, In tgy.asm I now have:

RC_PULS_REVERSE = 1
FULL_RC_PULS= 1460

the second line is what took me time to figure out. You have to set FULL_RC_PULS to the midway point of your throttle, so in my case, in between 1860 and 1060 pulse width. I just compiled and flashed and it worked.

This is the ESC in question: https://www.amazon.com/gp/product/B075ZSDR2T

It’s basically a tgy compatible hobbywing 30A esc. They’re dirt cheap, I think you can get them for about $5 on banggood and similar.

edit: also, I am not sure BLHeli supports forward/reverse, I think the ‘reverse’ option just reverses the direction the motor spins in, but don’t quote me on that.