The Beaglebone Black is similar to the Raspberry Pi, but with more GPIO and onboard Analogue in (that has a max of 1.8V)


It is highly recommended you setup a KILL SWITCH that will terminate the negative and/or the positive to the SSRs. This is a safety feature and allows you to kill the SSRs without going through the UI

Do not use a kernel above 3.8 at the moment, you may need to install the 3.8 kernel on a newer image: sudo apt-get install linux-image-3.8.13-bone67


You must set the “Gpio_definitions” property on launch

java -Dgpio_definitions=extras/beaglebone.json -jar Elsinore.jar

Otherwise the system will error

GPIO Naming

The Pinout number is different between RaspberryPi and Beaglebone.

For Beagleboard Black Pinout:

BeagleboardBlack has multiple banks, for example GPIO2_2, this translates to physical pin 66, banks are separated by 32 outputs per bank.


For beagleboard to get OneWire support, and GPIO control, you need to install a Device Tree Overlay file. I have added these under the support directory.

The dts file will show you the pin, but it’s P8.11

To compile the overlay:

sudo dtc -O dtb -o /lib/firmware/w1-00A0.dtbo -b 0 -@ w1.dts

Or copy the w1-00A0.dtbo in the support directory to /lib/firmware (as root), the above command copies the file for you.

Login as root (such as “sudo su”) and run

echo w1 > /sys/devices/bone_capemgr.8/slots

Note: bone_capemgr.8 may be bone.capemgr.9 depending on your setup

I have also provided a sample jGPIO created overlay for GPIO0_7 as a pinout (jgpio-00A0.dtbo) which can be used in the same was as above

sudo cp extras/jgpio-00A0.dtbo /lib/firmware/

echo jgpio > /sys/devices/bone_capemgr.8/slots


jGPIO is a Java application I made to generate the Device Tree Overlays based on a JSON configuration file. At the time of writing this affects Linux Kernel 3.8 and above. The raspberry Pi doesn’t support Kernel 3.8 yet.

Creating a custom Overlay

If you want to create a DTC file for custom GPIO pinout, you can read the instructions in the jGPIO repository

But the synopsis is

java -cp Elsinore.jar -Dgpio_definition=extras/beaglebone.json jGPIO.DTOTest <List of GPIO pins>

For example

java -cp Elsinore.jar -Dgpio_definition=extras/beaglebone.json jGPIO.DTOTest GPIO0_7

Will recreate the default GPIO0_7 file as jgpio-00A0.dto.

java -cp Elsinore.jar -Dgpio_definition=extras/beaglebone.json jGPIO.DTOTest GPIO0_7 GPIO0_8 GPIO1_12

Will create a Device Tree Overlay with GPIO0_7, GPIO0_8 and GPIO1_12 for export.

You will then need to compile this as the same as above but for jgpio:

sudo dtc -O dtb -o /lib/firmware/jgpio-00A0.dtbo -b 0 -@ jgpio-00A0.dto

This places the compiled file in the /lib/firmware directory.

Using extra/ will always export the jgpio overlay to the cape manager, if there is a firmware file for it.

Analogue inputs

There is already a precompiled AIN DTO for the Beaglebone Black, BB-ADC, as above:

echo BB-ADC > /sys/devices/bone_capemgr.8/slots

To Activate them.