Free the drone

Joined
Sep 5, 2020
Messages
3
Reaction score
0
Age
25
Hello,

My father-in-law owns a DJI Phantom 2 vision + with the well known black screen error.

I took his drone home with me over a month ago and tried a lot to repair it, but after spending a lot of time with that drone I am just annoyed with DJIs closed-source design. The DJI Vision App just does not work on any modern android phone I tested, I tried using emulators like Android SDK, but always run into problems, also I have analyzed the communication between app and drone and can not make sense of most of it.

Therefore I want to replace as much DJI stuff with Hard- and Software that I understand and which I have programmed myself (or which are at least open-source).

I am a pure mathematician and also now some basic stuff about applied computer science, but definitely not enough so that this would be an easy thing for me to do. Also I have no clue about electrical engineering or video processing.

The first thing I want to do is to find a way to use the Gimbal camera without the Ambarella board. I disassembled the camera and connected the ribbon cable to the camera port of a raspberry pi. The kernel seems to recognize something and adds seven block devices /dev/video10-...-/dev/video16. But unfortunately I can not access the video stream, vlc replays “IOctrl error” and mplayer just gives me an almost all green picture. It would already help a lot to have a name or serial number of that camera (I already gave up to find good old data sheets for DJI products).
If I somehow manage to get a picture from that camera, the next step would be to decode the receiver signal so that I can let the Gimbal adjust its perspective according to my wishes.
Also I need to get telemetry etc., but I am optimistic that this will not be too hard.

I know that this project could easily become more expensive than buying a new drone, but it would make me sick to throw away this drone although most of the hardware works perfectly fine. Also I don't want DJI to get away with that kind of bad engineering.

So does anybody ever tried something similar or can provide some helpful knowledge?
(Some people already solved the opposite problem and gave their phantom another camera, but it seems that nobody tried to use the original camera with third party decoders yet.)

Thanks for your help!

Best,
Dominik
 
While Ambarella SDK is not freely available, it is based on Linux. Sometimes people do push the SDK to Github, though it is usually removed after a few months.

What I'm getting to is - maybe you should just use the Ambarella? Connect to its serial port, and you can check whether Linux is booting properly, and how the video encoding works.

Btw, Ambarella connect directly to the CMOS sensor; typically this is called "sensor" and not "camera". Camera is rhe whole video pipeline, including Ambarella. Though I guess there might be different opinions on this.

Make sure to check the information here:
O-Gs wiki - DJI Phantom 2 Vision plus Hardware

You can write to the O-Gs in "Issues" of that project; they usually respond do questions.

If you really want to avoid Ambarella - you'd have to have info about the sensor used. It doesn't seem to be available on the wiki. Not sure if anyone identified it. Again, you could try contacting O-Gs.
 
Writing sensor drivers is not for the faint of heart. The api of the specific sensor used will be needed.
 
Hello,

My father-in-law owns a DJI Phantom 2 vision + with the well known black screen error.

I took his drone home with me over a month ago and tried a lot to repair it, but after spending a lot of time with that drone I am just annoyed with DJIs closed-source design. The DJI Vision App just does not work on any modern android phone I tested, I tried using emulators like Android SDK, but always run into problems, also I have analyzed the communication between app and drone and can not make sense of most of it.

Therefore I want to replace as much DJI stuff with Hard- and Software that I understand and which I have programmed myself (or which are at least open-source).

I am a pure mathematician and also now some basic stuff about applied computer science, but definitely not enough so that this would be an easy thing for me to do. Also I have no clue about electrical engineering or video processing.

The first thing I want to do is to find a way to use the Gimbal camera without the Ambarella board. I disassembled the camera and connected the ribbon cable to the camera port of a raspberry pi. The kernel seems to recognize something and adds seven block devices /dev/video10-...-/dev/video16. But unfortunately I can not access the video stream, vlc replays “IOctrl error” and mplayer just gives me an almost all green picture. It would already help a lot to have a name or serial number of that camera (I already gave up to find good old data sheets for DJI products).
If I somehow manage to get a picture from that camera, the next step would be to decode the receiver signal so that I can let the Gimbal adjust its perspective according to my wishes.
Also I need to get telemetry etc., but I am optimistic that this will not be too hard.

I know that this project could easily become more expensive than buying a new drone, but it would make me sick to throw away this drone although most of the hardware works perfectly fine. Also I don't want DJI to get away with that kind of bad engineering.

So does anybody ever tried something similar or can provide some helpful knowledge?
(Some people already solved the opposite problem and gave their phantom another camera, but it seems that nobody tried to use the original camera with third party decoders yet.)

Thanks for your help!

Best,
Dominik
Might I suggest a 3rd party gimbal which are readily available and a GoPro Hero 4 (which will be the most recent GoPro that will work with the phantom/gimbal setup). Whilst I appreciate it may not completely eliminate all you want to replace it is a much more straightforward modification that is quite widely recognised and supported.
 
While Ambarella SDK is not freely available, it is based on Linux. Sometimes people do push the SDK to Github, though it is usually removed after a few months.

What I'm getting to is - maybe you should just use the Ambarella? Connect to its serial port, and you can check whether Linux is booting properly, and how the video encoding works.

You make a good point, I will try to connect to Ambarella and see if I can use it.

Btw, Ambarella connect directly to the CMOS sensor; typically this is called "sensor" and not "camera". Camera is rhe whole video pipeline, including Ambarella. Though I guess there might be different opinions on this.

I agree that this definition of camera is favorable.
 
Might I suggest a 3rd party gimbal which are readily available and a GoPro Hero 4 (which will be the most recent GoPro that will work with the phantom/gimbal setup). Whilst I appreciate it may not completely eliminate all you want to replace it is a much more straightforward modification that is quite widely recognised and supported.

Well that problem is not with the Gimbal but rather with the WM301 Live View Encoder board. (I hope I understand you correctly when I assume that you would still want to connect the third party camera to the WM301.)
 

Members online

No members online now.

Forum statistics

Threads
143,054
Messages
1,467,297
Members
104,919
Latest member
BobDan