Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request to add DSHOT #1489

Closed
TwoToneEddy opened this issue Mar 30, 2017 · 41 comments
Closed

Request to add DSHOT #1489

TwoToneEddy opened this issue Mar 30, 2017 · 41 comments
Milestone

Comments

@TwoToneEddy
Copy link

It would be great if DSHOT was implemented in inav. The great thing about inav is the combination of racing performance and GPS flight modes, adding DSHOT would allow for faster loops, especially now F4 processors are available.

@digitalentity digitalentity added this to the 1.8 milestone Apr 3, 2017
@digitalentity
Copy link
Member

Let's keep it towards at least 1.8. I don't see a lot of benefit in DSHOT for many reasons.

@vinicentus
Copy link

vinicentus commented May 29, 2017

Duplicate of #1393

@digitalentity digitalentity modified the milestones: 1.8, 1.7.2 Jul 16, 2017
@RCnator
Copy link

RCnator commented Mar 5, 2018

So, we're at 1.9.0 now. Will we get dshot compatibility in the future? I'd really like not having to do throttle calibration.

@aubreyrjones
Copy link

Let's keep it towards at least 1.8. I don't see a lot of benefit in DSHOT for many reasons.

I'm just getting back into modern RC after a decade hiatus. I don't see any reason to use software that doesn't support DShot. I've never experienced the nonsense people talk about in forums... calibration and noise-sensitive signals.

Being used to the deficiencies of analog throttle doesn't invalidate the forward progress made elsewhere in the industry.

@RCnator
Copy link

RCnator commented Jun 4, 2018

Any chance there will be dshot compatability with 1.9.2?

@VoicOfReason
Copy link

I'd like Dshot 1200. My ESC supports it, but iNav can't utilize it...... yet.

@terragady
Copy link

yeah I hope for dshot too :) 600 would be enough

@RCnator
Copy link

RCnator commented Jul 28, 2018

Obviously me too but sadly we know it is 2.0 now, at least 2.0 RC4, and the request was put forth in March 2017 during version 1.6...

@ReganGTX
Copy link

ReganGTX commented Jul 31, 2018

Please!! DSHOT 1200, why is no one replying?

@teckel12
Copy link
Contributor

@ReganGTX Because there's really no advantage and a higher likelihood of catastrophic failure with DSHOT. So, there's little desire to work to add something that the programmer will never use, and will cause a flood of "my model fell from the sky and crashed" issues.

It's also not as cool as it sounds, as it's not really a digital transmission. Current sensors in the ESCs would also not be useful to me as I'd just combine the total amperage anyway and I already have current sensors.

I hope this explains (at least from my perspective) why I have zero motivation to add DSHOT support. But, feel free to add it if you think it's of value. I'm sure a working DSHOT pull request will be merged into INAV.

@TwoToneEddy
Copy link
Author

I think D-shot is really worth adding for the following reasons:

No ESC calibration
DShot1200 is faster than multi shot
D-shot commands for turtle mode, ESC beeper etc.

I'm happy to look at adding this in a couple of weeks once I've got my build environment sorted out again

@teckel12
Copy link
Contributor

@TwoToneEddy Slightly, but not noticeably faster, with high risk of total failure. And ESC calibration takes like 2 seconds.

But seriously, it's not that a PR would be refused, it's just that everyone who actually knows DSHOT isn't interested in using it so there's no desire to do the programming.

@ReganGTX
Copy link

@teckel12 I appreciate the response and I'm sure you are way more knowledgeable when it comes to this kind of stuff but I would like to add that I have been a quad pilot for the past 5 years and have flown with Dshot from day one of its release and I have never had any catastrophic failures flying with it.

@TwoToneEddy
Copy link
Author

Once I've got my Linux machine up and running after I move house in 2 weeks I'll implement this. I'm a big fan of DShot

@ReganGTX
Copy link

@TwoToneEddy SWEET! THANK YOU!

@digitalentity
Copy link
Member

@TwoToneEddy wait a bit. I will add a timer DMA framework after we release 2.0 (similar to what is there in Betaflight) - it will make adding dshot easier

@TwoToneEddy
Copy link
Author

@digitalentity Ok no worries, I haven't looked at the betaflight implementation yet anyway.

@davidngrc
Copy link

+1 for DSHOT support.
No ESC calibration is a huge advantage for beginner or people always forgot.

@terragady
Copy link

@davidngrc not really, calibration is very easy and 1,5 year ago everyone was doing it as there was no choice, also for 1 ESC setups it is a no brainer :) but yes i think it would be nice to have DSHOT.

@aubreyrjones
Copy link

aubreyrjones commented Aug 2, 2018 via email

@teckel12
Copy link
Contributor

teckel12 commented Aug 2, 2018

@aubreyrjones Then add it instead of talking about it on a closed issue. People in the know would never use DSHOT, therefore there's no urgency to add something that will only cause problems, just to look cool.

@TwoToneEddy
Copy link
Author

@teckel12 Why would people not use it? I don't think I've been to a race and seen anyone using anything else for quite a while now, it seems pretty much the standard. Digital wins over analogue when you're trying to convey a digital value as there's no interpretation needed.

@terragady
Copy link

I agree a little bit with @teckel12 , iNav has different purpose than racing in 200m range where liability is not an big issue but timing and precision is. Anyway if someone would add it, it would be just nice but most of the people can live without it.

@aubreyrjones
Copy link

aubreyrjones commented Aug 2, 2018 via email

@teckel12
Copy link
Contributor

teckel12 commented Aug 2, 2018

@TwoToneEddy DSHOT may be fine for small racing drones where crashes are common and wires are short. But for larger craft over longer distances (which is INAV's wheelhouse) DSHOT can cause catastrophic situations. Also, DSHOT is NOT digital over the wire, it's still analog. Digital is also not always better, that's marketing brainwashing. How do your digital speakers or headphones sound?

So, there's no urgency to add a feature that's mostly not needed and could be quite dangerous or cause a flood of issues. If any of you in this thread want to program DSHOT, by all means, submit a PR and as long as it's functional I'm 100% confident it will be merged into INAV. But when you're asking other people to do it for you, and those people see no value in it, you should accept their reasoning not to.

Eventually, someone who wants DSHOT will submit a PR and it will be added. So far, I haven't seen anyone come forward to actually do the work, only relentless demands from others not interested in lifting a finger, and not seeing other's perspective on why they should take time away from their family to program something for free that they will never use.

I hope that makes at least my perspective on this perfectly clear.

@TwoToneEddy
Copy link
Author

@teckel12 Well actually I did volunteer to do the work a couple of posts back in this issue so I fully intend on lifting my finger.

With regards to the whole digital Vs analogue thing, pwm, one shot etc rely on the escs interpretation of pulse width, D-shot doesn't. I'm absolutely not saying digital is better than analogue, it of course depends on the application. When it comes to communication however I believe the data being digital is superior. Ethernet isn't digital on the wire it uses an analogue carrier but the information is digital, it's the information interpretation that's important.

Digital headphones and speakers have a completely different purpose so that's irrelevant.

As I said, I'll implement it once I get my head around it's exact implementation and how it fits into betaflight.

@MrD-RC
Copy link
Collaborator

MrD-RC commented Aug 5, 2018

Coming from a pure user point of view, I'm really hopeful for BLHeli_32 and DShot integration. Forgetting about the analogue vs digital and speed vs reliability arguments, to me it's about usability.

  1. The ease of ESC calibration isn't as quick and simple as @teckel12 suggests, especially in the field. It's not a case of arm, raise the throttle, stick in the battery, and lower the throttle after the beeps anymore. iNav adds the issue of needing GPS lock before you can arm, which means you need to do it with a laptop via the motors tab.

  2. There are a lot of BLHeli_32 ESCs coming to market, and most new ESCs are DShot. The issue lies in that some of these ESCs can no longer be programmed through iNav. I have ESCs right now (Racerstar Tattoo+ 52A) which I cannot with BLHeli Configurator through an iNav flashed board. This ESC has no beep commands to set things like ESC breaking, timing, or reversing, so currently I'm stuffed unless I either pull the ESC and buy a different interface to configure it or flash the board with Betaflight, make my changes, and re-flash it with iNav. All of which is a complete pain and completely unnecessary.

The market is going BLHeli_32 and DShot, the only options to me are implement it, or provide a list of unsupported ESCs; both need work and maintenance, however the former is an inclusive strategy, the latter exclusive.

@TwoToneEddy
Copy link
Author

And when you crash in a field a mile away turtle mode will be quite handy ;-)

@teckel12
Copy link
Contributor

teckel12 commented Aug 5, 2018

@V8Darren

  1. Completely untrue. I've always calibrated my ESCs on the bench and have never used a laptop. I don't even have a laptop.
  2. I've had zero problems finding ESCs that support DSHOT as well as Multishot and program just fine through INAV. I'm also don't let marketing hype get to me so I know 32 bit isn't better than 8 bit when it comes to ESCs.
    @TwoToneEddy Turtle mode is really only good for FPV racers, and they're not using INAV. In the rare case when I crash, I always investigate the damage before arming again. If I crashed 50 times a day, this would be useful. But only my TinyWoop crashes that frequently, and that's running Betaflight.

I'm holding back from blheli 32 for as long as possible. I figure there will be better deals on 8 bit ESCs as a result. Even if I was forced to go blheli 32 I'd run multishot. Speed is irrelevant at this level (multishot is faster than DSHOT 600 and at low throttle faster than even DSHOT 1200 for example) and if there's noise, it doesn't cause a total failure like with DSHOT.

I also don't like the fact that blheli_32 is closed source and requires an internet verification to flash.

@MrD-RC
Copy link
Collaborator

MrD-RC commented Aug 5, 2018

@teckel12

  1. Is completely true, you’re changing the parameters. Perhaps I was too specific saying laptop when computer should have been used, but I added the caveat of “especially in the field” where you’re hardly going to take a desktop. To calibrate the throttle using the transmitter alone, you’d either have to either preemptively or permanently disable safety checking so the craft could arm immediately without, for example, waiting for a GPS fix, which is dangerous, or have some other way to power the flight controller in the field without the main battery, assuming the GPS is powered by the flight controller and not a PDB or BEC. I agree at the bench it’s easy enough to do, but you’re not always at the bench when you want to calibrate the ESC, for varied reasons. For me, to get back to the bench would be an hours’ round trip, completely unacceptable just to calibrate an ESC.

  2. I’m not letting marketing do anything. I spec’d my ESC based on size, amp rating, weight, and cost, it just so happens it’s a BLheli_32 ESC with support for DShot 1200. It also just so happens that trying to program it via iNav doesn’t work (works fine through Betaflight, but that plays havoc with servos, so I’d rather not).

@TwoToneEddy
Copy link
Author

@teckel12 If you're building a racing style quad with GPS functionally ( with the GPS mounted in a decent place wrt protection) then turtle mode is worth having. I'm building just such a quad that flies like a racer / acro quad but can return to home if I need it.

32 bit is absolutely better than 8 bit. In the case of Blheli 32 the processor used is also faster allowing 48kHz pwm which can help control lower inductance (higher KV) motors better (more efficiently). Having the extra processing power for telemetry could also be handy for inav, for example, you could have the current and motor rpm read out on the OSD and the quad goes down, you have a means of postmortem. The industry is going to Blheli 32, like it or not.

@teckel12
Copy link
Contributor

teckel12 commented Aug 5, 2018

@V8Darren You and I must calibrate ESCs differently. I do it only when I install a new ESC, which is like once a year. And then I need to be on the bench anyway to solder. And there's nothing dangerous about it as the motors never spin and INAV isn't even involved.

Basically, this has never (even remotely) been an issue even in the slightest.

And don't forget, you loose the ability to flash or reprogram your ESCs in the field with blheli_32 as it requires an internet connection.

If blheli_32 was open source and didn't require an internet connection I'd be okay with it. But for those reasons it's a no-go for me. 8-bit works just fine for Multishot, and faster and more reliable than DSHOT. And there's plenty of non blheli_32 ESCs out there. I've seen no shortage.

There's good reason this issue is closed, it's a non-issue for INAV.

@TwoToneEddy
Copy link
Author

@teckel12 Every person I've spoken to at the various clubs I fly at in the UK has complained that D-shot isn't supported.

@digitalentity
Copy link
Member

Guys, DSHOT for INAV is coming in post 2.0, I suggest we end arguing about it's usefullness, especially on a closed issue.

@terragady
Copy link

@TwoToneEddy I do not think you can complain for lack of features in something which you get for free from other people. What they can do, instead of complaining, is implement it! Simple as that :)

@digitalentity
Copy link
Member

digitalentity commented Aug 5, 2018

Also, for the record. BLHeli32 works perfectly with INAV 2.0:
image

@TwoToneEddy
Copy link
Author

@terragady Complain is probably the wrong word, they wonder why it isn't there. Granted they're not programmers so don't appreciate what's involved.

@digitalentity Agreed, let me know when you have the timer and I'll do my best to port the rest from betaflight. In the meantime I'll look at how it's done in betaflight so I'll hopefully be in a position to implement it when the time comes.

@digitalentity
Copy link
Member

@TwoToneEddy let's move the discussion about actually getting things working to #1393. I'm slowly working on timer stuff, might take a few weeks given limited amount of time available.

@lightning-100
Copy link

I really cant believe this is a discussion, It is a must have for me. And yes i am aware it is free and most do not contribute like cleanflight. betaflight, ardupilot. I dont mean to be short or rude but contributors dont see the use in implementing esc telemetry really!

@teckel12
Copy link
Contributor

teckel12 commented Feb 3, 2019

@lightning-100 I really don't care at all, to each his own. But I'm sure someone out there will find this interesting enough to do it. The DSHOT protocol isn't even released yet, I think you're getting a bit ahead of yourself.

@digitalentity
Copy link
Member

@lightning-100 DSHOT telemetry is in the works for 2.2 - #2710. DSHOT is available for select boards in 2.1

@iNavFlight iNavFlight deleted a comment from CorruptName Mar 31, 2020
@iNavFlight iNavFlight locked as resolved and limited conversation to collaborators Mar 31, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests