Netduino–The Start of a New Geek Relationship

Before I begin, I must give credit where credit is due.  My good friend, Andrew, inspired me to write about my Netduino journey as he is doing with his running.

So… my geek side got the best of me and I ordered a Netduino Plus from Maker Shed.  So what’s a Netduino?  We’ll it’s open source hardware based on the Arduino design.  Wait – open source hardware?  Yeah – it sounds a bit funny.  How do you download hardware?!  Well, it’s not so much about the hardware as it is about the actual design of the hardware.  A bunch of hardware propeller heads got together and created the hardware design and then provided the schematics and board layout files.  So if I was so inclined I could have the PCB milled, order all the parts, and solder the whole thing myself.  I just don’t have the time, resources, or skills to do that, so I opted to pay for mine.

So what’s the Arduino thing?  From their website:

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.

You can create programs on your PC and download them directly to the board and then run them independently from your PC.  Programming the Arduino is either C or C++ (I’m not quite sure).  I haven’t programmed in either of those languages for quite sometime and I don’t particularly miss it either.

Which leads me to the Netduino.  The Netduino is another version of the Arduino that is mostly pin compatible with the Arduino (I think), but you can program it with C# using the .NET Micro Framework.  Wait – Micro Framework?  Yup.  Microsoft created a version of the .NET Framework for embedded hardware.  You may remember a few years back Microsoft released watches called SPOT that could wireless get data like weather, sports scores, etc.  They didn’t last, but Microsoft kept developing the Micro Framework for other embedded devices – laptop mini-LCDs, automobiles, etc.  According to their website, they have the Micro Framework currently in over 1.5 million devices.  Then they did the unthinkable – they released the Micro Framework as open-source.  According to the Netduino forums and a podcast or two, they’ve been really good to the community and have accepted community fixes and suggestions back into the Micro Framework source code.  So after listening to the podcasts and seeing a demo at the local user group BAND, I picked one up.  To be fair, there are other Micro Framework-compatible boards available.  Some have built-in LCDs, more memory, faster processors, etc.  My decision was driven by the podcast and cost.

I would have done one of those fancy unboxing posts, but it just came in a USPS Priority box in an anti-static bag with a packing slip.  Oh and it did come with some rubber pads to stick on the bottom to keep the bottom pins off the table and keep it from sliding around.  So here’s a few pictures of it with the obligatory quarter for reference.

DSC02052 DSC02053

So what are my plans for this thing?  Well, I told Kelly that this would be a great thing for Lily and I to play around with.  She doesn’t know how to program, but she’s very interested in geek things (very much like her Dad in that respect).  Okay – you’re thinking he already dropped $66 (w/shipping) on this thing and now he’s going to buy Visual Studio for $1000?  Actually, you don’t need to.  You can program the Netduino with Visual Studio C# Express 2010 which is free!  You’ll need a few more downloads (all free, though).  The Micro Framework only supports C# right now, although I think the community is trying to get VB.NET support.

Luckily, we have an older Gateway Celeron laptop to spare so I’ve made that my development system.  This way Kelly has the main PC to email, Facebook (verb?), etc. with having to kick us off.

So what did Lily think about this since I never told her?  She immediately came over and inspected the board and correctly identified the micro-SD card slot, the external power supply plug, but stumbled a little on the Ethernet jack.  I mean wired connections are so 90’s!  She brought a tear to my eye…  Luckily the Netduino folks have a project page that have a couple of projects to start with that require no additional hardware. 

We started off with the obligatory blinking the onboard LED.  For those geeks that may be reading, here’s the source code (it’s available on the project page):

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;

/* NOTE: make sure you change the deployment target from the Emulator to your Netduino before running this
* Netduino sample app.  To do this, select “Project menu > Blinky Properties > .NET Micro Framework” and
* then change the Transport type to USB.  Finally, close the Blinky properties tab to save these settings. */

namespace Blinky
{
    public class Program
    {
        public static void Main()
        {
            // write your code here
            OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);

            while (true)
            {
                led.Write(true);
                Thread.Sleep(250);
                led.Write(false);
                Thread.Sleep(250);
            }

        }

    }
}

Forgive the formatting since I don’t have Visual Studio on this PC or the plug-in to get that fancy colorized HTML look.  For those familiar with C#, this is really simple stuff.  We then moved on to the push-the-button-and-watch-the-LED-blink project.  This time I let Lily do all the typing, downloading, running, etc.  She had a great time.  When I told her we made a simple Morse Code project.  She immediately ran into her cave (bedroom) and brought out her Morse code chart from her detective kit and started sending messages.  Here’s a video of that:

Netduino Morse Code

 

Later that day, she fired up the laptop by herself and started a new project to mess with.  I gave her a suggestion to try to have “SOS” automatically repeated on the LED.  I gave her a couple of hints and off she went.  She came close, but missed a few steps.  I then showed her how to write better reusable code all without the lecture since she could see why we would do that.

So what’s next?  I have a bunch of ideas.  I’d like to work more on the Morse code program so that we could send words instead of dots and dashes.  I would like to pick up an LCD so we could see what we’re transmitting.  Eventually I would like to create a program for the PC that you would enter text to convert to Morse code and then send that over a serial port (yeah I’ll have to use a serial-to-USB converter) to the Netduino, which would then blink the Morse code.  Of course, these ideas take money and the parts add up quickly, so we’ll keep playing around for now until our piggy bank fills up.

Advertisements
This entry was posted in .NET, Netduino. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s