FM receiver from the Atmel AVR 2004 Design Contest

August 16, 2009 | Amateur Radio | By: Mark VandeWettering

Just a place holder for a link to an interesting FM receiver that could be used for receiving NOAA polar orbiting satellites. It was an entrance in the Atmel 2004 Design contest. Very neat.

Atmel AVR 2004 Design Contest

More volume rendering…

August 15, 2009 | General | By: Mark VandeWettering

Well, I thought I had the rotation thing figured out, but I still seem to be missing something. But I did muck around a little bit, thresholding the image in a couple of different ways, making the pair shown below. The one on the left contains mostly the bones, with all the flesh transparent. The one on the right, the exact opposite, with the bones removed and the remaining flesh showing up. I thought they made an interesting pair.

both

Volume Rendering: Going boldly where all have gone before…

August 12, 2009 | Computer Graphics | By: Mark VandeWettering

Image from CT data downloaded from http://graphics.stanford.edu/data/voldata/

Image from CT data downloaded from http://graphics.stanford.edu/data/voldata/

Okay, this is a bit gruesome, but I’ve been dusting off some old papers that I never really understood on Fourier Volume Rendering, and testing my understanding by writing some simple code that takes in a volume dataset and uses the fast Fourier transform to convert it into simulated X-ray pictures. The data set that this picture was generated from was downloaded from this webpage at Stanford, and consists of CT scan data of a cadaver. The basic code works! Given a bit more work, I should be able to do arbitrary orthographic views.

The math for all this is described quite admirably by Tom Malzbender’s paper Fourier Volume Rendering.

Addendum: Here is the raw data slices:


httpv://www.youtube.com/watch?v=UrwnuEtNUKc

Addendum2: Here is a link to some more interesting volume datasets.

Addendum3: Here’s my attempt at rotation. It doesn’t really work right yet. I think I understand why.


WSPR signals heard from E51EME

August 12, 2009 | General | By: Mark VandeWettering

I still check my WSPR station logs each morning when I wake up. This morning I spotted the callsign E51EME, coming from grid square BG08. I’ve come to realize that many of these spots which include only a four element grid designator are spurious bad decodes, and I didn’t recognize the prefix (I’m not much of a DX-er). But still, it decoded multiple times:

Timestamp Call MHz SNR Drift Grid Pwr Reporter RGrid km az
 2009-08-12 12:16   E51EME   10.140137   -22   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 11:44   E51EME   10.140136   -20   -1   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 11:32   E51EME   10.140137   -18   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 11:24   E51EME   10.140136   -17   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 11:14   E51EME   10.140137   -15   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 11:06   E51EME   10.140135   -12   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 10:56   E51EME   10.140137   -12   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 10:44   E51EME   10.140135   -10   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 10:32   E51EME   10.140137   -11   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 10:12   E51EME   10.140137   -11   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 10:04   E51EME   10.140136   -14   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 09:56   E51EME   10.140137   -17   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 09:44   E51EME   10.140136   -18   -1   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 09:34   E51EME   10.140137   -18   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 09:24   E51EME   10.140136   -20   -1   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 09:16   E51EME   10.140137   -19   0   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 09:04   E51EME   10.140136   -19   -1   BG08   5   K6HX   CM87ux   7649   30 
 2009-08-12 08:52   E51EME   10.140136   -19   0   BG08   5   K6HX   CM87ux   7649   30 

A quick trip to QRZ.com verified that this was indeed a real call, Bob Sutton from Raratonga, in the Cook Islands. Very cool.

E51EME in Raratonga, the Cook Islands

E51EME in Raratonga, the Cook Islands

SumbandilaSat launch scheduled for Sept 15

August 11, 2009 | Amateur Radio, Amateur Satellite | By: Mark VandeWettering

I haven’t been playing with the LEO sats much lately, but it’s good to hear that the South African amateur satellite SumbandilaSat is nearing launch. It has a 2m/70cm FM transponder, and a voice beacon. I’ll try to get more information as the launch date gets closer.

SumbandilaSat launch scheduled for Sept 15

Still Images from the Computer History collection

August 9, 2009 | General | By: Mark VandeWettering

The Computer History Museum is a fascinating place, and here is a link to their collection of still imagery, some of which I have seen before, but some of which I had never seen before.

archive.computerhistory.org – /resources/still-image/

Compromising Reflections

August 8, 2009 | Security | By: Mark VandeWettering

I’ve been interested in TEMPEST and related technologies for a while. Here’s another link to another paper:

This project investigates a novel eavesdropping technique for spying at a distance on data that is displayed on an arbitrary computer screen, including the currently prevalent LCD monitors. Our technique exploits reflections of the screen’s optical emanations in various objects that one commonly finds in close proximity to the screen and uses those reflections to recover the original screen content. Such objects include eyeglasses, tea pots, spoons, plastic bottles, and even the eye of the user.

We have demonstrated that this attack can be successfully mounted to spy on even small fonts using inexpensive, off-the-shelf equipment (less than 1500 dollars) from a distance of up to 10 meters. Relying on more expensive equipment allowed us to conduct this attack from over 30 meters away, demonstrating that similar attacks are feasible from the other side of the street or from a close-by building. We additionally establish theoretical limitations of the attack; these limitations may help to estimate the risk that this attack can be successfully mounted in a given environment.

Compromising Reflections

Single Lens Stereo with a Plenoptic Camera

August 5, 2009 | Computer Graphics | By: Mark VandeWettering

While re-reading Ren Ng’s paper on light field cameras, I saw reference to a much earlier paper by Adelson and Wang. I added it to my growing collection of Google Docs for later reference.

Single Lens Stereo with a Plenoptic Camera

Decoding packet….

August 3, 2009 | Amateur Radio | By: Mark VandeWettering

It’s late, so I am not figuring this out, but I seem to be getting quite a bit of ripple in the output of this demodulator. I bet that it is because I don’t know what I am doing. Oh well. More for later, I guess.

Picture 3

No luck on ISS SSTV, but NOAA 17 looks nice

August 3, 2009 | Amateur Radio, Amateur Satellite | By: Mark VandeWettering

I tried to record the pass of the ISS as it came over, but I heard nary a peep (or beep) from it as it went over. Annoyed, I did a quick search, and found that the NOAA 17 satellite was just coming up. I retuned and hand tracked that, yielding the following rather nice image:

n17

FET Transistor Homemade From Cadmium Sulfide Photocell.

August 3, 2009 | Amateur Radio | By: Mark VandeWettering

I’ve blogged about the experiments of Nyle Steiner before, but just recently got back to his Spark Bang Buzz website again, and found that he’s added a couple of interesting bits. In particular, he shows how to modify a common Cadmium Sulfide Photocell to act like a field effect transistor. The voltage gain provided is quite small (about 1/10) but the power gain is better and the principle is quite interesting. Check it out.

FET Transistor Homemade From Cadmium Sulfide Photocell.

Passing the Amateur Extra test by guessing…

August 3, 2009 | Amateur Radio, Math, Programming Languages, Python | By: Mark VandeWettering

The Amateur Extra test is 50 questions, multiple choice, with 4 answers per question. A passing grade is 35 or more. A few minutes of programming this morning, even before I had any coffee yielded that the exact probability of passing was:

      4677523340461106447
------------------------------
158456325028528675187087900672

or about 1 in 33.9 billion.

This wasn’t that interesting of a question, but to solve it, I hacked up a quick but limited implementation of rational arithmetic in Python. I was wondering if there was a better way to implement this in Python so overloading would “just work”. I didn’t know how, and the problem was simple enough, so I didn’t try. Here’s my solution.

#!/usr/bin/env python

def gcd(a, b):
    if (a < b):
        a, b = b, a
    while b != 0:
        a, b = b, a%b
    return a 

class Rational:
    def __init__(self, a, b):
        self.a = a 
        self.b = b 
    def __str__(self):
        return "[%d / %d]" % (self.a, self.b)
    def pow(self, p):
        return Rational(pow(self.a, p), pow(self.b, p))
    def mult(self, r):
        tmpa = self.a * r.a ;
        tmpb = self.b * r.b ;
        d = gcd(tmpa, tmpb)
        return Rational(tmpa//d, tmpb//d)
    def imult(self, i):
        tmpa = self.a * i ;
        tmpb = self.b ;
        d = gcd(tmpa, tmpb)
        return Rational(tmpa//d, tmpb//d)
    def add(self, r):
        tmpa = self.a * r.b + r.a * self.b
        tmpb = self.b * r.b 
        d = gcd(tmpa, tmpb)
        return Rational(tmpa//d, tmpb//d)

p = Rational(1, 4)
q = Rational(3, 4)

def fact(n):
        c = 1 
        while n > 1:
                c = c * n 
                n = n - 1 
        return c 

def comb(a, b):
        return fact(a)/(fact(b)*fact(a-b))

total = Rational(0, 1)

for t in range(35, 51):
        x = p.pow(t).mult(q.pow(50-t)).imult(comb(50, t))
        total = total.add(x)

print "Exact probability is",  total
print "Only about 1 in", total.b // total.a, "will pass"

A Personal Satellite Kit?

August 2, 2009 | Amateur Satellite | By: Mark VandeWettering

Planet Earth has entered the age of the Personal Satellite with the introduction of Interorbital’s TubeSat Personal Satellite (PS) Kit. The new IOS TubeSat PS Kit is the low-cost alternative to the CubeSat. It has three-quarters of the mass (0.75-kg) and volume of a CubeSat, but still offers plenty of room for most experiments or functions.

The interesting bit? Total cost = $8000, including launch costs. You can use paypal to order one and get a launch slot.

The not so interesting bit? It doesn’t appear that the launch vehicle actually exists.

Via Interorbital Systems – TubeSat Personal Satellite Kit | International Space Fellowship.

Beginnings of an SSTV demodulator

August 2, 2009 | Amateur Radio | By: Mark VandeWettering

So, armed with the SSTV link that I dug out yesterday, and with a couple of hours this morning to tinker, I started working on an SSTV decoder. It’s not much different than the APT and WEFAX decoders I had written before, but they used amplitude modulation of an audio subcarrier, and most (all?) SSTV modes are based upon frequency modulation. But the only real difference is instead of recovering the amplitude of the carrier, you recover the change in phase. I’ll write this up in more detail sometime when I feel like writing, but here’s some example “demodulations”. The first comes from the header:

yyy

This is from the beginning of the recording of my Robot36 encoded picture. It starts with the so-called VIS code, which has 300ms of 1900hz audio, 10ms of 1200hz audio, and 300ms of 1900hz audio. You then see the mode indentifier, which begins and ends with 30ms of 1200hz, and with the identifier having ones and zeros encoded as 1100hz and 1300hz audio respectively. Neat!

Looking at a later part, we get this:

xxx

This shows scanlines from the image. Between the two tallest peaks, you see two scanlines. The two longer stretches are the intensity information, the two shorter, the R-Y and B-Y color channels.

It won’t be too hard to convert this into a picture, but I’ve been mucking with this too long today. Stay tuned for more developments.

Addendum: The bandpass filter in these examples was probably not positioned optimally (centered on 1500Hz, rather than 1700Hz). I’ve corrected it.

KR7A SSTV Demodulator

August 1, 2009 | Amateur Radio | By: Mark VandeWettering

Don’t you hate it when you remember seeing a webpage but can’t remember exactly how to get there? This one took me a bunch of judicious web searching to finally uncover again. It basically details how you might go about making an SSTV demodulator, some of the details of which I was a bit sketchy on. This page not only gives you the answer, but shows some of the mathematics that makes you have some confidence that what you are doing is right. I’m too tired to figure it out tonight, but I’m archiving it for later:

KR7A SSTV Demodulator.