Anybody working on an interesting hobby project?

Anybody working on an interesting hobby project?


I finally got around to firing up my Atmel STK500 development board, after the untimely death of a wireless router gave me the perfect power supply to use. That will get used on some LED-based holiday lights in a project that I haven’t fully scoped yet.


My current project, however, is a hill-mapping application, in my never-ending quest to map the gradients of the hills that I cycle on. Topo data isn’t good enough to tell you what you really want to know, so a couple of weeks ago I sent in a order for an ISU Inclinometer, which will give me the direct measurement of angle through a serial interface.


I then need a data-logging solution. I have an old PocketPC sitting around that would work for the level information, but to do the whole solution I need a way to get one more bit of data into the pocketpc, so I can measure distance with a magnetic wheel sensor. I may be able to hack something in using the IR port.


So, what are you doing?

Comments (15)

  1. Kris says:

    A year ago I took an embedded course (using Motorola’s HC12) and we actually started with a bare board and developed a kernel through out the course (in C++! using the gnu toolset). Very interesting but quite tedious – especially for someone whose day job doesn’t involve  the scopes.  My day job involves enterprise development so it was tough for me to compete with some of the others in the class (who are already working in the embedded field). I love embedded technology but finding the spare cycles after work to do this is difficult, but the rewards are very sweet.  I was thinking may be CE would be a good choice to for me to pursue as it is a bit more highlevel and I am decently familiar WIN32 API. I am yet to find some cheap hardware to set it up with CE and get it going. Oh well, got to get back to ASP.NET…

  2. Padu says:

    I’m a delphi developer (or at least was), and recently we decided to use C# for the new products in my company. Outside my job, I’m working on my Master’s on computer science, which I just finished taking classes (yeeey). My thesis/project is to create a mobile autonomous robots (actually two), one based on a RC car with a VIA mini-itx on board and the other one based on a gasoline powered ATV. The latest is going to bare a full blown pentium D as a brain.

    For the small one, things that are closer to hardware (sensors and actuators) are done by several PIC microcontrollers. Everything is done from scratch, electrical design, homebrew board fabrication, assembly, etc. These small slave boards are hanging on a RS485 bus, where the master is the VIA PC.

    I had started the PC software in Delphi, but I liked C# so much that I took the risk of porting everything to C#. Since the PC will handle higher level stuff and it is not so severely time constrained, I figured that even though I’m not creating native binaries, C# may be fast enough for the job (am I mistaken?)

    So far it is being a great fun and I’m enjoying…


  3. I also have a nice pet project: Changing a Netgear Wireless Router into a Wireless Media Player with a serial Touch Screen LCD for the interface, a USB sound card and a C# application to control all of them.

    It involves a bunch of different technologies in a quest to build something more or less useful.


  4. Sean McLeod says:

    What about using a Bluetooth GPS connected to your Pocket PC to measure the distance, or won’t the GPS distance be accurate enough for your needs.

    This does assume that you have a Bluetooth enabled Pocket PC, in which case you can then connect the GPS via Bluetooth and the inclinometer via the serial port on the Pocket PC.


  5. ericgu says:


    GPS distance data is pretty good if you use it to measure large distances – say, a mile or so – but over short distances, there’s some random noise imposed on top of the real value, so you get noisy data. And if you get under tree cover, you may get drop-outs or drastically reduced accuracy, which are totally not what you want.

    I found a nice chip yesterday from microchip that takes serial data end and sends it out to an IrDA port, so I think I’m going to be using that to talk to the PPC.

  6. Sean McLeod says:

    In terms of "random noise imposed" I presume you’re refering to Selective Availability (SA) that the US military imposed on the civilian GPS signal. If so Clinton removed the SA ‘feature’ years ago.

    I use a Garmin Forerunner GPS while running and on half-marathon courses that are ‘officially’ measured I generally end up measuring the distance to within less than a 1% difference and that includes courses with tree cover like this one in Cape Town which is also run against a 1000m high mountain which sometimes diminishes the number of visible satellites.

    So I’d be interested in some comparison data between a GPS in your system and the magnetic wheel sensor.

    Out of interest when you say that the topo data isn’t good enough for calculating hill gradients are you using the NASA SRTM 30m or NED 30m resolution topo data or lower res topo data?


  7. tod hilton says:

    Mine is not nearly as complex as some listed here, but I’m working on a C# windows app that will backup blog posts from MSN Spaces to a XML file, upload said posts to a new MSN Space and/or copy posts straight from one MSN Space to another.  

    Since MSN Spaces are tied to your Passport account and cannot be re-associated I’ve seen several people abandon their Space because they switched Passport accounts. With my tool they can create a new MSN Space with their new Passport account and copy all of the content from their old Space to the new one so they don’t lose anything.  Search for ‘getSpaces’ on Toolbox if you’re curious.

    By the way, remember about a year ago when we had lunch and you suggested that I get some ‘pet projects’ to help build my dev skills.  Well, I’ve done that. Another one (that hasn’t been updated in a few months) is at http://shortlink on our intranet. 🙂

  8. ericgu says:


    Happy to expand a bit.

    I’m not talking about SA.

    I built a hill measuring system that hooked up to my Etrex (which I lost but recently had an idea where I might have placed it…). It put the etrex into auto-reporting mode (not the NMEA mode, but the garmin-specific one), and then logged the data, and I’d do data reduction later.

    The problems I ran into were:

    1) The distance data was pretty good, but suffered from dropouts. When the data dropped out, the etrex would continue at the current rate, and then when it regained the signal, it would "snap" to the real location.

    2) The altitude data had the same problem, but it also suffered from the fact that altitude measurements aren’t as accurate as location measurements in GPS systems. It typically looked like there was a small amount of random noise (with a max value of a few meters) overlaid on top of the altitude measurement.

    Now, it may be that newer GPS receivers are better at this.

    The problems I was hitting had nothing to do with total distance. Total distance isn’t affected very much by short dropouts because all you lose is the "wiggling back and forth" that happens between the two good fixes, which is generally a pretty small amount.

    On the topo data, I’m using the USGS elevation web service, which grabs their best source. It’s generally the 30M database for the most of the US though I understand that some areas only have 90M coverage (Seattle area is 30M). Sometimes their data seems pretty good, and other times is seems pretty noisy. Even if it was perfect, 100M is a pretty wide swatch, and road grading tends to depart fairly significantly from the natural terrain. Not to mention the fact that it will totally miss short increases and decreases in gradient.

    My current implementation also depends on the correspondence between road information and actual roads, which isn’t perfect. It would be better if I grabbed paths through GPS.

    A couple of examples. Here is one climb (scroll to the bottom)

    That looks pretty good, but I don’t trust that the small variations are real.  Here is another:

    Umm. Yeah. That’s not very nice.

    My path code is pretty simple, and the same code to generate the path is used to draw the path, so I’m pretty sure it’s working. It could be that the USGS web service doesn’t interpolate very well.

    I’ve considered grabbing their data files and determining elevation code directly, but I don’t have the space on my web server to hold lots of data, and I’d still be stuck with low-resolution data.

    So, that’s why I need to measure gradient directly. Since gradient is the derivative of the altitude/distance plot, you can guess what a gradient plot from noisy data looks like.

  9. Eli Allen says:

    While not as fun as building it yourself, have you seen the Garmin Edge?  The 305 has the better altitude functions and the speed it gets from the cadence sensor (it checks speed from the rear wheel and the cadence)

    Now why can’t someone create a cadence, speed, and HR sensor that can connect to a WinCE based phone?  So then I can have all the data I want while cycling and the phone I need for emergencies.  If you’re worried about barrery power just mount an extra external battery somewhere on the bike

  10. ericgu says:

    I have a friend who rides with an Edge. It’s a fairly cool device, though it has a couple of problems:

    1) The altitude is gps altitude, which means it sucks.

    2) The battery life isn’t great.

    I think #2 is a big issue for GPS-based systems. My polar does everything that GPS does – with the exception of telling me what path I took, obviously – and the batteries will last years.

  11. Eli Allen says:

    For the Edge 205 altitude is GPS Altitude, for the 305 its altimeter altitude.  As to battery life, take a look at the motionbased forums, there are external USB based battery packs to make it run for much longer. (are you really riding for longer then the battery lasts anyway?)

    I don’t own either though.  I like the heart rate functionality the polar has along with possibly adding power, but I like the virtual parner on the Edge to encorage me to work harder.  So I’ll wait for either the Edge to get real street mapping so I can go places and still know where I am and a more comfortable strap, or Polar to come out with a replacement for the 725 (its been 2 years) that has more virtual partner like functionality.

  12. Sean McLeod says:

    Now you just need to hook up an MPTrain system in order to push yourself up the hills 😉


  13. ericgu says:


    Interesting idea, and it sounds like there are nice applications to running.

    For cycling, however, I see a few issues:

    1) You generally try to keep your cadence within a certain range (roughly 80-105RPM for me) using gearing, both because cyclists get used to a specific cadence and because they’re more efficient at a given cadence. This breaks down, however, on hills, where you might need to ride as slow as 40RPM, or you might be spun out on a descent at 120 RPM.

    2) There’s a big debate in cycling on the advisability of listening to music while riding. I’ve done it once or twice, but I prefer to be able to hear traffic. Others listen all the time, and I have one friend who compromises and listens with one headphone only.

  14. Eli Allen says:

    Instead of headphones mount the speaker part to the helmet, that way you can still hear the enviroment around you, although it still may be distracting.  Instumental music may work well as you can have the volume much lower as you don’t need to really hear the words.

    I do see your problem with hills but not from cadence as I don’t think it will care about that, only HR, and speed.  The problem I see is if you hit a hill your heart rate may shoot above your target causing the music to try and get you to slow down.  I don’t know about you but on steep hills I either have to do at a certain pace of stop and rest a bit, don’t have the strength to go faster and slower feels much harder.