Introduction to GPIOs and libgpio

Fri 10:00am-11:30am

monitor iconSeminar Slidesbriefcase iconLab Materialsgithub iconGithubbookmark iconConference Link

A GPIO, or “General Purpose Input/Output” is a programmable digital pin which allows you to implement either input or output. They have no default behaviour but can be configured in a number of ways. They are often shared with other embedded buses which further requires you to choose how you want to use the pin at any particular time. This class will cover using libgpio and using GPIOs from userspace.


For 2018 we will be using the PocketBeagle.

All the Embedded Apprentice Linux Engineer classes will involve using embedded hardware during the hands-on labs. We will be using the PocketBeagle and a BaconBits cape which are included with the $75 USD registration fee for E-ALE at SCaLE16x and ELC. We will only support doing the labs on the official HW kit; please don't bring your own and try to use that. The HW kits will be delivered to the attendee at the first seminar they choose to attend.

Pocket Beagle and Breadboard

The BaconBits is OSHW and available on github

The Techlab cape has the following capabilities:

• USB Host A

• Reset button

•  I2C accelerometer

•  GPIO Push button

• Power button

Behan Webster

Behan Webster

Linux Foundation Instructor, Converse in Code Inc.

Behan Webster is a Computer Engineer who has spent more than two decades in diverse tech industries such as telecom, datacom, optical, wireless, automotive, medical, defence, and the game industry writing code for a range of hardware from the very small to the very large. Throughout his career, his work has always involved Linux most often in the areas of kernel level programming, drivers, embedded software, board bring-ups, software architecture, and build systems. He has been involved in a number of Open Source projects including being an early contributor to Debian Linux. Currently, Behan is the lead consultant and founder of Converse in Code Inc, an embedded Linux engineer, Yocto Project Ambassador and former project lead working on the LLVMLinux project as well as being a Trainer for the Linux Foundation. He has previously spoken at various Linux Conferences: Collab/OSLS, ELC, ELCE, OSSNA,, SCaLE, FOSDEM, Linaro Connect, LLVMdev. He is under the delusion he can fix most things with a “tiny little script”.

Converse in Code Inc.