Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: Serial communication between Arduino and Arbotix

  1. Question Serial communication between Arduino and Arbotix

    I've asked this in another post about my project: a powered wheelchair and feeding arm for people with cerebral palsy but it could be difficult to follow that there, so I'm asking here in a more general way because I think it would be more useful for reference:

    I need to send serial data from an Arduino to an Arbotix in a PhantomX Reactor Arm (also receive serial data) The thing is that I would like to send serial data directly using the TX and RX of the Arduino. That's very easy using 2 Arduinos, but I'm not sure which would be the best option in the Arbotix. I just want to use wires to keep the cost as low as possible. Any ideas or help? Thank you very much.

  2. #2
    Join Date
    Sep 2010
    Rep Power

    Re: Serial communication between Arduino and Arbotix

    The arbotix is an arduino derivative board. There are two UARTs on the ATmega644p of the arbotix: one UART is reserved for the dynamixel bus, and the other is shared between the Xbee socket and the FTDI programming port. Both the Xbee socket/header and the FTDI header can be used to connect a plain arduino to the non-dynamixel UART of the arbotix.
    Please pardon the pedantry... and the profanity... and the convoluted speech pattern...
    "You have failed me, Brain!"
    gives free advice only on public threads

  3. #3

    Re: Serial communication between Arduino and Arbotix

    How fast? If it's something like 9600 baud, you can use the SoftwareSerial.

  4. Re: Serial communication between Arduino and Arbotix

    Well, I don't need something extremely fast, I just want to send commands through serial following some inputs devices connected to the Arduino (buttons, gamepad, serial commands from the PC)

    With the Arduinos is as simple as connecting the TX of Arduino1 to the RX of Arduino2, and viceversa, but I'm not sure which pins should I use in the Arbotix from the FTDI (I have no clue about the pins in the Xbee socket)

    Could I have both the wires for the serial communication and the FTDI programmer connected at the same time (the robot is bolted to a tablet, so it would be a pain in the ass to change the FTDI-USB cable each time I have to change anything)

    Also I2C could be a solution but I'm not sure how to do it.

  5. #5

    Re: Serial communication between Arduino and Arbotix

    For the pins, a little google powers or just looking at a breakout board should get you what you need:
    Click image for larger version. 

Name:	09873-01.jpg 
Views:	709 
Size:	125.3 KB 
ID:	5332
    Just match GRN on the breakout to GRN on the arbotix. Keep in mind that the breakout's tx will be the arbotix's rx.

    As for plugging in both the Arduino and the FTDI programmer into the Arbotix's FTDI, It would work just fine, just be careful what you have turned on at the same time. I'd recommend just using an ISP to program the arbotix so you don't have to worry about sharing the FTDI.
    Last edited by Deimos; 01-30-2014 at 02:02 PM.

  6. #6

    Re: Serial communication between Arduino and Arbotix

    The Arbotix is another Arduino and you can do similar things with it. If you look at the Arbotix RoboController manual
    At the last page you will see a schematic. You can get to the RX0/TX0 pins of the processor, either at the FTDI serial connector: which has the pins (gnd, gnd, USB 5v, RXD0, TXD0, RTS) or you can also try to patch in at the XBee connector pins 2 and 3. Don't need the FTDI break out as you would be connecting 5v TTL to 5v TTL. Also make sure to run a common ground.

    But if you program your arbotix using the serial connection and/or you use the XBee on the Arbotix, typically only one of these can be hooked up at a time.

    As Jwatte mentioned, you can also use other IO pins and use the software Serial library. If you go that route, I believe that the Atmega644p has pin change interrupts on all IO pins so you should be able to use any two IO pins.

  7. #7

    Re: Serial communication between Arduino and Arbotix

    This hardware guide for the ArbotiX-M has an updated schematic for the ArbotiX-M, the newest board.

    I think having the Arduino/ArbotiX/Computer all plugged into one FTDI might be problematic - like Deimos said, you need to manage what is powered on/off when programming. The ISP solution is great if you're just using the computer to program the ArbotiX, but it won't work if you're also using FTDI for serial communications back to the tablet.

    Doing something with I2C shouldn't be hard. In the Wire examples in the Arduino IDE, there's a sketch to make the Arduino a Slave device - then you could access is from the ArbotiX using the wire libary.

    I've been toying with the idea of writing some firmware for the Arduino that would make it act like a DYNAMXIEL - that is is would respond to serial commands just like a DYNAMIXEL. That way you could put it on the DYNAMIXEL chain, and you would access data by just querying the 'registers'. It would be very similar to the i2c setup.

    How much data are you looking to send between the Arduino and the ArbotiX?

  8. Re: Serial communication between Arduino and Arbotix

    Hey, that sounds great. One "problem" that I have now is that the Arbotix is not compatible with many shields, like the USB host or microSD. Whenever I use PyPose to change the poses of the arm I have to save them in the ROM of the ArbotiX, I would prefer to use an SDcard. But that's another isue

    Right now the data I'm sending to the ArbotiX are just 1 byte command for each pose (I'm using the ArbotiX in a PhantomX Reactor) But I would like to combine these funtions in the same program of the ArbotiX, so I don't have to reprogram it each time:
    -Reading serial commands sent by the Arduino, on which I have buttons, a Dualshock 3 and many other input devices. These 1 byte commands start poses and sequences.
    -Using PyPose for setting them more easily and also read them from an external SDcard.
    -Fully controlling the arm with a Gamepad or a GUI. The cool thing about using a Dualshock 3 is that it's cheap, it has many axis and analog buttons and it can be used wired or wireless.

    The last 2 functions would use serial too, but with much more complex data that 1 byte, at least packets of 10 bytes. The Arduino Leonardo I'm using is receiving all the inputs, acting as a USB mouse and controlling 3 servos for moving a joystick and a dial mechanically, but if I could control the robotic arm with an Arduino maybe I could just use one Arduino MEGA for everything.

    Maybe all those functions are a bit too much for an Arduino, even a MEGA, and I should keep the robotic arm and the rest of the functions divided in their own microcontrollers. For prototyping I don't mind handling wires around, but for a low cost system for people with dissabilities like I'm developing, I want it to be as easy and robust as possible.

  9. #9

    Re: Serial communication between Arduino and Arbotix

    Can you elaborate a little more on what you would like your final setup to be? Are you planning on removing the computer from the system (or at least have a version that doesn't have the computer)? Do you have any diagrams of your current setup so we can try to figure out where we can simplify and consolidate?

    I've done a little bit of work on getting the arbotix to work with a Dualshock. Because of the size of the firmware required for bluetooth dualshock control, I didn't go to far into trying to get the USB host to work with the ArbotiX. Instead, I used a Arduino Pro Mini and a Mini USB host that connected to a wired dual shock controller - than I passed serial commands back to the arbotix to control an IK engine running on the arbotix. All of that was with a wired connection between the USB host and the dual shock - I need to find a working bluetooth adapter and try to get that working.

  10. Re: Serial communication between Arduino and Arbotix

    Yes, the system is modular, so you can have the PC removed (the PC appears in the feeding video but it was there just because I had the table on me and I couldn't remove the PC by myself ) It has 4 modules:
    -Movement: powered wheelchait with an electromechanical device printed in 3D and using 3 servos (2 x joystick, 1 x speed dial) and a sollenoid for on/off buton.
    -Feeding: using a PhantomX Reactor, 3 bowls, 1 bit valve and an special tablet that can be fixed on a wheelchair or table.
    -Communication: using a laptop, that process the advanced inputs (facial and gaze tracking)
    -Control: an Arduino Leonardo with a USB host shield. I connect to it all the inputs. Buttons using digital inputs, PS3 gamepad using USB host and advanced inputs (facial and gaze tracking) using the PC through microUSB. You choose what do you wan to use.

    There are also 2 submodules:
    -Emergency system: using a push button connected to a sollenoid to turn off the wheelchair and shut the power of the energy submodule off .
    -Energy: 2 x 12V Lead acid batteries from a powered wheelchair are the main source. Each module has it's own battery and the main source powers and recharges everything using one of these 2 ways (user can choose whatever is easier to assembly): ·One 24V to 220V inverter connected to a multiplug for regular power adapters.
    ·Multiple stepdown variable regulators for 24V to each voltage used by each module.

    Right now the movement and control modules are together on the same box and the feeding module is connected directly to the buttons. I want to separate it so I can also send the commands from the PS3 gamepad and other USB input devices directly from the Arduino to the robot arm without a PC. I also have a way to remove the PC and use a tablet or even an ultralight Linux with a miniPC dongle and a laptop screen with a LVDS controller. Also the V2 uses deformable tubes to acommodate the structure to the user...

    Yes it's very modular and very low cost, but to find the right materials and structure, software and joining everything together so anyone could make it own system very easily with the lowest cost possible, it was very hard and time consuming. The idea is to offer it for free and open source, but I want to finish some issues first.

    Some people in the university told me to sell it instead of offer it to the community as open source, but I would like to help people with dissabilities. In fact I'm planning to do a fundraising for a girl with cerebral palsy riding a unicycle for 100km and streaming it online. The project started last year but I have to work and write for my blog, so I have nearly no time to write in the project blog. I'm also developing some other stuff for people with no hands and blind people, but man, time is so scarce! I wish I wouldn't have to sleep

    I'm not sure if I should write all these details here or in another thread. I also have another issue with the emergency submodule, so I will open another thread.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Arbotix - Update Hardware Serial to capabilities of Arduino 1.0.5 capabilities.
    By KurtEck in forum Arbotix, Microcontrollers, Arduino
    Replies: 4
    Last Post: 04-09-2014, 11:31 AM
  2. Question(s) Arbotix and Arduino Software Serial Library
    By Jules in forum Arbotix, Microcontrollers, Arduino
    Replies: 4
    Last Post: 06-21-2012, 10:19 AM
  3. Question(s) RAW Serial Communication
    By ilo_oli in forum Software and Programming
    Replies: 5
    Last Post: 11-01-2011, 05:38 PM
  4. C++ Serial Communication
    By Resilient in forum Software and Programming
    Replies: 14
    Last Post: 02-03-2009, 03:23 PM

Posting Permissions

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