I'm still stunned at how well Practical Arduino has been selling. I just got my first royalty statement for the period ended Dec 2009, and it showed nearly 2000 copies sold in that period - for a book published on December 23rd! That means presales plus about 7 days of actual sales (interrupted by Christmas) together accounted for as many copies as were expected to be sold in the first few months. The entire first print run sold out in weeks, a second print run was hastily done and that's nearly sold out as well. The third print run is just about to begin, only 4 months after it first hit the shelves. Anyway, enough self-congratulation. I just think it's cool. And the point of this post wasn't to talk about stats, it was to mention that you can now buy hardware related to the book from a few places, including Freetronics. Check it out: www.freetronics.com
Right after the Arduino Miniconf ended Marcus Schappi of Little Bird Electronics trapped Hugh and I in a corner and asked us a few questions.
Wow, it's all over! The Arduino Miniconf at LCA2010 was a blur of craziness but I had an absolute blast. It was the most fun conference event I've been to in, well, ever.
It started with a hardware assembly session to give all the software geeks a chance to use a soldering iron (some for the very first time) and build their own Pebble shield.
By lunchtime about 30 people had finished assembling their boards, and there were a lot of happy hackers around when they powered up their Arduino and got messages up on the LCD.
Both Vik Olliver and Patrick Herd brought along RepRaps to entertain the crowd. The morning assembly session and the early-afternoon "Introduction to the Pebble" sessions were run by Andy Gelme (seen in the white T-shirt and blue cap with his back to the camera above) who did an awesome job, and he was followed by a great line-up of speakers. A big thankyou to those who spoke at the miniconf:
- Andy Gelme
- Justin Mclean
- Philip Lindsay
- Peter Chubb
- Nathan Seidle
- Vik Olliver
- Marcus Schappi
Truly a 5-star line-up, and with a great range of interesting topics that sparked lively discussion.
Thanks also to all the helpers: the reason the hardware session worked out so well was that we had about 16 experienced people willing and able to give their own time to help out those with less experience. We ended up with a helper:participant ratio of about 1:2 and paired up participants, so every pair had at least one helper and nobody was left floundering around on their own.
Two participants got minor solder burns (not enough to need proper first aid, more of the "ow, that hurt!" variety) so to make it up to them they both received prizes. Speaking of which, we were lucky enough to have Apress provide a few copies of Practical Arduino and Nice Gear provide vouchers for two Duemilanoves and a pair of XBee modules, which we then distributed to participants.
There are a bunch of other people who contributed to the success of the Miniconf including many members of Connected Community Hackerspace in Melbourne who pre-assembled many of the hardware packs. Mitch Davis, in particular, chased down cheap deals on parts so we could make it as cheap as possible for everyone to take part.
Finally, but perhaps most importantly of all, a big thankyou to Luke Weston who put in so much work preparing the Pebble hardware and then didn't even get to attend the Miniconf. The Pebble PCB is his design, and while everyone at the Miniconf in Wellington was having fun assembling his creation he was sitting in Melbourne watching it on a live stream and wishing he was there.
Luke, your efforts are greatly appreciated by a lot of people.
I'll follow up later with links to slides and other resources for the various talks delivered during the Miniconf.
Originally posted on Practical Arduino Or at least it's done as far as Hugh and I can influence it, anyway. It's all in Apress' hands now: don't let us down, please! I don't think I'm emotionally quite ready to do a de-brief post about the experience yet but I can give you a couple of stats about it.
- Words: 143,048
- Projects considered: 92
- Projects shortlisted: 45
- Projects commenced: 22
- Projects included: 14
- Total chapters: 16
- Hours: far enough beyond 1,000 that it's scary
- Life lost: 7.5 months
- Prototyping shields used: 47
- Arduinos purchased: 25
- Trips to Jaycar: dunno, but I have a reserved parking space
Originally posted on Practical Arduino The final project of the book is turning out to be epic. It's taken me far longer than I expected, and I've hit quite a few snags along the way. I've also had to make quite a few compromises because if I implemented everything I wanted it would take up half the book. The big problem initially was communications with OBD-II, which was a piece of cake for my previous car datalogger (running on Linux) but turned out to be more tricky on an Arduino. Eventually it got to the point where I just cried and twitched a little bit whenever I thought about working on it, so to save my sanity I ditched my original codebase and switched to working on OBDuino instead. OBDuino is an offshoot of the MPGuino project, which is primarily intended to be a tool for helping people drive more economically by providing real-time engine performance and fuel consumption information. It's developed collaboratively on the EcoModder website and it's a perfect example of what Arduino is really good at: providing a cheap, simple, flexible platform to allow people to develop something to suit their own requirements. There is now dedicated MPGuino hardware that has grown beyond its Arduino origins, but that's a good thing. It shows Arduino did its job. Anyway, the point is that in the end it's been easier to take the functional code I had for GPS, flash memory storage, and a serial console, and graft those features onto the existing OBDuino codebase rather than graft OBD support into my codebase. So now I have an OBDuino variant that requires a Mega to run (unlike the original, which will run on a Duemilanove) but adds GPS and datalogging. The datalogging feature is really cool, because it logs GPS plus OBD-II data which can then be correlated and converted to other formats. This afternoon I went for a little drive and when I came back I wrote a script to parse the CSV file stored by OBDuino and generate a KML file to pass into Google Earth, with the result that I can now generate things like this: (Click the image to see the whole thing full size) The track is generated from the lat and lon stored from GPS, and the height indicates the speed of the car. By switching the columns selected by the script I can plot position against RPM, load, temperature, or any other value logged from the OBD-II data. The prototype hardware is still a total mess and the code is only half done, but as long as I don't sleep for about the next 5 days the project should just sneak in within the publishing deadline.
Originally posted on Practical Arduino
I "finished" the first draft of the water flow gauge project quite a while ago but I was never really satisfied with it. It's quite an important project in the book because it's used to demonstrate some critical concepts such as interrupts, but as a project it wasn't really that useful. It only reported values via the serial port so it needed a host connected to do anything, and it just didn't quite feel like it added enough value to the book.
Over the last two days I've gone back and redone the project almost from scratch, leaving in place the original information about interrupts but expanding the project to include an LCD and buttons to allow it to be used as a stand-alone device.
In its new form it feels much more like a complete project. The LiquidCrystal library was something I really wanted to cover in the book but it hadn't fitted into the other projects that made the final cut, so re-jigging this project gave me the perfect excuse to demonstrate it.
And the final device fitted together so beautifully into the clear-fronted weatherproof case with splashproof pushbuttons that it almost feels like a work of art, even down to the exposed colorful PCB and wiring: something that I can feel proud to show people and tell them I built it.
Originally posted on Practical Arduino The hardware came together quite nicely, but the software side of this project is giving me a surprising amount of trouble. The pic below shows it connected to the serial data line on an RFID shield mounted on a Mega: Hardware works just fine, but the problem is that my computer at home is an original eeeBox with a totally underpowered VIA CPU, and when I have Processing (which is Java based, so ridiculously overweight) on the host trying to process a data stream being thrown at it at 115,200bps it keeps freaking out and becoming unresponsive. Most of the time the serial port won't even come back, which means I've been rebooting the machine about every 10 minutes. It's driving me nuts so I've just taken some time off to play with a Seeed Studio pan / tilt servo mount which I'm controlling with a Sparkfun analog joystick and breakout board. At least *that* worked first time!