Archive for category Uncategorized

2012 Solar eclipse

2012 Solar Eclipse

During this solar eclipse, I was lucky to be near the path of the full eclipse.  Sky & Telescope have a really nice graphic showing where in North America the eclipse was visible.

Eclipse path (click image for source)

I’m just north of the ideal path.  Anyway, it was cloudy here in Oregon, so my pictures aren’t great.  I hope you enjoy them.

Solar eclipse 2

, , ,

No Comments

Softshell pre-alpha

Softshell works!

Basic functionality of Softshell works!  In the image above, you can see the app (Cocoa-rtl-sdr is the old name) on the right.  I didn’t even have the text boxes wired in yet for the sample rate and center frequency, because I was so excited that it was working.  The samples from the receiver are transported into GNU radio over TCP where a simple FFT is being performed.  Notice that all the extra blocks needed for the original rtl-sdr aren’t needed, because I’m doing all of the uchar  to float conversion inside of Softshell.

The code that’s available on GitHub was hacked together with some network code that I can’t release right now, but I’m going to move it over to code that I can use soon.


Here’s a pre-compiled application for those that don’t feel like compiling it:


, , ,


More ChipKit spectrum analyzer progress

Modifications to the ADC

I’ve been able to make solid progress on the spectrum analyzer tonight.  I’ve continued using the ChipKit, I’m fairly happy with it at the moment.  As I mentioned in the last post, I’ve increased the baud rate on the serial port to 115200 baud.  That seems to be the point where the SPI bus speed and the serial port speed are about matched.  There’s still plenty of room to increase it, however.

I’ve been progressing in the project by adding one module at a time, and testing as best I can.  I’ve got PLO2 (mostly) working, and DDS1 seems to be rock-solid.  I’m able to command it to any frequency I want between almost 0 Hz up to 20 MHz.  Tonight, I added the ADC to the list of modules that seem to be working.  To accomplish this, I had to make two modifications to the ADC.  The first was to change it to work with a 3.3v DC supply.  This change was trivial, it’s the same as the modification to run off of the power from the PDM.  You just remove the old voltage regulator and replace it with a bit of wire.  This is necessary because, if it’s powered with 5 volts, the minimum voltage required to mark a digital ‘1’ is 3.8 volts.  The PIC32 in the chip kit is powered by 3.3 volts, so there’s no way that’s going to happen.  In reality, it’s probably going to work, but it’s likely going to give you a headache.  Finally, I removed the two transistors that were on the outputs of each ADC.  They were there to provide stronger output drivers (the ADCs can only drive their outputs with 500uA).  The parallel port requires a pretty healthy amount of current on the status lines.  Because it’s being connected directly to a micro controller, these drivers aren’t necessary.  Not only that, but they were acting as it they were damaged.  With them gone, everything seems to work great!

Now that the ADC and a DDS works, I can begin to use it as a spectrum analyzer… even if it’s only for a very small range of frequencies.  For example, I can make a plot of the filter used with the “squarer” in the DDS:

DDS1 squarer response

It’s not immediately clear whether this plot makes any sense, I’m hoping that I can get someone in the panel of experts to weigh in on it.  It’s reasonable clear that there is a pass band centered around 10.7 MHz, which is what I want.  I’m not sure what to think about those steep slopes and the large spike of to the right.  None of this may matter, as the DDS will never be tuned out there anyway.  It could even be that a harmonic of the DDS output is getting through the passband when it’s tuned there.  I really have no idea.

The plot below is from the final resolution bandwidth filter (RBW) that’s used to set the resolution of the analyzer as a whole.  I got this filter from one of the MSA experts (thanks, Sam), and I know it performs better than this.  Again, I’m wondering if it has this shape due to some quality of the DDS output, or some other factor.

Shape (maybe) of my final resolution bandwidth filter

Ultimately, I think these graphs are great, and very encouraging.  Even if they’re a bit confusing, it’s nice to be able to put something up on the screen.  You might be wondering how I produced them?  Well, that’s the embarrassing bit.  My cheesy analyzer program (which is really just a way to test the suite of classes I’ve written for communicating with the modules) will spit out text that can be used as a CSV (comma separated values) file that can be read by Excel or Numbers.  I used Numbers to create these plots.  I think they’re log-scale plots, because the log detector module produces logarithmically increasing voltage given increasing input power, thus I used linear scaling on the Y axis.  The Y axis is the raw value from the ADC, and the X axis is the frequency.


I got an email back from Scotty about the graphs I got from my DDS sweeps.  The first plot, of the DDS squarer, is normal.  The reason it has that shape is best explained in the context of the schematic of that part.

DDS Squarer (section of the schematic from scotty’s webpage)

Trace the signal from “OUTA,” it goes through matching network (I think!), then a crystal filter (XF1), and a logic inverter.  Basically, the inverter will “snap” on or off once the sine wave from the filter passes a threshold voltage.  Once the signal is attenuated to a certain level by the crystal filter, the inverter will no longer trigger.  This is the reason for the sharp skirts on either sides of the passband.

Scotty also thinks that the response plot from the RBW filter is indicative of a mismatched input or output.  I’m pretty sure it isn’t the actual filter, so I’m going to look into other sources of impedance mismatch.

Update 2:

Not only did Sam agree that the shape of the RBW filter is likely due to the impedance mismatch between the source and the filter, but that I could probably help the situation with an attenuator.  I inserted one (with a DC blocking capacitor) between the DDS source and the filter, the plotted it again.

Second plot of the filter shape

My only concern now is that the filter bandwidth looks much much wider than I expected.  I don’t know what the cause of this is.  Because I really have no calibration, I don’t know how the “counts” in the ADC map to dBs of signal.  Typically, filters are defined by the points to the right and left of the center that are 3dB “down” from the center level.  However, I may be able to glean some knowledge from the datasheet.

RSSI voltage vs. input power level (from the Analog devices datasheet)

The slope is ROUGHLY(!) a half a volt per 20dB.  I’ll do a better calibration when the code is there, but for now let’s just continue on.  Once we know what the slope is, we need to map the counts on the ADC output to volts.  I’ve converted the ADC to use 3.3volt power, and it’s a 16 bit device, so there are 65,536 counts (numbers) spanning 3.3 volts, or 19859 counts per volt.  In my spreadsheet, I just made a new column that performs this conversion.  Finally, because it looks like 2 volts maps to about 10dB.  So, I added another column to the spreadsheet, this time subtracting 2 from the volts, divide by .5 and multiply by 20.

Unfortunately, it’s not easy to see where the 3dB points are.  Looking at the raw data, I can see that the maximum value is -13.0 dB, so the 3dB points are where -16.0 dB is crossed on each side.  On the low side, it’s 10.6989, and on the high side, it’s 10.701360.  The resulting 3dB bandwidth is .002 MHz, or 2 kHz.  This is exactly the published value.  I guess this means that it was a very successful experiment.




CM-5 decommissioning (gallery)


Transceiver enclosures

Transciever enclosure

It has been a while since I finished the transceiver modules, and I how now used them in an actual application.  But, before I talk about that, I’d like to show some pictures of the process I used to put them into enclosures.  I had some of these cast aluminum enclosures lying around, so I thought I’d use them.  They’re a little on the heavy side, as the completed weight is around half a pound, but it’s well within the carrying capacity of my Kadet.

Before diving into the process of cutting the holes, I want to show some images of the transceiver board with the RFI fence installation process.

Cutting copper sheet

For use with the spectrum analyzer project, I found some sheet copper at the craft store.  It was sold at a local crafts store, and I think it was for etching.  I chose the thickest one they had.  So far, the best way I’ve found to cut it is using an exact and straight edge.  I tried scissors, and it didn’t really work.

RFI Fence

Once I had a strip of copper cut, I cut openings for the power and control traces and soldered it onto the PCB.  I also soldered it onto the SMA connector.  Once all that was finished, I soldered on a lid.  Lots of solder flux helps here.

Once the board was prepared, both by soldering on a fence and replacing the pin header with a right-angle one, I began to prepare the enclosure.  I was intending to drill a hole for the SMA connector, then cut a hole for the digital connection.  The SMA connector hole was trivial to make, though the connector I soldered onto the board was a little short.  I ended up having to use an O-Ring from the hardware store (look in the plumbing section) to hold it in.  When an antenna or cable is screwed on the O-Ring compresses, having the nice side-effect of sealing it.

DB-9 template

For the digital connection, I decided on using a DB-9 connector.  I figured it was a prolific connector, so I should have lots of connectors laying around.  That didn’t turn out to be as helpful as I had hoped, but I’ll get into that later.  To create nice holes for the DB-9 connectors I decided that I could use an old PCI bracket as a template.  I lined the bracket up against the side of the enclosure and traced it.  On the black box, I traced it using a knife, and on the grey box I used sharpie.

DB-9 template using sharpie

Once the outline was traced onto the box, I drilled holes for the retention screws.  Then, I drilled out as much as I could of the trapezoid shaped interior.  I most used the drill press, then the dremel with a router/cutter bit.  I made sure to leave a margin inside the perimeter to remove with the files.  I had avoided purchasing a set of jewelers files for a while, I think I assumed that they were expensive.  They’re not, you should get a set.

Finished penetration

In the photo above, you can see the finished penetration for the DB-9.  I beveled the inside edge to make room for the fillet on the connector that I had.  The black box got a male DB-9, and the grey box got a female one.  The holes need to be about the same size, as the male shroud always has to fit over the female connector body.

DB-9 connector installed

In addition to the RF and digital connectors, I needed a way to securely mount the internal circuit boards.  The way I chose to do this was first to drill holes in the bottom of the box, then “countersink” some screws into it.  I have countersink in quotes because I don’t have a countersink bit, so I used a larger drill bit.  You can see the results of this in the headline picture of this post.  Though I think it looks pretty good, I still decided to buy a drill & tap for 4-40 screws after building the black box.  For the grey box, I used the tap and screwed directly into the box.  This requires slightly less hardware and looks pretty good, I think.

Breadboard transceiver circuit

For whatever reason, the board I built for the black box using some veroboard-style construction didn’t work the same as the breadboard.   Because I was under time constraint (I was planning on flying one of the transceivers over the weekend.  I decided to put it back on the breadboard and use it as the base station.  This version uses an FTDI cable to connect to my computer.

Flyable transceiver module

For the grey box, I used an extra ATMega48 breakout board I had.  This one worked just fine in the enclosure, so I flew it.  I also built a power regulation/distribution board, seen on the right of the photo.  This concludes this article.  Now that I’ve got at least one flight worthy transceiver I can test them in flight.  That’ll be detailed on a future post.

, , , , , , , , , ,

No Comments