BEETROOT V1.0 FIRMWARE USER GUIDE FOR BRUNEL HAND


Beetrootlogobg.png

OVERVIEW

In this tutorial you'll learn how to download and install the Beetroot V1.0 firmware for the Brunel robotic hand. Beetroot is the version of hand control firmware designed for the Brunel hand, running on the Chestnut PCB.

This tutorial is for:

You will need:


GETTING BEETROOT

Beetroot includes full serial control of individual fingers and grip patterns, muscle control through EMG sensors and provides a framework for adding extra functionality to the hand (nunchuck/joystick control).

DOWNLOADING AND INSTALLING ARDUINO

  1. Navigate to the Arduino downloads page.
  2. Download and install the latest version of Arduino (click here for Arduino installation tutorial).
Downloading the Arduino software

Downloading the Arduino software

DOWNLOADING AND INSTALLING BEETROOT

  1. Navigate to the Beetroot repository on GitHub.
  2. Click the Clone or download button.
  3. Click Download Zip.
  4. Navigate to the downloaded .zip file Beetroot-master.zip and extract it.
  5. Open the file at Beetroot-master\Beetroot-master\OpenBionics_Beetroot\OpenBionics_Beetroot\OpenBionics_Beetroot.ino.
Downloading the Beetroot repository

Downloading the Beetroot repository

Locating the Arduino file in the Beetroot repository

Locating the Arduino file in the Beetroot repository

The Beetroot file open in Arduino

The Beetroot file open in Arduino

Installing the Finger Library – FingerLib.h

FingerLib.h is designed to run on a number of different Arduino compatible microcontrollers, and manages all of the low level motor control and handling of timers, it also includes various example sketches for simple finger control applications.

This library can be used to control up to 6 fingers, which allows control of an Open Bionics robotic hand. Each finger is actuated using an Actuonix (aka Firgelli) linear actuator, where the position is determined by using the embedded linear potentiometer.

FingerLib.h has been designed to closely resemble the Servo.h library, to allow ease of implementation for hobbyists and researchers.

  1. Within Arduino, select Sketch -> Include Library -> Manage Libraries.
  2. Search for ‘FingerLib’.
  3. Select the latest version and click Install.
Locating ‘Manage Libraries’ in the menu

Locating ‘Manage Libraries’ in the menu

Locating and installing ‘FingerLib’

Locating and installing ‘FingerLib’

Installing the Chestnut Board

  1. Within Arduino, select File -> Preferences.
  2. Copy and paste the following URL into the box labelled Additional Board Manager URLs: https://open-bionics.github.io/package_openbionics_index.json
  3. Click OK.
  4. Select Tools -> Boards -> Boards Manager.
  5. Search for ‘Open Bionics’.
  6. Select the latest version and click Install.
  7. Click Close.
  8. Select Tools -> Board -> Chestnut.
  9. Select the Chestnut PCB.
Adding an additional board in the preferences menu

Adding an additional board in the preferences menu

Locating and installing ‘Open Bionics Boards’

Locating and installing ‘Open Bionics Boards’

Locating the Chestnut Board in the menu

Locating the Chestnut Board in the menu

Uploading to the Brunel Hand

  1. Plug the USB micro into the hand and the computer.
  2. Plug the hand into the supplied 12V DC jack.
  3. Within Arduino, select Tools -> Port -> COM## (Select the COM## port number that is not COM1, see here for more details).
  4. Select the Upload button (alternatively select Sketch -> Upload).
Brunel Hand with DC jack and USB micro attached

Brunel Hand with DC jack and USB micro attached

Locating the appropriate port

Locating the appropriate port

‘Upload’ button

‘Upload’ button


USING BEETROOT

INITIAL CONFIGURATION

Once the Beetroot firmware has been uploaded to the Brunel hand, connect to the hand via the Serial Monitor by selecting the Serial Monitor button (alternatively select Tools -> Serial Monitor). 

‘Serial Monitor’ button

‘Serial Monitor’ button

On the bottom right hand corner of the Serial Monitor, set the baud rate to 115200, and set the line ending to 'Carriage Return'.

Upon successfully connecting to the hand via the serial connection, you should be greeted with a printout of the firmware version number and board name, followed by a list of possible serial commands. These commands consist of a single character followed by a number (e.g. F0, G3, P50) and are case sensitive.

After displaying the serial commands, the hand should then enter a demo mode. This mode can be by entering 'A0' (without the apostrophes). Entering 'A0' toggles whether demo mode will run on start-up (default enabled), and entering 'D' will run demo mode once.

Whenever the hand is connected, if you enter '?' the hand will print the list of serial commands, and entering 'A1' will toggle whether the serial commands display on start up.

Note that all characters must be uppercase.

Enter '?' to view the list of serial commands

Enter '?' to view the list of serial commands

HAND TYPE

To select whether the Brunel hand is a left or right hand, enter one of the following commands:

  • H1            Set the hand to be RIGHT
  • H2           Set the hand to be LEFT
  • H             View whether the hand is LEFT or RIGHT

GRIP CONTROL

With demo mode disabled, if you enter 'G0' the hand should close in grip pattern 0 (Fist Grip), if you enter 'G0' again it should toggle the hand open in grip pattern 0.

Try this with 'G#' where # is a number between 0 - 5 to perform a movement in a selected grip pattern. The grip patterns are as follows;

  • G0 Fist Grip
  • G1 Palm Grip (Fist Grip but with thumb extended)
  • G2 Thumbs Up
  • G3 Point
  • G4 Pinch
  • G5 Tripod (Pinch using both index and middle fingers)

For a more detailed explanation on the grip patterns and how to create custom grips, visit this tutorial.

Enter 'G0' to toggle the hand between open and close in 'Fist Grip'

Enter 'G0' to toggle the hand between open and close in 'Fist Grip'

FINGER CONTROL

The fingers can be controlled individually by entering 'F#', where # is a finger number between 0 - 4.

  • F0 Thumb
  • F1 Index
  • F2 Middle
  • F3 Ring
  • F4 Pinky
Enter 'F0' to toggle the thumb between open and close

Enter 'F0' to toggle the thumb between open and close

 

POSITION AND SPEED MODIFIERS

You can also set the fingers or a grip to move to a certain position between open and close (P0 – P100). For example, if you enter 'G5 P50', the hand will move to the halfway position of the Tripod grip. If you enter 'F1 P10', the Index finger move to the ‘almost fully closed’ position (P0 = fully open, P100 = fully closed).

The speed can also be controlled by using the ‘S###’ modifier, where ‘###’ is a number between 0 – 255. For example, if you enter ‘G0 S230’, the hand will move in the Fist grip at a speed of 230.

Note that the fingers may not move at a speed < 200 due to the fingers being under load.

The direction can be controlled by adding the modifier of ‘O’ or ‘C’ for Open or Close respectively.

The position, speed and direction modifiers can all be applied to a grip (G#) or a finger (F#) command at the same time.

Examples

 'F1 P50 S240' will move the index finger to the middle position at a speed of 240. Note, speed will be remembered until a new speed command is set. 

'G1 O S220' will move the hand in the Hook grip in the open direction at a speed of 220.

Move the index finger to be 50% closed at a speed of 240

Move the index finger to be 50% closed at a speed of 240

ADVANCED SETTINGS

Using an advanced command 'A#' allows different modes and settings to be configured, a full list of these settings are displayed by entering the '?' command.


Muscle Control & extras

For details on the different control methods available within Beetroot V1.0, visit our Control Methods Guide.

IMPORTANT NOTE ABOUT I2C

The headphone jack is set to use ADC signals by default. If you wish to use I2C across the headphone jack, you will need to write digital pin 10 (PA21) to be LOW.

pinMode(10, OUTPUT);

digitalWrite(10, HIGH);

Within Beetroot, this can be configured by writing the following:

setHeadphoneJack(JACK_I2C);