How to connect 4 ESCs to one LiPo battery (Make a power distribution board)
The first time I built a power distribution / wiring harness for a tri / quadcopter was back in December 2010 (http://fangin.com/blog/2010/12/07/tricopter-build-wiring-harness/) and I chose the most direct solution which was to solder all the cables together. I say "most direct solution" because in hindsight, it's not the simplest solution. The drawbacks of this solution include;
- It's more difficult to layout all the wires and get the lengths planned up front.
- Twisting the wire together and soldering 4 or 5 wires at one junction gets messy.
- I tried to link all the wires at one point (http://fangin.com/blog/wp-content/uploads/2010/12/1000000286-Large.jpg) to go into the battery which made it difficult to get the wire into the XT60 connector.
A neater, simpler and all round better solution is a power distribution board where a central, double sided PCB board (copper on both sides) is located centrally in relation to the ESCs / motors and all the wires connect back to this PCB.
What you'll need.
- PCB - Double sided.
- Cutters
- Red / Black Wire
- Solder / Soldering iron
- 20mm heatshrink tube.
- Cut a small board approximately 35 x 15 mm of the double sided PCB.
- Prepare the wires and board by soldering the ends of each wire and the board where the wires will go. You may want to consider orienting the wire to suit the layout of your multirotor. For example an X-Quad you may want to have four wires coming off the board in an X layout.
- Solder the wires to the board. Turn the board over and repeat for the other polarity wires.
- At this point you're almost ready to seal the board up with some heatshrink tube. Before you do! Use a continuity test on a multimeter to ensure 1) All the ground wires are connected and 2) There is no connection between the positive and ground planes.
- If you're worried about wires moving or foreign objects getting into the heatshrink, smother both sides of the board with glue from a hot glue gun. That will help keep the wires in the right place and prevent a short circuit between the two polarities should something conductive work it's way into the housing.
- Now you can solder your favourite connectors at the end of each pair of wires. In the photo shown below I've used XT60 connectors on a harness made for a tricopter.
How To Add Bluetooth to your MultiWiiCopter
For not much more than $10, a Bluetooth adaptor is a cheap and easy way to get in-flight real time feedback from the onboard sensors and allows quick and easy modification to PID values via the MultiWiiConf software. Here's how to do it.
-
Buy a serial to bluetooth adaptor - "Serial Bluetooth RF Transceiver Module RS232 w/ Backplane Enable & State Pin". The one from goodluckbuy.com is simple and works fine with the Arduino.
-
Connect the USB FTDI adaptor to the BT adaptor. I used my breadboard wiring leads to hook up the pins in the following order.
-
FTDI BT VCC VCC GND GND TXO RXD RXI TXD - Connect the FTDI USB Adaptor to a PC. The BT adaptor should now be powered with a blinking red led. Before using it with an Arduino running muliwii software, the baud rate of the BT adaptor has to be changed to 115200 from the default 9600. Now this is the part that stumped me for ages and sent me off looking up forums, updating bluetooth stacks etc etc until I figured out what I was doing wrong. To configure the BT adaptor, you need it physically connected to the PC via the FTDI USB adaptor but you don't want to connect the PC to the BT adaptor .... yet. The BT adaptor can only be configured when it's in an un-connected state. In your "Bluetooth Places" you should be able to see the device (by default called "Linvor") but it should show "not connected") and the red light should be flashing on the BT adaptor.
- I used Advanced Serial Port Terminal to connect to FTDI USB. The AT commands must be copy and pasted to send to the device because it constantly polls and if you can't type fast enough to complete a command before it reads it in.
- Send the "AT" command. BT responds with "OK"
- Send "AT+NAMEMultiWiiCopter" to change the default from Linvor.
- Send "AT+BAUD8" to change the Baud rate to 115200.
- Now connect to the Arduino as per the connections in the table above.
- Run the MultiWiiConf software and choose the BT COM port.
- Now you can fly around and see the gyro and accelerometer inputs change while in flight!
I found a page with quite a lot of detailed information on the BT adaptor during my searches. While it's native language looks Chinese, the Google Chrome browser seems to do a pretty good job translating it.
Tricopter vibration mount testing
This clip shows sample footage from four different camera mounts on my tricopter. The aim was to counter the effect of vibration on the quality of the video and remove the "jello" effect as much as possible.
The best result achieved so far was probably the simplest and cheapest: a HD keychain (#11) velcroed directly to the frame.
The biggest improvement was can probably be attributed to using an accurate prop balancer as you might notice the noise in the last two videos is significantly reduced.
The next test will be with a GoPro.
Tricopter Simple Yaw Mount
A hard landing recently put the yaw servo out of action on the tricopter. The yaw mount was a block of solid pine with two pieces of piano wire connected directly to the servo arm. It was overly complicated and had a bit too much slack in it for my liking. The yaw servo needed replacing so it's as good a time as any to "upgrade" the yaw mount.
The Super Simple yaw mount takes the blade grip from a 500 size heli, along with some linkage balls and rods, and combines to make a simple, cheap and slop free yaw mount. There's not much too the construction of the mount as shown in the photo. Probably the hardest part is drilling a hole down the centre of the 12mm x 12mm oak arm that's in line with the shaft. Any deviation from centre will result in a skewed motor or even worse, drilling through the outside of the shaft. Cut some 1/4" ply with some 3mm ply glued on top to make up space between the blade grip arms. The replacement servo is a cheapy HXT900 and seems to be doing a good job so far.
This configuration has had about 10 flights put through it. The only problem was the linkage arm popped off after a particularly bouncy landing. Although thats probably a better result to the alternative of probably stripping the servo gears that a traditional push-rod link may have caused.
OLD YAW MOUNT
NEW & IMPROVED SUPER SIMPLE TRICOPTER YAW MOUNT
Tricopter: Anti Vibration mount
Mounting the cameras directly to the ply base didn't yield great results in image quality due to all the vibration. To try and reduce it, I did a rough balance of the props using music wire as a 'balance beam'. I think this improved it a bit until a proper balance can be done.
The first mount was made with fuel tubing screwed onto nylon bolts. I probably should have made the tube length a bit shorter because it was too flexible for the weight of the camera. I'm not sure it made a big difference to countering vibrations and mounting the camera on the foam to get the right angle was difficult. The first bounce on landing and the camera would shift.
Version two uses rubber mounts taken from inside an old PC CD-ROM drive. A 1/4" nylon bolt holds the camera firmly in place while cable ties with the head cut off hold it all in place. I think this mount reduced the vibration getting to the camera but still not entirely. Until I properly balance the props and motors I can't tell if it's good enough.
I'm still impressed with the video quality I get out of the keychain cameras considering their small size and weight compared to that of the IXUS 100IS. Next test I reckon I'll velcro the keychain cam to the version two mount and see what I get.
Mount 1
Mount 2
TriCopter LED Strip Lights
These photos show the strip LEDs controlled via the HK Turnigy Receiver Controlled Switch. The Blue LEDs only face forward where the white LEDs is on both sides of the rear boom. The idea is to help with orientation such that if I can't directly see the blue, it's facing away from me. Ideally I would have used more distinct colours but it's what I had on hand at the time.
I'm thinking I might tripod mount the Canon DSLR, at night, and use the remote switch to do a long exposure with the Tricopter lights on and see if I can't paint the sky.
TriWiiCopter: Connecting the brain
Today I disconnected the 4 HK401B Gyros from the three ESCs and 1 yaw control servo for the purpose of hooking up the new Arduino control board.
Tips:
1) Create a new model on my transmitter. I made the mistake of trying to re-use the existing model memory setup to fly my Tricopter where the Tx is programmed to do all the mixing and 120° CCPM. That job is taken over by the Arduino so a new model with just the basic config can be used.
2) Adjust (increase) the Throttle ATV such that the minimum throttle shown in the MultiWiiconf software is about 950. Once the Arduino sees a low enough throttle output, it will be able to arm the motors and set them at idle. If the Arduino reads anything above minimum throttle, the motors won't start as a safety feature.
3) Adjust the rudder / yaw control Dual Rate, ATV so that the output is in the 1000 to 2000 range in MultiWiiConf.
I'm still using the MultiWiiConf_prebis_1.6 only because I'd already configured it and had it up and running. Version 1.6 is the current version which I just need to configure and upload to the board. When the time comes, I'll try out the online configurator here http://ardupirates.net/config/MW_Config.php.
Now that everythings moving in the right direction in the software, it's time to put the props back on for a test flight. The old gyros will stay on till I'm sure everythings working ok.
Triwiicopter: Building the Brains
The next step to the tricopter project is to swap out the 4 HK401B gyros for an Arduino micro-controller hooked up to a Wii Motion Plus 3 axis gyro all mounted on a custom made PCB. The theory is a much more stable platform for getting some decent aerial video and photos.
The directions I'll be following can be found here;
http://www.rcgroups.com/forums/showthread.php?t=1261382
http://www.rcgroups.com/forums/showthread.php?t=1332876
http://www.rcgroups.com/forums/showthread.php?t=1340771
http://www.rcgroups.com/forums/showthread.php?t=1348268
The parts needed are;
2) Wii Motion plus (the innards of)
4) An FTDI to plug in the USB and provide serial comms to a PC.
5) Header pins.
The first step is too solder the Arduino and WMP onto the PCB. The hardest part is holding the header pins in place while flipping the board upside down to solder the bottom of the pins. Try using polystyrene foam or masking tape to hold the pins straight. I used double sided foam tape to hold the WMP in place and to provide some form of protection from vibration. I'll look at this again depending on what the output is like from the WMP sensor. Once the Arduino, WMP and header pins are all in place, it's time to upload the MultiWii 1.6 code to the Arduino. This link is quite handy as it appears to be the best place to go to check for updates as opposed to trawling the forums.
Here is where I struck the first hurdle. I kept getting error "avrdude: stk500_getsync(): not in sync: resp=0xf8, avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xd1". After an hour or so of Googling and forum reading, I tried reversing the way the FTDI board was plugged into the Arduino and voila it worked. The proper direction is contrary to the images I had looked at on the net. The pin naming on the board didn't help much and is ambiguous probably due to the lack of space. After reversing the FTDI, the code uploaded first go with plenty of flashing "Rx / Tx" LEDs on the Arduino and FTDI board.
Once the Arduino is running the code, I start the MultiWiiConf software to check the output from the WMP sensor. This software allows configuration and fine tuning to be made to the parameters governing the stability and responsiveness of the Triwii. For now though I'm just using it to check that all three axes of the WMP are sending a signal. The USB connection powers the Arduino which in turn powers the WMP sensor so at this stage I should be getting output. After selecting the right COM port in the software and then "start", the graphical interface appears to be showing everything working ok. The GYRO_ROLL, PITC and YAW all change in value as I tilt the board. I believe the ACC_ROLL, PITCH and Z are active once the Wii Nun chuck is added in for auto stabilisation.
Next step, mount the board on the existing tri, unplug the gyros and plug the ESC inputs into the triwii board.
Tricopter 3 camera view
Just a quick link to the latest video with 3 camera angles. 1 from the tripod, 2 from my hat and 3 from onboard the tricopter.