aNewDomain — Well, my “Hacking Lessons: Which Microcontroller Board Do I Use?” talk at OSCON 2014 needed to be a little different this year. Watching me yak in front of a bunch of colorful slides is no longer anyone’s idea of a hot ticket– especially not with the technically sophisticated audience I’d face.
They needed something cool to grab their attention. How about using one of the credit-card sized boards to actually project the slides on the screen and, while we’re at it, use a Web cam to show what the other boards look like? And show it all off live? That would work. And that’s what I did.
Here’s how I pulled it off.
How To Build a Hummingbird SlideCam
The Raspberry Pi was the initial choice for my presentation machine. The stock Pi is a truly capable Linux-based nanocomputer. It sports 512MB of memory, two USB ports, an Ethernet port, HDMI output, and 17 general purpose digital I/O pins. It’s considerably more complex than a regular Arduino-compatible micro-controller. The Raspberry Pi runs a small version of Linux, is programmed using Python and has strong video capabilities. Arduinos have none of these features, although the definition of a microcontroller is certainly starting to blur, what with the advent of the Arduino Yun and SparkCore.
I quickly found out that running LibreOffice (LO) on the Pi had a few performance issues. Loading LO Impress, the presentation app, took upwards of four minutes. Worse, transitioning between slides, particularly with high-resolution graphics (5312 x 2988), might take a minute or two. And sometimes Impress would crash and I’d be back at the desktop.
On the other hand, my Logitech C310 USB Web cam worked out-of-the box with guvcview, the Linux app used for capturing video and still photos. So we had no reservations for the live feed.
Now, a few weeks before OSCON, I ran across a more powerful Raspberry Pi clone, called the Hummingboard. I contacted the manufacturer. Solid-Run sent me one of its top of the line Hummingboard-i2ex devices. I found it to be much like the Pi, except that it has a more powerful processor and 1GB of RAM. Sure enough, LibreOffice Impress loaded in about 15 seconds. Transition time remained a marginally acceptable 10 to 15 seconds between some slides. Again, high-res graphics caused delays and occasional crashes. Perhaps, I was simply asking too much of the little Linux machine that could.
The solution was to use the Gimp graphics editor and scale the graphics down to a more reasonable 600 x 480 before inserting them into a LibreOffice Impress slide. Previously I’d tried this trick with the stock Raspberry Pi and I was able to get slide transitions down into the sub-one minute range. That still wasn’t too usable. The Hummingboard only took a couple of seconds to go between slides when the images were crunched down quite a bit. And even better, you really can’t tell the difference on the screen.
Performance was further optimized by copying the LibreOffice Impress slide file from the USB stick to the Hummingboard’s micro-SD card. Running the presentation from a USB stick severely slowed down loading and transition times.
My talk went great at OSCON and I had absolutely no issues booting, loading Impress, running the slides or switching over to the Web cam and showing micro-controller parts. My setup process was to boot the Hummingboard and log in. Then, start guvcview and move the control window to a second desktop screen. Next, I loaded LibreOffice Impress and the slides. I started the slide-show and moved the Impress control window to the second desktop screen. Lastly, I ran guvcview, so that the camera was on and moved the control window to the second desktop.
Using the configuration, a simple up/down arrow advanced or backed up through the slides. I then used CTRL-ALT to flip between the live camera view of the other micro-controller boards and the slides.
The Hummingboard makes a nice compact platform for building a presentation machine. Once everything was optimized, it performed well and it was super reliable.
Based in Orlando, Rob Reilly is an independent consultant, writer, and speaker specializing in Linux/OSS, Open Hardware, tech media, and the mobile lifestyle. Follow him on Twitter @RobReilly and find his posts on Google +