Last night I had my first play with an Arduino Uno and a couple of add-on shields, all purchased from HobbyTronics (http://www.hobbytronics.co.uk).
At first glance, it all looked nice and straightforward, a simple IDE, a raft of example source code and quite lively discussion boards dotted around t’internet.
So after the initial plug-in, and upload of “blink” (the hardware equivalent of “hello world”), the first task was to solder the stacking headers on to the three shields I hope to be playing with.
This lead to a hurried trip to Maplin in Camden after realising I didn’t have my soldering iron or associated paraphernalia to hand. Before long the soldering was done (with varying degrees of quality – it’s been a while since wielding a soldering iron in anger) and the time came to plug in the first shield: an XBee shield (http://www.sparkfun.com/products/9976) and WiFly module (http://www.sparkfun.com/products/10822).
Everything seemed to be going well. The WiFly came to life and the LEDs suggested it was busily trying to lock on to the WiFi signal of my router, so a quick look over the user manual for clues as to how to configure the module to make a secure connection turned up some lengthy and initially confusing instructions concerning getting the thing into command mode. Thus after lots of reading, cross-referencing and downloading terminal applications, the little bugger still refused to open up and let me tell it what to do.
And that’s when the real confusion set in. Some blog posts claim that the WiFly isn’t compatible with the XBee shield, but they were posted about (I think) R2.x modules while I have an R3. Others say it won’t run properly on an Uno due to one of the SMT diodes which needs to be removed – a task I don’t think I have the tools or the eyes for any more.
But in true noob fashion I wasn’t going to believe any of that until I had reached the end of every line of investigation I could follow. So I set about finding example code libraries that programmatically set the WiFly into command mode, set up the appropriate network parameters and/or let me start entering commands from the terminal. This all looked great until the compilation errors started to show up. More reading from around the web pushed me to the conclusion that actually, v1.0 of the Arduino IDE “breaks most libraries”
FFS I think to myself. It’s now late, I’d like to see something working but I have to go off in search of an older IDE. Fortunately that didn’t take too long after some clicking around the http://arduino.cc website but even then, some of the library code I pulled from git had to be reorganised before it’d compile. For example, the main source files must be in a suitably named directory directly below /libraries, so having got a nicely structured src directory from git with a load of stuff under there I had to move it and bin the rest of the directory structure. After much head scratching eventually some of the library code did compile and could even be uploaded to the Uno, but still the damned WiFly wouldn’t give me the time of day with its UART so I’m beginning to think that the bloggers were right. Maybe the WiFly really isn’t suited to the shield that claims to be designed for it, at least when it’s mounted on a Uno R3.
But not to be too disheartened, I figured I’d give the LCD shield (http://www.hobbytronics.co.uk/arduino/arduino-shields/nokia-6100-lcd-shield) a go, as this was a self-contained board with well documented examples. More internet reading suggested that screens with a red tab most likely have the Epson driver on them, but in keeping with the tradition experienced so far of course this was not the case for my particular screen. At least my new old IDE compiled, uploaded and and ran the example screen demos perfectly. Sigh.
So that wrapped up a frustrating first evening with the Arduino. Admittedly I have quite a few more comments and suggestions to follow up on, and of course re-checking my soldering efforts, before writing off the otherwise impressive-looking WiFly, but that’s more hardware hacking, and I’m mostly a software kind of person these days.
I’ll write more, and maybe review this entry with more references and citations later on.