Archive for July, 2011


BallCopterTwo: Just the Software….Again

Jul 27, 2011 in Ballcopter, Project Build Reports

Since ballcopters come together quickly, this will be a quick update. I assembled the foamcore puzzle from last time, and with my package of parts having finally arrived (just in time!), BallCopterTwo is now all assembled minus the code that makes it do the copter thing.

….which I will finish. I promise.

Here are the 1000% less shitty control flaps, attached directly to mini-servos. The servo “horns” are custom 3d-printed affairs that have a 5mm side channel into which the foamcore panel slips and is retained with hot glue. This arrangement is so much more response and just… better than the previous failure of a linkage. This alone will probably make the difference. However, given that all the flaps are independent, they will need to be software controlled.

And the bottom side. The hinge is just Kapton tape wrapped around the structural carbon fiber rod. There is one catch, though – I attached a small section of Kapton tape, sticky-sides together, to the center of the hinge so it can move without sticking. Otherwise, the tape wrapping around the carbon fiber would make it too stiff.

The puzzle piece fully assembled.

I did alot of this on what amounts to autopilot (heh, autopilot), so I forgot to take pictures of the battery installation as well as the super-slick 12-servo (4 inputs, 8 outputs) interface board I whipped up using some perfboard, an Arduino Nano, and a Sparkfun 6DOF Razor IMU; but they are forthcoming. That contraption has been tested for basic functionality and mounts immediate above the blue servos. For now, though, Ballcopter is mechanically and electrically done – not electronically yet, since there’s codes to be written.

The final all-up weight is 19.5 ounces or 550 grams. Much heavier than the J-pop ball drone (350 grams), but this thing is also bigger and has 8 chunky miniservos (14 grams instead of 5 or 6) and a massively oversized 1Ah battery. Yes, I’m still used to sizing batteries up for electric vehicles.

The Once and Future Ballcopter

Jul 25, 2011 in Ballcopter, Emergency Quadrotor, Project Build Reports

First off, some minor updates on the not-Land-Bear-Shark (a.k.a the quadrotor, deathcopter, and myriad other pet names I and my peers have assigned to it). I’ve tuned the Z-axis rate controller some more such that now the yaw rate is much more controlled and the servos less twitchy. Powering those fans on injects massive amounts of mechanical noise into the sensors, so much that I’ve begun to consider coding more robust discrete-time filters in the software to target the vibrational frequencies that the fans so readily emit. I was ready to move onto testing the pitch and roll control software, though, when the problem suddenly became a little less virtual:

Oh boy. When you hear the scratchy-fan sound and look up to see a fan rotor hanging halfway out of the duct, it’s time to stop hovering. I guess this is why cheap ducted fans are cheap.

The entire motor mounting face seemed to have broken off; luckily the motor was held in by its power leads, otherwise there would probably be a hole in the ceiling somewhere. I’m not sure what plastic the casing of the fan is made of, but it does seem quite brittle. With the motor mounting face being the focal point of all the stresses the fan rotor imparts on the system, any manufacturing defect (like voids or local shrinkage) or increased loads (like from an off-balance rotor) would make the area prone to failure.

This fan is the most unbalanced of the entire set that had their shafts replaced, so I’m not surprised it was the first to go. However, it’s still a bummer – luckily only $40 lost and not $400 (then again, perhaps a better made fan would have never failed or been off balance). Otherwise, it’s also a hassle to have to replace the whole thing – the rotor is also well-trashed by being ground against the housing at a few thousand RPM. Fortunately, I have a spare (the very first one tested, in fact).

Now, I naturally gravitate away from projects as they enter the software-only stage. During the coding of the yaw controller, I was also thinking of distractions to embark on so I have an excuse to not write code. With this thing temporarily out of mechanical service now, I’m going to take a little break to recharge my code-monkey-pacitor with a project that only requires more software.

I knew I couldn’t leave Ballcopter alone for long. Despite its parts now having taken two and a half weeks to get back to the East Coast (still having not managed it as of right now… seriously, USPS?), I do have enough parts back here at base to independently build version two. Not that I would want to do that, since I did order an entire new radio for the thing…

So what’s different about BallCopterTwo? Hopefully it will be 1000% less terrible. What ultimately failed on the first design was my complete failure at creating control surface linkages. Airplane parts and building methods are still weird to me, which is part of the reason why Chuckranoplan hasn’t moved much from where it was in May. For the new design, I had intended to move to 8 independent, direct-driven flaps, mixed in software, such that there were no linkages involved, but figured that would negatively impact the vehicle weight. However, it took a new video of the original Japanese ball drone design for me to seriously pursue the 8-servo route. Here’s a screencap from the video.

Those sneaky bastards. Well, you can only get spiral deflection of the flaps like that if each one is actually independently driven. Two can play at that game:

Other changes to the version 1 design are a sleeker center column thing which should reduce weight even more and control flaps that aren’t way oversized. Because processing 4 channels of radio control into 8 servo channels needs software, I’ll probably whip up a quick board that carries an Arduino Nano and an IMU module – basically a condensed version of what’s on the quadrotor, stripped to the bare necessities. As long as I have a microcontroller onboard, it will be gyro-stabilized using the gyros on the IMU – I have plenty of practice now from making the quadrotor yaw controller.

Remember kids, don’t cut foamcore on the laser cutter.


4Chan, the Four-Channel Isolated Charger

Jul 23, 2011 in Emergency Quadrotor, Project Build Reports, Reference Posts

In a previous episode of the quadrotor show, I mentioned modifying a single four-channel Hobbyking battery charger (this one) into four isolated single-channel chargers. Well, that operation has been done… so at least now I can charge the quadrotor in one shot. The process involves cutting some traces, a small amount of surface-smount desoldering, and getting four isolated power supplies for the resultant charger channels.

So this is what the inside of the thing looks like. It’s mostly three copy and paste operations, with a few differences to accommodate mounting holes and the fan connection. The main power bus is on the left side – positive on top, negative on the bottom.

The power semiconductors are all on the underside, heatsunk to the aluminum case with silicone pads. The board standoffs keep the switches pressed against the chassis.

These common power traces are the ones to cut. I used a Dremel with a cutting wheel to separate the trace into four sections between the inductors. The fans receive power from the very end of the power trace, so it is now associated with one channel (it will still turn on according to temperature, but pulls from the power supply for that channel).

After this, it’s time to get some power supplies.

I bought these cheap switching power adapters (supposed to be used for LCD monitors) from Ebay for something like $10 each. They’re about as shady as you can possibly get a power supply, I suppose. In fact, they were so cheap that I cracked one open to see if it was really isolated or not. I see an optocoupler and isolation transformer, so I hope that means yes.

The rating is 12v and 5 amps, which is about 10 more watts than the HK Quattro should be charging at (50 watts) so it was a good fit.

Each channel needs to be connected to a power supply. I just used the long wire the PSUs came with to complete this operation. Positive on top, negative on the bottom.

This is where I decided to get Extra Fancy and made a supplementary case to hold the whole thing. It was designed in around 3 hours and then cut out of clear acrylic plastic on a laser cutter. This step is of course not necessary, but it organizes the wiring alot. I dug an IEC power jack out of a pile of old power supplies and made a 4-way split cable with the line cords that the PSUs came with. No, it’s not grounded.

It’s also really hard to take pictures of clear acrylic.

The charger mounts on top of the power supply case using its existing four rubber leg things. After making sure it powered on, I reassembled the case and put the whole thing together.

Unfortunately, the first test proved to be inconclusive. While the channels were DC isolated, clearly there was still some kind of coupling going on – whenever one channel started charging, the rest of the channels would freak out and some times reset. If I started another channel charging while one was already running, all of them would freak out and terminate.  The LCDs would also some times all blank if one battery was plugged in.

Clearly I missed something, so I took the charger apart again for a close flashlight inspection.

Here’s the culprit. I noticed a capacitor connected between each channel and the frame at each mounting hole. This is most likely a noise decoupling capacitor, but together they connect all the channels to chassis ground.

This is no problem if all the channels operate at pure DC offsets since capacitors are DC blocking. However, my guess is that the AC component of the switching power supply outputs is being transmitted across the capacitors on each channel, which is wreaking noisy havoc everywhere.

These caps had to go. There is one per mounting hole – just follow the lead emanating from the copper ring and remove the first capacitor you run into. And only that one, as far as I can tell. This can be done with a big soldering iron and a solder blob, or small iron and rapid back-and-forth heating of the two pads of the capacitor. Or you can dremel it off or something.

The behavior after this was much better. For some reason, the bottom channel LCD still has a contrast issue when any others are plugged in and running. However, it does not seem to affect the way it operates. I tried testing the isolation by trying random combinations of chargers and battery halves, and am proud to say that they all do work together.

The maximum charge rate for the Quattro on 5S lithium polymer batteries seems to be about 2.8 amps maximum. This works out to 60 watts or so, not accounting for inefficiencies (it does get quite hot for a 60 watt max charger – much much hotter than my 1010B+ ever gets, period). The shitty monitor power supplies also have thermal issues when charging at full capacity, so I think they’re either overrated or just that horrible. They only let the charger go full rate if there’s a fan pointed at them.

With these thermal issues in mind, I might append or redesign the base to house a small PC case fan. But in the mean time, it works!

It Drives Like A Robot

Jul 21, 2011 in Emergency Quadrotor, Project Build Reports

The result of a day of software head-bashing: getting your alleged air vehicle to behave like an awkward robot on barbiturates.

Only the Z-axis yaw controller is complete at the moment, and it still needs some tuning. The job of this controller is to keep the yaw rate of the vehicle under pilot control – such that it doesn’t spin in place and can track (relatively) straight. It adds an equal constant offset to the tilt angle of all the fans as to induce a spin about the vehicle’s vertical axis. This has a few issues – namely the gyro is a 300 degree per second full scale type, and this vehicle should never, ever be going 300 degrees per second in any direction. Hence, I really get to use only a few least-significant-bits (LSBs) of the analog reading from the sensor, making the control a little granular. I still need to play with filter speeds and gains as a result, but it’s kind of working.

The fans are otherwise controlled open-loop by the aileron and elevator sticks of a standard airplane radio. The Z command is mixed into the directional command. Otherwise, I haven’t coded up the pitch and roll controllers yet – hence my desire to stick to the ground and apply just barely enough throttle for the vehicle to break friction. The vehicle’s controls were therefore a rotation rate on the Rudder stick, and two planar translations using the right stick.

As seen in the video, it’s distinctly right-side heavy, so I’ll shuffle batteries around until it’s mostly balanced without a controller.

Tomorrow comes diddling with the Two Orthogonal Segways part of a quadrotor: Two Orthogonal Segways and a Robot.

A Slightly Less Sculpture-Like Quadrotor

Jul 20, 2011 in Emergency Quadrotor, Project Build Reports

Greetings, Internets. What’s the deal this time, I can’t even finish something before it goes live?! Anyways, to answer pretty much all questions about why the thing may or may not work, here’s a nice little video.

That’s right, it wiggles. Having no left-handed fans (ball is in your court, Hobbyking!), I could either use movable vanes or fixed angularly mounted fans to cancel the resultant torque from everything spinning in one direction. And by Robot Jesus if I’m going to have to mount something cockeyed or make something motorized and adjustable, I’m gonna do both of it at once. Hence, 1 dimensional thrust vectoring. Would that be like, thrust scalaring or something? The controlled wiggling should also let the vehicle translate and rotate without requiring thrust differential – it’s pointing the exhaust opposite the direction it wants to move the most in. This is the riskiest part of the whole project, and I am itching to see if it even makes sense.

As the video shows, the electrical system is now fully wired up and ready. I spent the evening coding up a storm, getting some basic running code completed that lets me test the  servos and determine their correct directions, and also calibrate the Turnigy S100A-HV controllers in software (as opposed to me twiddling a stick).

This is the primary wiring for one side. I ended up ditching the switch-in-the-middle idea after determining that the channels of the HK Quattro battery charger which charged the “high side” battery pack would also be mistakenly supplying power to the controllers. To eliminate this problem, I’d either have to add a second switch (pointless) or isolate all the battery charger channels from each other.

Turning the Quattro from a single 4-channel charger into four isolated one-channel chargers takes a little bit of trace-cutting and the result needs 4 independent isolated power supplies, like laptop or monitor brick adapters. It’s been done before on the Jedboard project, with a different model, but the Quattro isn’t that different. I’ll throw up some details on it later after my aforementioned laptop power bricks arrive.

Once I decided to go with the four channel isolated charger route, I wired up the power normally – the master switch governs the positive battery rail only. There are two switches on my switch panel, and the little one is a “precharge bypass” for the larger. Flipping this switch on before the larger key switch powers on the logic and also connects the controllers to the battery through a 10 ohm power resistor, letting the capacitance fill up slowly (instead of stepping from zero to 40 volts instantly, which would theoretically result in infinity amps). I decided there was enough bus capacitance involved in this whole system to warrant a precharge circuit.

I whipped up a quick charger panel with Deans connectors. The “isolation required” notice is just to make sure I never try shoving all the leads into eachother. There are no cell balance connectors here, though the packs have them; I’m going to balance the cells on a need basis only.

There was really no “signal wiring” to speak of for this build – the signals just plugged into eachother. In the center of the show is a 2.007 Arduino Nano incubator board, which was custom-made, custom-paid, and cuuuuustom-fitted for the 2.007 class.

Each circuit has a 5v BEC module that feeds into the carrier board. This gives me a degree of redundancy in the logic power and also relieves the stress of feeding four (or more?) unhappy servos from one BEC. The BECs are the entry-level Hobbyking HV 3 amp unit.

There’s nothing left but the software. Or is there?