Jack Crossfire's blog View Details
Archive for March, 2007
Posted by Jack Crossfire | Mar 31, 2007 @ 01:04 AM | 6,344 Views
As the Rachmaninoff blared, Coptershyna did not record any flight data. Also, the PIC lost its bootloader firmware twice now. Only static discharge remains an option.

Turns out Coptershyna was writing flight recordings to / instead of /root. Time to fly the Russian beast.

For synthetic tail gyro flight #1 we had exponentially increasing yaw oscillation. Need some kind of damping for the tail gyro, a dreaded PID loop. Russian Heroine II would know what to do.

Gaining confidence in the throttle algorithm, picking her up by the rotor, fully armed. Don't try this at home.
Posted by Jack Crossfire | Mar 30, 2007 @ 02:15 AM | 6,860 Views
The biggest problem affecting Coptershyna is the inability to stick things to balsa. We have really flimsy tape bonds between sensors and PC board, GPS and electronics table. Can't use aluminum because it's expensive and heavy. Carbon fiber is even more expensive.

The last component, the GWS gyro, requires attachment to balsa. Routing long wires from its station on the fuselage to the computer would be heavy. Drilling more holes on the electronics table would weaken it. Most likely going to need a rate gyro implementation on the Gumstix, a very risky path.

Really wanted no modulation of the flight controls unless the autopilot was enabled, but a synthetic rate gyro is required to fly it manually.

So if we record flight data on the flash in flight, it's likely to occasionally freeze up the kernel on a write, a lethal condition. Minidisc isn't fast enough to record it over wireless. All roads lead to recording to RAM and flushing RAM buffers after transmitter shutoff. Unfortunately it means only 1 recording per flight.

After a major firmware update, when the rotor is locked & loaded, and you plug in the main ESC power for the first time, your future on this planet, every experience you ever had, every limb you ever had, is in Coptershyna's hands.

No problem with the throttle this time, fortunately.

Quite a relief, after weeks of that malfunctioning GWS, to have Coptershyna back in charge of the RF, but the GWS is still malfunctioning, causing...Continue Reading
Posted by Jack Crossfire | Mar 29, 2007 @ 01:23 AM | 6,544 Views
When we confronted Russian Heroine II cold, the idea was to get some piece of information that would allow us to fall out of love. It took 2 difficult missions, but finally got the killer piece of information.

R.H.II has a razor sharp awareness of our economy and our hyperinflation problem. She realizes that in order to survive, every second of every day needs to be spent making as much money as humanly possible.

She #1 threw out the hard economics to shut down any chance of emotional support and #2 really was capitalist to the core. That email was 9/11, 9/12, 9/13, and 9/14, simultaneously. Going to be rebuilding ground zero for a long time after that one. At least the Americans came out
and said "I don't give emotional support." This was rediculous.

Also discovered she hated copters. Wouldn't fly a copter if the future of the human race depended on it, so our mission to make a heroine pilot was over. Really wanted emotional support from R.H. II.

The Russian music diet of the last 3 weeks quietly changed back to American music. Amongst our own kind again, you might say.

Now the order of the day is mounting sensors on Coptershyna, a difficult proposition. The current GPS position is a real electrical tape hack.
Posted by Jack Crossfire | Mar 28, 2007 @ 05:25 PM | 6,537 Views
Starting 2 realize a funny thing. Your government goes into war after war but instead of just losing, is completely unwilling to win. It's about sustaining the military industrial complex. If wars ever ended in quick decisive victories, it would be an unsustainable complex, so they invest miniscule amounts of energy, just enough to keep the players fed without actually hitting the ball.

As long as there are no technological improvements and the war is never won, they can keep the money flowing indefinitely. Your government's position on war is the same as every other union story. Use inferior technology and maintain a competitive disadvantage so the legions of unskilled workers in camp Haliburton can stay employed.

We'll probably never work in the military industrial complex. The growth in military technology that it takes to win is only happening in Iran & China. If you sell UAVs, you have exactly 2 customers: Bin
Laden & Mahmoud Ahmadinejad.

Suppose Al Queda and the House of Representatives have a point in that their government shouldn't fight wars if it's completely uninterested in winning.
Posted by Jack Crossfire | Mar 26, 2007 @ 10:55 PM | 9,891 Views
So in our AHRS simulator, with full sensor data, the Kalman filter was much more stable than it was with just gyros. The results were unexpected. Instead of optimum damping constants, it uses the heading noise factor and ignores the other constants.

Maybe an actual flight will excercise the gyro bias & pitch/roll noise.

We have graphs of the quaternion output of the Kalman filter using different heading noise and a graph using the Hudson/Kahn factors. The data was of the sensors sitting on the floor in the dumpy apartment.
Posted by Jack Crossfire | Mar 25, 2007 @ 08:39 PM | 7,084 Views
So the magnetometers, gyros, and GPS are all finally sending data to the Gumstix. The LIS3LV02DQ was a real winner.

I2C for the LIS3LV02DQ was a fiasco. It constantly locked up. With no reset mechanism and no way to underclock it, it was just too
unreliable. I2C is good for consumer electronics, but for aerospace, this Dutch disaster is going in the closet.

Using SPI required running it at 5V because the PIC only runs at 5V and buffering would be heavy. So far the LIS3LV02DQ has been running many hours on 5V without problems. It couldn't do 16 bit reads at all. It has significant Y offset in both 3V and 5V and can't run in 2g mode without reconfiguration, but 2g is unlikely to be enough range on a copter.

GPS consumes a sick amount of power and is heavy. Though older than the inertial sensors, we consider GPS the most advanced because it uses spaceships. It's our first direct interaction with a satellite.

TX and RX were reversed on the Gumstix BT-1 serial port. GPS generates 1 reading every second. For relative positioning, GPS is 200ft off when using 3-5 satellites. Altitude is 50m off. Can't measure absolute positioning because google satellite may be off.

SPI implementation for the Micromag3 was surprisingly easy and the Micromag3 is working despite running on 5V and being bent.

Yaw gyro continues to fail high occasionally. May just swap it with the one spare.

Had 1 erased firmware on the PIC. Took it out of the socket for a while and...Continue Reading
Posted by Jack Crossfire | Mar 24, 2007 @ 12:28 AM | 6,788 Views
Finally had enough emotional reserve to make another night timelapse movie. Still only getting 17 minutes of flying. R.H.II was not normal. Knew that early on.

Night Flight (0 min 13 sec)

Posted by Jack Crossfire | Mar 13, 2007 @ 09:30 PM | 6,815 Views
Remember the Airtronics? By any chance? Though probably not in the FCC's approved list, the Airtronics could indeed make a very good remote camera shutter.

Break out the transmitter module again. Attach the transmitter and receiever to another pair of PICs. Only power the transmitter when commands are being sent, to avoid hogging the 72Mhz channel. Send only one command: shutter open, a 32 bit code, impossible to confuse with noise.

For bulb mode, repeat the command as long as the shutter should remain open. The FCC prohibits use of 72Mhz for anything besides controlling aircraft. Maybe if the transmitter was on only during command transmission and when the FCC wasn't looking.

The advantage to a wireless camera shutter is self portraits. So far they've been done with continuous exposures, but they never shoot at exactly the right moment. You can't use infrared because our camera mounts (trapezoid) use infrared for speed control.
Posted by Jack Crossfire | Mar 10, 2007 @ 06:13 AM | 7,163 Views
So normally by the time you reach dumpy apartment you have 2 hours to do any flight operations before getting back in the car and heading back to Silicon Valley. This time it's more like 1 hour. Most of us were born
during daylight savings time, but we still fall behind schedule when it happens.

Looks like today's electronics mount is busted. Yaw oscillation is caused by objects extending too far beyond the sides of the copter. There is no way to overcome the top heaviness of this mount without having a objects extending well sideways....Continue Reading
Posted by Jack Crossfire | Mar 09, 2007 @ 03:11 PM | 8,482 Views
So with no magnetometer, decided to retry the halogen range test....with a copter. Got a dismal 200ft before the halogen winked out from loss of signal. That sux.

Some error correcting codes are necessary for any kind of normal flying, but while reading LDPC explanations, it appeared LDPC only works if the phase of the bits is known. Our problem is more phase shift errors than substitution errors because the phase modulation encodes 1's faster than 0's.

So with the range test misery completed, it was time to demonstrate the most powerful application of copters: very expensive flare guns. 2 novel things happened with the halogen. It took a real long time to light up the first time and it really sucked power from the motor.

The halogen consumes 2A, you see. With only a 4Ah battery, that greatly impacts flight time and engine thrust. Also the ESC freaked out when it was on the ground and the halogen first came on. Seemed to go into low voltage failure mode. Subsequent lightings in a hover were quick, with no ESC freakout. Really need to light it on the ground.

The halogen was rated for 6V but we only have 5 on the copter, so naturally it wasn't its best Steven Spielberger brightness.

Had 2 electronics anomolies. First the PIC programmer lost an op-amp. Suspect the programming cable was briefly plugged in wrong.

Secondly, the copter firmware failed to boot once in the field. It had 2 B power cycled to boot.

Just 4 U homegamers, we have a...Continue Reading
Posted by Jack Crossfire | Mar 08, 2007 @ 11:42 PM | 6,533 Views
So finally got a blinker, the smallest, cheapest, and hardest to find battery balancer in the world. It supports 6 cells, for U Trex 600 fans. Now for the first time, your closest look at The Blinker.

The Blinker is just a PIC which takes analog readings of the cell voltages every 2 seconds. It shorts all the cells except the one with the lowest voltage until they're all equal or within a certain range. Any cells over 4.2V are discharged regardless of the other cell states.

The maximum current during the shorting is 150mA, so you can't charge the batteries too fast and expect them to stay balanced. The more
unbalanced they are, the closer to 150mA of charge current you have to provide. Still need a "don't do anything STUPID" battery protoboard for measuring unbalance after flight.

The Blinker gets the job done; unfortunately, the blinker has 2 limitations. If 2 cells are 3.7V and 1
cell is 3.5V, it discharges the 3.7V cells to bring them to 3.5V, a lethal condition. After charging, if 1 cell self discharges faster than the other 2, it discharges the other 2 to match the faster discharging rate.

The solution is to only use the blinker during charging, don't leave it on for long periods after charging, and top off the blinker before

The perfect battery balancer would charge each cell on a different circuit, not possible without adding enourmous weight for connectors.

In other news, the next test flight was supposed to be a tail lock using gyros. WRRRRROOOOOONGO! Reviewing the source code, discovered it takes a full 3 axis magnetometer to do the next flight. Heading lock was never possible using inertial navigation alone. No-one has dissected one, but suspect all heading lock gyros use magnetometers of some kind.

Another $160 gone. Total spent so far: $320 At least it isn't Euros.
Posted by Jack Crossfire | Mar 06, 2007 @ 11:43 PM | 6,842 Views
So let's get to the point. After 2 weeks of development, 50,000 dead marines in Iraq, and 1 broken fingernail, finally flew with all the controls passing through digital modulated radio and custom firmware. The digital modulation flight was the most dangerous, difficult, time
consuming flight test in U.Know.Where. since 1940. Merely thinking of what the motor would do on that first test made you want to extricate
yourself from Earth.

So we tested and tested as much as possible with bare servos, without powering the motor, without the rotor, and finally with the rotor. It
was so heavily tested, the first flight was as smooth as can be for a copter with a 12oz payload.

Other than the weight issue, flying took some getting used to. The heavy payload, inability to see the LED's with the payload attached, and
clunkiness of the digital modulation firmware made the first flight percarious indeed, but as long as you kept the speed down, all the usual
maneuvers were eventually accessible. Still didn't dare fly over 30 ft away.

Miraculously, the firmware didn't crash at any time during the test flight.

Yes the custom firmware control is very clunkly. There are longer delays in propogation from stick to servo. The stick sampling rate is definitely slower even though the radio bandwidth is 40-50 commands/sec. The servo precision is probably identical to stock firmware but it's hard to tell because of the sampling rate. By the end
of the flight, it was flying...Continue Reading
Posted by Jack Crossfire | Mar 04, 2007 @ 11:50 PM | 6,243 Views
So the Hitec/GWS system allows a much smaller gap size than the Airtronics. The bandwidth is now limited by the processing speed of the
PIC. The PIC can't measure time differences under 51microseconds. After reducing the gap size and optimizing the packet format to use more 1's, the bitrate was a nihilistic 4000 bits/sec.

The way the 72Mhz system tokenizes data, if all the data is 0's, the bitrate is 3200 bits/sec. If it's all 1's, the bitrate is 8500 bits/sec. About 4200 bits/sec are being transmitted and about 4000 bits/sec are getting through. Not bad for custom modulation.

Incidentally, if the transmitter is off, the error checking algorithm accurately rejects 100% of the packets. You're better off starting the copter with the transmitter off.

With 10 bit accurate, proportional stick positions now being read, we encountered serious interference. Depending on where you touch the
transmitter, the stick readings change because they're being offset by electromagnetic emissions.

The only solution is to eliminate all wires perpendicular and next to the antenna, but that leaves only the bottom of the transmitter for
Posted by Jack Crossfire | Mar 04, 2007 @ 02:22 AM | 6,102 Views
Decided to fully bypass the Hitec/GWS equipment to support autopilot commands and flight controls. A number of reasons conspired in its favor.

PWM reverse engineering wasn't debugged yet, would take a lot of clockcycles, and probably wouldn't be very accurate.

The single GWS receiver would be much lighter and simpler to interface than dual receivers.

The wiring to get PWM data from the GWS was horrifically complex.

Custom modulation might get better results from the GWS.

Mounting electronics is much easier when you have only 1 transmitter.

Now the bad news:

Unless you have a heroine to lift tons of batteries, you need to power the transmitter breakout board using the transmitter battery, but you can't program the breakout board when the transmitter is on. Too much interference.

Certain items like the autopilot enable switch need shielding from the transmitter.

You need a way to switch between the Hi-tec's modulation and the custom modulation....Continue Reading
Posted by Jack Crossfire | Mar 03, 2007 @ 07:28 AM | 6,020 Views
It took a really really really long time to get telemetry from the ground board to the copter board. The mane problem was a change in plan. Decided to maximize the data rate in the hope of some day sending all the flight controls through the autopilot board, using custom modulation.

So the Airtronics woke up on 3/1/07 emitting a completely different modulation than it did on 2/27/07. Instead of closely spaced pulses for high voltage, it emitted a single pulse at the beginning of every high voltage and no more until the next low voltage.

The behavior of 2/26/07 returned after momentarily changing to the behavior on 2/27/07. The only explanation is either the connection on 2/27/07 was somehow defective or there was interference.

If the pulses are too close together, no pulses are emitted at all.

The duration of a single pulse depends on the duration of the neighboring pulses.

The gap between rising edges of pulses is reproduced perfectly at the receiver.

So the gaps between rising edges would be used to transfer information. To defeat the minimum gap requirement, the gaps would have 16 possible lengths corresponding to 4 bits. Tokenized data U might say.

Broadcasting tokenized data across the dumpy apartment, the Airtronics beamed a nihilistic 3000 bits/sec over its 20khz band including CRC & start code. 10 times faster than the earliest Commodore 64 modems.

On the Gumstix console, from the great beyond, comes an autopilot disable code, but that code could literally be anything. It's like having 16 more channels.

> status=0x00 PWM=191 274 2678 1620
> status=0x02 PWM=143 21 1545 125 radio=0xea8a
> status=0x00 PWM=110 21 2086 825
> status=0x02 PWM=19 21 2237 1003 radio=0xea8a
> status=0x80 PWM=6832 107 1377 247
> status=0x02 PWM=19 3488 1889 454 radio=0xea8a