Closed stylesuxx closed 4 years ago
I am the guy with the 1304 motors. Very odd issue. I am running this firmware on a bunch of other builds without issues (some AIO fcs). After I flashed the firmware, the motors initially armed but than I got some smoke from the board and it appears some of the escs burned out.
@stylesuxx
Re-flashing the original version of BLHELI_S does not seem to solve the issue.
That would seem to rule out the ESC firmware don't you think?
@Ericarias84
Sometimes motors or ESCs just fail.
Make sure you've set the motor_poles
parameter in Betaflight correctly. Little tiny motors like that may not be the default 14 poles. If you don't have this set properly the RPM Filter won't work properly and it's possible that the motors will get hot. But it wouldn't cause a motor to smoke instantly.
@etracer65 the first case was working before flashing JESC and would still overheat even after being reverted to it's original state (BF and BLHELI_S). The motor_poles
were set correctly to 12.
Also the motors were not getting hot at all, it seems it was the FET's that got hot and thus de-soldered the motor wires from the flight-controller.
and would still overheat even after being reverted to it's original state (BF and BLHELI_S)
That's my point. This would rule out a firmware problem and point to a hardware problem.
Edit: Or possibly the wrong firmware file used in both cases. The BLHeli_s firmware defines important operating parameters (the numbers in the file name). If the wrong values are used it can damage the hardware. Also wouldn't be the first time a manufacture shipped an ESC with the wrong settings.
OK, so you are saying it was just a coincidence that the problems started after flashing JESC?
Wrong firmware version was also my first guess but we double checked that afterwards.
Unfortunately I can only provide second hand information - just wanted to post here to make people aware of a potential problem with this constellation. Since it happened two times already, chances are that it might happen again.
Thanks for your input.
So I just spoke to NamelessRC. One of their engineers looked into it and said that you should use ESC version P-H-90. Both boards come flashed with P-H-15.
So @etracer65 was right with his assumption that the manufacturer shipped the board with the wrong settings. Although I do not understand why this only became an issue once flashed with JESC and was not an issue from the beginning?
Find attached a screenshot of my conversation with NamelessRC on facebook.
That is interesting. How did you and a few other people get it to work on your Nameless board? Which version do you have flashed?
From what I understand, only people with 2S got it working without issues. I flashed P-H-15 of JESC, it came with P-H-15 of BLHELI_S. As it seems I was just lucky with my 2S setup not to run into any problems.
I have heard from another guy, also running 2S but DSHOT600 that he was getting temp warnings in beta. This might be an indicator too, that it is running too hot even on 2S.
EDIT: I just flashed mine to P-H-90 and I can not feel a difference in flight with my 85mm whoop. BUT I now have longer flight times with my 300mAh 2S batteries.
@stylesuxx The page that's apparently related to you at: https://brushlesswhoop.com/namelessrc-nlrc-aio-412t-jesc/ is very misleading.
The only news here is that the manufacturer shipped the ESCs with the wrong firmware settings. The settings they supply were incorrect enough to cause physical damage to the ESCs. The deadtime is derived based on the electrical characteristics for the FETs based on the manufacturer design and datasheet. It is not something that would be set differently for different firmwares or something you would "tune". The manufacturer just screwed up. If I owned one of these ESCs I would be contacting the manufacturer for replacements even if they haven't failed yet because they're already likely damaged to some extent.
Is it possible that people flying with RPM filtering enabled using JESC might be working the ESC harder due to better flight characteristics? Sure. Could this put more stress on the already marginal ESC? Sure. But that's not the underlying cause. The incorrect deadtime is.
Hey guys - great you got this issue sorted out. Not sure why the issue started when installing Jesc. Jesc uses the very same code as blhelis for managing pwm in 24khz pwm mode. The experimental 48khz mode has some differences but none that could cause this.
Beyond coincidence the only explanation I can come up with is that the manufacturer installed a firmware that was tagged as P-H-15 but was really a P-H-90. This would cause exactly the issues described here: it would work as purchased but Jesc would install the P-H-15 version and even after flashing back to blhelis you would now have a version that doesn’t work. Any update in blhelis configurator would have led to the same outcome in that case
Etracer is also right: it’s entirely possible that the esc went bad over time and just started to show symptoms by coincidence when Jesc was installed.
@joelucid I was also suspecting that it might simply be tagged wrongly, but in the meantime NamelessRC replied and stated that no - they in fact do flash P-H-15 in the factory:
I now asked him why this would be necessary in their opinion. Is there any way I can (easily) dump the current firmware from the firmware to compare the hex files.
@etracer65 thank you for your feedback regarding my article. I now added a disclaimer that people should not flash different versions in attempts of "tuning" their quadcopters.
As you can see from the above screenshot the manufacturer states that P-H-15 is indeed the correct firmware that is flashed in the factory and that we should use P-H-90 if we want to use JESC. I also did ask him about his reasoning for this and that people here are of the opinion that a different deadtime for JESC makes no sense.
I also invited their engineer to join the discussion here.
@Ericarias84, did you use the experimental 48khz mode or 24khz?
I found an issue that the experimental 48khz pwm mode scaled the dead time down in half. This needs to be done for any power related variables since the pwm runs twice as fast. But not for the dead time.
@Ericarias84, if you did in fact use the experimental 48khz pwm version that could explain the issue. This would also explain why some people don't have a problem (the ones on the stable 24khz pwm version) and others do (users of the 48khz pwm beta).
I pulled the 48khz beta for now until I have the time to address the issue.
Just flew 10 packs through the fixed 48khz pwm Version and had no issues. Would anybody like to test this out in the nameless aio? I can provide a hex.
@joelucid the first guy that contacted me, flashed JESC according to my screens - which show 24kHz (which is also the default selection).
I'd try it, but the Problem does not show on my 2S build anyways, so I am not of much help.
@stylesuxx - ok. Well it still seems he's unsure so who knows. Many people are in the bigger is better dept - so maybe it was an unconscious choice. I've flown the 24khz version so much that I'm sure there's nothing similar in there.
I also used 24 when I flashed.
Well - that brings us back to the hypothesis that P-H-15 might not be a suitable fw for the esc. 24khz pwm mode has been flown on hundreds of quads without this issue. It does seem to be hw specific then.
@joelucid OK - so which options do we have to confirm this hypothesis?
Any other - possibly non destructive options? Maybe I should try and measure the temperature of the FET's on the bench with 2S @ 20% throttle: let the motors spin for 20s, measure the temp of the FET's with JESC, flash BLHELI_S and re-do the measurement. Not sure how accurate the measurement would be - what do you think?
Maybe I should try and measure the temperature of the FET's on the bench with 2S @ 20% throttle: let the motors spin for 20s, measure the temp of the FET's with JESC, flash BLHELI_S and re-do the measurement. Not sure how accurate the measurement would be - what do you think?
Yeah that's a good idea. You don't even need to connect motors. The dead time prevents the upper and lower side FETs to short the power supply while switching - so it's independent of any external load. This makes it very easy to spot: no load, just a bit of throttle in the motors tab. If the dead time setting is ok the fets should not get warm. If the fets get warm you should have enough time to pull the motor back to zero to prevent any damage.
If it kills the ESC on 3s it should be enough for the ESCs to get warm on 2s. You can then also check if there's any difference if you use P-H-90.
All measurements at 1150 throttle.
Variant | Temp in Celsius |
---|---|
BF 4.1, BLEHLI_S - STOCK | 42 |
BF 4.1, BLHELI_S - flashed P-H-15 | 42 |
BF 4.1, BLHELI_S - flashed P-H-90 | 40 |
BF 4.1 JESC - P-H-15 (without telemetry flashed) | 42 |
BF 4.1 JESC - P-H-90 (without telemetry flashed) | 40 |
BF 4.1 JESC - P-H-15 (with telemetry flashed) | 40 |
BF 4.1 JESC - P-H-90 (with telemetry flashed) | 40 |
BF 4.1 JESC - P-H-15 (with telemetry flashed & RPM filtering enabled) | 65 almost instantly - did not reach 1150 throttle |
BF 4.1 JESC - P-H-90 (with telemetry flashed & RPM filtering enabled) | 42 |
I tripple checked all the measurements.
RPM filtering enabled are those settings:
# set looptime to 4k to have enough computational time
set gyro_sync_denom = 2
set pid_process_denom = 1
# Start with dshot 300 which is most robust
set motor_pwm_protocol=DSHOT300
# basic settings required to enable rpm filtering:
set dshot_bidir=on
# enable debugging for noise assessment
set debug_mode=gyro_scaled
# reconfigure dynamic notch filter to focus on narrow frame resonances
# since motor noise will already be eliminated by the rpm filter.
set dyn_notch_range = medium
set dyn_notch_width_percent = 0
set dyn_notch_q = 250
@stylesuxx sounds like a plan! There's probably not much of a need to test BF 4.0 though.
@joelucid Yes, I thought that too, that's why I only tested with BF 4.1 in different constellations - I edited my initial post already btw.
Sorry didn’t see you already had results. Well this certainly is very fascinating. I’ll try to reproduce. Thanks for testing!
So far I can't reproduce this with my debug escs. Anybody know how to get a hold of a Nameless AIO 412(T) in Germany?
@joelucid I'll send you mine - I am from AT. Message me: stylesuxx@gmail.com But I would like to have it back if at all possible.
I have prepared one test we could still try: could you flash the Telemetry hex called Test version (internal use only) using jesc configurator? I've disabled actually sending telemetry but this still works with the inverted dshot protocol. That way we can eliminate that as factor.
@joelucid stays at 40C with this telemetry hex.
One more idea: go back to the normal Telemetry hex but set your loop time to 1k.
Gets slightly less hot than with 4k.
Question for you guys not related to this problem. I have a 6s build running 32bit escs. I am running RPM filter firmware on the escs, is it safe to use 48 PWM frequency or should I stick with 24?
Is there any news on this? I just received my board and would like to flash JESC with telemetry but obvious don't want to fry my board.
I’ll be back from vacation tomorrow. Hopefully Chris board will have arrived so I can run some tests.
Thanks for the quick reply. I'll be patient. Weather here is crap anyways. :-)
Alright, the board arrived here and I did some first tests. I flashed different FW's and held my thumb on the escs while increasing throttle to about 1150 in the motors tab. I used a 2s battery. With P-H-15 the FETs became hot very quickly in all cases (BLHeli_S, JESC + Telemetry + Bidir on and JESC + Telemetry + Bidir off). With P-H-90 the FETs didn't get hot in any case at all.
Personally I couldn't observe a huge difference between the different tests that did get hot. I'm inclined to think that the FETs just need a higher dead time than 15. Unfortunately the FETs don't seem to be marked so I can't look them up in a datasheet.
I'll try to contact nameless to get the FET specs.
BTW even P-H-30 was already much, much better. Probably not necessary to go to P-H-90.
Interesting - that contradicts my tests. And brings us technically back to square one: Why were people able to fly it without issues before flashing but not after flashing JESC? So all of the people that smoked their FET's after flashing JESC had just bed luck, or do the FET's have to work harder after flashing JESC and having RPM filtering enabled?
Thank you for looking into this and thank you for contacting nameless. I always hit them up on facebook and they tend to respond rather quickly.
Yeah @stylesuxx it is strange. One thing that's different in jesc is that I only apply the new rc packet to pwm once the telemetry packet is sent. That could influence timing a bit.
The good thing about what I found is that it is consistent with the other data - we haven't seen this issue on any other esc. Hopefully nameless will provide the FET specs so we can confirm what timings should be consistent with the switching speed of the FETs.
I hope so too - but since it would probably mean, that they have to admit a mistake I am wondering if it will happen.
Did you test if there is any difference in temp with P-H-30 when using 3 or 4S?
So far I only tested 2s. No response from nameless on FB thus far.
Ok - new insights: tried blhelis 16.7 P-H-15 on 3s and the fets get too hot to touch immediately when applying power.
I also asked around and @conuthead provided this input:
@Joe Lucid Is that a passive design? ( no gate driver) . If it is the circuit I think it is .. it uses p channel upper fets and is super slow to turn off. I use the _90 dead time.
Looking at the board it does indeed look like there are no gate drivers:
Finally nameless answered this morning and said they wouldn't share the FET specs. They also gave this advice:
Which kind of sounds like not any P-H-15 fw will do - it has to be the one they preinstalled. I probed further but they went silent.
Unless I hear anything else from nameless I think anybody updating their FW on this esc should use P-H-90 as they recommend for jesc. And that includes updates to BLHeli_S FW.
Here's the top of the board. It has 3 transistors per esc. That makes it likely this design (https://www.rcgroups.com/forums/showthread.php?2898397-Another-strange-BlHeli_S-1-3s-DIY-esc) which is the one that requires a dead-time of 90.
Maybe there is an incentive to make ESCs appear to switch faster than they actually can for marketing purposes.
Great detective work - thank you. Interestingly enough they do not post ESC timings anywhere on their product pages. But them telling us not to upgrade BLHEL_S at all really sounds strange.
I guess our only way to find out the truth would be dumping the ESC FW from a new board and compare that to a known P-H-15. I guess that's not worth anyone's time, better get the info out to only use the P-H-90 FW no matter with BLHELI_S or JESC.
Yeah - if this sort of thing happens more often I would need to implement some kind of checksumming of the installed fw to avoid upgrading mistagged versions. But so far it’s just this one. Getting the word out would be good. I’ll add it to the install instructions. Maybe you could update your readership as well. I’ll keep the board for a couple of days in case anything comes back from nameless if that’s ok with you.
Will do - I will update this article with your new findings. Sure, keep it another week or two.
I have a fresh board where I didn't do anything with the ESC yet so could make a dump if someone can explain how to.
@RadianceNL which platform do you run jesc-configurator on? I could make a version that extracts the firmware.
Windows 10
Just realized that I did change the motor direction of one of the ESC but on the firmware that came from the factory.
Ok, please download https://jflight.net/downloads/JESC-Configurator_win64_1.2.4.zip.
Start the jesc configurator, connect to esc and say "Read Settings". It'll take a lot longer than usual. When done save debug log and post here, please.
I came across a very strange issue - unfortunately not personally, but I have now heard from two people that the solder joints of the motors get so hot after flashing JESC that the motor wires de-solder. Re-flashing the original version of BLHELI_S does not seem to solve the issue.
One of those cases (and attempt of debugging) is documented in the comments here => https://brushlesswhoop.com/blheli_s-rpm-filter/ NLRC 412T, 1206 motors on 3S, BF4.1 RC1.
Another case I came across on Facebook just now - NLRC 412T, 1304 motors on 4S.
Interestingly enough I have no problems on my NLRC AIO 412 with 1103 motors on 2S, BF4,1 RC1.
I would like to help debugging, but I am not sure which information I can help out with.