So, you decided to wire your console panel to BlinkenBone?
We'll, you'll invest much time into this! So at first you will check that the BlinkenBone stuff is working as expected.
To run BlinkenBoard error free, a trace on the BBB must be cut.
As both the eMMC's serial "Command" and the serial "Clock" wires receive alternating BlinkenBus signal patterns, at some time the eMMC recognizes a valid "read block" command and begins to drive its 4 data wires, disturbing BlinkenBone operation.
Early eMMC could be disabled with a software patch and a boot-time GPIO signal. For me this did not work for the current "Kingston" chip, only solution was to cut off the eMMC "Command" wire from P8.
See here:
Time to do the smoke test:
These LEDs indicators should come to life:
If the LEDs are good, try to log into the BeagleBone. Its hostname is "blinkenbone".
Start your terminal emulator. Under Windows, use putty.exe. From a Linux, use a terminal windows and enter:
ssh root@blinkenbone
The password is empty.
You should see the shell prompt of the BeagleBone's Angstrom Linux:
root@blinkenbone:~#
On the Beaglebone SD card, these software components are installed:
The flat cable between BlinkenCape and BlinkenBoards is connected to some of the "General Purpose I/O pins" (GPIO) on the ARM CPU on the BeagleBone. These pins are shared with many other CPU functions. So there's always the danger that an updated Angstrom Linux activates some driver module which uses these pins too. To check this, do
# cat /sys/kernel/debug/gpio
GPIOs 0-31, gpio:
gpio-6 (mmc_cd ) in lo
GPIOs 32-63, gpio:
gpio-35 (w1 ) in hi
gpio-53 (beaglebone::usr0 ) out lo
gpio-54 (beaglebone::usr1 ) out lo
gpio-55 (beaglebone::usr2 ) out lo
gpio-56 (beaglebone::usr3 ) out lo
GPIOs 64-95, gpio:
GPIOs 96-127, gpio:
The BlinkenBus uses GPIO pins 32-39, 70-77 and 61,62,63. These must not be appear as "used" in this list.
In the example, there's a collision between gpio-35 and a "w1" driver module!
You can check that the driver "blinkenbus.ko" is running with
# dmesg
There should be "BLINKENBUS" messages in the kernel log. Scroll up and search for
[ 13.078460] BLINKENBUS - driver for BlinkenCape and BlinkenBus
[ 13.078460] BLINKENBUS - compiled at Aug 26 2013 16:34:08
[ 13.078491] BLINKENBUS - Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.
[ 13.078491] BLINKENBUS - Web: www.retrocmp.com/projects/blinkenbone
[ 13.078948] BLINKENBUS - Module registered successfully. The device number is (100,0).
[ 13.078948] BLINKENBUS - udev should automatically create a device file with "mknod blinkenbus c 100 0"
[ 13.078979] BLINKENBUS - else check uevents with ????
[ 13.078979] BLINKENBUS - blinkenbus_modules_setup() - module CONTROL_MODULE
[ 13.079010] BLINKENBUS - blinkenbus_modules_setup() - module GPIO1
[ 13.079010] BLINKENBUS - blinkenbus_modules_setup() - module GPIO2
[ 13.079040] BLINKENBUS - blinkenbus_modules_setup() - set pin mux for GPIOs
[ 13.079071] BLINKENBUS - found board ctrl reg @ 0xf with value 0x1
[ 13.079132] BLINKENBUS - board 0x0 has type=0x0, bbuci_timing=0
And there should be the BlinkenBus file interface device:
# ls -l /dev/blink*
crw------- 1 root root 100, 0 Aug 26 14:43 /dev/blinkenbus
The driver must match the Linux version installed:
root@blinkenbone:~# uname -a
Linux blinkenbone 3.2.42 #1 Mon Aug 26 08:16:54 CEST 2013 armv7l GNU/Linux
root@blinkenbone:~# find / -name blinkenbus.ko
/lib/modules/3.2.42/kernel/drivers/blinkenbus/blinkenbus.ko
/lib/modules/3.2.34/kernel/drivers/blinkenbus/blinkenbus.ko
root@blinkenbone:~#
Here you see two drivers installed, but only one is fitting the current Angstrom Linux version 3.2.42.
You can check that the service "blinkenlightd" demon is running with
root@blinkenbone:~# ps | grep blink
80 root 2004 S /home/root/blinkenlightd -c /etc/blinkenlightd.conf -b
102 avahi 2936 S avahi-daemon: running [blinkenbone.local]
272 root 2116 S grep blink