Posts Tagged Techniques

Emma’s Red Dresser

Katie and I needed to get a dresser/changing table for Emma.  We decided to find an antique dresser to redo rather than the pressed-wood pieces of crap you can buy today.  We found one at the Corvallis ARC that fit the bill nicely.  Unfortunately, I neglected to take photos of it before attacking it with the sander.  The following two photos are during the sanding process, though.

Starting to sand off the stain

Starting to sand off the stain

Some of the drawers before sanding

Some of the drawers before sanding

The stain and finish that they used was nasty to sand off.  When it got hot from the friction, it would melt, kinda, and gum up the sand paper.  Eventually, and after many sheets, we got it all off.  In the process, I bought a Ryobi Corner Cat which I like O.K.  I had to replace the velcro pad that holds the sand paper because it wore out.  Shipping took a bit, but the replacements were only a dollar or two.

Once I got all the stain off, I could assess the level of wear the dresser had accumulated over the years.  In total, it wasn’t bad.  It was pretty interesting to see how construction methods have changes over the years.

Slightly distressed corner

Slightly distressed corner

In getting ready to paint, I masked off the inside of the chest openings.  In this view, you can see the construction.  Lots of random sizes of lumber, everything is mortised, etc.

ready to paint the chest

ready to paint the chest

It took a ton of coats to adequately paint the dresser.  It didn’t help that we did this at the height of summer, and it was HOT.  The paint was practically drying as soon as it left the pail.  This left a very poor finish, and honestly, I’m a bit disappointed in it.

The chest is painted

The chest is painted

Eventually, it got to a point that I could live with, and we reassembled everything.  I chucked the knobs into the drill to sand the finish off.  I’d like to eventually get some antique porcelain knobs.  I think that would look really nice.

One extra thing we had to do, that I don’t have pictures of, is replace the drawer bottoms.  Most of them were in really bad shape, and weren’t even square!  I just bought some plywood at the store and had my friend Tom cut them to size on his table saw.

Painting and reassembling all finished

Painting and reassembling all finished

We’re all finished!  Here’s the dresser in its new home, complete with changing pad.  Hopefully, as Emma grows up, she’ll like and appreciate it!

, , , , , , , , ,

No Comments

Lexan Cyvasse Set

I have a friend with a problem.  He’s a board game addict.  Not only that, he’s also a Game of Thrones (GOT) fan.  For his birthday (last February, I’ve been meaning to write this post for a while) I decided to try and make him a Cyvasse set.  For those of you that are similarly afflicted, Cyvasse is a board game that comes up in GOT occasionally.  I’ve never read the books, so I had to go off of the descriptions of the rules that some people have designed based on the text (Game of Cyvasse, A Wiki of Fire and Ice).  A year ago, the different interpretations were quite different, so I settled on the Game of Cyvasse site’s rules.

Lexan Blanks cut out

Lexan Blanks cut out

The first task was to decide upon the materials that I should use.  I decided to use Lexan as the substrate, and to paint the backs of the pieces so the color and design would shine through the plastic.  In the photo above, I have cut some of the blanks out of the lexan sheet.  I only had a miter saw to work with, so I carefully cut it into strips first (the saw cut length was just barely long enough to cut the narrow direction).  Then, I cut the blanks out of the strips.  A note about cutting lexan on a chop saw: GO SLOW!  Unless you have a fine-toothed blade, the teeth will bite into the plastic and cause havoc.  If you go very slow, you can get a good cut.

We had the idea of using transparent sticker sheets for the graphics.  I couldn’t find blank sheets that were large (nearly 8″x10″), so we settled on using mailing address labels.  These worked O.K.  I worried that, because they had a matte finish, they would make the designs look cheesy.  Luckily, if you work hard to get a good bond between the sticker and the plastic, when you paint the back of the piece it looks perfectly transparent.  I couldn’t have asked for a better finished look.  Also, the matte finish probably helped the paint to stick.

Play pieces pained and backed.

Play pieces pained and backed.

I wanted to provide the paint a little more protection, and to make the finished product look a little nicer, so we decided to put felt on the back of the play pieces and craft foam on the back of the field pieces.  Notice in the photo above that I left the front protective plastic layer on the pieces.  This kept the paint off of the front and helped prevent scratching.  To adhere the backing, I used Scotch Super 77 spray adhesive.

There were some extra effects that I wanted to achieve with the water and mountain field tiles.  I thought it would look really cool to have a subtle glittery effect to the water, so before spraying on the blue color, I sprayed a light layer of glitter on.  For the mountain tiles, I used one of those fancy textured spray paints.  I thought the water turned out beautifully, and the mountains were just O.K.

Close up of the set

Close up of the set

I’m really happy with how the pieces turned out.  In the photo above, you can see how the play pieces seem to float on the play field.  Also, you can see how the labels used for the graphics disappear into the background color.  Unfortunately, I didn’t have the patience to sand the edges of all the pieces, so they have a bit of a rough texture.  I did bevel the edges, though.

Pieces all boxed up

Pieces all boxed up

Finally, I needed a way to present the set.  A convenience store near my office sells their old cigar boxes for a few dollars, so I was able to find this brass-inlaied box for about $5.  It fit the pieces adequately, and added a bit of class to the whole thing.

A sample of what a games might look like

A sample of what a games might look like

Here is a photo of our first time playing the game.  We were still deciding on how exactly the rules should work.  I think this game ended in either a stalemate of forfeit.  It’s fairly fun to play, but the rules need a lot of work.  There’s quite a bit of ambiguity.

Eric's satisfied!

Eric’s satisfied!

Overall, it was a fun project.  I think Eric enjoyed the present quite a bit!

, , , , ,

1 Comment

Google Earth tracks from Garmin G300 flight logs

Flight log results in Google Earth

Flight log results in Google Earth

I’ve been working on my private pilots license for the last few months.  The primary plane that I’ve been using is the Cessna SkyCatcher.  I’ve included a photo of an example of this plane below.  It’s a fun aircraft, other than the fact that two normal-sized adult males can’t take full fuel. Read the rest of this entry »

, , , , , , , , , ,

No Comments

Compiling GnuRadio 3.3.0 on Mountain Lion

Fixing all the little issues with this process took me days, so I apologize if it’s a complicated and multi-step process.  These steps worked for me, hopefully they work for you too, but YMMV.

First of all, it is vital that you don’t have the macports boost 1.50 installed.  There is a problem with that version where the x86_64 version of the library isn’t compiled.  This is mentioned in an earlier post, and the mac ports trac entry is here.

The easiest way to begin is to install boost 1.49 then run “sudo port install gnuradio-core” and let macports install all of the pre-requisite packages (you may need to perform the fix I mentioned in that earlier post to fix netpbm) .  When it finally gets to gnuradio-core, it will fail.  Now, what you need to do is:

$sudo port edit gnuradio-core

Follow the instructions, again in that earlier post (update 2).

$sudo port clean gnuradio-core
$sudo port -n install gnuradio-core
---> Computing dependencies for gnuradio-core
---> Fetching archive for gnuradio-core
---> Attempting to fetch gnuradio-core-3.3.0_0+python26.darwin_12.x86_64.tbz2 from http://packages.macports.org/gnuradio-core
---> Fetching distfiles for gnuradio-core
---> Verifying checksum(s) for gnuradio-core
---> Extracting gnuradio-core
---> Applying patches to gnuradio-core
---> Configuring gnuradio-core

THIS IS IMPORTANT!: Cancel (control-c) when it says “Configuring gnuradio-core.”  At this point, we need to hand-edit the configure script in the gnuradio source directory.  The reason for this is because some of the assembler code in gnuradio uses 32-bit only opcodes.  When compiling for 64-bit machines they generate errors.  It’s necessary for them to be compiled differently.  Luckily, when Lion was released, a fix was devised and added to macports.  The same exact fix (in principle) should work for Mountain Lion.  But, in the configure script, the change looks for Lion and doesn’t detect Mountain Lion.  We just need to change the test to detect Mountain Lion.  The difference is only the version of darwin used.  This information is in this trac.

$cd /opt/local/var/macports/build/
$ls
<cd to the long directory that ends with science_gnuradio-core>
$cd gnuradio-core/work/gnuradio-3.3.0
$sudo vi configure

Once editing the configure script, search for “darwin*10*” or “darwin*11*”.  This is easy if you hit the forward slash and type “darwin\*1”:

/darwin\*1

The region of interest should look like this (the numbers are the line numbers):

20154     *darwin*11*) 
20155 # The cast to long int works around a bug in the HP C Compiler 
20156 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects 
20157 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. 
20158 # This bug is HP SR number 8606223364.

Change the *darwin*11* (or *darwin*10*) to: *darwin*12*

Close the vi session by hitting <esc> then : then type wq and enter.

Now, run “sudo port -n install gnuradio-core”.  Make sure that you DO NOT clean the package.  This will destroy our edited configure script.

When that finishes (hopefully it does!) you should be all set!  You’ll probably want to install gnuradio-companion as well as gnuradio-audio-osx.

If you have any problems or questions, let me know in the comments.

, , , ,

6 Comments

Using softshell with GNURadio

It has been a little while since I released the very early code for softshell (not that the code has advanced much), and I’ve received a few requests for a bit more information about how it’s intended to be used.

I admit that I hacked it together very quickly so that I could make some basic use of the rtlsdr dongles on my mac.  To be very clear, Softshell does no actual SDR itself.  You can really look at it more like a driver for the rtlsdr.  Softshell opens a connection to the rtl device, allows you to tune its internal oscillator, and puts the data on the network.

To start, install the rtl device in your USB port, then open Softshell.

Freshly opened

If you see a similar window, it means that Softshell has found your device (the ezcap in this case).  It is, perhaps, a good time to mention that I’ve only ported the tuner code for the Elonics E4000 tuner.  Click the “Open” button to have the program open the connection to the device.  If it detects that you have the E4000 the “Tuner type” field will be filled in with “Elonics E4000.”

Once this is done, changes to the sample rate and center frequency will take effect with the “Update” button is clicked.  The Center frequency is provided in Hz.

Now, that’s all fine and good, but you’re just tuning the device.  To actually get the data out of it, you need to setup the network settings.  Choose a port number for Softshell to listen to, I use “12345,” and click the “Running” checkbox.

Finally, in GnuRadio, you need to use a “TCP Source” block setup as a client with the same port number you used before.

Setting up GnuRadio to work with Softshell (click for full size)

Once that’s done you should be up & running.  Note that, natively, the rtl device actually outputs unsigned bytes and that Softshell converts these to floats centered around zero.  Some GnuRadio examples include the blocks that perform this conversion.  If you come across this, just remove those blocks.

Good luck!  Please feel free to comment with any questions or issues!

, , , , , , ,

2 Comments