Using Open Hardware from my shirt to OS testing for Google's Fuchsia

A2 | Thu 24 Jan | 1:30 p.m.–2:15 p.m.

Presented by

  • Marc MERLIN

    Marc has been using linux since 0.99pl15f (slackware 1.1.2, 1994), both as a sysadmin and userland contributor. He has worked for various tech companies in the Silicon Valley, including Network Appliance, SGI, VA Linux,, and now Google since 2002, both a server sysadmin and software engineer. He has done hacking in various areas like mail with exim, mailman, SpamAssassin and SA-Exim, as well as maintained various linux distributions at Google and elsewhere, and given talks about some of those projects, and others at linux conferences since 2001 (LCA, OLS, Linuxcon, Usenix/LISA). He blames the recent time and money he has been spending relearning electronics and hacking on arduino on Jonathan Oxner and open hardware tutorials at LCA since 2011 :) For fun, when he's not trying to beat his mythtv into submission, or hacking misterhouse so that a motion sensor and video camera can trigger a blender to scare the cat off the kitchen counter, he goes snowboarding, mountain biking, racing cars, and flying RC or full size planes.


TL;DR: come learn how going back to the days of smaller CPUs is interesting, fun, and can be useful for many applications. What you can expect to learn outside of the fun factor and the rewarding learning experiences: - get an overview of what you can learn and do beyond what's mentioned in your basic arduino book - some of the joys of reliving what the pioneers who built computers and drivers in the Steve Wozniak days, went through, despite how much easier it is today - how that new knowledge can be applied to various real projects like a fancy lit shirt, not losing a multi thousand dollar RC plane, or helping test new hardware at work - how despite how shiny your hammer is, not everything is a nail: where I haven't used microcontrollers, and why. Details: Let's face it, computers have become entirely too boring. You use high level languages, some even keep track of your memory and try to stop you from writing bugs. You have more cores, more Mhz, and more memory than you know what to do with. - Has your life has started losing meaning as a result? - Are you not sure how many bits are in a byte? - Are you tired that you haven't had to deal with compiler induced bugs in too long (if ever)? Or you don't ever use compilers? - Is it boring that someone has already written the drivers for the hardware in your computer? - wouldn't it be more fun to write single threaded code without an OS then a boring small application on a computer that runs hundreds more at the same time? - Do you regret never having to pull a voltmeter or logic analyser to debug your code? Fear no more: Jon Oxner and his team have been offering an open hardware miniconf at LCA since 2010, which will bring you back to the days where computers were hard, and you earned it :) Thanks to Jon and his team-mates, I got into arduino and other open hardware microcontrollers in 2011. This talk will give you a taste of what I was able to learn as a result, and what you can learn too: - Once past the basic I/O on arduinos, I got to write a callback based color LED changer. Learn why callback programming is harder and yet important. - To go several notches up, I wrote a interrupt driven tricolor matrix line scan driver with Adafruit::GFX support. Learn about actual interrupt programming and GCC's volatile - I had to write a LiquidCrystal Text LCD driver for OHMC's Pebble V2 project. Learn about pulling out a data sheet and comparing it with your board's wiring. - Because I didn't learn my lesson, I ended up writing 5 different drivers for the 2017 OHMC IoTuz ESP32 based board. On that one, you'll learn that you should wait for another sucker to do the work :) But you shouldn't just learn to program open hardware on LCA Open Hardware MiniConf boards for fun, it will come in handy later: - After losing a multi thousand dollar Ardupilot based plane I built to a motor failure in flight, I was able to modify the arduino based On Screen Display board to detect future motor failures and flash them on screen - I felt shy and without friends at parties, as well as too dark at burning man, so I made nice ESP8266 controlled shirt and pants with my own patterns - then I went overboard and added 1536 LEDs in 2 panels, one front, one back on my 2nd version of the shirt - And because a 768 LED matrix wasn't big enough, I got suckered into building a 4096 LED one soon thereafter. Great for burning man, though: - At work, I help with testing of our new hardware with the Fuchsia operating system, which requires remotely controlling dev boards, to reboot them when they are crashed, or other simple things like hitting GPIOs if needed, or potentially emulating a keyboard, a mouse, or even a USB boot device with a new OS image. - As a counterpoint, I'll also go into microcontroller uses I haven't done, and why. I will go into this list of examples, how they were fun, useful, or both, and hopefully encourage you to do the same.