Skip to content

Instantly share code, notes, and snippets.

@probonopd
Last active January 22, 2024 22:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save probonopd/329f85964eee9e48b0354016face681f to your computer and use it in GitHub Desktop.
Save probonopd/329f85964eee9e48b0354016face681f to your computer and use it in GitHub Desktop.

DJI Mini 4 Pro Review

Pros

Watch the reviews, they usually show the pros. Key ones:

  • Size: Can actually carry this around casually
  • 360 degrees obstacle avoidance (except at night and in sport mode)
  • Great tracking modes
  • C0 certified
  • DJI Fly app does seem to cache the maps viewed (including satellite; unknown how much and for how long)
  • Waypoints missions are really easy to draw in on the map using only the DJI RC2 if you know how (click on the "Connection Guide" button, then on the "Camera View" button, then on the Waypoints icon)

Pleasant suprises coming from the Phantom series

  • Can tilt camera upwards

Cons

This is what the reviews usually don't tell you.

The biggest issues are with the DJI RC2 being locked down (crippled) by DJI in unexpeted, artificial ways. This prevents it from doing things that the hardware would be fully capable of doing. DJI should really change this! As it is now, I would consider not to buy for this reason.

Issues with the DJI RC2

  • The DJI RC2 does not allow you to install apps. This is the biggest downside, and it is being intentionally crippled by DJI. No possibility to install, e.g., a video editor app (not even the DJI recommended one), and a local no-fly zone map app (e.g., Droniq in Germany). This is a fully functional Android system under the hood but DJI has decided to make "security" work against the user. Never trust a system on which you can't just run your own apps! They should at least allow one custom app at a time (without multitasking, e.g., kill all other apps when DJI Fly is opened). This artificial limitation prevents one from editing videos while on the go using the DJI RC2, and it makes one need a secondary device (phone, tablet) for the local no-fly zone map app
  • If the DJI Mini 4 Pro ever gets the SDK (like its predecessor), currently there is no apparent way to use apps that use it (like Litchi) on the DJI RC2. Bummer!
  • Waypoints are intentionally crippled: It is apparently not possible to just import .kmz files. Workaround: Overwrite existing .kmz files using MTP
  • The hardware is undocumented (not even the processor is known/shown in the limited Android 11 variant running on the device)

Issues with the DJI Fly app

  • Offline maps are not being used even though they have been downloaded. Bug?
  • Some things are hidden in unintuitive ways (e.g., to set waypoints you have to click on the "Connection Guide" button, then on the "Camera View" button, then on the Waypoints icon)
  • While it is possible to download offline maps, this feature is almost unusable because the area that can be downloaded is way too tiny, and the download is slow. It should be possible to, e.g., download the offline map for an entire country (using the gigabytes of space on the DJI RC2 or its microSD card). While the data format is simple enough to do this by a third party tool, it seems like there is also some internal database which will ignore files not created by the DJI Fly app?
  • There should be a way to define/import custom no-fly zones. This way, one could be sure to stay in the allowed areas even when flying manually in crowded locations. These no-fly zones should be possible to be drawn in by hand on the map on the device, and should also be able to be imported/exported). For each zone, the maximum allowed height should be possible to be entered. In this way, large databases (like an entire country) should be importable, so that the pilot would have the peace of mind to always stay in the allowed areas. This should work offline (using the gigabytes of space on the DJI RC2 or its microSD card)
  • While Profile -> Settings -> Storage -> Clear Cache -> Clear App Cache does delete downloaded Offline Maps, it will not delete map areas (including overlays and satellite) that one has "just lookeed at". There seem to be cached somewhere else - but where? Is there a WebView cache maybe? How to clear that?
  • It is unclear what has precedence, downloaded Offline Maps or map areas (including overlays and satellite) that one has "just lookeed at"

Issues with the Fly More Combo

  • No charger included (the "Charging Hub" does NOT come with a power supply)! Cannot "just start" even with the Fly More Combo! (It is another 19 EUR, really annoying when you think you have everything with the Fly More Combo!)
  • Missing 2 "M4 Camera Mounting Screws" and a lanyard for the DJI RC2. Would cost DJI almost nothing but would be a real benefit. (Get 2 pcs. M4 x 10mm, something like this or this)

Issues with the accessories

  • Prop guard fiddly to put on for transport (could possibly 3D print somehting that is easier to put on)

Issues with the DJI Mini 4 Pro itself

  • Obstacle avoidance does not work with small branches of trees when there are no leaves; might be especially problematic in fall/winter (would likely require other hardware)
  • Course Lock function missing (even the Phantom 3 had this) (could likely easily be fixed by DJI in the firmware)

Tips and Tricks

  • Attaching the DJI RC2 to the computer with a USB cable allows one to use tools like Android File Transfer (MTP) to access files. This way, one has access to /Android/data/dji.go.v5/files/waypoint (NOTE: Do not apply firmware updates without checking first whether this still works)
  • While a waypoint mission is being flown, try pushing the right stick forward and backward to increase/decrease/fly the missing backward (to be tested; source)
  • Taking screenshot works by attaching a USB keyboard and pressing PrtScrn

Investigation into downloading custom map tiles offline

The ultimate objective is to get custom maps onto the DJI RC2 controller, so that the DJI Fly app there uses them instead of the ones provided by DJI. This way, we could use RMZs and TMZs maps for UAS provided by the local government without having to carry around an extra smartphone.

  • Offline maps are stored in /Android/data/dji.go.v5/files/DJI/tiles in OpenStreetMap (OSM) tiles, seem to follow this naming scheme
  • Looking at the DJI Fly apk, /DJI/tiles is encoded in lib/arm64-v8a/libdatajar.so. In the same file there are lots of references to AMAP (formerly AutoNavi), a mapping service by Alibaba Group Holding (libAMapSDK_MAP_v7_5_0.so, "MapCore")
  • libAMapSDK_MAP_v7_5_0.so and libdatajar.so seem to check for the presence of root (.../su)
  • There is also libmapbox-gl.so, which seems to be using MBTiles (MBTiles is an open specification based on the SQLite database. MBTiles can contain raster or vector tilesets)
  • libmapbox-gl.so references /mbgl-offline.db; is this where the maps are cached? Where is this file located?
  • Are they actually using OpenStreetMap nowadays? Download URL for the tiles seems to be https://us.djiservice.org/styles/osm-bright/1/1/1@2x.png as per libdatajar.so
  • They also seem to be using Leaflet, an open-source JavaScript library for mobile-friendly interactive maps. This might indicate that tiles are stored in the Android browser cache (/data/data/com.android.browser/cache, would need root)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment