GPS Logger

August 31, 2011

As a summer project I designed a GPS logger device.  An early prototype of the device was completed late July.  Since then I’ve been taking it along on bike rides, walks, fishing trips, and much more.

GPS path  in Itasca State Park, Minnesota

GPS path in Itasca State Park, Minnesota

The image on the left is a path recorded from my bicycle ride  in Itasca State Park.  The path starts from the headwaters of the Mississippi River and follows the wilderness drive & bike route to the visitor center.  I also road from the visitors center to the headwaters but the GPS reception was blocked by the ice pack for my lunch.

The GPS logger takes data from a Linx GPS module and saves it to a SD/MMC card.  The data is formated in a KML flie which can be opened with Google Earth or uploaded to Google Maps.  The GPS module outputs NMEA sentences at a 1Hz rate.  The GPS logger uses the GGA sentence for longitude, latitude, and altitude.

The GPS logger is powered off of a rechargeable 3.6V Lithium ion polymer battery.  The battery is charged using a USB power supply and a lithium ion polymer charger integrated circuit.

The source code for the AVR microcontroller can be found on github under the name GPS-Wolf.  The PCB board layout is also uploaded to github.


PCB designed in EAGLE


PSoC® FirstTouch™ Starter Kit

January 30, 2010

After learning about the  PSoC and its capabilities from a professor, I decided I would try one of the development kits.  I got the PSoC® FirstTouch™ Starter Kit.  The kit is easy to program using the provided software.  Using the PSoC Creator, I set up a PWM module to control a small servo.  It only took me an hour to get familiar with the software and get this servo running.

I had thought the TV in the background was mute but the audio sounds like I forgot.

Snow Fort

January 13, 2010

During winter break I spent some of my time making a snow fort.   The snow pile seen below is hollowed out leaving an area inside large enough to stand up in.  The snow removed from the inside was added back onto the pile to make it larger.

snow fort

Autonomous Robot

August 25, 2009

During my microprocessor lab last spring I started programming a PIC 18F1220 for fun.  I started with a bunch of small projects that I put together to make this autonomous robot.  For this robot, I learned how use a digital ultrasonic range sensor and how to write my own software PWM (pulse width modulation).  I decided not to use the hardware PWM because at my clock speed it would not output at the 50Hz necessary for servo motors.  If I wanted to use the hardware PWM for servos, I’d have to sacrifice speed.  The software PWM I created has 3 outputs, one for the servo that moves the sensor, and the other two for the drive motors.  Currently the robot does not drive in a straight line.  I’ve tried to fix this in software but the differences in the motors is not constant.  I’m working on adding an encoder so the motors can be set the same.

Since the video below was shot, I’ve made some modifications to the code to improve it’s autonomous navigation.

Disc Golf Target Basket Update

May 26, 2009

I’ve been using my disc golf target for about a week now and I’ve found the weaknesses of it.  I’ve been working on some simple fixes to these problems.

From Disc golf target

The first thing I noticed was that a single ring of chain worked for most puts but a few that should have been caught got through.  The simple fix to this was to add a second ring of chains.  I added six more chains halfway between the center and the outer ring.  Very few discs actually make it through the chains.

The second problem was that discs can roll on their side out of the basket.  It didn’t seem like it should happen too often because the disc had to be on its side rolling at an angle.  The solution to this would be to either add more dowels so the disc cant fit through or to add a second plywood ring onto the dowels.  I found that after I added more chain the problem happened less often.

The third thing I noticed was a few of my dowels were not actually hardwood.   They were some lighter weight wood that looked the same.  When the disc hit these dowels they cracked where the screws went in.  I added some glue and a few zip ties to strengthen them.  The best solution would be to make sure all the dowels are some type of hardwood.

Lastly, the extra part of the u bolts that sticks up can really eat away at your discs.   Cutting the excess bolt off and smoothing it with a file helped a lot.

Disc Golf Target Basket

May 19, 2009

I’ve been playing disc golf occasionally for the last few years and I always thought the target / basket would be something I could make.  I did a little research on the internet thinking I would run across some good plans.  There weren’t any that I liked so I made my own.  My design needed to be semi portable and require no welding.

From Disc golf target

Tools required

  • drill & drill bits
  • string & pencil
  • jig saw


  • 3/4″ Ply wood
  • 1 in pipe
  • 12 U bolts
  • chain
  • Large (3″) key ring (can substitute with wire)
  • nuts and bolts
    • 12 nuts, bolts, and washers for attaching the Galv Floor Flanges
    • 24 nuts to fit U bolts (2 extra for each)
  • dowels 3/4″ or 1″
  • 2 – 1″ Galv Floor Flange
  • 1- 1 1/4″ Galv FLR Flange
  • 1- 1 1/4″ Galv nipple

I tried to make my disc golf target fairly close to the ones at my local course which uses the Innova DISCatcher® PRO Disc Golf Target. Most of the dimensions for that target can be found by following the link above.  The only dimension I couldn’t find was the depth of the basket which I measured to be 9 inches

Step 1

Cut 3, 26 inch diameter circles from a sheet of plywood.  Take one of the circles and cut out a 22 inch circle within in.  The resulting ring will be used as the rim of the basket portion of the target so be careful not to cut through it.  The 22 inch circle will be the top portion where the chain is attached.  The easiest way I’ve found to cut the circles is to use a nail, pencil, string and jigsaw.  Tie the pencil and nail together 13 inches appart pound the nail in the center and use it to draw a 26 inch diameter circle.  Cut out the circle with the jigsaw.

Step 2

On the 22 inch circle draw a line from the center every 30 degrees (12 lines)  to determine where the U bolts should go.  drill holes for your u bolts.  Each U bolt will require four nuts.  A nut will go on each side of the plywood.  washers are optional.

Note: The U bolts are are sort of optional although I highly recommend them.  You could stick a bolt through the last link of the chain and bolt it to the plywood.

Step 3

Cut your chain in approximately two foot lengths (for me this was 20 links).  Slip one end of the chain on each u bolt and attach them too the plywood circle.  Place the other end of each chain on a large key ring.  The key ring can be substituted with wire but wire will not hold the circular shape.

step 4

Cut 12, 8 inch long dowels and attach them to one of the 26 inch circles (again every 30 degrees).  Attach the ring to the the dowels as well.  now you should have a basket

step 5

Cut the pipe to 55 inches and thread each end.  Most hardware stores will be able to do this for you when you purchase the pipe.

step 6

Attach the 1″ Galv FLR Flanges to the top and base circles.  Drill a 1″ diameter hole through the center of the basket, screw the 1 1/4″ nipple into the 1 1/4″ Galv FLR Flange and attach it to the basket.

step 7

slide the basket onto the pipe and screw on the top and bottom.  Position the basket where it looks right and drill a hole through the nipple and then through the pipe.

step 8 (optional)
An inner ring of chins can be added to the target for better catching.  You will need 6 extra u bolts and some more chain.  the length of chain for the inner ring should be shorter approximately  16 inches (18 links of my chain).  The Innova targets at my local course have 3 rings of chains. for a total of 24 chains.  The single ring seems to work but occasionally lets the disc through.

please see my update on this disc golf target


May 5, 2009

I’ve been using Octave as an alternative to Matlab for about 4 months.  For my engineering analysis class, we have been using matlab programming to solve our problems.  Matlab is provided to us in a computer lab on campus but its really inconvenient to program there.  All on campus computer labs are always hot and the computers are always slow.  I didn’t want to buy a copy of Matlab to use at home so I decided to use Octave.

Octave is a free open source alternative to Matlab.  Nearly all the functions found in Matlab are the same in Octave.  So far the only function that I’ve not been able to use in Octave is xlsread.  Octave by itself is basically just a shell.  Where you can enter in commands and outputs are displayed.  By installing a front-end program such as QT Octave you get the whole environment that you would in Matlab.

At first I wasn’t confident that the two programs would be compatable so I always checked to make sure my program would work on Matlab.  After having all my projects work flawlessly between Octave and Matlab I’m confident that my code will execute on both programs.