Figure 1: ArduPhantom Night Flying |
The DJI Phantom has some nice air frame features: A sturdy plastic injection molded polycarbonate enclosure that keeps out light rain and resists hard impacts very well; Nice motors with simple, easy to use prop-mounts that are very unlikely to come loose in flight or get bent or broken in a crash; and very light-weight ESCs that have super bright LEDs on them for easy visual orientation at great distance, and superb night flying (Figure 1).
I also wanted a very small, lightweight, and extremely rugged FPV platform that I could carry in my backpack when I go hiking. The DJI Phantom air frame seems perfect for this, as the propellers are extremely easy and fast to remove, and once removed the rest of the aircraft can be stuffed in my backpack as is, and is sturdy enough to not worry about it being damaged during the trip.
But, since I'm a fan of ArduPilot, and like to be able to perform complex auto missions and make modifications to the code, I decided to build a DJI Phantom air frame with an APM flight controller. The result was very successful, and I encourage you to do the same, following the instructions below.
Materials
For this build, you will need the following parts. Fortunately, the DJI replacement parts needed can all be purchased quite cheaply. My budget for this entire project was about $600.
1x DJI Phantom replacement case kit
1x DJI Phantom replacement screw kit
1x DJI Phantom connectors kit
2x DJI Phantom ESCs (green)
2x DJI Phantom ESCs (red)
4x DJI Phantom motors
2x DJI Phantom props (set of 1 CCW and 1 CW)
1x DJI Phantom landing gear
1x APM 2.5
1x 3DR Power Module
1x 3DR GPS module
Power System Wiring
First you'll need to mount the ESCs and motors in the case, and wire up the ESCs to the output side of the power module. When mounting the ESCs, be sure the green ones are at the front end of the aircraft (the battery door end), and the red ESCs in back. If you put the red ESCs in front instead, then the signal leads won't reach, because they are of different lengths.
There is not much space inside the case for a lot of wiring and connectors, so I just cut off the XT60 connector from the output side of the APM power module, and soldered the connection directly, insulating with heat shrink of course. If you plan to use an internal battery, make sure the wiring doesn't cross over the central area where the battery goes, because it will snag on the battery when you take it in or out, and it's already a fairly tight fit for the battery as is.
Also, be sure to keep all the wiring as low in the bottom of the case as possible, so the magnetic fields from high-current wires will not interfere with the autopilot's magnetometer (Figure 2).
At first I velcro mounted the autopilot, GPS, and receiver to a thin wood plate which I screwed on to the four screw bosses protruding from the case bottom. This held it high enough above the power wiring below to avoid magnetic interference. However, I found that this piece of wood was basically a sounding board for vibration. Even adding foam between it and the autopilot wasn't enough to reduce the vibration to a reasonable level to get good accelerometer readings (Figure 3).
Later I found that a soft plastic cottage cheese lid made of Low-Density Polyethylene (LDPE) is a great way to mount the APM, since the soft flexible material helps to dampen vibrations (Figure 4).
Figure 4: APM mounted on LDPE food lid greatly reduces vibration |
Once you get the case on you won't want to remove those 16 screws every time you need to upload the latest version of ArduCopter, or download a flight log. So you should probably make a short USB cable that permanently connects to the APM, as shown connected in figures 3 and 4 above.
LED Connection
You won't be able to see the status of the armed and GPS lock LEDs once the APM is enclosed in the case, so you'll want to connect a couple external LEDs that you can view through the tail light port on the Phantom case. Connect one LED to A4 and one to A6 (you can also connect a buzzer to A5 if you want). Signal goes to the + side of the LED, and ground to the - side. Remember to include resistors in series with each LED to drop the voltage to the proper level for the LEDs you are using (Figure 5).
Figure 5: Armed and GPS fix LEDs visible through tailight port |
You'll also need to go into Mission Planner and change the LED_MODE to 11 (the default is 9 for some reason).
Final Assembly
You can now put the top of the case on (attached with the twelve M2.5x5 and four M2.0x8 screws from your screw pack). Once you calibrate and configure everything in Mission Planner then you should be ready to bolt on the props and go fly (Figure 6)DJI phantom
Figure 6: Ready to Fly |
Flight Testing
I added a GoPro, a 5.8 GHz video transmitter, and a 3DR telemetry module for some FPV flying during a Sunday hike in the mountains. Here's the results of the first test:
It flies very nicely, even in auto modes. The main issue is shakiness and vibration of the recorded video. Hopefully I can reduce that with some tuning, better camera mounting, and perhaps stiffer props.
Comments
This thing is hard to land. Take-off went smooth for stabilize and alt-mode but when landing after it hit the ground the motor still spinning relatively fast which cause to tip the phantom. Also noticed that crash detection on 3.1 does not kicks in. Motor still spinning after tipping. It wont even disarm on putting yawn on the left most. It needs to be throttle down for few seconds then left yawn before it disarm.
Finally found it. Somehow my mission planner "Full Parameter List" was gone after the upgrade of mission planner. I reinstalled it and was able to adjust the MOT_SPIN_ARMED value instead selecting of the drop down list on the "Advance Params" which the maximum value is "Fast" and according to documentation is only equivalent to 150.
The minimun value settings that I found working on my phantom to spin all motors are:
Thank you so much for pointing me where to look.
Now I can continue adding teensy for full telemery to my taranis.
did u calibrate the ESCs properly.
Then you probably need both THR_MIN and MOT_SPIN_ARMED to be greater than 100. Make sure you reboot the APM after writing the parameters, it's possible MOT_SPIN_ARMED needs a reboot to take effect.
I'm sure the parameters was wrote. I noticed the effect in throttle when I adjust the THR_MIN. Also if the THR_MIN is on default (100), random motors are not spinning on 20-30% throttle but all will consistently spin on 40% above.
Shouldn't be a transmitter issue. Are you sure you wrote the parameters and restarted the APM afterwards?
Not sure if I need to adjust this to my transmitter. I'm using Taranis.
I put it up to 250 for THR_MIN and still won't spin on arm. It just make the throttle very sensitive. Phantom will start hovering in 30% throttle. I even try to lower the THR_MID to compensate the early throttle power.
Wondering what other settings I can play.
ok. Let me try that. I was just concern increasing it to much but I guess it should be fine as you suggested. :D
Are you sure the THR_MIN is high enough? I had to set mine to 175.