RoadTest: BeagleBone Blue Robotics Controller Kit - Linux
Author: carmelito
Creation date:
Evaluation Type: Development Boards & Tools
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?: BeagleBone Black and all the other variations by beagleboard.org
What were the biggest problems encountered?: Finding the JST connectors to connect to the DC motors.
Detailed Review:
Firstly I would like to thank element14 for the opportunity to participate in this road test, I have always wanted to check out the Beaglebone Blue which is board for robotics enthusiast, after checking out the Beaglebone Black with the L293D Motor driver about a year ago .The Beaglebone Blue gives a robotics enthusiast a lot of functionality from building a simple robotic project which use audio and video to control servos and DC motor to something like a Quadcopter ESCs using Ardupilot. This means that this Roadtest will evolve over the next couple of months as I try out various projects. To get started as part of the road test my aim was to test DC motor and servo functionality on the Beaglebone blue and I also wanted to test adding a USB web cam to stream video. And a future project is to retrofit one of my quadcopters with the Beaglebone Blue as the flight controller and Ardupilot instead of using standard STM32 based board with Beatflight / cleanflight . Or maybe I will wait for element14 to have the PocketBeagle available in US warehouse.
At this point, I also wanted to mention that most of my review is based on the perspective of an hobbyist, so you may find a some biases as I try and make some comparisons with its older brother the BeagleBone Black.
Unboxing
The BeagleBone Blue arrived on time from element14 as promised, and the box that you see in the picture below was well packed in a another element14 box for extra protection. The unboxing experience was nice, and the packaging of the BeagleBone Blue was very similar to the official BeagleBone Blue packaging. Inside the box all the board was nicely placed in anti-static bags, between two sheets of foam type material. And the quick start guide was a nice touch !
Now on further inspecting the board closely I found the flux on some ICs and components that was not clean on some part of the board as you see in the picture below, this meant I had to open up one of my old projects to inspect the Beaglebone Black to check if it had similar issue, but I found it did not. haqreuas part of his road test also pointed out a cold solder joint and some white’ish stains because of bad flux cleaning, but I am happy to report that my board dint have the similar issues.
Edit based on the comment and pictures below by Trent ( ninjatrent, I mistook conformal coating for flux. This meant I had to update the scoring section under Product Performed to Expectations from a 7 to a 9/10.
As part of a quick history lesson, the BeagleBone Blue is based on the Robotics Cape project by Strawson Design and was born as part of a collaboration between UC San Diego and BeagleBoard.org . Basically at a high level the BeagleBone Blue integrates the features of the robotic cape and the BeagleBone black, and combine both these boards together keeping the same form factor the BeagleBone Blue. And this seems to have been made possible by the Octavo System-in-Package(SiP) - Octavo systems OSD3358 ARM cortex-A8, Single Core 1GHz ,which includes the processor, DDR3 memory and other components which makes space for the JST and Servo connectors on the board as you see in the picture below.
Taking the first steps to setup WiFi and SSH
Given that I had experience with the BeagleBone Black earlier and setting it up with a WiFi dongle was simple, I was pretty confident that it would be easy to setup the WiFi on the BeagleBone Blue and run an update and upgrade. So the first thing I did after quick glance at the documentation, was to open the Cloud 9 IDE in Firefox using the url http://192.168.7.2:3000/ide.html and setup the WiFi network using the connmanctl command, and selecting my wifi router.
And then ran the apt-get update and upgrade command and after about 10 mins while I was away I found that the BeagleBone blue was shutdown. Now when I tried to open Cloud 9 IDE I was not able to get it up and running, this meant I had to run nmap on the laptop to check if the BeagleBone Blue received and IP address via DHCP and yes it did. Then after trying a couple of things in vain, I stared scouring the internet for answers, and I then found a couple of blog post on the internet that said, ssh is not enabled by default on the Beaglebone with Debain Jessie, this meant I was stuck . I then had to use Node-RED to fix this. For more info on this and why you need to ENABLE SSH before doing anything else, check out the blog post at - BeagleBone Blue - enable ssh before updating. And as part of the same blog post I have mentioned how to setup USB web cam to stream video.
Here is the file you need to modify to enable SSH
root@beaglebone:/var/lib/cloud9# nano /etc/ssh/sshd_config
and then modifying the following section
from:
PermitRootLogin without-password
To:
PermitRootLogin yes
and then restart the SSH service and you can now login to the Beaglebone Blue from your laptop.
root@beaglebone:/var/lib/cloud9# /etc/init.d/ssh restart
In addition to the P8 And P9 header which have been mostly replaced by JST connector for IO when compared to the Beaglebone black, you will observe that the Beaglebone blue does not have an onboard HDMI cable, which mean if you like a desktop environment you can setup a VNC Server(apt-get install tightvncserver) with the Xfce desktop(apt-get install xfce4), which you can then access using a remote desktop environment tool like Remmina /Tight VNC. This in total will occupy about 310 MB space, and if you don't plan to adding an SD card space is a premium as the board has 4GB flash storage, and I would suggest against doing this if you plan on installing other space hungry! packages like OpenCV.
And if you plan on FTP you programs on to the BeagleBone a good tool to use will be FileZilla which has clients for all operating systems..
Running some basic test
Like its older brother the BeagleBone blue comes with the Cloud9 IDE, which make it easy to test/access all the hardware components like the IMU, servo , DC motors , battery level etc. But in my case I still prefer to use SSH as I can easily copy-paste commands.
The reference that I used to run the above commands are the examples at - https://github.com/StrawsonDesign/Robotics_Cape_Installer/tree/master/examples
And if you just getting started with the Beaglebone blue a good idea is to start off with the getting started tutorial which you can find at - BeagleBoard.org - getting-started . Having said that most of the documentation is geared to the Beaglebone Black and some of it may not be applicable or will be applicable in the future. For example flashing a new Debian image on the BeagleBone blue via an SD card is still being worked upon, but you can still boot via the SD card.
The BeagleBone blue come with the Robotics Cape Library as you see in the screenshot above, but if you plan on using python for programming instead of C, a suggestion would be to use https://github.com/mcdeoliveira/rcpy which is python library with binding for the Robotics Cape Library, which I plan to use for most of my projects. And, another major component that I plan to use in my robotics projectto give it eyes the plan is to use an USB web cam, which meant I had to setup install the fswebcam to take picture and mjpg-streamer to stream video as you see in the screenshots below
Testing using 2 hobby gear motors
One of the project that I plan to do with the BeagleBone is to put together a small 3D printed robotic platform which I am calling the CupBot, which will have the board mounted on top of the wheels and a holder for the 2S lipo battery, and also plan on using USB webcam with OpenCV for color detection. This meant I had to put all the components together and test them together.
Here is a simple python program I am using after install rcpy using https://github.com/mcdeoliveira/rcpy to run the DC motors as shown in the video below
import rcpy import rcpy.motor as motor import time #set state to rcpy.RUNNING rcpy.set_state(rcpy.RUNNING) motor.set(1, 0.25) #running the second motor in the reverse direction motor.set(4, -0.25) time.sleep(20)
To charge the 2S lipo while the board running I used an 12V 3A adapter. And one of most useful features of the BeagleBone blue is the LEDs just above the Lipo JST, which act as a visual indicator to show the amount of charge left in the Lipo, so you know when you just see one LED glowing it is time to give you robot a break! and charge the lipo.
Testing Servos
To test the servo motors using the Beaglebone Blue I used my Project14 Automated Dunker project setup which contains two hobby servos and python program based on rcpy.
Here is a video demo of the servo mechanism in action
For the STL files and Arduino version of the project check out the blog post at - Automated Tea Dunker
Conclusion and Score Justification
Firstly the BeagleBone Blue is an awesome board if you want to get into doing some serious robotics from a standpoint of an enthusiast/a student, and I know UC San Diego runs a course which uses the BeagleBone Blue, for more info check out the link - https://www.ucsdrobotics.org/edumip . And like all other versions of BeagleBone the board is open-source and community supported, which is another reason which motivated me to apply for the RoadTest, so if you need help/have question a good place to post is the BeagleBone form section of the element14 site or the Beaglebone forms on Google+.
Now for the sections product performed to expectations and easy to use, I gave this 7 and 8 respective majorly because of the flux that not properly clean on two sections of the board as you see in the picture above. And the connectors both the 2 pin JST and Battery connector are coming loose, but having said that the LED indicator just below the Lipo connector was a great addition and this is something that other boards that take lipo battery should take a cue from.
With respect to the documentation and support material, since the board is still new the documentation is still evolving and a good place to start is the BeagleBone blue github page which contains the schematics and pinouts and from a software standpoint check out the BeagleBoard.org - getting-started , in addition to the Robotics Cape library and samples.
In addition, as I mentioned earlier this board is loaded with features and I have a couple of project planned over the next couple of months using the boards so please check back on the roadtest review and the element14 Beaglebone forum post section for more updates.
Top Comments
Hi Carmelito,
Great review of the BB Blue.
The substance that looks like flux is a conformal coating.
It will glow under UV light (for inspection).
This is the same on the bottom side of the PCB as well.
…Nice review and demo video's.
DAB
Thanks Trent, for pointing that out and taking the time to post pictures. I will update my scoring section and review, when I get home in the evening..