The DJI FPV OSD cannot show iNav warnings, it's currently not supported. But it can show a user defined craft name.
Would be nice to have the option, to "misuse" the Craft name to show Warnings.
One possibility could be to have a check box "Mirror Warnings to Craft Name". If it's possible to change the craft name in-flight, this should be easily possible. Place the Craft Name somewhere in the middle, and it will be populated with warnings, once they occur.
It might be even used to show values not supported by DJI, like 3D-GPS-Speed.
All Pilots using DJI Digital FPV
If there is a contact between iNav Devs and DJI, it might be even useful to ask them if they can provide a few more free text fields, similar to the Craft Name. Then this can be used for showing new flight modes, without the requirement to wait for Firmware Support of DJI. In best case, even upload of custom characters by serial connection could be supported. They the OSD would be really flexible in use.
Issue-Label Bot is automatically applying the label Feature request to this issue, with a confidence of 0.96. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
I started to look into this just for own interest.
digitalentity wrote the MSP driver for DJI OSD nicely new from scratch. I'm fairly new to c++ but got some basics to work.
Seems to me that DJI is shortening the craft name larger than 10 characters and appending some "..."
Like: "WAITING FOR GPS FIX" will become "WAITING FO..."
Unless DJI supports the warning with more characters, we have to rephrase and short each warning message. i.e. "NO GPS FIX"
I would try to proceed unless digitalentity totally mislikes it.
Whow, cool - thanks!
For the most important warnings, 10 characters should be ok.
So I got most of it working, as proof of concept, by duplicating the code from osd.c into osd_dji_hd.c.
Seems to work well, even with multiple warnings and OSD_ALTERNATING_CHOICES.
Maybe @digitalentity (and/or @DzikuVx) could give his input on the overall idea, using the DJI_MSP_NAME for warnings as a workaround, instead of waiting for DJI and a proper warning support.
I would welcome this, although my approach isnt "worthy" for sure.
The craft name is anyways 100% useless in DJI HD. OSD content is not shown in ground recording or air unit recording, only in the goggles. Usually I know which plane I am currently flying.
Great work, video looks absolutely promising!
Maybe it's even possible to show a choosen value while there is no warning present? Heading would be great... Or mAh/KM efficiency :–)
I did some more adjustments to the messages and tested various types like AUTOTRIM and AUTOTUNE, AUTOLAUNCH etc.
Also tried to replace the craft name in general with trip distance. Unit tests passed but havnt flown yet due to weather.
Wanna give it a try? What target would you need?
Trip Distance is cool, for later maybe we can collect some things to choose between?
Heading can be important, mAh/km can be useful for tuning, 3D GPS Speed also something missing in DJI.
I use FuriousFPV F-35, or Omnibus F4 Pro also fine!
Thanks for the great work, I hope we see some reaction of Digitalentity!
Weather is stupid here for days, proper test subject would be a submarine :-/
! use with caution: F35 & OmnibusF4
edit: I miss the trip distance most, mAh/km could be calculated off that in theory. Without the trip distance its hard, maybe impossible, to properly plan a flight in case you want to go max range.
But I like the idea of having it configurable. Maybe even multiple values that rotate, like the warnings where we have currently 5 iterating for 1 second.
Still stupid weather here, but on the Bench it works great!
Man, this is a phantastic addon, and it deserves to be in the next iNav Version. How can we accelerate this?
This cannot be ignored from the Devs, it´s a HUGE improvement!
Based on that, it would be great if DJI could give a few more free text fields. Makes life way easier for them, because then it's a flight controller software thing to decide what to show. Imagine, with a few more characters you could even do something like:
.....N.....E.. <= Compass heading
@digitalentity : PLEASE, take a look at this!
I was just to update this.. :)
I flew almost 50km with that code since my last post and also „published“ it on my fork.
For me, warnings and tripDistance work great. Now I know that my 4S digital Dart250 will carry me 15km on a single pack easily.
Ive talked to Konstantin in the telegram chat about this and he seem to like the idea.
Not sure if hes able to squeeze this in 2.6 or prefers a pull request by me.
However, I will continue and refine the messages and to implement a cli option to choose the default entry as well as iterating multiple.
Great, this would be perfect!
Efficiency in mAh/km is available in the normal OSD, so maybe it’s even ready to use in a variable and doesn’t need to be calculated.
Fir CLI, maybe a bit to dec encoded value for the permanent cycle?
1 = trip distance
2 = 3D ground speed
4 = heading
8 = thr / autothrottle value
This would not allow the order of the valued displayed, but I don’t think this is a need.
Maybe another value for the duration how long to show each value before changing to the next.
Great work, I demand better weather!!
! use with caution: F35 & OmnibusF4
edit: I miss the trip distance most, mAh/km could be calculated off that in theory. Without the trip distance its hard, maybe impossible, to properly plan a flight in case you want to go max range.
But I like the idea of having it configurable. Maybe even multiple values that rotate, like the warnings where we have currently 5 iterating for 1 second.
can you make hex file for MatekF405SE (MatekF405 wing) ?
also, can you use "YAW PID" to show throttle level ?
Im working on an option to enable warnings, trip Distance, 3D speed, heading, throttle. If warnings are enabled, they will overrule the other elements. Each other element will iterate each 3 seconds or so.
Here a MATEKF405SE.hexof the previous code (tripDistance+Warnings in craft_name).
Any feedback welcome :)
Im working on an option to enable warnings, trip Distance, 3D speed, heading, throttle. If warnings are enabled, they will overrule the other elements. Each other element will iterate each 3 seconds or so.
Here a MATEKF405SE.hexof the previous code (tripDistance+Warnings in craft_name).
Any feedback welcome :)
thx, will try it outside soon
I got this a little further. Already had a new cli option implemented and then decided that this may be stupid if we get a proper field in DJI-MSP and have to remove the option again.
So I used the craft_name itself, to "program" the field. You can still use the craft_name as intended (and useless) but once you set the name to a 5bit-binary-name (00000 to 11111) you can enable/disable various features.
This seems very hacky but it has zero footprint in any other file than osd_dji_hd.c
Available elements are: warnings, tripDistance, (auto-)throttle, 3D Speed, mAh/km
So i.e. "11000" would enable warnings and tripDistance.
Each element will shown for 3 seconds - if no warning is present. They will overrule the custom elements.
Here another demo video where I rename the craft from "digitalDart" to "11111", turn on the transmitter, move the throttle.
Amazing, nice solution! I like the way you choosed. No CLI required, every version of the iNav configurator will work. Like a little easteregg inside the OSD config.
cool, OSD is much useful for DDJI fpv now
I suggest to show "throttle + 3D Speed" / "tripDistance + mAh/km" and shown for 1-2 seconds may be better ?
Next iteration. I did not like the way it was working and by chaning the expected "name" value, I could simplify the code a lot.
The name parameter has to be set to ":WDTSE"
Each feature can be enabled, disabled reordered as preferred. i.e. ":SE" would work or ":WT" etc.
Guess I'm close to filing the PR ;)
Whoa, so it's even possible to change the order - great work!
Oh yes, PR and go! This is THE reason to go for the next update!
Ive been flying the latest master (v2.6) which also includes some adjustments by Konstantin on the DJI code without any issues.
The mAh/Km does show the current consumption and not the overall efficiency like shown on the summary screen.
Should I add the accumulated value?
Secondly, any RTH will override any values with „en route to..“ and „loitering..“. That was a little bit annoying as well.
mAh/KM can be shown in the analog OSD, I don't have any idea if this is available somewhere directly.
Would be same like Current divided by Speed I guess?
Currently, here we have the worst situation. Corona (no people out bothering) BUT rain. Cannot wait to test this!
Here's a build for the Matek F722-SE flight controller in case anyone wants to try it out. (Built from the last commit https://github.com/iNavFlight/inav/pull/6230/commits/5e4987179f12f9463f8d84049fbab814fb03a25e)
Thanks for the work @mf0o
Great, more testing is always good. Good is also that Konstantin added this to the 2.6 milestone.
Question is to you guys, any observations? Any item you would like to get added? Cosmetic corrections?
Not sure how much time is left and what can be done, but now is the chance :)
I hope I'm not too late :-) What's about Crossfire Link data? Any chance for this?
RSSI we have already, but Link Quality (LQ) is missing in the DJI OSD :-)
Most helpful comment
Next iteration. I did not like the way it was working and by chaning the expected "name" value, I could simplify the code a lot.
The name parameter has to be set to ":WDTSE"
Each feature can be enabled, disabled reordered as preferred. i.e. ":SE" would work or ":WT" etc.
Guess I'm close to filing the PR ;)