Library for simple and extensible I/O functionality on BeagleBone Black.
Switch branches/tags
Nothing to show
Clone or download


Library for simple and extensible I/O functionality on BeagleBone Black. Used for the TIDS martian ice drilling robot at Carnegie Mellon University.

The Tartan Ice Drilling System (TIDS), developed by students at Carnegie Mellon University for NASA's Mars Ice Challenge, was a bold and innovative design for a Martian water extraction system and for the future of spaceflight. Our system was controlled by a BeagleBone Black, and due to the rapid growth and continued development of the kernel at that time, no existing library supported all I/O operations. Thus, I developed BBBKit to be the low-level interface between our software and the BeagleBone. The development of BBBKit even led to some novel research into the relatively-undocumented kernel for PWM configuration and the PWM chip mappings. The tids-control software, built on top of BBBKit, controlled the autonomous operation and communication with hardware component drivers.

I released this library as free and open-source software for future development of complex hardware systems using the BeagleBone Black. The library currently supports (kernel v4.14):

  • General purpose input/output (GPIO)
  • Pulse width modulation (PWM)
  • Analog-to-digital convertors (ADC)
  • I2C bus communication
  • DC motors
  • Servo motors
  • Stepper motors


To install the library on a BeagleBone, in the BBBKit/ directory run:

sudo make install
sudo ldconfig