Illustrations by

Andrzej Sykut

Hey, I think they’re all neat! So that means they’re not spam, you know? And that spider-man one is pretty sweet :O

Aw. Thanks. I always kind of feel like real quick sketchy stuff like this is probably pretty boring to look at for other people. Glad to hear I’m not completely right on that.

I sacrificed the cropping on some of these because my scanner is small and the Spider-Man pose worked way better than I thought it would.

That’s pretty amazing :)

That is a beautiful piece of artwork.

Thank you! It was a really neat piece to work on.

Story by bloodbright

Art by fistfulofgammarays

This is the other story I did for the MEBB. It’s an excellent concept with some striking writing, and it was a great deal of fun working with bloodbright to illustrate it. Thanks to her for the story, and to bioticbooty and azzydarling for organizing the Big Bang.

A few hitches with this today, but that’s to be expected.

Got pitch and roll working from accelerometer readings. Bit of a snag here, since roll readings are unreliable for pitch angles above about 85 degrees. This is called gimbal lock - what’s happening is that at a steep pitch like that, the y axis of my accelerometer is aligned with the direction of earth’s gravity. Since I’m using the known quantity and direction of the gravitational vector to estimate my pitch and roll, this makes roll go nuts.

For now, I’m ignoring roll at steep pitches, on the theory that if you’re looking straight up, you’re looking at more or less the same patch of sky now matter which way you’re turned. That may be a bad assumption, depending on how large the starfinder’s field of view winds up being. If it is, there are alternate ways to estimate orientation, but they’re considerably less intuitive and will require some research.

But anyway, I got pitch and roll fired up, and plugged them into my magnetometer tilt-compensation, and promptly had the magnetometer readings go nuts. Quick check of the magnetometer alone confirmed that the calibration was off.

Yeah, that’s a pretty different offset, tilt, and scale.

Now, this probably doesn’t mean that the local magnetic fields in the project room have changed. It’s almost certainly a consequence of testing at a different temperature. Sensors like this are sensitive to temperature variation and will experience a certain amount of drift over their operating temperature range, some more than others.

What this adds up to is that I should have seen this coming, but was hoping I could get away with a quick and dirty calibration, just to see if everything worked. Unfortunately, that’s not going to work in this case. This means I’m going to have to do magnetometer calibration on the fly.

So just looking at the x and y axes for now, I have that off-center ellipse. What I need is a circle centered on the origin. The offset represents hard-iron error, which is due to the presence of any kind of permanent magnet in the vicinity. Correcting for it is pretty easy.

Note that my ellipse is tilted to the side. I need to rotate it so that its major and minor axes are aligned with the coordinate axes. This is done with something called a rotation matrix, which you can calculate from the angle between the major axis and the x axis. You then multiply the rotation matrix by the matrix of x and y values.

This still desperately needs scaling. (Excel’s weird auto-dimensioning of the graph doesn’t help matters.) To do this, I get the ratio of the minor axis to the major axis and multiply all my x values by it. This results in a reasonable facsimile of a circle.

Finally, I applied a reverse rotation (using the negative of the angle used in the original rotation matrix) to realign my data with my actual physical axes.

This is definitely not perfect. There’s still a bit of an ellipsoidal shape and tilt to this. Possibly I would get better results by iterating this process a couple of times, but that’s a lot to ask computationally of a microcontroller that’s also going to be doing other things. I’ll see how this does, and then correct if necessary.

The next step is to apply this in 3D. The process is basically the same, just with ellipsoids instead of ellipses and more matrix fussiness. But I’ll leave it to another day because… well, because I’m feeling sort of lazy and don’t feel like breaking out MATLAB at the moment.