Getting a bunch of errors with the bioloidcontroller library(again)

I made a post like this a while ago, but I'm getting the same exact problem again, and can't fix it with the same solution. I'm using visual micro(lets you program the arduino using microsoft visual studio) to program the arduino. One weird thing is if I have visual micro use arduino 1.6.4, the version that made it work last time, to compile the code, it compiles, then spits out a bunch of errors. But, if I use the arduino 1.6.4 ide all by itself, it just sits there and says compiling for, I'm pretty sure, ever. Never finishes compiling. When I try using the latest version of arduino and the 1.0.4 version, it finishes compiling and says the same errors I've attached at the bottom.

Here's the code I'm using:

#include <ax12.h>
#include <BioloidController.h>

BioloidController bioloid = BioloidController(1000000);


void setup()
{
  	SetPosition(15, 500);
}

void loop()
{
}

the website for the bioloid controller library:
https://code.google.com/archive/p/arbotix/wikis/BioloidController.wiki

Things I've tried:

  • reinstalled arduino ide
  • installed a different arduino version, 1.0.4
  • reinstalled bioloid controller library
  • restarted computer
  • I've waited about two hours for the arduino 1.6.4 to compile, and like I said, it sits there with the bar half way acrossed, saying, "compiling"
  • used both the visual micro and arduino IDEs.

Almost forgot to say, the bioloid controller library, lets you program dynamixels(wikipedia - "DYNAMIXEL (DXL) is a line-up high performance networked actuators for robots developed by a Korean manufacturer ROBOTIS. ROBOTIS is also the developer and manufacturer for OLLO, Bioloid and DARwIn-OP.") with the arduino.

Oops. Forgot the error message :confused: here it is

Errors.txt (4.45 KB)

Just tried arduino 1.6.3. It compiles, but it returns the same error. Any ideas anyone?

Those undefined register names seem to be for the ATmega2560 and similar processors. Looks like something thinks you have an Arduino MEGA.

void AX12::setRX () {
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega328P__)
   bitClear(TIMSK0, TOIE0);   // deshabilita la interrupción del timer0 (nota: esto es sólo para entornos Arduino)
   bitClear(UCSR0B, TXEN0);   // deshabilita la trasmisión
   bitSet(UCSR0B, RXEN0);     // habilita la recepción
   bitSet(UCSR0B, RXCIE0);    // habilita la interrupción de recepción
#elif defined (__AVR_ATmega1280__) || defined (__AVR_ATmega128__) || defined (__AVR_ATmega2560__)
   bitClear(TIMSK0, TOIE0);   // deshabilita la interrupción del timer0 (nota: esto es sólo para entornos Arduino)
   bitClear(UCSR1B, TXEN1);   // deshabilita la trasmisión
   bitSet(UCSR1B, RXEN1);     // habilita la recepción
   bitSet(UCSR1B, RXCIE1);    // habilita la interrupción de recepción
#elif defined (__AVR_ATmega8__)

Thanks for your help :slight_smile: I just tried compiling it with the 'arduino mega or arduino mega 2560' selected as the board and it worked! Would I have to just go with my arduino mega, or is it possible to use my arduino uno? If it is possible, would it be simple enough for a noob, like me, to do? Thanks.

quentinthornton:
Thanks for your help :slight_smile: I just tried compiling it with the 'arduino mega or arduino mega 2560' selected as the board and it worked! Would I have to just go with my arduino mega, or is it possible to use my arduino uno? If it is possible, would it be simple enough for a noob, like me, to do? Thanks.

The MEGA compile uses registers that the UNO does not have so you can't run the MEGA code on the UNO. I don't know why the UNO compile is including code intended for the MEGA (and thus failing to compile) but if you can track that down and fix it you should be able to use the UNO if the sketch will fit.

Okay. Thanks so much for your help!

Hallo.

I loaded the next Arduino-program in a ArduinoMega and the Digital Servo driver shield( from DFRobot)on it but nothing happens to the AX12-15. I am using a wrong Board?
Thanks
Jack

#include <ax12.h>
#include <BioloidController.h>

BioloidController bioloid = BioloidController(1000000);

void setup()
{
SetPosition(15, 500);
}

How did you determine that your servo ID was 15?

It looks like you are setting a 0-to-300-degree servo to 500 degrees?!?

Hallo Johnwasser.

Thanks for reply. Controle ID=15 : works by a other program!

Have tryd: SetPosition(15, 150); but it is stil not working.

How further?

Thanks.
Jack.