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
**Feature Request** on pixracer Dshot and OSD #8182
Comments
Could you recommend an ESC to use for development? Faster gyro updates have been discussed in detail and planned, but there's no firm timeline for implementation. It probably makes sense to add more generic quad airframe configurations (different frame sizes) even if the actual configuration is minimal. |
@LanceFung have you configured PX4 on racers in those sizes (210, 140, 100, etc). |
As for the OSD it would be helpful to create another issue to document exactly what's needed, but again a developer is going to need that specific hardware. |
Currently, most needed : In the Future there everyone will move to |
I have put one on the 210 not 140 yet. ( but it could be a good side project :) ) did not tune the PID perfect yet. Current mounting pixracer 30.5mm X 30.5mm hole with only fit. size 210-140. |
@LanceFung Good to hear from you again, interesting requests for racing with PX4! Here is the test build with the Pixracer board I did for this: https://docs.px4.io/en/frames_multicopter/qav_r_5_kiss_esc_racer.html My point of view:
What do you think @potaito ? From speaking with you I infer you have some racer experience. |
@MaEtUgR I don't have much to add to what's already been said, except for:
Dshot Is definitely the way to go. Lower latency, digital communication, and as far as I know there are still some unused bits in the protocol that could be used for motor feedback in the future (RPM and whatnot).
In Betaflight you can open the OSD menu and navigate it with specific control stick combinations. Similar how you can configure arming and disarming with control stick combinations in cleanflight/betaflight/px4. So I guess this would be easy to implement. As for the OSD functionality itself, I am not in the loop of what px4 currently is capable of.
Can confirm. Most of the pilots in the last Swiss Drone Nationals a few months ago were flying 5 and 6 inch props. This has not changed at all compared to 2016.
Many pilots will tell you they feel the quad is more responsive with higher rates. True or not, it will be hard to convince them, that your 1khz loop performs the same, even if it does... |
Here's a well known fpv guy doing a blind test dshot vs oneshot and he can't tell the difference: https://www.youtube.com/watch?v=0hDi-NRZq9Y I know it's not academic and people will look for the buzz word anyways but it's probably not the most important feature for end user performance. In fact according to him the ESCs you use or rather the Firmware version for him because he uses KISS ESCs makes the real noticable difference. |
The advantages of Dshot (as described by Felix on rcgroups) compared to the most used analog signals like PWM as also oneshot125 or 42 are:
BLheli and KISS ESC are supporting this "new" protocol already. |
I did some more research regarding this topic and honestly, I am not too convinced with DSHOT. Here's why: You still need one UART Tx per ESC on the flight controller. Some boards don't even have that, others have four of these and you could not fly in configurations with more than four motors. I presume DSHOT had to be implemented like that if they wanted to remain backwards-compatible to PWM and all other analogue protocols, which obviously need one channel per ESC. On top of that I am not sure how DSHOT envisions motor feedback to be incorporated. As things are standing now, each motor would again require its own UART channel on the flight controller, resulting in 4x2 UART channels, i.e. 4x(RX+TX) for four motors. DSHOT is in my eyes only the first step towards digital motor control and still a compromise. What might make much more sense, is to have all ESCs connected on the same UART port of the flight controller. This means, that ESC commands for all ESCs are sent to every ESC. Knowing its own id or number, every ESC knows what command to listen to and which ones to ignore. Motor feedback needs a bit more caution, as only one ESC should be sending feedback at any time. Otherwise there would be cross-talk. Some ESC protocols with proprietary firmware, for instance the Qualcomm and Yuneec ESCs work exactly that way, so it's definitely possible. I believe at one point we (the whole flying community, not just px4 community) will have to make a move and use a more efficient ESC protocol that is not backwards-compatible. What would be really nice is to see open source ESC firmware as part of px4, including a new and open digital protocol. What do you guys think? By the way, we do already have a driver in px4 for the Intel Aero that uses a digital protocol: https://github.com/PX4/Firmware/tree/master/src/drivers/tap_esc |
@potaito nice write-up! I'm not sure if you already know, but something like you describe already exists and is even integrated to PX4: Sapog ESC's which use UAVCAN (a bus which is by design better suited to attach multiple devices): https://github.com/PX4/sapog. There's also open reference HW: https://github.com/PX4/Hardware/tree/master/sapog_reference_hardware. I'm not sure if it's THE solution, but it's definitely worth looking into. |
@bkueng No I have not seen this before, thanks! Looks promising.. |
@bkueng thank you for pointing that out. But for many users in the hobby domain UAVCAN is no issue because of the price. 79$ of a Sapog ESC compared to a 20$ BL_Heli or 25$ KISS ESC makes a difference. |
Sounds like we need to work harder on a low cost UAVCAN option. |
@LorenzMeier i guess so. Or at least the UAV CAN enabled ESC's need to become cheaper. Whatever comes first ;) But i think that what was meant with your statement. Would be happy to support. |
Let's go back to the original topic of @LanceFung: We do support all of the critical interfaces already - so rather than ticking arbitrary boxes it would be good to get to real measurements. That means I'd love to see sensor-to-output latency specs that are relevant and alike optimisations. What is the best current racing ESC out there? |
Hi Lorenz From my user experience Hobbywing XRotor ESC and newer DYS ESCs are soild to me BLheli 32 : ( support Dhsot 1200 ) BLheli S : ( support Dshot 600) My honest opinion is to get the system to be as compatible in the current available market. FYI : All Dshot ESC can be directly connected to the PWM output on the fly-control board. |
@LorenzMeier i would use the products from the inventor of Dshot @ronlix i support the statement of @LanceFung. Dshot output to ESC should be via the PWM output pins. |
@LanceFung do you know for a fact, that this could be done with the PWM output? Is this how Betaflight and the like implemented it? As far as I know, PWM outputs usually use GPIO pins, right? Even with the slowest DSHOT150 the required data rate would be 153600 bits / second. This means that in the worst case the GPIOs would have to be switched from high to low or vice versa within 1e6 / 153600 = 3.26 microseconds. Do you think these timings can be accomplished with GPIOs and without UART? I have only little experience, but 3.26 microseconds seems very short. |
The PX4 drivers can operate at faster speeds than required for these protocols and do so in hardware, not requiring GPIOs. |
@potaito PPM and also the faster analog protocols like oneshot can be done with PWM hardware as more clever alternative to software GPIO bit banging... I digged a bit deeper on how DSHOT is usually done and actually they use DMA channels and timers to directly control a GPIO pin without the CPU load. Here is a collection of everything I found:
https://blck.mn/2016/11/dshot-the-new-kid-on-the-block/
Related code: Some technical discussion trying to reproduce on arduino: Feature request for DSHOT on ardupilot: Meanwhile I think it's worth considering support of dshot... |
I have been reading several forums about ESC protocol and it seems that digital bi-directional communication is a way to go. The options are then i2c, CAN, UART and Dshot. Since CAN needs licensing, it is probably best to avoid; otherwise cost of ESC will be higher and its adaptation will be slow. Personally I would like to see UART based ESC's and this how it can be done:
Data packets could be sent like: If whole message checksum has more overhead then we could use 11 bits for throttle value and 5 bits for checksum giving us 2048 levels and still keeping within 2 bytes. Data request could contain first 4 bits as ESC ID and last 4 bits for data request. This allows for 15 motors and 15 different data packet structs, assuming last byte 0x00 means response not requested and it could be used to perform load balancing. As soon as one message is sent, one of the ESC would respond with data packet requested and FC would process before requesting another. This type of system does require ESC ID's to be set before hand but it is a onetime requirement. What do you think? |
Hi, https://www.uvify.com/draco-drone/ The drone we made is fully compatible with PX4 now. |
The adupilot folks are making progress on dshot --> ArduPilot/ardupilot#5300 When will PX4 follow? |
Independent of the actual merit of DShot I would be interested to push for top-of-the-line racing performance and I've pinged Hyon via email to arrange hardware. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Closing as stale. |
Dshot is now implemented on the first boards. |
Cool :-) , however besides Dshot there was also the request for "smartaudio from TBS unify |
Update: Dshot is now supported with #12854 |
Hi I'm Lance from Yuneec:
Feature Request on pixracer
the Racer Must support the new ESC protocol multishot, Dshot600 and Dshot1200 ( BLheli 32
firmware)
If you can support OSD like how beta flight does ( rssi and voltage is very important for us )
Able to config through OSD is a very nice feature, and able to connect smartaudio from TBS unify
pro to change channel and output also come really handy.
Issues :
250 size race drone is totally out of date , Most of the Race size are 210 ( full size ) , 140 ( mini) , 100 ( micro)
( Accord to what I see in betaflight ) gyro update in up to 32KHz, depends on what esc you can support it 8kHz with blhelis and 32kHz with blheli32
The text was updated successfully, but these errors were encountered: