Developer of the Month: IoT Gadget Guru Keith Lee

Tuesday 6/6/17 09:03am
Posted By Mike Roberts
  • Up0
  • Down0

Qualcomm products mentioned within this post are offered by
Qualcomm Technologies, Inc. and/or its subsidiaries.

Qualcomm® Developer Network June Developer of the Month is Keith Lee.

Keith spends his time dreaming up new uses for hardware, as ‘Gadget Guru’ with his company Gumstix. Gumstix make products to extend all kinds of Computer-on-Modules (COMs), including the DragonBoard™ 410c available from Arrow Electronics. Keith’s enthusiasm for hardware in embedded and IoT is infectious, and his work also spans back-end and firmware development.

We caught up with Keith to talk about the ‘Maker’ mindset, his ‘late arrival’ to engineering, and his recent drone project using the DragonBoard 410c.

Keith Lee stands with quadcopter drone on wall behind him

Can you tell us about your company?
Gumstix started out making tiny computer-on-modules (COMs). Our Verdex, Overo and DuoVero are widely used in the embedded industry on expansion boards both designed by us and by our customers. There are Overos in space, in robots, on MAVs, and more all around the world.

A few years ago, we launched a new and unique service called Geppetto® D2O. With Geppetto, engineers, developers, startup denizens and enthusiasts alike can develop carrier / expansion boards for COMs and single board computers (SBCs) or create their own from a system-on-a-chip (SoC). The platform’s library of supported COMs and SBCs goes beyond our own Overo and DuoVero, and includes the DragonBoard 410c, 96Boards, TI OMAP and Raspberry Pi compute modules, Pi HATs and BeagleBone capes, and many more industrial platforms.

What advice would you give to other developers?
If it’s fun, can you call it work? Whether you’re building a robot, writing code for an accounting app, or editing data sheets, don’t let it get tedious. Create challenges, add personal touches, or try a new tool. As Gadget Guru, I get to do a lot of fun maker stuff, but I also work on firmware and back-end software. I have taught myself new programming languages, refined my BASH scripting skills, and have expanded my understanding of the Linux Kernel to stay engaged. I’m also always thinking about what to put into the next major project revision to keep the creative juices flowing.

What is one thing that makes your company culture unique? Do you have any rituals?
We all wear many hats and have lots of breathing space in our positions. The walls between one job description and another is not firmly defined and if someone can contribute constructively to someone else’s workload, or wants to try something new, they can. If I want to take on a special project, not only is that encouraged, but I have a hand in defining it.

Share with us a fun fact about yourself?
I was late to the engineering game. When I graduated from high school, I took a couple of years off. In fact, after an under-motivated year in computer science, I took a 9-year hiatus from scholarly pursuits and worked as a line cook, and then in a mailroom.

Consequently, I found myself starting my family as I navigated University. By the time I’d finished grad school, my wife and I had three kids. It took a lot of hard work to make it through to a Master of Applied Science in Computer Engineering!

What do you love about embedded and IoT development?
The best part of the embedded industry is the real-world application. Every platform that we develop goes into some device or “Thing” that manipulates the real world. When you develop for PCs and web services, you are generally constrained to standard I/O like keyboards and screens. When you look at the Internet of Things, it’s meant to produce physical results. Thermostats, DSLRs, smartphones, drones and self-driving cars -- they actually DO something.

That facet of it brings out the ‘Maker’ in us. Prototyping doesn’t just involve mock-up interfaces and random datasets. You get to put something together. Hook your SBC up to a servo and make it open a door on command, or feed your cat.

Where do you and your team get inspiration for your work?
When I start a special project with a new board, I try and think of all the real-world applications for it. I think of all the key components and how they might be used in an industrial or consumer product. A lot of them, no one wants to hear about, because they’re dry, or not in their field of interest or expertise. So I come up with a “toy” or gadget that best uses the key features of these applications.

Sometimes I do the reverse, taking a function and giving it an interesting form, designing a new Geppetto board to meet the function’s requirements. See my mining safety post on my blog.

Who is your technology hero?
It’s hard not to answer with Elon Musk here. He is working insanely hard toward the betterment of the human race and the environment through technology: smart electric cars, solar power, super-speed mass transit and a sustainable space industry, to name a few. He is a man who walks the walk.

When enduring a long day, how do you and your team stay energized? (e.g. energy drinks, chocolate chip cookies, power naps, etc.)
We all have different strategies. Many of us have standing desks. I have an adjustable one. When I’m stumped, or I’m out of juice, I crank my desk up to standing height and grab a coffee and a handful of sour candies. Then I’m good for the afternoon.

Where do you see the IoT industry in 10 years?
Everywhere. Literally. For better or worse, we are going to find computers and wireless communications in everything. Before you know it, I’ll be able to log into my closet and find out which shirt has gone the longest without being worn, or which tie has a secret mustard stain on it. Some “Things” will prove to be fads, new niches will uncover themselves, and the industry could redefine itself once or twice in that time, but smart technology will continue to permeate our lives for the foreseeable future.

Parts of a quadcopter drone on a table
The Gadget Drone AC2 in separate pieces.

What projects are you working on using Qualcomm technologies?
Flight-wise, we have the Aerocore 2 family of boards which are designed to pilot MAVs and house an ARM Cortex-M4 running a PX4 autopilot suite. The AeroCore 2 for DragonBoard 410c is a 96Boards-compliant mezzanine card designed by Gumstix engineers in Geppetto.

Geppetto D2O’s module library also now includes the Qualcomm Atheros™ Gigabit Ethernet controller alongside an RJ45 connector in a module that can be connected to any SoC with RGMII.

Additionally, we have been working on a CSI2 camera for DragonBoard 410c Mezzanine cards - creating a device tree and driver patches for the DragonBoard 410c, and other CE 96Boards, to facilitate the configuration of the 15-pin CSI-2 header on our AC2 board and the CSI2 header module in Geppetto.

Close up on DragonBoard mounted on drone and cardboard box enclosure
The DragonBoard 410c mounted on a hi-tech cardboard enclosure

My DragonBoard 410c drone project had me mounting and connecting it and Aerocore to a quadcopter chassis, setting up the software environment, and performing an indoor test flight live on 96Boards OpenHours. The goal was in part to demonstrate that it worked, but also to deliver some instructional content so users would have an easy time getting their drone project off the ground (pun intended).

I have future plans for using the Gadget Drone AC2 for DragonBoard 410c to bring a belated conclusion to an GPS RTK project I started last year.

What functions do you see drones performing as the technology improves?
What if police vehicles were equipped with MAVs that could be sent ahead in traffic to warn commuters of approaching high-speed pursuits, or track speeding vehicles? How about an online map tool with near-infinite zoom and sub-decimeter accuracy? I can imagine a 0.5 gigapixel multi-view 3D camera array using drone swarms with 13+ MP cameras, processing depth maps and stitching together video feeds in-flight and in real time.

Following your drone project using the DragonBoard 410c, what potential can you see in the Snapdragon Flight™ board?
I'm fond of swarm projects. Packing a quad core SoC, GPS, Wi-Fi and Bluetooth, and PX4 RTOS support together on such a small SBC, along with multiple camera configuration options gives me a flood of ideas for how multiple palm-sized drones could intercommunicate to perform complex tasks. It's also great to see lots of software support for drone-specific applications in the form of Snapdragon Flight.

How did you find working with Qualcomm technologies?
The community support for the DragonBoard 410c is substantial. Having access to that most likely helped me avoid some major pitfalls. Even outside of the 96Boards and QDN forums, if there’s anything you need to know about the Snapdragon® 410 SoC, it’s pretty easy to track down. DragonBoard 410c was a good place to start!