BeagleBone Blue Robotics Controller Kit - Linux - Review

Table of contents

RoadTest: BeagleBone Blue Robotics Controller Kit - Linux

Author: avnrdf

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?: null

What were the biggest problems encountered?: The JST connectors: difficult to obtain, expensive and not very easy to use.

Detailed Review:

First: a big thank you to element14 for trusting me with the task of reviewing the BeagleBone Blue Robotics Controller Kit!

 

Unboxing

 

I received it within 10 days of it being dispatched. It was well packed: the actual box was wrapped with bubble wrap for protection.

imageimage

The Beaglebone comes in a nice cardboard box which contains a quick start guide and the Beaglebone Blue (which is in a typical plastic packet with a silica gel packet.) The packet is placed between 2 slabs of foam for protection.

imageimage

 

At first glance, the Beaglebone Blue looks well designed and the top is densely packet with various components. The biggest package on the board the Octavo SIP (which has two stickers on it). The various connectors take up other space. The components seem to be soldered very well and a few of them have a shiny glaze like coating (conformal coating?). With the exception of the the metallic shield of the TI WiLink which had a slight stain on it, all the components looked pristine.

imageimage

 

About the BeagleBone Blue:

 

The BeagleBone Blue is the second newest addition (the PocketBeagle was recently announced) to BeagleBoard.org's portfolio of low cost, single board development SBCs.

Following in the footsteps of the very popular BeagleBone Black, the BeagleBone Blue integrates several additional features: Wi-Fi, BLE and a ton of robotics focused capabilities.

 

To better understand the target audience and need for the BeagleBone Blue, here's a bit of history to put things in context:

The BeagleBone Black has been used in several robotics projects. The Coordinated Robotics Lab at the University of California, San Diego developed a robotics focused 'Robotics Cape' for the BeagleBone Black, which they used to teach students to build robots. A collaboration between UC San Diego & BeagleBone.org, which led to BeagleBone Blue, integrates the features of the robotics cape & BBB into a single device.

 

The biggest components on the BeagleBone Blue are:

 

It also has (some were inherited from the Robotics Cape):

  • 2-cell LIPO charger with cell balancing support & a 4 LED battery gauge.
  • 9-18V charger input
  • 4x DC motor outputs: using 2x Toshiba TB6612FNG motor driver ICs. Each IC supports 2 DC motors with an output current of 1.2A (3.2A peak). The ICs can be controlled using PWM and also support more modes: CW, CCW, short brake & stop, which can be selected using 2 input signals. The drivers of the robotics cape support this functionality (as shown later).
  • 8x 6V (3 pin) servo outputs: for connecting servo motors or ESCs.
  • 4x Quadrature encoder inputs:
  • 9 axis IMU (Inertial Measurement Unit): Invensense MPU-9250 which includes a gyroscope, accelerometer & compass. It is connected via I2C.
  • Barometer: Bosch BMP280
  • Micro USB port
  • Fullsize USB 2.0 Host port.
  • 3 pin connector for  LIPO
  • 12V barrel DC Jack
  • JST connectors for GPIO....
  • User programmable LEDs: G,R,0,1,2,3,WIFI,ON,CHG,25,50,75,100
  • User programmable buttons: I counted 5: POW, RST, MOD, PAU & SD
  • MicroSD card slot.

 

Compared to the BeagleBone Black, the Blue loses the P8 & P9 headers, HDMI port (there is no HDMI framer on the board), JTAG and Ethernet port. The LCD pins of the Octavo SIP haven't been broken out, so if you want to use a display, you'll need to rely on the SPI port.

 

The front of the board (top) is densely populated and has the Octavo SIP, TI WiLink module, all the connectors: JST, DC motor, Quadrature encoder, Servo, Buttons LEDs etc.

The back (bottom) has the microUSB port, microSD card slot, EMMC, 3 big inductors and couple of small ICs, test points and small SMD components.

 

Documentation / Help:

 

The Beaglebone Blue is new, so while documentation is less than that of the Black, it exists. A good place to check is the Strawson Robotics site & GitHub, the BeagleBone & Jason Kridner's Github.

"BeagleBone Robotic Projects - Second Edition" by Dr. Richard Grimmett also covers the BeagleBone Blue.

 

 

Setup:

 

I followed a combination of guides in books and videos on Youtube.

 

Connect a cable to micro USB port on the BeagleBone Blue. It'll power up automatically and show up in Windows as a removable drive which contains a few files and a webpage.

From your web browser, go to BeagleBoard.org - getting-started (make sure use use http), or beaglebone.local : the webpage will automatically detect the board.

imageimage

You can also access the preinstalled Cloud9 IDE (which also provides access to the Linux Shell) from your browser. The next thing I did was connect the board to my Wi-Fi network:

imageimage

 

There are other ways of connecting to the board: the COM port (which works over USB & allows access to the Linux command line), or 192.168.7.2, since the board also shows up as a virtual LAN.

 

Once the board is connected to Wi-Fi, you can disconnect it from the computer and access it remotely via the cloud9 IDE or through SSH.

I used Putty (on Windows 10) to connect to the board via SSH. Login with username 'debian' and password 'temppwd'.

image

 

I also installed a VNC Server (remote desktop viewer), a desktop GUI (Xfce) and WinSCP (for transferring files) as recommended by many guides.

 

I downloaded the Robotics Cape Library from https://github.com/StrawsonDesign/Robotics_Cape_Installer. This provides the necessary files needed to use the BBBlue's onboard peripherals (which are similar to those used by the original robotics cape). It also provides test files.

imageimage

The IMU requires calibration before you can use it. It's easy: just run the file and follow the instructions (which involve rotating & spinning the board).

image

The Servo & DC motor outputs require the board to be powered from the 12V jack or battery. The rest of the functions work without any problem when powered via the microUSB connector.

 

The BeagleBone Blue has 8x 3 pin outputs that can be used for connecting servo motors or ESCs (Electronic Speed Controllers) commonly used in quadcopters.

I tried out the example for servo motors: 

 

It has quite a few options:

 

Here's what's interesting: the -v option allows you to enable the 6V power rail.

The servo connector has 3 pins: GND, Signal and VCC. The signal pin is used to control the servo/ESC by sending it pulses. A typical servo motor is powered through the connector, which means that the VCC rail needs to be enabled to supply 6V to the motor. A ESC uses the same connector, but it usually provides a +5V output through the VCC pin of the connector so that other devices can be powered from the battery.

This creates a conflict of sorts, which is why the BeagleBone Blue disconnects the VCC pin of the Servo motor outputs by default. If you want to power servo motors, you need to enable the power rail.

 

The motor drivers are also easy to use and offer quite a few options: direction of rotation (CW or CCW), PWM and a freewheeling or braking mode.

I tested out a couple of 3 & 6V motors that are commonly found in toy cars, and slightly bigger ones from printers and found them to work satisfactorily.

 

The installation process was pretty straightforward: there are plenty of guides, video tutorials and even books that help out.

 

I'm a bit confused with regards to how the board is powered:

I initially powered the board from the microUSB connector, and then connected the 12V jack. When I disconnected the 12V supply, the board shut down instead of falling back to the 5V USB. I'll need to take a closer look at the schematics and have a look at how it's configured.

 

My gripe with the board is that it uses JST connectors, which are expensive, not very easy to fix and delicate. While the designers of the board might have selected them since they're compact (in order to fit them all on the board) and might be easier to use (instead of a many DuPont connectors), they're not very hobbyist friendly.

 

Here's a problem I had with the JST connector for the DC motors:

 

The male connector got stuck in the socket, and my attempts to pull it out resulted in the socket itself coming out. Luckily, the actual pins are soldered to the board, so I slid the socket back.

 

This might be a problem with the 6 pin JT SH connectors: they're placed very close to one another, and since the socket is a SMD type component which is soldered onto the board, it'll be difficult to fix.

The socket will need to be soldered back manually, which is difficult since the pins are small; and due to clearance issues, the other sockets will need to be removed before that.

image

They're also expensive:

For reference, Sparkfun sells one JST cable/connector for $1.5. The Beaglebone Blue has 16 JST-SH connectors and 5 JST JH, which makes costs quickly add up. I ordered a few from AliExpress which came to $13 for a set of 10 each: JST-SH 4 pin, JST-SH 6 pin & 2 pin JST.

On the other hand, the standard Dupont connectors cost $0.01 each and I don't think they would have used a lot more space.

 

While the designers had their reasons (and I'm no expert), I would have preferred that they used larger, standard connectors by moving a few components to the back of the board.

The board also seems a little delicate because it has so many SMD components (not really any alternative here to be honest). The components on the front get a bit protection because of the ports, but the components on the bottom are exposed.

People using the Beaglebone Blue in applications that subject the boards to stress: rovers, quadcopters etc will need to make sure that the board is well secured and protected.

 

Speaking about drones:

A couple of friends tried building one: from scratch.

We're trying to write our own flight controller firmware for fun because we want to learn how to use accelerometer and gyroscope data to design control loops that keep the drone stabilized.

Building a frame from scratch isn't a very good idea since commercially available ones will lighter and well balanced, but I tried using the BB Blue on it anyway.

image

 

Here's a video of a 'captive' test: the drone was tied down (because there's no leveling or control logic right now) and we gradually increased the duty cycle of the motors.

 

 

I've got a couple of more projects planned for this and I'll update this as I make some progress.

 

I would like to thank element14 once again for giving me a chance to test out the product: testing the BeagleBone Blue was a fun and learning experience!

Anonymous
  • Well, it depends on what applications you run.

     

    I tried plenty of examples using the Robotics-cape library which is pretty low level (hence low CPU & RAM utilization), so I didn't find RAM to be an issue.

    I haven't yet tried using OpenCV but I did use the desktop & browser using using VNC and noticed some performance issues (might be a little worse than the Pi 3).

     

    I don't think it'll be much of an issue with the applications the BBBlue targets, because you're less likely to use complex applications that use a lot of RAM.

  • Excellent review! Can you tell a bit out computing power? Did you at any point feel like the processor wasn't keeping up, maybe due to RAM limitations etc?

  • Can Betaflight be flashed to this controller? Could eliminate need to code flight control software unless that's a desire of yours

  • Since it's connected to the network via WiFi, you can access it if you know its IP address.

     

    Are you sure the BB Blue is connected to the WiFi network, because if the WiFi LED is off, it would mean that it isn't (or that the WiFi is off).

  • hi. u said, that after connecting to the wifi, you plug it out and still can access the beaglebone blue. how is that? I've been trying to access the beaglebone blue without usb to the pc. When i plug it out, the wifi led is dead.

  • That's what I thought too. I think I'll shave them down a bit with a file.

  • Nice review.

    Pity about the connectors, but I wonder if the cheap connectors are a little 'out' in their dimensions which might make them tight.

     

    It's certainly worth noting and someone will no doubt end up in trouble.

     

     

    Cheers

    Mark

  • It didn't seem to be secured to the PCB at all, so it shouldn't be an issue even if it pops off repeatedly. As long as the pins don't get bent or break from the stress, it shouldn't be an issue.

    The JST connectors on the other hand will be nearly impossible to solder back on if they come off the board (for a hobbyist). JST are easy to plug in, but are difficult to remove because of the tight fit. Too much wriggling, and the connector might break.

  • Hey Avner, I had exactly that same problem with the plastic of the motor connector. As you say they slip right back on again. As a general purpose board that's used for lots of different projects this might be a problem. As an embedded controller for a robot or drone perhaps less of an issue.

  • Great test report ! I am also one of the road tester for the Beaglebone blue, you can count me in if you need help with testing the flight controller firmware, if you plan on open-sourcing the code. I have build a few FPV quads and mostly used Beatflight ..

     

    It is sad to see that one of the connectors on your board has poped-out , the smaller version of the JST connectors have always been an issue, and they are same connectors that come with quadcopter flight controller boards..