HobbyKing.com New Products Flash Sale
Jack Crossfire's blog
Posted by Jack Crossfire | Aug 14, 2008 @ 01:13 AM | 3,320 Views
Reviewing the prices & terms of the online PCB fabricators pushed us pretty hard towards another proto board again. The proto board is $15 & can be built in a few days of hell. The PCB fabricators go from 3 weeks of waiting to $200, with tons of pain in between. U have to reinstall Windows to use expresspcb.com.

The proto board could be just as reliable as a PCB. The PCB would just be holes & traces for the same components we used before. The PCB would be lighter but require more structures to mount the breakout boards.

A PCB could need at least 2 revisions before it flew, so double the quote & turnaround time. The expensive ones would pay for a 900Mhz radio set.

900Mhz radio would be redundant to the 2.4Ghz radio when video downlink wasn't being used. That's a PCB revision already. Alternatively, there's programming some kind of auto landing. Unlike the pros, we don't have miles of flat terrain.
Posted by Jack Crossfire | Aug 13, 2008 @ 04:23 AM | 3,157 Views
The extra range required to take advantage of non linear CCPM put the servos in a lot of stalled positions. It also pulled the washout base off the rods in the machine vision captures. Tried another round of manual CCPM.

Manual CCPM is flyable for a human. The human gets used to the collective crosstalk & nonlinearity. It's pretty bad for an autopilot. The autopilot using PID feedback can't handle the crosstalk & phase error. Maybe implementing proper phase would fix the cyclic.

Got through a number of tests before the next global killer. Adding noise to the PWM did not make cyclic more stable. The most stable results had no curve. The best explanation is the polled PWM changed duty cycles when the lines were high. The interrupt PWM updates once, as soon as the last line lowers, adding up to 40ms of delay.

Got all the way back to autonomous hover with the interrupt PWM & manual CCPM. She overcame the crosstalk & got it stabilized.

Well, the radio is still a problem. The syslog indeed captured a radio failure and a flight recording was captured with radio packets dropping out. Maybe it's time for auto landing if radio failure.

The crash during high altitude auto hover was a global killer. Nothing survived, not even bacteria. Probably time for a PCB....Continue Reading
Posted by Jack Crossfire | Aug 12, 2008 @ 01:23 AM | 3,265 Views
The answer is yes. The Goog actually has a rudimentary kind of content search in GooTube. It isn't for helping you find videos. It's for enforcing copyrights. What did you think it was for?

Things they're probably searching for:

similar frequency patterns in the audio
fixed broadcaster logo
similar looking frames of video scaled to common sizes

They're not matching arbitrarily scaled video. Primative as it is, it's quite a leap from traditional Web 2.0 technology which is just 80's text searches with 30 gigabytes of sliding popup windows.

The Goog one needed copy protection protection.

the "UAV" heartbreak (1 min 19 sec)


The Vimeo one worked straight.

...Continue Reading
Posted by Jack Crossfire | Aug 11, 2008 @ 01:55 AM | 3,137 Views
Only watched the opening ceremony. Behind all the noise about communism being great, the state guaranteeing everyone's future, the individual being worthless, how many LED's child laborers can solder, U realized if U gave any of those smiling performers a 1 way ticket out of China, they'd be out of there in 17 seconds.

Some of the visuals were faked, but most of them were probably real. If U focused on just the visuals, U realized how fast & far technology is moving & how it's heading in a common direction. Eventually there's going to be no correlation between form & function, placement & position of anything. Anything can be a display, a phone, or a building right now, but in the future anything can be anything.

Your government recently mandated Calif* houses to be worth $1 million. What is your government to do in a future where anything can be a house and a house can be anywhere? Workers will rent cardboard boxes for $100,000 a month but never know it. They'll plug into robots thousands of miles away which live in mansions & totally replace their sensory input with the robot's.

It's a tough future for a living thing to follow. We humans count on physical objects having definite functions & physical places having definite locations.

What to do when anything can do anything & anywhere can be anywhere? How do you retain any kind of achievement?

Speaking of technology, finally updated heroinewarrior.com with all our stuff linked from the mane page, a new version of Cinelerra which can do all the motion stabilization you've been seeing on the Jack Crossfire show.
Posted by Jack Crossfire | Aug 09, 2008 @ 04:34 AM | 3,837 Views
Found the gyro bandwidth was doubled during the PWM rewrite, so set it back to its original value & got back to very similar gains as before the rewrite.

ANALOG_LOWPASS 1

Got all the way to the following gain:

CYCLIC_DAMPING 28

With this, if U push the stick over & snap it back she enters roll oscillation but recovers.

CYCLIC_DAMPING 32

is actually stable if she's not pushed. Snapping the stick over causes growing roll oscillation. So still evidence of noise adding slight stability.

Next, began adding nonlinearity to the feedback.

CYCLIC_DAMPING 24
CYCLIC_CURVE 128

Seemed to react the same. Unfortunately this was all we got before the aft cyclic servo failed again & she flung 30 ft across the ground. It may either be metal gears wearing out or gimbal lock with our crazy pushrod geometry. No-one is anxious to have a 3rd loss of control to find out.

Yaw damping seemed to oscillate the same whether 16 or 8. Need to try reducing yaw bandwidth.
Posted by Jack Crossfire | Aug 08, 2008 @ 01:20 PM | 2,619 Views
So NASA originally proposed a small solid booster + a large upper stage. Upper managers got hired & said they knew better so they moved to a large solid booster & small upper stage.

5 years later, they've declared the new design unworkable. Leadership triumphs again.

It's how all businesses work. Workers have ideas, the project grows, leaders get brought in who know better & redesign, the redesign blows up.

So with the broken battery cover & battery wear, the A560 is down to 12 minutes of video per battery charge. It's worse than the DV camera when we decided the DV camera was useless.

Got 2 rate damping tests in between commutes & breakage. We can forget about linear damping over 16. The next commute is log damping. Another commute is fake noise.
Posted by Jack Crossfire | Aug 07, 2008 @ 08:06 PM | 2,555 Views
So after burning up a week getting the machine vision swashplate training to work, you're probably wondering exactly how nonlinear the swashplate actually is. In the normal range, it doesn't appear very nonlinear & all this neural swashplate control looks like a waste of time.

The story may change if the servos go beyond their normal range. That's another week of machine vision tests. The uncharted territory is running servos & head speeds in ranges they couldn't achieve using classical controls, including adding noise to the controls.

Got all 3 servo angles in this movie. Kind of nihilistic watching all those piece of metal undulating like a biological creature.

swashplate swashing (0 min 49 sec)

Posted by Jack Crossfire | Aug 05, 2008 @ 07:22 PM | 2,525 Views
Notice on the machine vision, the blade never reached negative pitch, so the neural network didn't have negative pitch data to learn from. It still managed to extrapolate rough negative pitch on its own, but this operation still requires adjusting servo horns.
Posted by Jack Crossfire | Aug 04, 2008 @ 03:37 AM | 2,510 Views
Tethering the transmitter to the laptop for a downlink is a bad idea. U need roaming just in case she flies away. The laptop needs its own wireless connection to the transmitter & the transmitter needs to broadcast to the 2. Fortunately, this means the ground XBee can run at the full 115200 baud of hardware UART instead of software UART like right now. The laptop needs only an XBee to USB adaptor which any sane person builds out of a USB -> RS232 dongle.

So with the ground station XBee, that brings us to 2 XBee's on the wishlist. The ground station is still useless because you're still focusing on the aircraft.

Next, observed hot running temperatures for the cyclic servos in testing & it may have burned up the last ones. The canopy needs to go, but maybe not the flags.

Swashplate training required major changes to compensate for the software rate damping configuration, auto restart feature, & someone's idea to stretch out the video. Probably 1 week away from a fully tuned swashplate. The current linkages + a linear CCP mixer would be a rough ride.

http://www.youtube.com/watch?v=yjM_3p-WOa0
Posted by Jack Crossfire | Aug 02, 2008 @ 04:40 AM | 2,576 Views
3 hours of surgery to solder, install, & align the new cyclic servos. Almost ready to buy proper extension cords instead of soldering them. 3 hours of neural network calibration next.

For a good time, watch some Computer Chronicles episodes from the late 80's. Note all the $400 stuff which is now free. If only housing was like that. There was a big leap between 1987 - 1989. That seems to be the transition to standardised GUI's.

Your reaction is U really suck & it's time for a career change. Your modern PC software doesn't do much more than software of 1989. Besides the amount & complexity of the data, not sure the number of things even the greatest modern web application can do with a given piece of data is much greater than PC programs were doing in 1989.

Where we smoke the 80's is in embedded systems....Continue Reading
Posted by Jack Crossfire | Jul 29, 2008 @ 02:00 AM | 3,479 Views
Good news: VicaCopter did not crash because of software flybar. She was very hard to fly, but the crash was caused by another servo burnout. The servo under the port flag, 2 B exact. Jack Crossfire noted it felt like a servo went dead before the crash. A miracle he could auto it in with only broken skids & keep those precious flags untouched. 35 hours to burn out. Not bad.

Throttle of 0.6 is required to begin to get any autorotation with the payload.

Upgraded the PIC to take some configuration from the ARM. It doesn't enable the servos until configuration is loaded. Also, there's enough room in the protocol to send 4kbytes of configuration to the PIC.

The next great programming language is one that reduces from a reasonably sized standard all the way down directly to microcode without an interpreter. Java standards are bit too bloated. C++ could have a lot of Java features without sacrificing performance. There must be something somewhere between Java & C++ which is optimized for speed.
Posted by Jack Crossfire | Jul 28, 2008 @ 04:07 AM | 3,230 Views
So after 4 days, got the PWM moved over to interrupts & it worked as designed. Jitter from the software is gone. Everything is running faster, from radio to IMU. Radio is going about as fast as possible, 5500 bits/sec because of the packet flushing delays. 2 way communication may be practical again.

Interrupt driven PWM on a PIC is a waste of time & really hard, 2 B sure. It's the largest routine of them all.

Note, U need to create an interrupt table from the servo PWM & read off the table in the interrupt handler. There's not enough time to recalculate each delay from scratch.

Be sure to use RETFIE FAST when returning from interrupts, otherwise you'll get stable results on the bench but crash in flight. Also, a permanent lockout occurs if the PWM goes out of range, so U need to clamp that.

Found a bug in log cyclic damping but it still was too unstable.

Min throttle had to be stepped higher yet again. The jitter must have been pushing it into the minimum range. Chinese ESC's keep going if PWM is below minimum or signal is lost, making for exciting tests.

Running throttle at 0.6 is sucking huge amounts of flight time. It's at least 2 minutes lower than it was at 0.55.

Now the bad news. Flybarless doesn't work anymore & the tail is wagging again. With the best gain & bandwidth she's real loose. Any wind or descent with power & she's out of control, killing engine, autorotating & crashing with pride. Jitter actually dampened the angular rates.

Now some options:

Put the flybar on.

Add noise to the interrupt PWM generator.

Revert to polling PWM like nothing ever happened & lose radio speed.

As sweet as Henrik Copter is, he still uses a flybar.

Have some extreme motion tracking from a past flight.

moff closeup (0 min 31 sec)

Posted by Jack Crossfire | Jul 24, 2008 @ 03:15 AM | 3,314 Views
Just when U thought the PIC couldn't get any faster, did another round of optimization, got rid of a lot of pointers in the A/D & branches in the rate damping & it's screaming. 24 bit variables are the key.

PICs & Atmels R probably very close in performance. Why would either let themself fall behind if it's just a matter of increasing the clockspeed?

There's a guy selling PICs that generate 24 PWM signals. Wondered how on Earth he did that since our 5 software polled PWMs jitter like crazy & we really need to get on top of the yaw jitter. There aren't 24 timer comparers or hardware PWM generators.

The answer is he probably uses 1 interrupt & 1 timer. He's got a 24 bit mask of pins to lower in the next interrupt & ANDs it with the latches on the next interrupt. Then he calculates when the next pin is going to lower & sets up the next interrupt time.

But multiple pins can come up during the delay between trapping an interrupt & scheduling the next one. Those pins would be missed. Well if this is a realtime fixed clockcyle routine, he can just predict the pins which would come up in the time span of the interrupt handler & mask those too.

But how does he change a PWM duty cycle? If those are updated at 25Hz & interrupts are disabled for every update, there's going to be jitter. He probably double buffers the duty cycle variables. Double buffering doesn't require precise timing, so a polling loop in the same thread as the duty cycle updater waits for all the pins to turn off & swaps the variables then.

Brilliant! Why didn't we think of that?
Posted by Jack Crossfire | Jul 23, 2008 @ 03:02 AM | 3,355 Views
For the 3rd time in 5 months, got a puffer. It was a mild puff on an $85 4.1Ah. VicaCopter is officially more expensive than a full size R-22. After it cooled down, the puff went away.

China is increasing the trash load to compensate for dollar inflation, probably marking 1C batteries as 20C. The best solution is to use smaller batteries in parallel & throw them away as they self destruct. Mercifully, xcitebattery is now completely out of stock.

Unfortunately there was no wind in the wind tunnel, but we did get the stiffest heading holds so far. Software triumphs over physics. Besides heading improvement the camera power seems to miscalibrate the gyros & we get serious position oscillations until they correct in flight. The heading routine doesn't recalibrate in flight, unfortunately.

Calif* is back to an offshore flow, & that means more smoke.

fire (0 min 46 sec)


VicaCopter was on the scene of the smoke, complete with the latest yaw damping. Today we have timelapse from the onboard camera, ground footage showing the yaw movements, & a dead battery.

...Continue Reading
Posted by Jack Crossfire | Jul 22, 2008 @ 05:27 AM | 3,196 Views
The wind tunnel started working again. Did 3 wind tunnel tests with 2 different throttle settings. Well, now is a good time to think about a dedicated heading hold gyro. The assembly language hacking definitely made her more stable, but it isn't keeping up with the wind. She did manage some impressive holds pointing directly downwind.

May also be near the limit of a 0.2s/60deg servo. Can't get anything faster & equally as reliable as the Futaba S3102.

Beginning to forget about low head speed in high wind. Looks like one of those things Boeing can't do either but won't talk about. A head speed that adapted to payload & wind speed would be nice.
Posted by Jack Crossfire | Jul 21, 2008 @ 12:12 AM | 3,373 Views
Looks like a USB to parallel converter won't work. There is no direct access to the pins anymore. Most people have already switched to buying USB programmers and forgetting about logic levels from laptops. The alternative is making an RS232 PIC programmer & buying yet another RS232 dongle. That would certainly run faster than any parallel programmer.

Finally, there's writing a very complicated protocol to configure the PIC online instead of during programming, but U can't reprogram the PIC like that.

Because of the way I/O is a moving platform, probably going to end up with a USB to GPIO converter. The way people do it is by first converting USB to RS232 and then driving a microcontroller by RS232. Buffer up a bunch of GPIO state changes, record certain lines while playing back the others.


The assembly language integral managed to work without crashing. We're getting good at bench testing. J-B Weld seems to be holding better than cyanoacrylate.

While making the heading a lot stiffer in manual control, did not have enough wind to flog it. Tail wag was still significant.
Posted by Jack Crossfire | Jul 20, 2008 @ 05:02 AM | 4,020 Views
So there's no USB -> parallel adaptor in Calif*. U need to order it & wait a week. The most likely outcome is reappearance of Amazon 2005 running on lead acid for yaw rate hacking.

Next, cyanoacrylate on the landing gear didn't work. 1 mildly hard landing & it was over. Now we're up to J-B Weld with a 1 day cure time. It's not supposed to work on plastic, but nothing else does either.

No-one ever figured out which adhesive works best on plastic. Definitely a TODO item for the human population, next to learning how to scale D-1 to Goo Tube.

Fortunately, got FLV & WMV working in Cinelerra. Now we can watch our Goo Tube downloads in glorious 48khz 64 bit double precision oversampled compressed limited synthetic hi-fi.
Posted by Jack Crossfire | Jul 19, 2008 @ 12:44 AM | 4,687 Views
Our final Moffett mission had maximum focus of the Moff behind VicaCopter. This focus meant 1600 ISO, but U can barely see the difference on internet resolution. Decided there was no way the A560 would come anywhere close to what the 5D is seeing on the ground, so no more aerial attempts on the Moff.

Definitely appears the inertial navigation is too slow to overcome the wind on the tail. It's fast enough for the cyclic, but the tail is too unstable even for Gumstix. The tail has enough power. To conserve clockcycles, need to try just a small integral feedback on the PIC.

Had a broken LED & landing gear following a hard landing. 1 hour without breakage, not bad.