Are you a Gadgeteer?
In a recent post, I mentioned that last week I received a very cool package, the GHI FEZ Spider .NET Gadgeteer Starter Kit. Unfortunately, I didn't have time to take the kit with me to Roanoke, but I did record an unboxing video last week.
(note to self…need to get a macro lens for my video camera…sorry for the focus issues)
The FEZ Spider starter kit is the first commercially available kit that implements the .NET Gadgeteer specification for modular electronic components. The kit includes the FEZ Spider mainboard, which houses the processor, along with a reset button, a couple of LEDs, and 14 sockets for plugging in additional modules.
The kit includes a fairly extensive selection of modules to help you get started building electronic projects quickly, including a full-color 3.5" color touchscreen LCD module, a camera module, 2 button modules, a joystick module, an Ethernet module, an SD Card module, and a USB Host module, just to name a few.
The FEZ Spider board and modules are all clearly labeled with letters that indicate which modules can plug into which ports on the mainboard, enabling "paint by numbers" style assembly of prototypes.
But the modular aspect of the hardware is just the beginning. The ability to quickly assemble a prototype would do you little good without the ability to drive these components via software, and this is where Gadgeteer really shines.
Once you have installed the necessary software (minimally Visual C# Express 2010, but higher versions of Visual Studio 2010 will work as well, and the .NET Micro Framework SDK and GHI and .NET Gadgeteer SDKs…a full list of the software can be found on the FEZ Spider download page), Visual Studio will have a new Gadgeteer project type, as shown below:
Once you've clicked OK, you'll find one of the nice surprises of the Gadgeteer project type, a nifty design surface:
(note that if the designer does not appear by default, you can open it by double-clicking the Program.gadgeteer item in Solution Explorer)
The designer makes it incredibly easy to start prototyping your project, without even needing to have the hardware in-hand. And under the covers, the designer automatically generates all the code you need to access the components that you've wired up. For example, if you add the Camera module, the designer-generated code will automatically wire it up in code, and instantiate it with the name camera, making it very intuitive to code against. To take a picture using the camera module is as simple as calling camera.TakePicture(), and then handling the PictureCaptured event exposed by the camera module.
Other modules expose appropriate events as well (for example, the button module exposes a ButtonPressed event), which you can handle in order to control the hardware. The getting started guide that you'll find in the Start menu entry for .NET Gadgeteer will guide you through creating your first Gadgeteer application which, as it happens, is a simple digital camera using the camera, button, display, and USB Client (for power) modules.
Once I had the software installed, it took me less than a half hour to have this project assembled and working. Here's a picture of the finished project:
I later decided to extend the initial project by adding the ability to store pictures on an SD card using the SD Card module. My assembled project on the Gadgeteer design surface looks like this (note that the designer even tells me exactly where to plug in the various modules on the FEZ Spider mainboard:
In my customized version of the starter project, I handle the button's ButtonPressed event, kick off a timer, which then takes a picture every 2 seconds. In the camera's PictureCaptured event, I store the picture on the SD card (there's some additional code to mount the SD card and access the file system, but it's pretty straightforward).
Whether you're a hobbyist looking for an inexpensive way to quickly get started with building your own gadgets, or someone who has a brilliant idea for the next cool consumer gadget and just needs a way to quickly assemble and test out prototypes, .NET Gadgeteer is something you should definitely consider. The cost of the starter kit, at around $250, is remarkably low for what you get, and the Gadgeteer software platform makes it very simple to create cool projects in very little time.
The .NET Gadgeteer platform is still very much in its early stages, but already more modules are appearing, including potentiometers, WiFi, and serial port modules, with more on the way. And while GHI is the first out of the gate, you can expect more Gadgeteer-compatible hardware from other vendors as well. Additionally, there will soon be templates available to aid in creating enclosures for your projects, using available laser cutting and 3D printing services.
It's an exciting time to be a gadget geek, and I'll be sharing more of my explorations with .NET Gadgeteer in future blog posts, so stay tuned!