Userland SPI working on BeagleBone - how best to share?

After mucking about with it for entirely too long (6+ unsuccessful kernel compiles will wear you down!) I was just able to get a version of Ubuntu working on the BeagleBone that supports user land SPI.

The way I was able to do it was to read, re-read, and re-re-read Brian Hensley’s tutorial on making SPI work on the BeagleBoard xM ( and then figure out how to translate that to the bone. (Thanks so much Brian!)

Then I tried to apply Craig Berscheidt’s BeagleBone SPI patch ( but it wouldn’t cleanly apply to the 3.2 source so I had to roll a new patch with the same changes. (Thank you Craig!)

As time permits I want to write a tutorial up on how to do all of this, but I also know that over the last few months I’ve seen a number of people request userland SPI access and would like to share my result sooner rather than later.

I was thinking of just putting an image file online somewhere along with instructions on how to install it. However, this is the first time I’ve ever done anything like this (and the first time I’ve compiled a kernel since the late 90s!) so I want to make sure that sharing in this manner is kosher. I know there are a number of inexperienced BeagleBone users like myself who are faunching at the bit to play with SPI and I would love to help them get up and running.

Thanks! (And another BIG thank you to Brian and Craig - you guys saved my project!)

  • Branden


I’d be really interested to see your write up of this as I want to use the SPI interface on my BeagleBone for controlling DACs and reading from an AVR.

I don’t see anything wrong with sharing open source code, as long as you give people credit for their work.


Hey Branden,
Let me know how it goes. Would love to see a write up for the beaglebone using SPI. Sounds like you’re in the same boat I was, I knew there were lots of people out there trying to get this to work. So I wrote my tutorial to help. Glad my tutorial helped you on your quest!


Brian Hensley

I wrote a basic SPI tutorial[1] for the beaglebone and in the future intend to do some more relating to kernel compilation under Angstrom.