Unable to take off with Mavic 3 Enterprise
CompletedIn some cases users are unable to take off with the Mavic 3 Enterprise.
They have closed DJI Pilot, and in our app we have uploaded a mission, but the drone will not start or even take off using the RC. In order for them to take off with the M3E, they are forced to close our app, open DJI Pilot - but not even do anything with it other than have it open - take off, and then force-close DJI Pilot before returning to our app.
I have not yet seen any diagnostics which would indicate why take off is failing unless the DJI app is open, and we have not replicated the problem with our unit. We are using SDK 5.3.0. Any ideas?
-
I would like to confirm that you are giving location permissions to the MSDK application you are developing:What kind of Android system privileges are MSDK V5 required? ![](https://djisdksupport.zendesk.com/attachments/token/Fco0LOi4u9Uf9v7cO7ZUN2R1w/?name=image.png) -
Yes, both of these permissions are listed in the manifest.
I think there's a misunderstanding owing my original description of the problem.
With the M3E, it seems that some users are unable to take off (manually) with the RC unless DJI Pilot 2 is open. That is, they cannot take off when our app is open. They cannot take off if *no app* is open (i.e., they force quit DJI Pilot 2 and any other app). They have to open DJI Pilot 2 - and keep it open during takeoff - in order to manually take off using the RC. -
Could you record a video for us using MSDK V5 sample? In this location below you can see the status information pushed by the aircraft, and we need to analyze the problem you are experiencing based on this information. Here is the upload link:https://pan-sec.djicorp.com/s/XHgZYSrSZWLDpiM MSDK V5 sample:Mobile-SDK-Android-V5 ![](https://djisdksupport.zendesk.com/attachments/token/oCMoQgoSvUIVhpbSitnQSbhJg/?name=image.png) -
I uploaded a screen capture. You can see the code "0x1b080003" in the top right. Is this related to Remote ID? If so, how can we configure Remote ID so the user can take off? As I understand from https://sdk-forum.dji.net/hc/en-us/articles/14358732382489-Chapter-19-Remote-ID , we can register a listener but should not need to do anything special - "The developers are not needed to enable/disable the Remote ID broadcasting. The IUASRemoteIDManager we have provided feedback the information which aircraft is currently broadcasting."
-
Is this related to Remote ID? -->Yse. Is it possible to test Remote ID behaviour with the simulator? -->Yes. I want to make sure that you are also unable to take off using the MSDK sample, is that right? Because MSDK V5 should be able to take off normally after connecting the aircraft and authorizing the location information. ![](https://djisdksupport.zendesk.com/attachments/token/TCDg2uAeXzBQ2SIIqZyTL2Pj5/?name=image.png) -
I'll check if the user can arm the motors and takeoff with the DJI sample app.
With my own unit, not in the US, after adding listeners and starting the simulator with a USA lat/lon combination, I get the following -05-22 15:21:12.329 11251 11315 I ... FlightController RemoteID: remoteIdWorkingState: OPERATOR_LOCATION_LOST_ERROR
05-22 15:21:12.329 11251 11315 I ... FlightController RemoteID: isBroadcastRemoteIdEnabled: false
05-22 15:21:12.329 11251 11315 I ... FlightController RIDWorkingStatus {areaCode: US, failResion: 1}, isRidNormal: false, isRidSupport: true, isEidNormal: false, isEidSupport: false
Both ACCESS_LOCATION_COURSE and ACCESS_LOCATION_FINE are listed in the manifest and granted. This can be confirmed from the settings where the application name is listed under the list of apps with permission to access the device's location. -
The aircraft cannot test the remote ID function on the simulator if it is not the version of USA. Sorry, I thought you were testing this issue at USA before. I've looked up the meaning of this line of code and it refers to the remote ID being normal, meaning the plane is ready to take off at this time. I also tested this issue with the help of an engineer. It takes off fine using MSDK sample. ![](https://djisdksupport.zendesk.com/attachments/token/Y8I8oNxRhAQ2RUVhBYt5W75rh/?name=image.png) OPERATOR_LOCATION_LOST_ERROR means that the app does not have a push location. This problem occurs if the App does not have an authorized location or is not in the foreground. -
What error is expected for `remoteIdWorkingState` when testing outside of the US? I have added a logger in my application which subscribes to LocationServices updates -
onLocationChanged(Location[gps xx.xxxxxx,x.xxxxxx hAcc=34 et=+55m58s77ms alt=592.5 vel=0.58646667 vAcc=23 sAcc=2 bAcc=98 {Bundle[mParcelledData.dataSize=96]}]))
So I can confirm that this information is available to DJI SDK. From the SDK, I'm receiving the following status updates -
RIDWorkingStatus {areaCode: F2, failResion: 0}, isRidNormal: false, isRidSupport: false, isEidNormal: false, isEidSupport: false
remoteIdWorkingState: UNKNOWN_ERRORIs this remoteIdWorkingState expected/normal when testing outside of the US? In any case, with this M3T, I can arm the motors and take off in the simulator. I will have to ask a user in the US what the log output / behaviour is there.
-
What error is expected for `remoteIdWorkingState` when testing outside of the US? -->If RemoteIdStatus is used in an unsupported region,`remoteIdWorkingState` should read UNKNOWN_ERROR. isBroadcastRemoteIdEnabled will also be false. Remote ID is related to a region's policy, and we have made the Mobile SDK compliant for certain regions in order to make the MSDK legal for users in that region. In other words, if Remote ID is not required in your area, it will not affect your usage. Even if you are in a region that requires Remote ID, such as the US, you can use it without any problems if you follow the authorization of Mobile SDK location permissions and keep the app in the foreground. -
We have tested the same code inside the US. Again the M3E cannot take off, but as you can see LocationServices is being updated, so there is no question of whether the RC's location is known or not; location permissions have been granted and the app is in the foreground.
onLocationChanged(Location[gps 3x.xxxxxx,-8x.xxxxxx hAcc=2 et=+14m58s536ms alt=195.4 vel=0.017491112 vAcc=3 sAcc=0 bAcc=42 {Bundle[mParcelledData.dataSize=96]}]))remoteIdWorkingState: OPERATOR_LOCATION_LOST_ERRORisBroadcastRemoteIdEnabled: falseRIDWorkingStatus {areaCode: US, failResion: 1}, isRidNormal: false, isRidSupport: true, isEidNormal: false, isEidSupport: falseonLocationChanged(Location[gps 3x.xxxxxx,-8x.xxxxxx hAcc=1 et=+15m21s719ms alt=196.6 vel=0.73977107 bear=143.34 vAcc=2 sAcc=0 bAcc=19 {Bundle[mParcelledData.dataSize=96]}]))
-
Can you provide us a video of the failure to take off using this demo? I will have an engineer help analyze it. Here is the upload link:https://pan-sec.djicorp.com/s/XHgZYSrSZWLDpiM MSDK V5 sample:Mobile-SDK-Android-V5 -
I'll look into it, although I am not in the US so this is a time-consuming back-and-forth.
I failed to include the following log line in my previous report:
[{"componentIndex":0,"description":"Remote ID broadcast error. Failed to obtain remote controller location. Unable to take off","informationId":"0x161000B4","sensorIndex":0,"title":"","warningLevel":"Warning"},{"componentIndex":0,"description":"","informationId":"0x1B080003","sensorIndex":0,"title":"","warningLevel":"Caution"}],"id":"DeviceHealthEvent"
Without actually being in the US and trying to take off, is there any other way for me to confirm - either programatically via an SDK API, or via the logs - whether DJI SDK has successful retrieved (or not) the RC Pro's position? -
I have tried listening to `KeyRcGPSInfo` in my application, but I never receive any updates and if I try a `get`, the operation times out. With the sample app (MSDK V5 sample:Mobile-SDK-Android-V5), the same happens when I try to set a listener or perform a get, and the `DistanceRCWidget` displays "DRC N/A". This is with the DJI RC Pro Enterprise controller (firmware 02.00.0407).
-
Without actually being in the US and trying to take off, is there any other way for me to confirm whether DJI SDK has successful retrieved (or not) the RC Pro's position? -->The state of RemoteIdWorkingState should not be OPERATOR_LOCATION_LOST_ERROR if the remote location is successfully obtained. KeyRcGPSInfo is a Key that is not open and it may not support your remote control. I noticed that we encountered the same problem as you in our testing. Can you confirm again if it will take off using the MSDK sample code? It is possible that this is a known issue with the MSDK. -
Hello.
I don't see this issue fixed in the new 5.5.0 release.
https://developer.dji.com/doc/mobile-sdk-tutorial/en/#android-msdk-v5-5-0-official-version-release-notesIs it fixed?
Please sign in to leave a comment.
Comments
26 comments