The Adafruit Proto Plate was tested out both as a prototyping platform and as a home for the BeagleBone Black. Its rubber feet made it stay in place while still having a couple of cables hanging from it and the clever cutouts made it easy to plug things in and out. The LM75 temperature sensor is used as a short demonstration of how nice the BeagleBone is with its full Linux operating system. All in all this is a nice way to keep ongoing projects on your desk while still being able to move it around a bit.
|My BeagleBone related content|
Featured products and equivalent alternatives
|The product links in this article are for an equivalent or the same product sold by an Premier Farnell partner. However none of the products shown or discussed here were bought directly from an Premier Farnell partner.|
Tools and additional parts used during the test
- Small cross-head screwdriver
- Two 4.7 kΩ resistors (pull-ups for the I²C bus)
- USB-to-TTL serial adapter
- A cup of coffee and a 150-ohmer (or two)
Adafruit kit content
Included with the Adafruit kit is the engraved acrylic baseplate, screws, spacers, nuts and rubber feet.
A matching 400 connection point breadboard is shown which is not included in the kit.
Mounting the BeagleBone
Starting by putting the screws into the acrylic base and laying it flat on the table, mounting the BeagleBone wasn't too fiddly.
All nuts except the one by the DC-jack could be threaded on lightly from the top side.
Tightening it down with a screwdriver and my fingernails seems to be good enough.
It's not possible to mount the BeagleBone with the nuts on the bottom, the screws are longer than the rubber feet.
The BeagleBone Black is a full Linux computer and it's therefore likely to have several peripherals connected at the same time. Such as networking, a monitor and a USB-keyboard and mouse. That means easy access to the port and that it's staying in place is important. The intended use of the Proto Plate is making prototyping easier, which is tested by wiring up an external I²C device and taking a temperature reading.
Accessing the connectors
Connecting every possible connector I felt the cutouts in the acrylic base together with the grippy feet made it easy to plug in everything. Even the access to the microSD card was good.
To test if the Proto Plate is pleasant to prototype with a LM75 temperature sensor was connected and read. This is the 741 of digital temperature sensors in that it's not the best you could ever get, but it's been around for so long that some more accurate senors are drop-in replacements for it (plus it's supported in the Linux kernel).
The BeagleBone use 3.3 Volt logic levels and the default GPIO setting makes the I²C-2 bus available on the P9 header (see BeagleBone 101 for more information about this). So I was being very careful when reading the datasheet for the LM75 and making sure all connections are good, twice, before powering it on.
With the BBB powered on again I looked to see if the device was found.
adrian@beaglebone:~$ groups users sudo i2c adrian@beaglebone:~$ i2cdetect -l i2c-1 i2c OMAP I2C adapter I2C adapter i2c-2 i2c OMAP I2C adapter I2C adapter i2c-0 i2c OMAP I2C adapter I2C adapter adrian@beaglebone:~$ i2cdetect -y -r 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- adrian@beaglebone:~$
Making sure we're in the i2c group and are allowed to scan the bus and issue read commands. We see that there's an unconfigured device at address 0x48, that's the default address of the LM75 when A0-A2 are grounded, great!
There's a kernel module for the LM75, so I just loaded that one by issuing a new device command:
adrian@beaglebone:~$ sudo -s root@beaglebone:/home/adrian# echo lm75 0x48 > /sys/bus/i2c/devices/i2c-2/new_device root@beaglebone:/home/adrian# dmesg | tail /.../ [ 731.805506] i2c i2c-2: new_device: Instantiated device lm75 at 0x48 [ 731.831945] lm75 2-0048: hwmon0: sensor 'lm75'
Great! The device was successfully probed by the kernel module and added. So let's read it!
adrian@beaglebone:~$ cat /sys/class/hwmon/hwmon0/name lm75 adrian@beaglebone:~$ cat /sys/class/hwmon/hwmon0/temp1_input 24000 adrian@beaglebone:~$ cat /sys/class/hwmon/hwmon0/temp1_input 26500
It says it's 24 °C, the trailing zeros are because hwmon devices present temperature in millidegree Celsius. By putting my finger on the LM75 I see that the temperature reading is higher and that the sensor is indeed working.
Those weird files I wrote to and read from /sys are sysfs files. When read they contain values from and information about kernel modules, and when written they can change things in the kernel. Linux is beautiful, isn't it?
While there's no direct replacement for the Adafruit product there are plastic cases for the BeagleBone which could be a good alternative, since many of them have cutouts on the top for accessing the headers on the BeagleBone. One example are the cases from Hammond, available in three colors for both the BeagleBone Black (, , ) and Green (, , ).
I bought this Proto Plate hoping that it would be a good companion on my desk while prototyping and learning more about Linux, which I only found to be true from this short test. The BeagleBone Black is a really nice little Linux computer and this product will hopefully make learning more about Linux fun and pleasant.