Struggling to find detailed information on how to make capes for the BBB

Take a look at the BB-UART1 DTS script (in /lib/firmware), it shows how to configure UART1 for use. Once you’ve compiled the .dtbo for your cape and put it in /lib/firmware, if you have the right part # and revision info in the EEPROM, then the capemgr should properly load the .dtbo and you’ll see a device /dev/ttyO1 (for UART1). At this point, you can test it by running minicom and configuring the port to use /dev/ttyO1 (with 115200,8,N,1 with no flow control etc) and you should be able to talk to your ATmega.

NOTE: There’s a 60 delay when the capemgr tries to load your dtbo as there’s a race condition with the eMMC cape (which contains the root filesystem!) and it hangs for 60 seconds before giving up, loading the eMMC cape which allows filesystem access. At that point, it does retry your cape and will load the .dtbo, but the 60s hang is very annoying. There were some patches applied a while ago, but I don’t know if they have shown up yet. Besides, changing the 60 timeout requires a custom kernel.

The only other option to skip the 60s delay is to compile your dtbo into the kernel – I haven’t yet figured out how to do this!

Hope this helps,


Hi guys, thanks for the replies. If I get back to this project at some point I’ll definitely try what you suggest. The hardware is still lying on my desk in front of me so I might give it a shot later toda.