Results 1 to 7 of 7

Thread: Arbotix controller

  1. Arbotix controller

    Dear forumers
    I am considering purchasing an Arbotix board because I feel it is a great board for programming, especially because it combines Dynamixel bus and I/O
    However I have few questions and I hope that some people can help me here:
    In the ax12.cpp code I can see:
    · That you define SERVO_STIK, what is the purpose here?
    · There is also PORTG but in the Atmega 644P there is no PORTG defined in the documentation, can you tell me more about it?
    Is it possible to use an Arbotix controller in slave mode? For instance connect the Arbotix to a CM5xx Robotis controller?
    If the Arbotic Controler is used in a slave mode how to foward AX12 messages to other modules (daisy chain)?
    Does the bootloader is compatible with the Arduino IDE?
    Thank you very much for answering my questions and sorry for the approximate English
    Fabrice (from France)

  2. #2
    Join Date
    Sep 2010
    Location
    ಠ_ಠ
    Posts
    2,315
    Images
    27
    Rep Power
    279

    Re: Arbotix controller

    Fergs would know for certain, but...
    There would appear to be a new arbotix on the way (he's using a prototype in Maxwell) and I think it is logical to assume that it will be based on the Arduino Mega using an ATmega2560, which does have a PORTG. Those several lines of code added to the arbotix-0014 AX-12 library (since arbotix-0013) are only compiled if certain conditions exist (defining the board as being an ARBOTIX_PLUS or whatever SERVO_STIK may be).

    As to using the Arbotix as a dynamixel bus slave device I have to defer entirely to Fergs as the only functioning code I know of is from Jon Hylands' slave device boards (as I mentioned before on the Robotis QnA site). Just a reminder, the dynamixel bus is a bus with a daisy-chain connection between devices. All devices on the bus share the same communication, positive voltage source, and ground signals. If an arbotix were connected to a CM-5/510/700 over the dynamixel bus, there would be no forwarding necessary as all devices (CM-5/510/700, the arbotix slave, and any AX-12/18 or AX-S1) on the bus will receive the packets. It is up to each individual device to determine if the packet was meant for it and what it should do with the packet (discard or parse/respond).
    Last edited by tician; 04-01-2011 at 02:15 AM. Reason: can't type
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    [git][mech][hack]
    gives free advice only on public threads

  3. #3
    Join Date
    May 2008
    Posts
    2,228
    Images
    155
    Rep Power
    129

    Re: Arbotix controller

    I had typed in a response, but not hit enter about 4 hours ago...
    Quote Originally Posted by fabrice View Post
    · That you define SERVO_STIK, what is the purpose here?
    This is a prototype board definition, it has no bearing on the ArbotiX

    There is also PORTG but in the Atmega 644P there is no PORTG defined in the documentation, can you tell me more about it?
    Again, more prototyping, you'll note that it is wrapped in #ifdef/#endif statements such that it is not included when using a 644p-based processor.

    Is it possible to use an Arbotix controller in slave mode? For instance connect the Arbotix to a CM5xx Robotis controller?
    If the Arbotic Controler is used in a slave mode how to foward AX12 messages to other modules (daisy chain)?
    It is certainly possible, however we do not have a library for such things. You might look at our ROS sketch as it sort of implements such an idea. If you want to interface between two dynamixel buses, you will need to add circuitry.

    Does the bootloader is compatible with the Arduino IDE?
    Yes, as are all libraries.

    -Fergs

  4. Re: Arbotix controller

    tician, inxfergy

    Thank you very much for your answers

  5. Re: Arbotix controller

    Dear Inxfergy

    I tried to implement the Arbotix software suite on an Atmega Mega (2560). I changed the existing HardwareSerial files (put in comments all variables associated to HardwareSerial1 and also the SIGNAL(SIG_USART1_vec)).

    Regarding the connection with the AX12+ I put together RX1/TX1 to the data PIN of the AX12+.

    Sending data to the AX12+ is working fine. However I am not able to read anything sent by the AX12+. Indeed when I print the value of ax_tx_Pointer I can see that it is incremented (almost all the time actually) but there is no value in the buffer.

    I guess I am not the first one coming on the forum with such a problem ... but do you have any idea of what i did wrong?

    Thank you very much for your help

    Fabrice

  6. #6

    Re: Arbotix controller

    I got similar results when trying to use pyPose with the Ardunio Mega (really the Mega ADK board). It transmits or (Sets) the AX 12 just fine, however the receive fails. Note this only works if I put TX1 pin to the AX-12 data pin (as the Arbotix schematic shows with the 644). If I also connect the RX1 pin, then nothing happens.

    I 1st just commented out (in HardwareSerial.cpp)

    //#if defined(USART1_RX_vect)
    //SIGNAL(SIG_USART1_RECV)
    // SIGNAL(USART1_RX_vect)
    // {
    // unsigned char c = UDR1;
    // store_char(c, &rx_buffer1);
    // }
    //#elif defined(SIG_USART1_RECV)
    // #error SIG_USART1_RECV
    //#endif


    *** Note commenting out above code allowed it to compile in Arudunio-022 (otherwise we were making the ADK board work with Arduino-0018)

    //#if defined(UBRR1H)
    // HardwareSerial Serial1(&rx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRE1, U2X1);
    //#


    Any tips? Thanks.

    Ben

  7. #7

    Re: Arbotix controller

    The Receive Interrupt does seem to be firing, ISR(USART1_RX_vect) - I turn off an LED when the interrupt fires. The signal on the scope for writing to the AX-12 register on pypose 'Capture' seems good (haven't crossed check all the bits for valid AX-12 message, but I doubt that is the problem. I bet it some lame UART setup difference between the two chips - looks like I'll spend some time understanding what is trying to be done. When I cross-referenced all the code related to the UART, like bitSet(UCSR1A, U2X1); they seem to match the data sheet for the 644 and the mega. Cheers.

    Ben

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Simulating the ArbotiX controller in Gazebo?
    By Pi Robot in forum ROS - Robot Operating System
    Replies: 7
    Last Post: 06-20-2011, 07:41 PM
  2. Question(s) Arbotix or CM-510 Controller?
    By Jaybots in forum Arbotix, Microcontrollers, Arduino
    Replies: 13
    Last Post: 02-26-2011, 09:52 PM
  3. ArbotiX-ROS Roadmap
    By lnxfergy in forum ROS - Robot Operating System
    Replies: 10
    Last Post: 02-10-2011, 10:50 AM
  4. Question(s) Newby Arbotix hassles
    By Slugman in forum Robot Computers
    Replies: 29
    Last Post: 11-15-2010, 08:52 AM
  5. RC & Serial Servo Controller Kit
    By Al1970 in forum Garage Sale
    Replies: 0
    Last Post: 01-10-2009, 12:39 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •