RoadTest: Beaglebone
Author: migration.user
Creation date:
Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Arduino boards, Raspberry Pi, Cyber Cortex AV
What were the biggest problems encountered?: - The device was shipped with old system images. - There was a lack of documentation for Windows developers
Detailed Review:
Introduction
As a hobbyist and someone who likes developing proof of concept systems for commercial products, I like the BeagleBone. With its numerous accessible I/O ports and it's snappy AM3359v processor, it is a great board for prototyping new devices. Good stuff...
That said, my road was a bit rocky with respect to installing, upgrading and developing with the BeagleBoard. My comments are meant to be helpful for folks taking the same path and possibly helpful to the BeagleBoard folks in order to improve their . All of my issues are easy to resolve and are related to software and documentation. In my limited evaluation, I encountered no problems with the physical hardware.
The system I was evaluating the BeagleBone on was an ASUS G74S with an i7-2670QM, 16GB RAM and a 250GB SSD running Windows 7 64-bit. This might be the source of many of the problems I encountered since many of the instructions seemed to be geared toward Linux users. I could have evaluated the device using an Ubuntu virtual machine however I wanted to test development support under Windows.
My original intent was to test/evaluate the board by porting a simple application to monitor & control a multi-zone home heating system remotely to the BeagleBone. I thought that this was an application it was well suited for. Problems encountered in getting traction with the development environment and time constraints prevent me from conducting this test.
Packaging
The BeagleBone was delivered with:
· the BeagleBone
· a USB cable
· a micro SD card already inserted in the BeagleBone (the label has worn off)
· a micro SD labeled 'Linux SDK'
· a micro SD to SD adapter
The board that I received was revision A3, which is a year & a half old. The current revision of the board is A5.
The only physical documentation that came with the board was the following small slip of paper. (Unfortunately, I was trying to perform the a evaluation under Windows.)
Installation
Since there were no instruction for Windows, I decided to "go for it" and connect the BeagleBone to my computer using the supplied USB cable. After doing so, the BeagleBone came to life with numerous blinking LEDs. Shortly after a new drive appeared on my computer and a README file was displayed in my web browser. The README stated "Before you begin, update to the newest demo image". This proved to be more difficult than expected...:
· On the download sites, there are no instructions for the Windows user. The README suggests you consult the BeagleBoard101 presentation, which tells you to use the Ubuntu Win32DiskImager and 7-zip.
· The primary site for the demo images is Angstrom Distribution BeagleBone demo page. Downloading from this site was extremely slow on my 35Mbps connection. The download speed was 4.0kB/s or lower, for a reported download time of 14 hours for a 160MB file. Yikes! I tried this from several different geographical locations with the same results. Ping times to the Angstrom Distribution server seemed fine. I suspect the problem might be that the distributions are being downloaded from the same system that is used to dynamically build Angstrom releases.
· I tried the BeagleBoard hosted mirror however the mirrored images were several months old. The download speed was OK.
· I tried the Amazon S3 mirrors that are listed on the BeagleBoard site however all the links were broken.
While waiting for the image to download, I decide to play with the release that came with board. Since the device did not come with a 5v power supply, and because I saw TI's Jason Kridners' BeagleBoard video (http://www.youtube.com/watch?v=EEnOWR-GXjk#!), I wanted to give the give the single cable USB approach a try. One of the important steps is to install the USB drivers. This is a place I encountered some lengthy frustration. It turns out that the supplied driver was not compatible with my version of Windows, Windows 7 64-bit, which I believe has the greatest number installations of any of the Windows flavors. The driver didn't work at all. This was a surprising problem. The solution was to download updated drivers from http://beagleboard.org/static/beaglebone/a3/Drivers/Windows/BONE_D64.exe.
In the end, I downloaded and tested using these 3 Angstrom images:
· BeagleBone_Rev_A3_Production_11_26_2011.img
This was the stock image and permitted me to test GateOne
· Angstrom-Cloud9-IDE-eglibc-ipk-v2012.04-core-beaglebone-2012.04.09.img
This was the latest equivalent of the stock image. I primarily tested with this image.
· Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.04-core-beaglebone-2012.04.09.img
I used this image to test running the BeagleBone with a X server running on my computer.
These Linux distributions use opkg for installing & upgrading software. You should perform an "opkg update" prior to changing any packages. I found that performing a "opkg upgrade" to update all installed packages typically lead to the system no longer functioning. I found preferable to selectively upgrade packages as necessary.
Using the single cable USB development approach
I found when using the single cable USB approach, the startup is not reliable / consistent. There were many times that the SD was not mounted on the host system. This is a problem since un-mounting the SD card is what enables the USB-to-Ethernet functionality.
Trying to use the network from the BeagleBone while connected via the USB didn't work and I could not locate instructions for getting this working.
Using the RJ45 Ethernet connection permits outbound connections. This requires a 5v transformer that is not supplied with the device. It should be noted that under Windows you want to hook the BeagleBone through a router/appliance that is servicing DHCP requests. Unlike the instructions for Linux, you do not want to cable your directly to your computer.
The README file has the following important note regarding using the USB connection for power:
"The clock speed of the BeagleBone is determined by if the power source is USB or the 5V adapter at initial boot. It will be 500MHz if the power source is USB and 720MHz if the power source is an adapter."
Cloud 9 IDE
The idea behind the Cloud 9 IDE (and its implementation on the standard BeagleBone boot SD) is a good one. Power up the device, a web browser and start coding. This goal has been achieve however numerous problems I encountered left me feeling that this facility would not be appropriate for any significant development effort. Some of the issues that I encountered were:
· Because Cloud 9 IDE targets HTML5, it behavior is different between browsers. In some browser the behavior and display can be/become erratic.
· I couldn't figure out how to create new projects. The Cloud 9 IDE help was of no help here.
· I found the File->Open... dialog confusing. The Cloud 9 IDE help was of no help here. The net result was that all the files had to reside in /var/lib/cloud9. This is the Open File dialog looked like:
· I had problems in both the old & new images invoking the debugger and setting breakpoints. The newer version is much better however it didn't seem ready for 'prime-time'.
Gate One
I could only get Gate One working if I upgraded it on the stock image. The stock image prior to upgraded had Gate One v0.9-r15 installed which generated the following error in the browser when you navigated to it:
Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
The solution is to upgrade to Gate One v1.0 by issuing the following commands:
opkg update
opkg upgrade gateone
In the newer Angstrom images Gate One v1.0 was installed however it didn't work because of some missing/incorrect python dependency. I never found a fix.
In the end, Gate One turned out to be too slow to be usable. I tested under both Firefox & Chrome.
GNOME
This was purely for fun. I had read and watched videos of folks running application on their BeagleBone, so I want to give it a try. I download and install the Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.04-core-beaglebone-2012.04.09.img. My intention was to using Xming with XDMCP on my computer to login into the BeagleBoard and run application from within the GNOME desktop. The out of the box configuration required me to make the following changes to make this happen:
· Disable PAM
In the file /etc/pam.d/gdm, I commented out the following lines:
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
· I found I had to clear out old GDM files by executing this on my system:
rm -rf /var/lib/gdm/.*
· Enable XD
In both the files /etc/gdm/custom.conf and /etc/gdm/gdm.conf, the following must appear:
[xdmcp]
Enable=true
After these changes are made, you will need to reboot your system.
TI's Code Composer Studio x5.1
Following the instructions at http://beagleboard.org/static/beaglebone/latest/Docs/ccs-jtag-simple.htm I ran into one issue.
It was pretty straight forward downloading CCS 5.1 as long as you don't mind filling out the numerous TI forms. Installation one a bit of a guess on which options to select. It would be great if TI or the BeagleBoard folks would state somewhere which options to select.
I ran into a problem when I attempted to find the location to place the file bbone-target-config.ccxml on my system. There was no directory named CCSTargetConfigurations or similarly named directory on my system. The solution was to (from within CCS) select View->Target Configurations, right click on 'User Defined', selected the menu item 'Import Target Configuration' and select the file downloaded from the BeagleBoard site. You then can continue with the instructions at the "Launch Selected Configuration" step.
Because I didn't find any readily accessible examples of using CCS with the BeagleBone, I had to be satisfied with being able to successfully connect to the device.
Documentation
There is a fair amount of electronic documentation that comes with the device and available online. I found that I needed to often look to sites besides BeagleBoard.org in order to work through problems. BeagleBoard.org doesn't run a forum and relies on Goggle groups (which I am not a fan of) for discussions. I wish that BeagleBoard had a forum of their own.
A page that would have been indispensable f I had it sooner is: http://circuitco.com/support/index.php?title=BeagleBone
Summary
Pros:
· Very versatile and well-designed board
· Low cost, high functionality
· Convenient development from a number of host operating systems
· Variety of operating systems available to run on the device
Cons:
· Documentation for a Windows user was not clear or straight forward.
· The newly received device came with an old image that didn't have drivers compatible with Windows 7 64-bit (a fairly common OS)
· Requires an external power supply (not supplied) when using the RJ45/Ethernet port
Steven Morlock
168 Middlesex Turnpike, Burlington, MA 01803
p: 781 993-5500
e: smorloc at gmail dot com