Ok, so here's the basic deal. The stock firmware coming on the ESCs works as intended but is far less than ideal for use in our quads. The problem here is that due to startup sequence timing from when you plug in the battery, each ESC has a microprocessor and code and so does the APM. The ESCs want to do some calibration when they first start and most of the time, the APM atarts it's code fast enough to send the right singals but it's a far less than ideal system. The truth is, we don't need a smart ESC. We need it to simply response to a known range of PWM from the APM and just run the motor. I presonally have seen the issues here in the forum and on my own equipment with the ESCs going into program mode and not responding because APM2.0 need you to press reset and then it boots whihc throws the entire start sequence into a wreck. THe problem again is usign off the shelf RC hardware designed to be used in all kinds of istuations where for the drones with the APM, we need one set of settings and that it.
Luckily for us, the community has done some hacking created some amazing firmware. Basically, a lot of the ESCs are from China and use Atmega 8 processors !! Most of them are clones on the same design with a different heatshrink or different form factor. The bottom line is that if you have the atmel based ESC, then likely, this will owrk and can remove 90% of the problems i have seen. I'll be the first to admit, it's a PITA to do it but after the first ESC and you verify it works, totally worth it.
My ESCs were from 3DR and they have the 3DR label and are rated at 20Amps. I also got some 30Amp ones from RCTIMER and they are the EXACT same board with a different stick and the 30amps have 3 more FETS that were missing on the 20 Amp version. Reports say that all three sizes from RCTIMER are the same 18, 20, 30, 40Amp are the same boards with more or less FETS.
SO, the good news is here are the combined instructions:
You need an AVR programmer such as Adafruit's usbtiny, or an actual AVRISP MK2 (or really any actual AVR programmer).
Some male to male jumper wires or pins
AVRdude and I used AVR burn o mat as the gui to make life easy.
Download the latest firmware from here as a zip file.https://github.com/sim-/tgy/downloads
I got the standard ICSP header pinout (for the programmer side) from here http://www.evilmadscientist.com/article.php/avrtargetboards
This thread had the ESC info and flashing directions
FYI, both the 20Amp from 3DR and the 30 amp from RCTImer are exactly the same as the DYS 30Amp!!! It might as well be my own picture. Further, after you do one, rather than cutting the entire heatshrink off, you just cut a hole where the pins will be.
Just to be clear, here is the pic
After you get AVRdude downloaded and either follow the directions on the posting or use one of the tools to flash, you are good to go. The specific file used is tgy.hex as the new firmware for these ESCs that match the above picture.
Trust me, I flashed 10 ESCs today, 6 on the hexa from 3DR and 4 on the quad from RC timer and they are perfect. No more calibration BS, they just plain work. Due to removeal of some filtering code in the firmware, they also are faster to respond. No more BS, NO MORE CALIBRATION, just fly.
Can't believe somebody hasn't posted this before, the results are AMAZING. This firmware has been out for 2 MONTHS!!!!!
To be fair, this has been mentioned before DIYD.
If people are going to try this out themselves, I can recommend the HobbyKing F20A. It's got an on-board resonator so has an accurate clock, unlike other ESCs which rely on the inaccurate oscillator built into the Atmega. Also, the programming pins are all in a row which makes reprogramming them MUCH easier. They have the more efficient all N-FET design, and they are one of the cheapest ESCs to boot.
I really didn't want to make this a brand thing, just let people know that at least the 3DR and RCTimer ESCs are proven to work. Basically, a lot of searching never let me know if the M2MPower brand that I received from 3DR is also the same PCB and thus the firmware works. Also, while I do understand why it is in some cases better to use an external clock (temperature extremes come to mind), but my point was more that I think the firmware is a must and solves a ton of problems. Basically, even today, there are threads where guys set up the APM and then go through hell trying to get the ESCs to work right.
I cannot stress enough how this modified code simplifies the whole setup and ensure all the ESCs use the same pasic PWM parameters. In my testing between a hexa and a quad, that's 10 ESCs that worked perfect every time I booted, vs all the multiple tries and boots I went through on the stock firmware. I think the goal here is to make it easier for the novice. This firmware removes all the cutoff, setup mode, and other issues that occur on powerup.
BTW, both types of ESCs I used (3DR and RCTimer are all Nchannel MOSFETS). I know they don't have the external oscilator, but at the same time, that's what the kits come with so at least it's good to let people know what they have and what they can do with it.
so when you say 3dr you are refering to diydrones, jdrones esc's. just want to make sure.
Exactly, some are labeled 3DR right on the ESC, other in a recent second lot were labeled M2MPower and the third ones are RCtimer. I bought in 2 different sets from DIY Drones here in the US (AKA 3DR), and RCTimer.
Worst case, cut off the heatshrink off of one ESC and verify it has the mega8 by Atmel.
The story was I bought a quad from 3DR, with 4 each 850KV motors and matching 20Amp speed controls. I wanted more power so they were out of 880kv motors but RCTimer had them and the 30amp ESCs so I got 4 of a set. Then the hexa frame came out and with 4each 850kv motors sitting on the bench, I ordered 2 more 20Amp ESCs and 2 850kv motors. The bottom line is that all of them ended up being the exact same ESC, just the 30 Amps have all the FETS populated where the 20's are missing a single row or the equiv of one FET per phase. They are an exact copy of the picture above. The programming pins are in a stright line just as I have labeled. It's just a matter of hooking up to a usbtiny or other avr and flashing the firmware. The file TGY.hex is inlcuded in the zip.
I've seen a mapping that says all RCTimer ESCs from 10,18,20,30,40 Amps are all the same board and take the same firmware file. Only the 50Amp version has a different file.
Again, open up one ESC and validate it looks like the picture. I would have to assume JDrones uses the EXACT same ones too. YMMV
Attached now are the original 3DR and RC TIMER 20A and 30A (probably the exact same but haven't done a "diff" to check) original firmwares to backwards flash in case you messed up or want to compare performance between the upgrade "hack" firmware and stock.
Sorry, double post due to weird browser error?????
Will the hex files work for Turnegy Plush 30Amp ESC?
New turnigy plush have SIL microcontoller.
There is a lot of enthusiasm for the Simonk firmware. Some of it warranted some not so much. Fact is you do need to calibrate them because of variances in the clock circuits from ESC to ESC even of the exact same type and brand. Latest versions of Simonk have the capability built in to do that and you do it the same way as the stock firmware - power on with the transmitter at full throttle, bring the throttle to zero and shut down the APM and then power up again. That allows you to calibrate all ESCs at the same time.
So, why sometimes not so much? Well, you give up all safety features with Simonk. There is no over-amperage protection at all. The ESC with Simonk will simply burn up and maybe start on fire if too much current is drawn for too long. Also, no battery protection. It will let you run your batteries right down to zero. No auto slow-down or cut-off at all. Lastly, Simonk has problems with certain motors. Tiger Motors MT3506 for instance - it's not the only one. This motor is absolutely unusable with Simonk as are a number of others. Unfortunately, once you've flashed your ESC you can't go back and if you find out you've got one of the motors Simonk doesn't work on you are likely hosed - unless you've got the original firmward to re-load OR you could program up wii-esc firmware. It's another firmware for ESC that is based on the same original core firmware that Simonk based his on. The chief difference is the wii-esc really did the timing correctly and is not only able to programmed with correct timing so that motors like the MT3506 will work but it also has the capability to detect and recover from loss of timing events. Frankly, it delivers better performance than Simonk but is not as well known.
Lastly, the Simonk firmware has been out a lot longer than 2 months. He's had many versions and the first of which were released early last year. And again, it's actually based on the work of another guy who get's no credit and, of course, none of the donations that everyone so eagerly gives to Simonk.
I find it interesting how the Simonk thing has taken on an almost fanaticism aura in the community and especially since there are actually some other, better solutions.
No need to calibrate if you flash an ESC that has a resonator. The accuracy of the resonator trumps the PWM jitter by a long way.
ESC safety features are mostly useless in a quad. I'd rather keep my quad in the air than shut down an ESC! Battery be damned... Probably people prefer the increased performance and are willing to take the risk of a 8$ ESC
Also to be fair, Bernhard Konze (a.k.a Quax) has always been credited, on the first paragraph of the project home page. (Unless there is some other author you mean?)
Interesting about the wii-esc, I have heard the name mentioned before. That's the thing about these labours of love - they are not advertised or marketed so you kind of have to 'discover' them. I'll have to check it out!
You bring up valid points, but that's the exact reason for using it.
There is no over-amperage protection at all.
Hmm, I have to disagree in that most ESCs don't measure amperage stock anyway. Short it out and it will blow up regardless. Some claim overheat protection as well but I have yet to see it work. The $12-18 speed control really isn't a loss and probably doesn't have the feature. Claiming the stock firmware will save it is not exactly a safe bet either.
Also, no battery protection. It will let you run your batteries right down to zero. No auto slow-down or cut-off at all.
Exactly, because we have a system and we want the APM to decide when it's too low. Stock, one or more of the ESCs may cut off early and thus cause a crash. If we let the ESCs decide when to do it, we have no idea what will happen mid flight. If we let the APM do it, we have a chance to land. Yes, not as good for the battery but better for the system. How good is a crashed battery? Using the stock firmware is not the best alternative in this case.
Unfortunately, once you've flashed your ESC you can't go back.
NO, at least the ESCs I discussed, I did back up the firmware and have reverted to check it. Attached now are the original 3DR and RC TIMER 20A and 30A (probably the exact same but haven't done a "diff" to check) original firmwares to backwards flash in case you messed up or want to compare performance between the upgrade "hack" firmware and stock.
Lastly, sorry if I gave credit to the wrong person. Honestly, I just followd the links and shared what I found to work. If you know that person than give the link? Credit is deserved by someone, this is better than stock IMO.
You bring up valid points but my main point was we need a dumb firmware and let ONE cpu and code base run the machine (AKA the APM). This is the only way to really have control. Otherwise, it's all a crap shoot and tradeoffs in poor performance leading to many crashes. This is why there has been talk of a custom multiple channel ESC board just for multi-rotors with the main intent of removing battery cutoffs, input filters and other uneeded functions and just run the motors. The other advantage is better interface to the APM (IC2 bus) with less hardware required in the APM and probably higher speed in the main software loop actually improving performance by a huge percentage.
This firmware just lets us get some performance gain while using cheap ESCs off the shelf. This discussion kinda leads into the failsafe discussions with radios. The problem being users choose brands and hardware equipment that we have no idea how it will interact. By using known firmware, we at least limit or reduce the number of possible interactions in the system.
And that said, so some hardware works and some doesn't. Make a list of what works and use that, or you have the choice of buy stuff known not to work and then still try to fly it and be frustrated.
So, this means I need to flash my Jdrones 20A ESC?