New toy tool! Santa came early this year.

Wiring Board

I just received my Wiring circuit board from Hernando Barragán. I couldn't help myself, so I just plugged it in to see what it does (ok, I checked the circuitboard first to make sure I wouldn't blow anything). As promised, it's really well designed, so it works right out of the box. There's an onboard power light, and an on-board debug LED (very handy, that), so you immediately get what you need: the power LED lets you know you're on, and after the bootloader delay, the debug LED starts flashing to let you know the program is working. Yes, it comes loaded with a simple flasher program -- very cool: plug it in, and it's already blinking the electronic equivalent of "Hello World!"

There are a lot of things I like about it, number one being that it uses Atmel chips, which means that I can compile off of my Mac with an open-source solution (GCC). Number two, it uses the same FTDI USB chips I've been experimenting with on the Gameboy Advance. These chips aren't all that expensive, and come with free drivers for MacOS9/MacOSX/Windows/Linux that allow you to create a virtual serial port over USB. Using serial ports is easy from a programming perspective, and building USB drivers is not. On the other hand, USB is very handy, especially since you can power the board for light usage over USB. In fact, the "Hello World!" program I mentioned works directly off USB, no need to plug in the power supply; although if you want serious power consumption you'll have to switch the jumper and plug in an external power source. Most importantly, Macs haven't had serial ports for years, and about a year ago my Windows junkies over at LOEIL stopped laughing at me when they discovered that their new laptops don't have them either.

But obviously the key is the Wiring software. And here Wiring is amazingly simple. Download software, load up a sample LED program, plug in the board, push compile (the same "play" button as Processing) and then load it to the board. Reset the board and your program is running in hardware. Wiring takes care of linking to GCC as well as sending the program over to the Atmel flash rom.

Wiring Uploader

After some more fiddling, I was playing around with a servo motor, stepper motor, etc.

At the LOEIL laboratory, we mostly use PIC chips, which are great because they're cheap. So whenever I'm free, I've been learning the PIC chip over the past year, and what I've really come to hate above all is the complicated setup process, and the lack of any open-source compiler. I have to do everything on my PC, or on my Mac with patchy emulators. Until now the only serious Mac circuitboard work you could do was with the expensive BASIC Stamp. Some of my collegues also use Basic for PIC development, but I prefer C. Hence my joy in discovering that the Wiring project uses the GCC compiler. It's C, so it would be a little bit harder for the students than Basic, but I'm not so sure about that, as the real problem is always getting the electronics right and setting up the compiler. Wiring makes all that simple.

In the past, I've used a similar prototype board, called the EZIO. (When he was here in Aix a few years back, Chris Csikszentmihályi told me that he had something to do with the development of that board, but he wouldn't tell me exactly what.) Over the years there have been several other input/output boards like the EZIO and Wiring. The difference here is that you're learning to work with a real microcontroller, which you can control at whatever level you want. Just like Processing, you can branch off into your own code if you want, or use the pre-cooked functions. It's up to you.