Welcome Inspire Pilots!
Join our free DJI Inspire community today!
Sign up
Hopefully my lessons learned can help others. Your mileage may vary with this info so use it at your own risk. I make no implied statement as to the accuracy of what I'm stating, or that it will resolve your issues. I'm only stating that helped me and it may help you too.

My saga started with my Gimbal Roll axis being tight and causing a Gimbal overloaded message to be displayed after light flying. If I hovered for a bit the message went away, the horizon stabilized and I could proceed. Knowing nothing about how these gimbals operate, I assumed I could just loosen the Gimbal nut, problem solved. Oops...

Big mistake 1, I didn't mark the nut beforehand, not realizing it was magnetized. After doing some reading here, I discovered the error of my ways. Since I already messed up, bad, I decided to remove the nut and use an old style magnetic compass to fine out what nut facet is north. using the graphic below you can see what I did. holding the nut near the compass I was able to determine which facet would cause the N on the compass needle to point towards it. By slowly spinning the nut in my had I could cause the S compass needle to point towards it. This would be the N facet on the nut. On two magnets N is attracted to S.
Gimbal Nut.jpg
Fortunately there is an N stamped inside the Roll access of my Gimbal. (Not all of them have this.)

Ok, big mistake number 2. I assumed the friction of the AMP connector and ribbon cables on the Roll axis driver board was enough to make contact, it isn't. This mistake cost me several hours of wasted time with the Gimbal flying all over when It would startup. Make sure to lock the AMP connectors down on the ribbons.

NOTE: Mounting the Gimbal in the drone, and leaving only 1 screw to hold the driver board, made adjustments a lot quicker. I was able to loosen that 1 screw and swing the driver board out of the way while leaving the ribbon cables locked in place. This allowed me access to the nut to make adjustments. Just make sure between adjustments to finger tighten the single driver board screw so the board is firmly seated with respect to the housing. (If the board moves it will throw off the adjustments you are trying to make on the nut.

Once I did this, I tightened the nut with the compression washer and aligned the N facet of the nut with the N stamped on my roll axis housing. This got me in the ballpark to start. Once in the ballpark, I was able to tweak the nut +/- until I had the Gimbal startup perfectly horizontal and function normally.

Keep in mind, I only goofed up the roll axis. Had I messed with the other 2 axis I probably would be S O L and had to send my Gimbal in to DJI.

WAlternatively if you run out of patience, I offer calibration services and we can work out a fee to get it fixed up for you.

You can pay me in parts as well like send 2 scrap cameras and get one good one in return :)

I’m fixing one for a customer at the moment so it’s qorking quite well as a fix. Osmo parts also work for spare parts in the repairs. Plus I made a black x3 with the osmo shells.

Next project is fixing a crashed x5 camera.
Hi. Would you like to repair my gimbal? What is the cost?
Some more info for anyone who is trying this. Here is what I've been trying to do for mine although I haven't completed the process as I'm in the middle of downgrading the firmware to see if the scripts will work then as they don't seem to work with the newest firmware.

I'm using the scripts found here: GitHub - o-gs/dji-firmware-tools: Tools for handling firmwares of DJI products, with focus on quadcopters.

comm_og_service_tool.py to be exact, more info here: howto:og_service_comm_tool [dji.retroroms.info]

First I use the methods mentioned in this thread to get it as close as possible without pulling my hair out. Then I run this script with the appropriate parameters.

Linear Hall parameter Info: The Gimbal will slowly move through all positions in all axes, several times. It will take around 30 seconds.

Joint Course parameter Info: The Gimbal will move through its boundary positions, then it will fine-tune its central position. It will take around 15 seconds.

To access the serial port on the Inspire 1, just plug in a USB connection to the back of the drone. It should show up as a COM device in Windows, or a /dev/ttyS* device on Linux.

Good luck!
similar method I use on the Mavic 2 gimbals. Never thought to try it on the X3
I've tried it on multiple firmware versions last night on my Inspire 1 with the Zenmuse X3 and none work as expected. After reviewing the script it looks like it was never fully tested on the X3 (WM610) so unfortunately it doesn't quite work. Although the gimbal and drone do respond to the command, it appears to only do the default basic calibration. I'm going to look into it further, but I can't promise anything as I'm not well versed in python nor do I know the systems used in these drone all that well (thanks DJI for not releasing documentation or basic service software for these expensive workhorses :mad:).
I made 'some' headway. I was poking around with how the packets are constructed and managed to get the X3 to do something different when changing '0x08' to '0x0A'. I'm not sure what this is supposed to do, but it makes the gimbal look all the way up or all the way down to it's limits but not one then the other. It will also sometimes make the gimbal go through what appears to be part of it's init. The line I was editing is line number 1032 "CMD_SET_TYPE.ZENMUSE, 0x08," of the script 'comm_og_service_tool.py'

I have no idea what this does, but it does something. I was simply going through with it via trial and error to see if I could find a calibration function but obviously this is tedious. What I really need to do is figure out how all of the original commands were figured out. I guess looking through the firmware might give me clues? If anyone else knows anything about this please chime in!
I've been experimenting more and have come up with a list of vague function descriptions via trial and error sending command to my Inspire 1 and Zenmuse X3. I'm using the 'comm_serialtalk.py' script to send the commands.

python comm_serialtalk.py --port COM24 -vv --timeout=500 --receiver_type=Gimbal --seq_num=65280 --ack_type=No_ACK_Needed --cmd_set=Zenmuse --cmd_id=20

7 = Roll Left by a few deg. (POV behind camera)

8 = General Gimbal Calibration. Appears to be the same thing accesable through the GO APP.

10 = Yaw Right ~15deg then left 15deg. If command '20' is done first then this command points camera gimbal down then back up. Sometimes overloads the gimbal. Sometiems points the camera in random directions.

15 = Makes a short "BEEP"

17 = Makes two short "BEEPS"

19 = Makes a short "BEEP"

20 = Some kind of calibration step. Seems to level the Roll or change the yaw. Sometimes changes pitch. Sending one command only does one step at a time. Responds with 0x49b, 0x48b, 0x48b, 0x440b(8 packets this time), 0x0b(0 packets), 0x48b, 0x0b(0 packets) Sometimes points the camera in random directions.

23 = Makes a short "BEEP"

26 = Turns Gimbal 'OFF'?

32 = Some weird "BEEP" sequence and repeates until reset.

83 = Turns Gimbal 'OFF'? - Does nothing after reset. Sometimes does nothing. May have been a fluke overload.

Tested all the way to #128. Tested a few random command #129 - #255 and no response was found.

All unlisted test commands = no apparent response from gimbal/camera.

This still doesn't solve my problem, or anyone else's for that matter, but I feel like it's a step in the right direction for doing a proper re-calibration.

New Posts

Members online

No members online now.

Forum statistics

Latest member