Regarding the update method, timecop made an update package and doc at http://www.abusemark.com/downloads/rapidesc_update.pdf . Some people may have problems because the USB port will not supply enough current to power the ESC (since it ends up charging up the capacitor instead of just powering the logic). I have no problems if I connect the servo wire, plug it in to USB, and then power up the ESC, but this is kind of pain when you want to do many of them. I'm still tossing around the idea of jumping to the boot loader if it detects being pulled high for a while when not driving the motor. This would allow updating many in a row without having to keep plugging/unplugging power. Right now, the boot loader only executes on power-up and only stays active so long as the servo pin is pulled high, so it won't work if the ESC is already powered before the USB linker is pulling high, such as if you power the ESC and _then_ plug it into USB, or if you plug it into USB, then into the ESC, causing an overcurrent on the port (OS dependent behaviour follows?), which causes it to not pull up the servo pin.
It would be nice have a circuit specifically for the ESCs we are trying to flash, rather than for 3.3V SuperBrain ESCs. A light resistor between the BEC wire and the servo pin would be enough to make it work regardless of plugging order.
Ok, way too many changes have accumulated without a release, so here is a FETkillerô testing/alpha release. I have NOT flight tested this yet, but it might be raining by the time I do.
git shortlog --no-merges d8f53c2c2..a77d1c339
Marcin Cieslak (6):
Remove suprious HTML from end of file
Add a simple BSDmakefile for testing
Add .obj files to .gitignore
Assembler can be overriden on the commandline
Replace .ifdefs with #ifdefs
Add explicit dependency on tgy.asm
Simon Kirby (38):
Beep periodically when RC signal is lost (patch from alsav).
Add support for ramp-up, pulsed (regenerative) braking.
Port missing Makefile targets to BSDmakefile.
Comment and typo fixes.
Simplify and optimize rcp_int by using OCR1B instead of tracking 24 bits.
Stop using 4 registers just to avoid 4 extra cycles in PWM interrupt, and implement optional complementary PWM.
Use TIFR.OCF1B instead of OCT1B_PENDING. No OCF1B interrupt required.
Support wider calibration range all the way from 0 to MAX_RC_PULS.
Use shorter RC timeout while armed (HK i86 workaround).
BSDmakefile should work now. Waiting on avra -i option so we can drop the symlink hack.
Build up start power to PWR_MAX_START more quickly.
Sync loss avoidance, comp PWM, ZC DC bias cancellation, adjustable timing advance, and startup and timeout improvements.
Halve ZC filter time when running at 8MHz.
Add tp_8khz target for "type 1" clones that blow up at >8kHz PWM.
Fix typo and prepare for merging with Makefile.
Move BSDmakefile over to Makefile.
Fix math rounding error when subi/sbci is used for adding a constant.
Don't accidentally turn off power for too long, and don't forget to track timing on wait_timeout.
Allow start duty to reach PWR_MAX_START again.
Don't wait for demagnetization during startup.
Match up the sync debug on the MOSI port with stock Mystery firmware.
Move ZC loop shifting to update_timing.
Calculate the needed motor timings when needed instead of in advance.
Move boot loader to boot.inc.
Don't halve ZC loop count on 8MHz MCUs -- the timing will already be half.
Fix powerskip regression since c09b6930b -- don't include carry in decrement.
Reduce the powerskipping timeout to twice the minimum required.
Macros for adiw/sbiw that allow any immediate. Allow <1kHz PWM again.
Calculate ZC check count on demand instead of in advance.
Remove unused TIMING_RUN.
Optimize update_timing and crash set_new_duty on the end.
Keep rc_timeout consistent when driving (no decay from RCP_TOT).
Optimize PWM halving.
Disable interrupts for a shorter period in set_ocr1a_abs.
..I removed some junk from the above, but there are lots of things that might break there, as you can see. Most people are waiting on this commit:
Author: Simon Kirby <email@example.com>
Date: Tue Sep 11 01:49:38 2012 -0700
Sync loss avoidance, comp PWM, ZC DC bias cancellation, adjustable timing
advance, and startup and timeout improvements.
Warning: This is a significant commit. I even broke a few FETs because of
some earlier bugs. Test carefully.
Complementary PWM is now supported, ala wii-esc. This has an interesting
effect of having the motor speed more closely and more quickly track the
duty cycle even without any active braking or closed-loop controlling.
Warning: It may break P/N (or other) boards.
Jumping from low to high _speed_ should no longer lose track of timing
because of excessive averaging. This caused problems in some cases even
without ZC tracking issues, such as with the NTM 28-26 1200KV.
Jumping from low to high duty cycle that results in a demagnetization
period that exceeds the blanking window will now be tracked and if
excessive (approaching 30 degrees), PWM will be stopped 30 -
MOTOR_ADVANCE degrees in order to avoid blinding the ZC in the next
commutation. This should (in theory) be smoother than the wii-esc
approach of jumping forward, as the power will only be cut for about 15
degrees. This should solve problems with the expensive and/or pancake
motors that have higher inductance and lower winding resistance such as
the RCTigerMotor MT-3506. Thank you to ziss_dm for the ideas, discussion,
and awesome LTSpice simulation!
Jumping from run to brake to run again (or run to RC timeout to run)
while the motor is spinning quickly will no longer cause sync loss due
to excessive ZC filter length and/or blanking periods. Instead, we look
briefly without power to see if the motor is spinning and align to it
before inducing any demagnetization current or PWM noise.
Starting NTM 28-30 750KV motors should no longer squeal in some cases.
This was a bug where zc_filter_time was not being set during starting.
The long blanking period is instead taken care of by the ZC filtering.
DC bias is now cancelled from the commutation timing. This might help
at very low speeds, but it's probably not that useful.
Timers are now set to absolute values precalculated by update_timing.
This avoids skew from processing overhead. There is still a little bit of
skew from the ZC filtering, but I don't see any way around this. Also,
boards with larger sense filtering capacitors such as the F-30A line will
have slightly droopy timing as RPM increases, but this should not be a
big deal. MOTOR_ADVANCE has changed from 15 to 18 degrees, which looks
almost perfect on the 'scope for everything I have tried with.
Let me know how it goes! I won't upload it to github downloads until I get some good feedback and I actually do flight test it.
Greetings from Nanaimo, B.C.
Sorry if I am thread jumping here, but I have just read about 200 of the posts and I am just so confused I cant describe it.
How do I know what firmware I should use?
Mystery 20a N-Fet
do I need to do any hardware modifications at all?
I plan to use my HK USBasp and HK Atmel Atmega Socket Firmware Flashing Tool
what software should I use? all FETs are F7832 as far as my weak eyes can tell.
Thanx in advance!
I'm sorry that this is a little off-topic ... connected (perhaps tangentially) only because next steps would be flashing these things. I've been following this topic for a long time and it seems that there's an immense cache of ESC expertise here.
I'm slowly working towards getting my first tri-copter going. Finally got all the F20 speed controllers soldered in and did a first test. Two of three worked fine, one doesn't. The motor just vibrates. I tried a different motor, same thing. Tested the motor on a different ESC and it works fine, so I'm thinking it's the ESC that's bad.
A shakey cell phone video showing the problem is here
Suggestions on what to do next would be gratefully appreciated. Is it worth trying an return with HK? I do have a spare that I'll solder in tomorrow. PITA.
Thanks in advance.
Check this list made by TomSn0w of all compatible ESCs with their specs and appropriate firmware file. Thanks a lot for this!
|Category||Thread||Thread Starter||Forum||Replies||Last Post|
|Discussion||Rctimer 30A esc cutting out with KK board||Efliernz||Multirotor Talk||2||May 26, 2011 03:20 PM|
|Sold||FS: Tricopter Parts- HK401b, Pentium 30A ESC, rctimer 750kv motors||pwu_1||Aircraft - General - Miscellaneous (FS/W)||2||Jan 18, 2011 10:58 PM|
|Sold||RCTimer 2826-6 + ESC 30A New in packaging will trade as well Pics Added!||planebldr||Aircraft - Electric - Power Systems (FS/W)||4||May 25, 2010 10:54 PM|
|Discussion||RCTimer 30A Programmable ESC||hunter7193||Power Systems||8||Jan 02, 2010 03:27 PM|
|For Sale||Several New ESC's - 10a, 20a, 30a - Reduced||Callen9345||Aircraft - Electric - Power Systems (FS/W)||0||Apr 20, 2009 03:31 PM|