December 11, 2015

A long story about flashing ESCs

It all started with me deciding that BLHeli with soft damping was a fundamental requirement for my next build. I bought the DYS BL10A for my upcoming 150 size FPV racer build.

From the comments section one can read that this ESC
  • has a tendency to go up in flames
  • is not programmable via the 1-wire interface 
Perfect! Not really, but I tested all the ESCs once I got them to make sure I didn't get one of those that leaks magic smoke, and they are all fine. I also ordered one extra just in case. But it was also about time that I got to re-flash an ESC, something I've considered for a long time but never got to the action.

Hooking up one of the ESCs with the DYS programmer confirmed what I saw in the forum posts, it wasn't programmable via the servo lead.

Alright, lets strip it to see what the 4-wire interface looks like.

4-wire interface on the DYS BL10A

There are 6 pads, but 2 are 5v and ground and the remaining 4 are for the communication. I found information about how to connect the pads over at Oscar Liangs blog post.

Now that I had all that figured out I made a connector, inspired by David Windeståhls connector, using a clothespin.

Clothespin connector

My intention was to use this together with a USBAsp to be able to flash a new firmware with bootloader and/or configure the ESC. But my USBAsp is a cheap one from hobbyking and appearently it has an old firmware and can't do this kind of job. So I started preparing to update the firmware of the USBAsp first. This is possible, but requires a lot of figuring out and I decided to ditch that idea.

While trying to figure out how to reflash the USBAsp I prepared one of my arduino boards to act as an ISP. This is really easy. And using the arduino I was able to connect to ESC. But for some reason I cannot get the arduino USB device to bridge into my virtual windows environment (I run Linux). And BlHeliSuite lives in windows.

I decided to use kkmulticopter flash tool to try to put a bootloader onto the chip. But for some reason the kkmulticopter tool refused to flash the chip as the ID was wrong (very little wrong, but still).

The world is against me! At this time I was close to giving up. But as a last resort I pulled out an USB ISP. Could I use this? Yes! Can I get it into windows? YES!

Alright! But this time my super duper clothespin connector failed me. For some reason I could not get a proper connection with the board.

I ended up soldering the cables directly. I wanter to know wheather it was my connector or something else that was wrong. It was fiddly. I have a crappy soldering iron without temperature regulator and I'm not a master solderer when it comes to small things.

Cables soldered to the 4-wire interface.

But it worked. I could now communicate with the chip using the USB Tiny ISP. What surprised me now was that the chip already had BlHeli v. 14, soft dampening enabled and BOOTLOADER. What? I re-flashed it! Check that everything was OK via the 4-wire interface before de-soldering it.

Didn't help. Still not possible to connect via the servo lead. Strange. So I tested the other 4 ESCs. And guess what? They could all be connected via the servo lead. So much time wasted on the one that wasn't working as it should instead of testing them all first.

No comments :

Post a Comment