Braccio Shield V4 error

I have a Braccio Shield V4 that came with the Robotic Arm Kit. It is connected to an Elegoo Uno R3. It used to work but now the Error LED on the shield is lit when I plug it in. It stays lit if I reset the board or unplug all the connectors to the robotic arm. How can I troubleshoot the board?

I have also tried different Braccio sketches. They all upload with no errors in the IDE.

The robotic arm has no movement.

Any ideas?

Fred

First post the datasheet for the shield, then post the code in code tags.

I could not find a datasheet on the shield. It didn't come with the download or I didn't see it.

I used the sketch from the examples that was posted so I didn't think I needed to post it. Also, it was working with the sketch when I first got it.

Now, the Error LED stays on when I power up the shield whether it is attached to the Arduino or not. I can't find any documentation on the shield. I wish I knew what the error meant.

#include "BraccioV2.h"

Braccio arm;

/*

Advanced_Movement.ino - version 0.1

Written by Lukas Severinghaus

Demonstrates advanced movement of the arm utilizing whole arm addressing,

in both absolute and relative positions, custom speeds, direct control,

and manual updating.

This library is free software; you can redistribute it and/or

modify it under the terms of the GNU Lesser General Public

License as published by the Free Software Foundation; either

version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public

License along with this library; if not, write to the Free Software

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

*/

//Set these values from the min/max gripper joint values below.

#define GRIPPER_CLOSED 85

#define GRIPPER_OPENED 20

void setup() {

Serial.begin(9600);

Serial.println("Initializing... Please Wait");//Start of initialization, see note below regarding begin method.

//Update these lines with the calibration code outputted by the calibration program.

arm.setJointCenter(WRIST_ROT, 90);

arm.setJointCenter(WRIST, 90);

arm.setJointCenter(ELBOW, 90);

arm.setJointCenter(SHOULDER, 90);

arm.setJointCenter(BASE_ROT, 90);

arm.setJointCenter(GRIPPER, 50);//Rough center of gripper, default opening position

//Set max/min values for joints as needed. Default is min: 0, max: 180

//The only two joints that should need this set are gripper and shoulder.

arm.setJointMax(GRIPPER, 100);//Gripper closed, can go further, but risks damage to servos

arm.setJointMin(GRIPPER, 15);//Gripper open, can't open further

//There are two ways to start the arm:

//1. Start to default position.

//arm.begin(true);// Start to default vertical position.

//This method moves the arm to the values specified by setJointCenter

//and by default will make the arm be roughly straight up.

//2. Start to custom position.

arm.begin(false);

//Set each joint immediately to a set position

arm.setAllNow(90, 90, 45, 45, 90, 50);

//This method allows a custom start position to be set, but the setAllNow method MUST be run

//immediately after the begin method and before any other movement commands are issued.

//NOTE: The begin method takes approximately 8 seconds to start, due to the time required

//to initialize the power circuitry.

Serial.println("Initialization Complete");

//Set the base rotation joint to move at 3x speed. This may cause the arm to jerk.

arm.setDelta(BASE_ROT, 3);

}

void loop() {

//Begin loop

//Set the arm to absolute positions on all joints

arm.setAllAbsolute(45, 135, 135, 135, 90, 50);

//Below is an example of running some other code while waiting for the arm to move.

//Exit the while loop after 3000ms has passed

int endTime = millis() + 3000;

while(millis() < endTime){

//Run some code

Serial.println("Working while waiting for movement...");

//Update the arm

arm.update();

//Delay a short time to prevent the updates from happening too close together.

delay(10);

}

//Set all the arm joints to relative positions

arm.setAllRelative(90, -90, -90, -90, 0, 0);

//Delay for 3000ms while still updating movement, by default every 10ms

arm.safeDelay(3000);

}

void openGripper(){

//Set the gripper position to open

arm.setOneAbsolute(GRIPPER, GRIPPER_OPENED);

}

void closeGripper(){

//Set the gripper position to closed

arm.setOneAbsolute(GRIPPER, GRIPPER_CLOSED);

}

Let's try this again. First, use the IDE/Tools Auto Format then IDE/Edit/Copy for Forum (Markdown) and paste it in a reply.

I just did a search (Google) on "braccio shield v4 datasheet" and found the datasheet and schematic.

I am not into robotics so I will let someone else follow up with you now that the basic info is known.

Hi @doxrus2. Make sure the switch on the shield is in the position marked "5V" on the shield PCB:

📷

Braccio_Shield_V4_front.png by Arduino - CC BY-SA 4.0 (annotated)

Make sure you have the 5 V power supply that came with the kit connected to the barrel jack on the shield, and powered:

@doxrus2 Please, clean up post #1...

I could not find a datasheet on the shield.

I checked the switch and it is set to 5v. Error LED still on.

I have used other AC adapters but nothing more than 9v.

I found out that the code has to be highlighted before clicking on the Code button.

The code has to be in code tags. In the IDE, after you do Tools/Auto Format, do Edit/Copy for Forum.

OR

In a reply, click the < CODE /> button above, then press whatever keystroke is for PASTE.

I see you have done that sort of, why is the code double spaced? In fact it has way too much vertical white space.

In post 4 I told you how to find the datasheet.

Tedious, I am outa here!

Version 1.

From here: https://arduino.stackexchange.com/questions/80674/problems-with-green-twi-i2c-port-on-arduino-braccio-shield

Incorrect, read below. Reading the "Braccio-Shield-V1.pdf" (** version 1 **) in this post, it looks like the RED LED is lit if the power supply voltage is below 5vdc, and the GREEN LED is lit if the power supply voltage is at or above 5vdc. Both LEDs are on the same biasing line to TR3.

A note on the schematic... (translated from Italian): if the V_EXT is greater than 6.6V on the 5V comes out of the op-amp, the Red LED comes on and TR2 is open ("se la V_EXT è maggiore di 6.6V sul dall'operazionale esce 5V, si accede il led Rosso e TR2 è aperto")

It is important to note that Arduino later created a different robot arm module named Braccio++. Despite the similar name and nature, the electronics and firmware of the two products are very different. This means that information you find about the Braccio++ will not be relevant for the original Braccio.

So make sure to check which specific product any information you find is for.

Thanks on the instructions on the code.

Tinkerkit Braccio Robot Arm Datasheet.pdf (263.1 KB)

Braccio-Shield-V1 Schematic.pdf (60.9 KB)

I'm a little slow.

I do have the original Braccio Robotic Arm kit.

On your schematic, lower-left (RED LED):

English: "if the V_EXT is greater than 6.6V on the 5V comes out of the op-amp, the Red LED comes on and TR2 is open"

Italian: "se la V_EXT è maggiore di 6.6V sul dall'operazionale esce 5V, si accede il led Rosso e TR2 è aperto"

I see no indication with power greater than 5vdc/RED LED is "bad."

Does this mean that it has to be a 5V supply and no higher?

I was using a 9V battery.

When I connect the Uno to the computer using the USB cable, the error LED does not light and the Ok LED does light, but when I connect the 9V battery to the shield, the arm moves a little and then the error LED turns on and the Ok LED turns off.

I've just bumped into this topic...

The data sheet on post #13, (assuming it is exactly the hardware version that you have) says to use the 5V power adapter that comes to the kit. It also states that the kit has an on-board voltage regulator, but it doesn't specify the maximum voltage possible. Nevertheless:

this will always be a poor choice for anything that has a motor due to its low capacity. If you've been trying to turn your kit on for a couple of hours with the same battery, this battery is probably already gone.

EDIT: the schematics in post #13 brings an MPM3610 as the Step-Down voltage regulator. The datasheet for this part says it will accept 4.5 to 21V (but the higher the voltage above 5V, the worse the idea becomes).

Did your kit come with a power supply? If so, try using that.

It did come with one but I misplaced it. The picture shown above is the kit that I have.
I guess I will need to find it.

Would a 6v lantern battery work?

Maybe. The original power supply could provide 5A at 5V. How much current can this 6V battery provide?

The best option is to find the power supply that came with the kit, or buy one with the same characteristics.

Unless I misunderstand (which is possible because I find the style of this schematic a bit difficult to follow), the MPM3610 is only used for power of the shield's circuitry and does not power the motors. The motors can only be powered by one of the following sources:

  • A power supply less than 6.6 V connected to the barrel jack on the shield
  • The 5V pin on the Arduino header (with the switch in the "5V" position)
  • A power supply less than 6.6 V connected to the VIN pin on the Arduino header, or to the barrel jack on the Arduino board (with the switch in the "VIN" position)

The last of these would also supply power to the Arduino board via its voltage regulator, so the power supply voltage needs to be high enough to give the board what it needs. For a board like the Elegoo Uno R3 that has a standard linear regulator, this is going to be tricky since the minimum recommended voltage would likely be 7 V. So I don't see this option as being very viable. Better off just using the barrel jack on the shield and powering the Arduino board separately. Some might consider using a higher voltage supply on the barrel jack of the Arduino board/VIN pin with the switch on the shield in the 5V position. However, this means powering all those motors via the linear voltage regulator on the board, which won't work out.

So the hardware doesn't provide any support for a higher voltage power supply.