Most pilots just put their head down during the walk of shame to pickup their crashed quads...JB puts out an informative video during his walk 😂 thanks Joshua, interesting topic that is unfortunately over my head, been running dshot600 forever.
@7:05 the DShot error rate displayed in Betaflight is for corrupted bidirectional DSHOT telemetry packets received by the FC, but what you're talking about are corrupted packets received by the ESC. To my knowledge BF does not have a way of viewing this as the ESC would need to report the stats back as telemetry data. The other important point that you could have touched on is that motors have momentum and can't change their speed immediately, so even the DSHOT300 53.3us packets in an 8k PID loop (125us period) are way more frequent than they need to be.
AMEN. If motors can make any meaningfull change in 1ms (1000us) you are doing well. They generally think about starting to move in that period of time after getting a new command, but RPM hardly changes. So what are we talking about here? Nonsense I fear. Perfecting the irrelevant as it is know in engineering. You want better performance? Forget all this and tune your rig. In BF, it is easy, move up the Master Slider.
The only thing is... Dshot out uses a different timer than the PID loop. So if your new motor value spilled out by the fc ends up in the middle or just after a new Dshot string is sent you will have to either wait for a new string or discard that new value. With a higher Dshot speed your new values will reach the esc faster. Dshot has a CRC function you could use.
You forget to mention the difference between normal Dshot and Bidirectional Dshot. KISS doesn't use bidir Dshot but BF does. If you use bidir Dshot you have new challenges because you basically need to use a one way street for traffic from both directions. That means bidir Dshot 600 can only use half of the bandwidth of normal Dshot 600
How didn't you think about that when at the time bidirectional dshot ( rpm filtering) came to bf and everybody was used to pushing normal dshot to 1200 there were tons of videos telling people to decrease the dshot to 600 or 300 for use with rpm filtering because not enough bandwidth.
Bardwell, dshot 150 can run at 8k. Dshot 600 can technically run at 32k with very small reset time. With a realistic signal reset time dshot 300 can hit 8k pidloops. Dshot 2400 can do 64k pidloops with realistic reset time. Dshot 4800 is possible and only emuflight uses it.
@@JoshuaBardwell Well BF is currently hardcoded to only allow dshot 600 for 8k pidloop, and dshot 300 being the slowest allowed for 4k. So simply how BF is coded is part of it. I also wonder if its because ESC are looking for a wider than 21bit time between signals. So it might be an ESC side thing, IDK, but technically you could do those speeds if the ESC would accept it.
So the limitation is the length of the Dshot packet, but it's not just the Dshot packet that's overrunning the loop time. It's also that the ESC needs some quiet time between packets.
@@JoshuaBardwell well, you really just need enough time to be able to determine if your signal has finished sending. Which can easily be done with 21 stop bits worth of wait, which would allow for dshot 300 to run at 8k. So 8k is a totally realistic speed for 300, the question is if the ESC's will be able to pick it up. As others mentioned Dshot has a CRC at the end of the packet to check if the packet is valid, however this CRC can't be used to see if the packet is over as we don't know where the CRC is until we have read the data and not just received the data.
Hmm I'm confused? If the PID loop is 125us @ 8K and D shot packet is 16 bits making the D shot 600 (25.6us) and D shot 300 (52.8 us) how does the PID loop out run the D shot packet? Is there more than 1 D dshot packet. Excuse my ignorance but this info you are giving seems very important to the quad set up. Thank you for sharing this info Joshua.
Well dang. Your math is correct. And yet I've always gone by the advice to use Dshot600 with 8k and Dshot300 with 4k and 3.2k. I never sat down and did the math and I can't really explain the advice. I'll have to dig into it deeper.
@@JoshuaBardwell You do a great job, I'm new at this and trying to understand when I have problems. LOL which seems like every build I learn something new. Thanks to you I can fly. This isn't an easy hobby to say the least and your videos and inputs have help so much. Thank You.
Good job explaining this Joshua. I think a lot of people didn’t understand the differences of running dshot 300 or 600 with the bmi gyro, including myself.
Lol I know the post you were talking about 🤪🤪. Great video. We were just discussing this. Now also we have s2m protocol for Fettec Alpha on Fettec escs
My understanding was that dhsot 600 should have a transmit period of about 26.7 uS and therefore dshot 300 should have 53.3 uS which would be fine to use with a 8khz pid loop and its 125us loop time. I know on a quad that has a bb1 with blujay I use dshot150 with a 4k pid loop and it works fine. Which would be a 250us loop and 106.7 uS transmit time for esc signal.
Yeah I see that the math works out that way. I have always heard the advice to reduce to Dshot300 when using 4k PID loop or lower, and I assumed it was because it would overrun the PID loop time. But clearly the numbers don't work out that way.
I think this assumes nothing else is happening in the pid loop. In fact the controller needs to internally communicate with serial logic (or heaven forbid do software serial operations), and then running all of the other pid math and unrelated operations. All these operations are going to be a few microseconds here and there and add up quickly.
Completely random question that has me distracted... What happens when two cars meet head to head on your road? One has to backup to the nearest driveway to get out of the other's way?
I am currently using 3 FCs: [Tanq] Diatone Mamba MK4 F722 APP, GYRO=ICM42688P [Wasp1] HGLRC Zeus F722, GYRO=MPU6000 [Wasp2] Diatone Mamba DJI F722 MK2, GYRO=MPU6500 All with latest BF, 8k PID loop and DSHOT600 with bench error rate < 1%. Should I be considering 4k loop and DSHOT300?? Thanks.
Hi, give me you opinion, if you are a beginner with a radiomaster 16s, which simulator you choose to learn, and how complicate is to made the radiomaster work on PC?
Just plug it in bro front port i believe usb-c comes up as a controller. I started on uncrashed sim Checkout the channel be happy to steer you in the right direction its a great community
He failed to mention most escs don't support dshot 2400. kiss esc, fettec, and blheli32 escs with f3/f4 mcu (128k pwm) will support it. regular blheli32 escs (48k pwm) will support dshot up to 1200. Blheli s supports up to 600. He didn't mention either kiss run their pid loop locked at 1k But use the extra head room to optimize the rate at witch they run the adaptive filter.
Hello everyone, unfortunately I could not follow the post completely and need your help. If I have a MPU6000 gyro chip that works with a sampling rate of 8kHz, then it makes sense to use a PID loop frequency of also 8kHz, because enough new data is put out from the gyro. I was able to follow to this point. 8kHz = 8.000 Hz = 0,125 milliseconds But why should I then go over a value of DShot150 at all, if it already works with a frequency of 9.375 Hz = 0,107 milliseconds?
The thing is flying in FPV is over all Feeling...who is flying is not an AI , i's a human being...what he feels better is going to make a better flight / result...about Kiss and Betaflight there is a huge difference in feeling (always has been like this....) and now Ultra is really on another planet...everybody can do his own choice...
6:00 - wo wo wo... KISS runs at 1k PID loop folks. So not reducing latency. KISS is laggy, especially on the sticks since it uses D-term Setpoint Weight still for any kick on sharp stick moves (as an option) vs. modern FeedForward like BF or iNAV. 1k = loop every 1ms. Dshot2400 = 0.03125ms So at 1k PID and Dshot2400, you send the same data to the ESC 32 time! Why? The ESC heard you the first time. Ok, so if you want to send a couple times, fine, but 32 at the risk of more jitter? The phrase "say it once and say it clearly" comes to mind. No need to beat the ESC over the head with it. Personally, I just run Dshot600 all the time, cause I'm lazy and don't care. Yeah on BMI, I tell the ESC two time (same data) so that might be a waste, but IDK.
KISS used to allow for up to 8k PID loop back then. But at one point they changed it so it's always locked at 1k only. As you stated in your video; BF has studied what the best DShot is based on what gyro is being used, this what PID loop update rate is needed. Hence they've proved what works best. While KISS on the other hand recommends to run the fastest DShot possible because that's what they think. And last I checked when they were using MPU6000 gyros, those can go to 8k. Yet, they run it at a 1k PID loop... The big difference I'm seeing between BF and KISS is one group has done the work and proves it works one way, while the other group thinks it's the best way. See the difference?
Kiss stick feel is better than anything betaflight can manage and the performance of ultra is better than 4.3, so they’re doing something right with these ancient methods.
The problem is, that is not true when you really look at it objectively. But fly what you like of course. As an engineer I have pealed back the layers, that is what we do, and found out the KISS claims just do not pan out unfortunately. KISS vs. BF/iNAV it is: 1 Laggy (poor tracking of you rates for sharp moves ... which you can do in BF / iNAV too if you like by lowering or turning off FF.) 2 Has throbbles (nose bobble or drift on rapid throttle changes) 3 Has a hard time with drift at 0% throttle 4 Worse prop wash performing tuning both on same rig 5 is harder to tune. I-term is a narrow range vs. BF/iNAV have a wide range, almost taking it out of something that needs tuned. Almost 100% of the time, folks that like KISS just ignore these things. Which is cool, but they are there when you really sit down to compare the two. I did a bunch of videos on it to show more details if desired.
It’s interesting to see the kiss devs seemingly having the same thoughts that rs2k had with raceflight in the OG days. Faster pid loops, faster communication between the ESCs. Man whatever happen to that kid.
Controversial Opinion: I'm going to trust the person who know how to use an oscilloscope to decode DShot commands on what is useful and relevant over somebody without publicly available data and logs showing an improvement. KISS/ULTRA/FETTEC flies amazing for what is is, but there's a reason everybody who has to fly to an objective target is using one firmware.
(BUT, I do agree with running the system the way the dev/test team runs there - only an idiot like me will spend inordinate amounts of time running nonstandard configurations for the sake of edge case testing new features)
Funny how the landscape is stabilized and JB all shaky. 😆
Is that from a gimbal or a stabilizing software?
God damn it now I can't unsee it😂
It’s because he’s holding the camera and probably has a horizon lock stab. On
If I had to guess.. I’d say if he was pointing it at someone else they would appear to walk smoothly
I noticed he was a little unstable... he may need tuning...😂
Most pilots just put their head down during the walk of shame to pickup their crashed quads...JB puts out an informative video during his walk 😂 thanks Joshua, interesting topic that is unfortunately over my head, been running dshot600 forever.
good one 👍 hahaha
I thought the exact thing! Of course it's just to hang his mic on...he's already got the levels perfectly balanced... What a nerd...but he's our nerd!
@7:05 the DShot error rate displayed in Betaflight is for corrupted bidirectional DSHOT telemetry packets received by the FC, but what you're talking about are corrupted packets received by the ESC. To my knowledge BF does not have a way of viewing this as the ESC would need to report the stats back as telemetry data.
The other important point that you could have touched on is that motors have momentum and can't change their speed immediately, so even the DSHOT300 53.3us packets in an 8k PID loop (125us period) are way more frequent than they need to be.
AMEN.
If motors can make any meaningfull change in 1ms (1000us) you are doing well. They generally think about starting to move in that period of time after getting a new command, but RPM hardly changes. So what are we talking about here? Nonsense I fear. Perfecting the irrelevant as it is know in engineering.
You want better performance? Forget all this and tune your rig.
In BF, it is easy, move up the Master Slider.
The only thing is... Dshot out uses a different timer than the PID loop. So if your new motor value spilled out by the fc ends up in the middle or just after a new Dshot string is sent you will have to either wait for a new string or discard that new value. With a higher Dshot speed your new values will reach the esc faster. Dshot has a CRC function you could use.
may be on BF. On ultra/kiss all synchronised to pid loop.
You forget to mention the difference between normal Dshot and Bidirectional Dshot. KISS doesn't use bidir Dshot but BF does. If you use bidir Dshot you have new challenges because you basically need to use a one way street for traffic from both directions. That means bidir Dshot 600 can only use half of the bandwidth of normal Dshot 600
Oh that's interesting! I didn't think of that.
How didn't you think about that when at the time bidirectional dshot ( rpm filtering) came to bf and everybody was used to pushing normal dshot to 1200 there were tons of videos telling people to decrease the dshot to 600 or 300 for use with rpm filtering because not enough bandwidth.
You ok there Buddy. Don't have a heart attack we need you here.
Bardwell, dshot 150 can run at 8k. Dshot 600 can technically run at 32k with very small reset time. With a realistic signal reset time dshot 300 can hit 8k pidloops. Dshot 2400 can do 64k pidloops with realistic reset time. Dshot 4800 is possible and only emuflight uses it.
Yeah I see the math works out. So if it's not overrunning the pid loop time, then why is Dshot300 recommended for 4k and 600 for 8k?
@@JoshuaBardwell Well BF is currently hardcoded to only allow dshot 600 for 8k pidloop, and dshot 300 being the slowest allowed for 4k. So simply how BF is coded is part of it. I also wonder if its because ESC are looking for a wider than 21bit time between signals. So it might be an ESC side thing, IDK, but technically you could do those speeds if the ESC would accept it.
So the limitation is the length of the Dshot packet, but it's not just the Dshot packet that's overrunning the loop time. It's also that the ESC needs some quiet time between packets.
@@JoshuaBardwell well, you really just need enough time to be able to determine if your signal has finished sending. Which can easily be done with 21 stop bits worth of wait, which would allow for dshot 300 to run at 8k. So 8k is a totally realistic speed for 300, the question is if the ESC's will be able to pick it up.
As others mentioned Dshot has a CRC at the end of the packet to check if the packet is valid, however this CRC can't be used to see if the packet is over as we don't know where the CRC is until we have read the data and not just received the data.
Also bidirectional dshot doubles the packet time, right?
Hmm I'm confused? If the PID loop is 125us @ 8K and D shot packet is 16 bits making the D shot 600 (25.6us) and D shot 300 (52.8 us) how does the PID loop out run the D shot packet? Is there more than 1 D dshot packet. Excuse my ignorance but this info you are giving seems very important to the quad set up. Thank you for sharing this info Joshua.
Well dang. Your math is correct. And yet I've always gone by the advice to use Dshot600 with 8k and Dshot300 with 4k and 3.2k. I never sat down and did the math and I can't really explain the advice. I'll have to dig into it deeper.
@@JoshuaBardwell You do a great job, I'm new at this and trying to understand when I have problems. LOL which seems like every build I learn something new. Thanks to you I can fly. This isn't an easy hobby to say the least and your videos and inputs have help so much. Thank You.
What would be the conclusion to this statement? Running dhot600 is better than dshot300 even if using 3k pidloop?
Nice. Good video, I've often wondered why there were so many options.
Thank you for this confirmation of the research and understanding I have done and have on this subject. Much appreciated man.
Based on the comments, I think we will need another more in depth vid!!! Looking forward to this! Ty JB
Good job explaining this Joshua. I think a lot of people didn’t understand the differences of running dshot 300 or 600 with the bmi gyro, including myself.
currently takin a digital time signals course. EE baby!
Lol I know the post you were talking about 🤪🤪. Great video. We were just discussing this. Now also we have s2m protocol for Fettec Alpha on Fettec escs
So what I took from this is, because my race quads work fine with BF and DSHOT600, just leave it and keep doing teh funs.
I usually just use dshot 600 as my default, my quads outperform my reflexes already😮. Get your exercise in boss, we need you👍
I'm glad default, and presets work pretty well. I just want to fly, yall are hurting my head🤣
The house at 4:00 is that where ll those murders happened?
Yeah
My understanding was that dhsot 600 should have a transmit period of about 26.7 uS and therefore dshot 300 should have 53.3 uS which would be fine to use with a 8khz pid loop and its 125us loop time.
I know on a quad that has a bb1 with blujay I use dshot150 with a 4k pid loop and it works fine. Which would be a 250us loop and 106.7 uS transmit time for esc signal.
Yeah I see that the math works out that way. I have always heard the advice to reduce to Dshot300 when using 4k PID loop or lower, and I assumed it was because it would overrun the PID loop time. But clearly the numbers don't work out that way.
I think this assumes nothing else is happening in the pid loop. In fact the controller needs to internally communicate with serial logic (or heaven forbid do software serial operations), and then running all of the other pid math and unrelated operations. All these operations are going to be a few microseconds here and there and add up quickly.
With all the videos of your house and also liftoff I feel like I've been there 😂
"I'm Joshua Bardwell and you're going to walk with me today."
What about s2m?)
Completely random question that has me distracted... What happens when two cars meet head to head on your road? One has to backup to the nearest driveway to get out of the other's way?
They just go around. It's wide enough.
@@JoshuaBardwell gotcha. It looks really narrow like an alleyway 😅 cheers JB
nice sunny weather :)
I am currently using 3 FCs:
[Tanq] Diatone Mamba MK4 F722 APP, GYRO=ICM42688P
[Wasp1] HGLRC Zeus F722, GYRO=MPU6000
[Wasp2] Diatone Mamba DJI F722 MK2, GYRO=MPU6500
All with latest BF, 8k PID loop and DSHOT600 with bench error rate < 1%.
Should I be considering 4k loop and DSHOT300?? Thanks.
Interesting talk and walk, Joshua! Thanks! 😊
Stay safe there with your family! 🖖😊
Hew joshua could you maybe review the eachine lizard95?
Do we get a graduation degree after watching all your videos?😅, you are amazing 👏🏻 thanks
He gave us all soldering homework a while back. 🥺
@@wearemany73 I'm finishing up the graduate program. On the way to a masters.
Hi, give me you opinion, if you are a beginner with a radiomaster 16s, which simulator you choose to learn, and how complicate is to made the radiomaster work on PC?
Just plug it in bro front port i believe usb-c comes up as a controller.
I started on uncrashed sim
Checkout the channel be happy to steer you in the right direction its a great community
@@SpaghettiFPV-tg3qh I'll try
Thanks JB!
Great explanation. Thanks JB 🙂
You are starting to remind me of Captain Spaulding from Rob Zombie’s Horror Movies.
That is a compliment. 😂😂👍👍🇺🇸
great comparison !!!!!!
this was very helpful thank you jb
Hmmm, I did not know that about KISS, I've either had them on D-Shot 600 or OneShot. Guess I'll switch them to 2400. Thanks JB! Cheers 🍻
He failed to mention most escs don't support dshot 2400. kiss esc, fettec, and blheli32 escs with f3/f4 mcu (128k pwm) will support it. regular blheli32 escs (48k pwm) will support dshot up to 1200. Blheli s supports up to 600. He didn't mention either kiss run their pid loop locked at 1k But use the extra head room to optimize the rate at witch they run the adaptive filter.
Hello everyone, unfortunately I could not follow the post completely and need your help.
If I have a MPU6000 gyro chip that works with a sampling rate of 8kHz, then it makes sense to use a PID loop frequency of also 8kHz, because enough new data is put out from the gyro. I was able to follow to this point.
8kHz = 8.000 Hz = 0,125 milliseconds
But why should I then go over a value of DShot150 at all, if it already works with a frequency of 9.375 Hz = 0,107 milliseconds?
Use dshot 600 with 8k.
The thing is flying in FPV is over all Feeling...who is flying is not an AI , i's a human being...what he feels better is going to make a better flight / result...about Kiss and Betaflight there is a huge difference in feeling (always has been like this....) and now Ultra is really on another planet...everybody can do his own choice...
Great information 🚀
Using Kiss / Kiss Ultra with Kiss Esc,.....👍👍👍
All I missed was the ending of the movie oh my god how far have I come subscribe so I can go home.
Yes! Some KISS content just for meeee
6:00 - wo wo wo... KISS runs at 1k PID loop folks. So not reducing latency. KISS is laggy, especially on the sticks since it uses D-term Setpoint Weight still for any kick on sharp stick moves (as an option) vs. modern FeedForward like BF or iNAV.
1k = loop every 1ms.
Dshot2400 = 0.03125ms
So at 1k PID and Dshot2400, you send the same data to the ESC 32 time! Why? The ESC heard you the first time. Ok, so if you want to send a couple times, fine, but 32 at the risk of more jitter?
The phrase "say it once and say it clearly" comes to mind. No need to beat the ESC over the head with it.
Personally, I just run Dshot600 all the time, cause I'm lazy and don't care. Yeah on BMI, I tell the ESC two time (same data) so that might be a waste, but IDK.
Umm. WTF is the point of running super fast dshot at super low pid rate? If you care about reducing latency why not run at 8k.
@@JoshuaBardwell 🤷♂️
KISS used to allow for up to 8k PID loop back then. But at one point they changed it so it's always locked at 1k only.
As you stated in your video; BF has studied what the best DShot is based on what gyro is being used, this what PID loop update rate is needed. Hence they've proved what works best. While KISS on the other hand recommends to run the fastest DShot possible because that's what they think. And last I checked when they were using MPU6000 gyros, those can go to 8k. Yet, they run it at a 1k PID loop...
The big difference I'm seeing between BF and KISS is one group has done the work and proves it works one way, while the other group thinks it's the best way. See the difference?
Kiss stick feel is better than anything betaflight can manage and the performance of ultra is better than 4.3, so they’re doing something right with these ancient methods.
The problem is, that is not true when you really look at it objectively. But fly what you like of course.
As an engineer I have pealed back the layers, that is what we do, and found out the KISS claims just do not pan out unfortunately.
KISS vs. BF/iNAV it is:
1 Laggy (poor tracking of you rates for sharp moves ... which you can do in BF / iNAV too if you like by lowering or turning off FF.)
2 Has throbbles (nose bobble or drift on rapid throttle changes)
3 Has a hard time with drift at 0% throttle
4 Worse prop wash performing tuning both on same rig
5 is harder to tune. I-term is a narrow range vs. BF/iNAV have a wide range, almost taking it out of something that needs tuned.
Almost 100% of the time, folks that like KISS just ignore these things. Which is cool, but they are there when you really sit down to compare the two. I did a bunch of videos on it to show more details if desired.
Cool yeah I know some of these words....😂
A Healthy Vlog Josh... haha
so the answer is.....listen to the developer if you don't know what you are doing
It’s interesting to see the kiss devs seemingly having the same thoughts that rs2k had with raceflight in the OG days. Faster pid loops, faster communication between the ESCs. Man whatever happen to that kid.
But KISS runs at 1k PID loop. They're not driving faster PID loops. Which makes the insistence on Dshot2400 kind of confusing.
@@JoshuaBardwell that sure does bring in some confusion! I never noticed the KISS magic :/ thanks for all you do mr. bardwell!
I played with Dshot settings a while back. I felt that Dshot 300 flew much better.
Ditto. i was trying to tune my 2s last week and found 300 seemed smooth and more responsive than when I had 600 on. It felt counter intuitive...
You need a gimbal!
Nothing flys better than KISS
What about TMotor Fettec Alpha G4HD?
My oh my thats a wiggly camera.
👍🏻👍🏻
Controversial Opinion: I'm going to trust the person who know how to use an oscilloscope to decode DShot commands on what is useful and relevant over somebody without publicly available data and logs showing an improvement. KISS/ULTRA/FETTEC flies amazing for what is is, but there's a reason everybody who has to fly to an objective target is using one firmware.
(BUT, I do agree with running the system the way the dev/test team runs there - only an idiot like me will spend inordinate amounts of time running nonstandard configurations for the sake of edge case testing new features)
All I know is that my quads fly great on betaflight.
The rest I don't understand but hey ho.
I wonder where he's walking to lol
🤟🏻
First! 😎
Bro u need Dshot 5000 you shaking too much
No no, he needs that 32k/32k gyro/PID loop update rate
Fettec Alpha
Fettec Alpha ...on T-Motor 😮 G4HD in stock today at my shop
Buy a gimble
your movement makes us dizzy. please don't lock horizon.
Um.. Yeah. Watching you bounce around in the frame is weird. It’s strange that you decided to release this. Good info. Bad presentation
Or listen to it like a podcast.
I wasn't even aware that with this SpeedyBee F7 V3 I should run Dshot 300 instead of 600 - thanks @Joshua Bardwell
Hell yeah 1st comment