Last week I took delivery of the new Beaglebone Black (see HERE and HERE). If you like the RasPi you'll love this too, only more so.
Since I'm a pathological accessory maker for such devices, I have started prototyping a new "Cape" (as the BBB fraternity call them, the rest of the world would probably think of the word "shield").
Starting from the basics, I simply grabbed a bit of perfboard and soldered some header pins to it so I can connect it to the P9 socket on the BBB. Unlike the arduino or raspi, the BBB specification gives some guidelines about how you should design your cape. For starters you need to put an EEPROM chip on there from which the BBB will read configuration information at bootup time. This config tells the BBB what pins are in use by the cape and what the cape is called and who manufactured it among other things.
I had a Microchip 24LC256 handy so I tried that and it worked just fine after a few false starts (which I quickly rectified by RTFM!). That's one thing you have to do... READ the manual first... all of it...every single page. I'm not kidding. It'll save head-scratching later. It's only 100 pages so it's a lunch-hour's read. IMHO it's overly wordy and doesn't get to the point fast enough, a bit too waffly for my liking, but hey.
My cape currently has nothing on it but the EEPROM which is set to address 0x54 (A0, A1, A2 = low, low, high). I verified that the EEPROM was visible to the BBB by running these commands...
root@beaglebone:~/code/anw_cape# echo "fish" > /sys/bus/i2c/devices/1-0054/eeprom
root@beaglebone:~/code/anw_cape# cat /sys/bus/i2c/devices/1-0054/eeprom | xxd | head -n 3
0000000: 6669 7368 0aff ffff ffff ffff ffff ffff fish............
0000010: ffff ffff ffff ffff ffff ffff ffff ffff ................
0000020: ffff ffff ffff ffff ffff ffff ffff ffff ................
Removing the cape and repeating this fails with device timeouts, replacing it again and it succeeds.
Great! So the next step is to generate a well-formatted EEPROM content file that the BBB can understand and use to configure itself and then interact with the cape when it gets more features later on.
Back to the manual for a bit more reading...
Since I'm a pathological accessory maker for such devices, I have started prototyping a new "Cape" (as the BBB fraternity call them, the rest of the world would probably think of the word "shield").
Starting from the basics, I simply grabbed a bit of perfboard and soldered some header pins to it so I can connect it to the P9 socket on the BBB. Unlike the arduino or raspi, the BBB specification gives some guidelines about how you should design your cape. For starters you need to put an EEPROM chip on there from which the BBB will read configuration information at bootup time. This config tells the BBB what pins are in use by the cape and what the cape is called and who manufactured it among other things.
I had a Microchip 24LC256 handy so I tried that and it worked just fine after a few false starts (which I quickly rectified by RTFM!). That's one thing you have to do... READ the manual first... all of it...every single page. I'm not kidding. It'll save head-scratching later. It's only 100 pages so it's a lunch-hour's read. IMHO it's overly wordy and doesn't get to the point fast enough, a bit too waffly for my liking, but hey.
My cape currently has nothing on it but the EEPROM which is set to address 0x54 (A0, A1, A2 = low, low, high). I verified that the EEPROM was visible to the BBB by running these commands...
root@beaglebone:~/code/anw_cape# echo "fish" > /sys/bus/i2c/devices/1-0054/eeprom
root@beaglebone:~/code/anw_cape# cat /sys/bus/i2c/devices/1-0054/eeprom | xxd | head -n 3
0000000: 6669 7368 0aff ffff ffff ffff ffff ffff fish............
0000010: ffff ffff ffff ffff ffff ffff ffff ffff ................
0000020: ffff ffff ffff ffff ffff ffff ffff ffff ................
Removing the cape and repeating this fails with device timeouts, replacing it again and it succeeds.
Great! So the next step is to generate a well-formatted EEPROM content file that the BBB can understand and use to configure itself and then interact with the cape when it gets more features later on.
Back to the manual for a bit more reading...