Jack Crossfire's blog View Details
Archive for June, 2007
Posted by Jack Crossfire | Jun 30, 2007 @ 09:29 PM | 3,818 Views
So once again, the portable serial terminal would receive but not transmit. After working the problem for a while, discovered the MAX3389 on it failed.

Without the MAX3389, the only thing not working is I/O. Took several days for The Goog to come up with search results on Palm RS232 hacks and even then, the data was garbage. U don't need a complicated circuit to get RS232. The RX, TX, and GND pins are always on.

Cost of a new MAX3389: probably more than a new PDA. Could bypass the MAX3389 and use logic levels, but this chip provides electrostatic protection to the CPU and we've mixed 5V + 3V signals before. https://www.rcgroups.com/forums/showthread.php?t=682456
Posted by Jack Crossfire | Jun 29, 2007 @ 01:40 PM | 4,045 Views
Some more notes about the donated Palm 4 U:

1) Battery life is currently only 2 hours, equivalent to a high end laptop.

2) Accessing the RS232 signals is not trivial. U need to attach a 1% resistor between 2 pins to switch on the serial mode. Complicating the matter, no-one hacks PDA's anymore so all the Google results on doing this are buried http://www.gpskabel.de/info/cradlemode.htm

3) PTelnet http://netpage.estaminas.com.br/mmand/ptelnet.htm is the program that converts a Palm into a serial terminal.

4) With the Steve Jobless and Java hype, you'd think a Java ground interface for the donated Palm would be a no brainer. It would take a lot more work and lose a lot of functionality to have a Java ground interface for Palm than a C++ ground interface on a laptop.

Because JVM's are still written in C, operating systems are still written in C, and hardware is still designed for C, C functionality is always going to be several years ahead of Java functionality. In exchange for this, you can migrate a Java program more easily to Windows.
Posted by Jack Crossfire | Jun 28, 2007 @ 01:56 PM | 3,893 Views
So with the HP48GII, problem #1 was the undocumented serial flow control. Problem #2 was the fact that its serial terminal kept crashing at random, erasing the serial terminal executable. Options seemed 2 B running out when we received a donated Palm with the potential to act as a serial terminal.

Still a long way 2 go with the Palm, mainly opening it up and breaking out a serial header, installing a terminal program.

Meanwhile, tests continue on inertial navigation. The Kalman was so unstable, it seemed justified to try another non-Kalman campaign.

The IDG300's don't drift in the time span of a single flight, 30 min.
Unfortunately, the integral of their output is the absolute orientation and that drifts like crazy. The Kalman overcomes this by blending the gyro integral with the accelerometer result.

Unfortunately in a coordinated turn, the accelerometers show 0 tilt. At some point in the turn U only have valid gyro data. The exact point at which acceleration is valid can only be determined by experimentation.
Posted by Jack Crossfire | Jun 26, 2007 @ 11:35 PM | 3,925 Views
Finally got around to uploading this one for the youtube fad.

This was our first and last viewing of a live space shuttle launch. It was photographed from Tampa, in the days before we had a tripod. The handheld, Hi-8 footage was stabilized in software and by manually tweeking motion curves. Booster separation is clearly visible.

The video is repeated twice. First is a closeup. Second is the complete 1024x1024 canvas scaled down for Utube to reveal more of the context.

sts-93 from Tampa (3 min 20 sec)

Posted by Jack Crossfire | Jun 26, 2007 @ 01:54 AM | 4,094 Views
Good news: we can send data from Vicacopter to a graphing calculator on the ground, with wireless flow control, CRC checking, and reset detection. Data to the ground moves at 3900bps including error checking. It could move at 7800bps but is underclocked to support the impedance matching circuit on the 2.4Ghz receiver.

Bad news: can't get data out of the calculator. The HP48GII needs some obscure usage of the flow control pins to send data. If it did send data, the bitrate would be 640bps because it uses the 75Mhz transmitter and is piggybacked on the flight control data.

We can invest a lot of money in RS232 debuggers to try to get the
HP48GII to send data, invest a lot of money on a laptop with unlimited battery power, or invest a lot of money on a PDA with RS232, but at this point there's no need for a 2.4Ghz Maxtream. The 2 way wireless protocol works for the most part. All the work to integrate it with the flight controls is done.
Posted by Jack Crossfire | Jun 23, 2007 @ 03:07 AM | 4,119 Views
Just happened to notice the Alameda County Fair had fireworks this year. And here they are.

Fireworks 6/22/07 (8 min 2 sec)

Captured by the Canon TX-1. Although the HD print was awful, the result of downscaling, time average, and sharpening was spectacular. The sound also came out very well. Although the entire show was 14 min, we only uploaded 8 min because of the U tube limit.
Posted by Jack Crossfire | Jun 21, 2007 @ 11:03 PM | 4,106 Views
The answer is yes. U can get 2 way, spread spectrum, 115kbit communication for under $100.


This module goes 1 mile. For under $50, you can get a 300ft version.


Maybe it's in our future, but not until autopilot is proven and we're done buying batteries. One this is certain. We're never going to get a Spektrum DX7.
Posted by Jack Crossfire | Jun 20, 2007 @ 01:04 PM | 4,543 Views
So with Vicacopter, we have a huge amount of software to write for the next test flight. The problem is telemetry. The need for intense PID loop calibration made us move the 2 way communication phase forward. Originally 2 way communication was optional.

The real problem was getting a portable ground interface. Laptop batteries don't last long enough. PDA's are unaffordable. Then, remembered we had a graphic calculator with RS232 support and a terminal emulator. It lasts many hours on batteries. So the ground interface is a text console with all the computation done on the airframe and the calculator as a dumb terminal.

You can buy a wireless modem suitable for Vicacopter for $300, but we need $300 for batteries. Instead, this is a matter of stacking the telemetry packets on the existing carriers and implementing wireless flow control.

With the unreliable wireless communication, we need 4 bit flow control. The data buffer and flow control bits are repeated over and over on each wireless channel. It's super slow but good enough for PID calibration. The problem with this is each packet is going to be repeated twice while it waits for the ACK packet. We're not going to try to optimize it with delays.

Data ready - toggles when we have new data in the outgoing buffer
Data ready ACK - toggles when we have receieved new data in the incoming buffer
Reset - set to 1 when outgoing data ready is reset to 0
Reset ACK - set to 1 when the incoming reset is receieved
Posted by Jack Crossfire | Jun 18, 2007 @ 12:54 PM | 4,310 Views
So finally had enough resolution with The Canon to magnify sections of the image. For Youtube, it allows 3x magnification without losing quality and that's what we did here to enlarge the subjects. Software camera blocking has been supported for years but camcorders couldn't generate good enough pictures for it until now.


...Continue Reading
Posted by Jack Crossfire | Jun 16, 2007 @ 05:57 AM | 4,114 Views
RUSSIAN HEROINE II dance show 1 (2 min 35 sec)

This is the one & only RUSSIAN HEROINE II in a dance show, and the Canon TX1 was in full attendance. The original 1280x720 copy is only on our hard drive of course. The lighting is horrible but the Canon managed to pull something out of the limited photons. Unfortunately She disappeared behind the column for most of it.

RUSSIAN HEROINE II dance show 2 (2 min 53 sec)
...Continue Reading
Posted by Jack Crossfire | Jun 15, 2007 @ 11:31 AM | 4,105 Views
Indeed, Youtube can't show the original quality, but these are some test shots with Canon #2.

Heroine 2200 through Canon TX1 (1 min 29 sec)

So once again it's time to shoot our favorite HD shooting subject, Heroine 2200. The Canon TX1 result seems a bit fuzzier than the Sanyo HD1, but at the same time we didn't use any lighting reinforcement with the Canon and had some lights with the Sanyo. Lighting reinforcement with Heroine 2200 is limited because she uses laser positioning.

Canon TX1 demo (0 min 41 sec)
...Continue Reading
Posted by Jack Crossfire | Jun 14, 2007 @ 08:11 PM | 4,064 Views
That's right, kids. Time 2 buy another camera. The only reason this is here is because of R.H.II's dance shows. Would definitely have waited longer, otherwise. It's definitely not for photographing Idaho.

So $542.51 later, another Canon was sitting in the dumpy apartment. It is the absolute cheapest HD cam in the universe of reasonable quality. It's our first camera with no manual shutter and no manual iris.

It has a wicked automatic lens cap, which works more like a cigar
cutter. It is the only HD cam outputting JPEG video. Good 2 B editing non-temporally compressed video again, but now Heroine is too slow to play over 15fps....Continue Reading
Posted by Jack Crossfire | Jun 11, 2007 @ 03:36 AM | 4,331 Views
So finally had a break with Vicacopter. Gyro elimination is stable enough to fly. It's not like flying in molasses like the PG-03 gives. It's more like flying on a spring. It took really really small adjustments to the PID constants.

P=0.1 I=0.001 D=0.05


PID limits: -0.1 - 0.1
Lowpass filter bandwidth: a=0.08
Gyro sampling rate: 172Hz
PID iteration rate: 25Hz
Gyro scale: 3000

The PID loop really did require tuning. Increase D just 0.05 more and she oscillates. Increase P by 0.05 and she oscillates. Get rid of I and she oscillates. The constants aren't symmetric and it took hours of running in and out of dumpy apartment, flashing firmware to get it this tuned.

The lesson: we have to set the PID constants using the transmitter, from a graphical interface, in the field.

So gyro elimination was originally tackled to fix problems in the Kalman filter and the lack of space in U. Know. Where.. Unfortunately, the Kalman filter ended up too unreliable to trust with manual yaw control so it was moved to raw gyro data.

The indoor test stand moved gyro elimination forward really fast, but took significant trimming to overcome the loss of main blades, and didn't have real vibration effects.

Now the bad news. The IDG300 for yaw is starting to fail. It occasionally fails to initialize and returns constant voltage. Power cycling has fixed the problem so far. We have 1 spare gyro and after that, may end up back with the PG-03 and a breakout...Continue Reading
Posted by Jack Crossfire | Jun 10, 2007 @ 01:52 PM | 3,975 Views
Since this one didn't get any views, here's another embedded copy.

Rocket Tanker (0 min 59 sec)

In other news, the IMU from autopilot.sourceforge.net uses a lowpass filter. The lowpass filter is of the form Y = a * X + (1 - a) * Yprev where a is the fraction of the X sample rate to pass through, from 0 - 1. In our case, the niquist frequency was 15 and the X sample rate was 172, so a was 0.08.

Unfortunately, this filter didn't seem to do anything. Moreover, the test stand performance from 6/8 was gone.
Posted by Jack Crossfire | Jun 08, 2007 @ 02:58 PM | 3,950 Views
So decided to go back to gyro elimination without Kalman filtering. Just averaged raw gyro data and fed it to a simple PID loop with P=0.1, I=0.1, D=0.1. On the test stand, it ran exactly like a rate gyro. No oscillation, searching, wobbling, crash, and very stable.

Then with the blades reattached, the oscillation returned. So why does she oscillate with blades attached and work perfectly without blades? It's pointing to aliasing of the fuselage vibration by downsampling of the gyro input.

The fuselage vibration is downsampled when the gyros sense it and again when the software averages. Both times, oscillations above the nyquist limit end up mirrored at a lower frequency in the output.

So we have to eliminate frequencies above the nyquist limit before averaging the gyro data and make 2 assumptions: Assume the gyros eliminate aliasing in their sensing. Assume all sampling before the lowpass filter is way above the fastest oscillation.

So the IDG300 has a cutoff filter at 140Hz and the ARM reads the IDG300's at 172Hz, so we shouldn't have any aliasing on the gyro side. Then the ARM averages to 30hz. Any oscillation between 15Hz and 140Hz gets downshifted.

A lowpass filter is a scary thing. Where should it cut off? Keep plugging in values until graphs of the averaged result stop showing aliasing? It's been 7 years since our last FIR filter implementation. How did we do it?
Posted by Jack Crossfire | Jun 06, 2007 @ 01:59 AM | 3,776 Views
So we're back in the saddle writing IP over satellite software. It's not the multi faceted operation that Vicacopter is. It's a large team with many specialists. There's no hardware or satellite in the development process. It's all simulated. Interestingly, they never saw our telemetry work with Vicacopter. Space is just becoming important to everything.

With the new blades, managed 1 test flight between commutes. What looked good on the test stand was really awful in reality. Gimbal lock is an insurmountable problem when using gyro elimination with the magnetometer.

If you avoid gimbal lock, gyro elimination is wobbly but pretty good.

The deal breaker was the Kalman filter exploding 3 times. She suddenly entered flat spins when this happened. Also found out the hard way that GPS must be enabled for altitude autopilot, but with GPS enabled the Kalman filter with the predictive constants is now unusable.

There is a plan to have 2 Kalman filters going. In this plan, she uses a non-GPS filter for yaw, pitch, roll and a GPS filter for altitude, x, y. It looks like the PG-03 may be around forever, just in case the Kalman explodes.
Posted by Jack Crossfire | Jun 05, 2007 @ 02:23 AM | 3,863 Views
The idea with this was to eliminate the need for rubbing by shaking the lens case for 12 hours every day. This wasn't possible with motors because any consumer motor would quickly burn out. Direct drive magnets banging on it were extremely noisy. Only a floating magnet could do the job.

After using noisy impacting magnets for 2 years, the need to continue this project resurfaced with R.H.II sleeping over.

The original idea was to levitate the contact lens case 1" below the magnet and shake it up and down over a 1" distance. Found the magnet required to do that would have to be enourmous.

1 year later, broke down and made a suspended version. Here is the latest prototype. Only weeks of continuous use will show if it's powerful enough. Then we can build a pretty version. Insufficient agitation makes the lenses uncomfortable over time.

Now a movie of the latest agitator prototype.

Contact lens agitator (0 min 20 sec)

Posted by Jack Crossfire | Jun 03, 2007 @ 05:45 PM | 3,849 Views
So discovered a pqr term in the Kalman filter and it was commented "body rates". PQR contained a very accurate yaw rate and that was the special sauce for tight heading hold.

It took significant trimming to overcome the lack of main blades, but on the test stand she was pretty solid. The PG-03 is most likely ready for retirement.

The margins seem a bit low and she seems a bit unstable. Need test flights. Also got a nifty shot of the tail servo working away at heading hold. It definitely takes a lot of work to hold heading.

4 U homegamers, the PID constants were:

Yaw error -> target raw rate
P=1.0 I=0.0 D=0.0 OutMin=-20deg OutMax=20deg

Yaw rate error -> tail offset
P=0.1 I=0.1 D=0.0 OutMin=-0.1 OutMax=0.1

Gyro normalization value=1500

The Kalman filter still provides lead compensation by overshooting.

More synthetic heading hold 4 U (1 min 56 sec)

Posted by Jack Crossfire | Jun 03, 2007 @ 01:30 PM | 3,667 Views
Had the first successful heading hold using software. With a week to go on new blades, Vicacopter was hung from a test stand for further testing. She could remain connected to the computer through the entire tests, much faster than disconnecting and running outside every time. There was also less danger of getting damaged in a crash.

Unfortunately we didn't have torque from the main rotor so she had very little clockwise thrust.

The trick was making the Kalman filter overshoot as much as possible, enabling proportion + integration feedback, and drastically clamping the output. With this scenario, the more error she has, the faster the yaw rate. If she was 180' off, she would probably lose control. Really want a constant yaw rate, but the yaw rate data is just too inaccurate.

Yaw is really loose but stable. It should be as tight as a $100 CSM.

Yaw Test (1 min 25 sec)

Posted by Jack Crossfire | Jun 02, 2007 @ 08:38 PM | 3,675 Views
yahoo wrote:
> IBM lays off 1,500, mostly in services

yahoo wrote:
> Dell to Cut 8,000 As 1Q Earnings Dip

pcworld.com wrote:
> Motorola Lays Off 4,000 in Search for Missing Profit

iht.com wrote:
> Discovery Communications Inc. said Thursday it will close its remaining
> retail stores this year and cut 1,000 jobs

Let the layoffs resume. It feels like only 6 years ago when we had mass layoffs and now they're starting again. Sad that the Discovery store closed. Wrong country, wrong business.

Managed to rebuild the dike with R.H.II. Who knows how long She'll last. Need to enjoy every minute....Continue Reading