View Single Post
Old Oct 12, 2011, 11:47 PM
simonk is offline
Find More Posts by simonk
Canada, BC, North Vancouver
Joined Dec 2010
944 Posts
Originally Posted by dave1993 View Post
i collected dozens of different versions of bernards code (i2c, rs232, pwm, inv/noninv, fast/slow, fat/thin, dark/light... ). permutations were endless. including when he started putting rc calibration bytes in ee. dont know if those variations are still on his site or deleted. i lost interest when he switched to m88.
I'm hoping this tree can grow to support all atmega8 variants without having to change the core. The 48/88 isn't really a huge difference, so maybe that, too, if any are in production. I'd rather focus on existing boards since at least then people can easily try this tree and/or improve something they already have.

Originally Posted by dave1993 View Post
i agree it was not perfect but he deserves HUGE credit for pioneering the whole esc mod craze. til then most idiots were trying (key word: trying) to build from scratch. and theres his generosity with source and support.
The only reason we're talking about this is because quax DID start from scratch and made his code open, then eventually notice it could be easily ported to other boards being shipped, which he then did. Who knows how much his work actually influenced other manufacturers since he released it in 2003/2004.

Originally Posted by dave1993 View Post
i made a couple attempts at understanding his code but lack of patience and language barrier frustrated me. only after davidt adapted and improved the comments did i see the light (HARDWARE light... still dont like poking around software... specially asm... yuccchhh!). and even he was standing on the shoulders of konze.
I started hacking on the code just because I was unhappy with a few things (8kHz PWM, dodgy startup, etc.), and wanted to make it better. I started by ripping out absolutely everything not needed to make it work, plus some. I was surprised at how hard it was to break. I've now since added most of the things back after learning why quax originally added them. Other changes are mostly micro-optimizations, particularly to the PWM and RC interrupts.

Originally Posted by dave1993 View Post
not sure about (this) program but quaxs were very fussy about hardware. using bottom fet on resistance for current sensing instead of resistor make these el cheapo controllers very sensitive to fet part numbers.

i think a lot of blowouts with these flashed units are due to improper or no overcurrent sensing. a stalled prop may kill a modded esc where those with stock firmware survive. theres little margin between false shutdowns and blown fets. lots of fine tuning required here maybe.

bemf timing is tricky too IMO and very dependent on fet numbers and batch.

bottom line: escs are the kwaziest people...
quax' original at90s2313 builds did have current sense, but I have yet to find an atmega8 port that still has any. The code is often still there but nothing is checked. Everything I've seen still relies on timing to limit duty cycle and in turn limit current because of the assumed voltage difference between RMS drive voltage and back-EMF at the sensed timing. AVR Turnigy Plush and quax' original tree both still have problems where they think the motor is still running when you forcibly stop the motor very quickly -- Plush is actually worse -- but they don't tend to fry in this state, even though the timing loss typically spirals up to maximum speed. I think this is because the commutation switching ends up acting like a 33% duty cycle limit by itself.

Current sense by Rds[on] of a FET, really? Do you have any reference for this? It would be possible, I guess, but I'm not sure what would be used for the other side of the comparator in this case. It would be good to resurrect this if it does exist.

It seems that almost nobody ships ESCs that have a direct input to output PWM without some averaging or maximum change limiting; even quax' original tree has this. My fork here has this all removed other than the two power range limits by timing which are also in quax' trees, but make an assumption about input voltage and motor kv to be effective. I have yet to be able to fry anything with this, but perhaps I am not trying hard enough. All of the FET frying that I did do was a while ago when I was first working on this tree, and seemed to happen at weird times like when splashing into puddles, not when landing upsidedown at full throttle, which I did try a few times.
simonk is offline Find More Posts by simonk
Reply With Quote