Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

Some questions about cm-510

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
14 postsPage 1 of 1
14 postsPage 1 of 1

Some questions about cm-510

Post by 4sk8ters » Fri Feb 08, 2013 9:16 am

Post by 4sk8ters
Fri Feb 08, 2013 9:16 am

Hi guy,
I have some questions for you about connecting cm-510 with gyros and with GPS.

1-Quite all gyros I've seen on the net are digital and communicate through SPI or I2C protocol. Does cm-510 support SPI or I2C protocols?
2-How can I connect a GPS module to cm-510? All GPS module I've seen communicate through a serial connection (NMEA protocol).

Thank you for your responses and sorry for my bad english!
Hi guy,
I have some questions for you about connecting cm-510 with gyros and with GPS.

1-Quite all gyros I've seen on the net are digital and communicate through SPI or I2C protocol. Does cm-510 support SPI or I2C protocols?
2-How can I connect a GPS module to cm-510? All GPS module I've seen communicate through a serial connection (NMEA protocol).

Thank you for your responses and sorry for my bad english!
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by planius » Fri Feb 08, 2013 10:52 am

Post by planius
Fri Feb 08, 2013 10:52 am

1 - you need an analog gyro. For example https://www.sparkfun.com/products/11341. You need a voltage divider, as the CM-510 supplies 5V, not 3.3V
2 - not sure, but if its a serial connection you can simply use the ZigBee/Bluetooth port and implement the NMEA protocol on the CM-510 (if you use BioloidCControl as your firmware)
1 - you need an analog gyro. For example https://www.sparkfun.com/products/11341. You need a voltage divider, as the CM-510 supplies 5V, not 3.3V
2 - not sure, but if its a serial connection you can simply use the ZigBee/Bluetooth port and implement the NMEA protocol on the CM-510 (if you use BioloidCControl as your firmware)
planius
Savvy Roboteer
Savvy Roboteer
Posts: 40
Joined: Wed Jul 20, 2011 5:33 am

Post by 4sk8ters » Fri Feb 08, 2013 11:39 am

Post by 4sk8ters
Fri Feb 08, 2013 11:39 am

planius wrote:1 - you need an analog gyro.

Now I've seen that it's possible to implement SPI (or I2C) via software configuring single pins as input or output.

planius wrote:2 - not sure, but if its a serial connection you can simply use the ZigBee/Bluetooth port and implement the NMEA protocol on the CM-510 (if you use BioloidCControl as your firmware)

Mmmm...the problem is that te ZigBee is just use for the communication between cm-510 and PC. I have to connect a GPS to cm-510 and read latitude and longitude, and then send these infos to the PC through Zigbee.
Can I connect the GPS to the pins of a 5-pin port of the cm-510 and read data?
planius wrote:1 - you need an analog gyro.

Now I've seen that it's possible to implement SPI (or I2C) via software configuring single pins as input or output.

planius wrote:2 - not sure, but if its a serial connection you can simply use the ZigBee/Bluetooth port and implement the NMEA protocol on the CM-510 (if you use BioloidCControl as your firmware)

Mmmm...the problem is that te ZigBee is just use for the communication between cm-510 and PC. I have to connect a GPS to cm-510 and read latitude and longitude, and then send these infos to the PC through Zigbee.
Can I connect the GPS to the pins of a 5-pin port of the cm-510 and read data?
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by 4sk8ters » Fri Feb 08, 2013 5:51 pm

Post by 4sk8ters
Fri Feb 08, 2013 5:51 pm

Can I use the PC link (serial cable) jack to connect a GPS to the cm-510 with a self-made cable that conect TX/RX/GND pins of the GPS to a 3.5 jack?
Can I use the PC link (serial cable) jack to connect a GPS to the cm-510 with a self-made cable that conect TX/RX/GND pins of the GPS to a 3.5 jack?
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by planius » Fri Feb 08, 2013 10:08 pm

Post by planius
Fri Feb 08, 2013 10:08 pm

Have a look at the CM-5 schematic here: http://robosavvy.com/forum/viewtopic.php?t=2631, the CM-510 appears to be the same, just using the ATMega 2561

The serial port is PD2/3 (RX/TX) and the switch between ZigBee and PC link is PD5/6. PD7 can be used to indicate a cable has been plugged into the PC serial connector.

You don't have access to the SPI (PB0-3) pins without opening the controller and directly soldering cables onto the pins.

The I2C pins (PD0/1) are used otherwise (START button).

I don't think that a CM-510 is the best solution for your application.
Have a look at the CM-5 schematic here: http://robosavvy.com/forum/viewtopic.php?t=2631, the CM-510 appears to be the same, just using the ATMega 2561

The serial port is PD2/3 (RX/TX) and the switch between ZigBee and PC link is PD5/6. PD7 can be used to indicate a cable has been plugged into the PC serial connector.

You don't have access to the SPI (PB0-3) pins without opening the controller and directly soldering cables onto the pins.

The I2C pins (PD0/1) are used otherwise (START button).

I don't think that a CM-510 is the best solution for your application.
planius
Savvy Roboteer
Savvy Roboteer
Posts: 40
Joined: Wed Jul 20, 2011 5:33 am

Post by 4sk8ters » Mon Feb 11, 2013 9:45 am

Post by 4sk8ters
Mon Feb 11, 2013 9:45 am

planius wrote:Have a look at the CM-5 schematic her], the CM-510 appears to be the same, just using the ATMega 2561

The serial port is PD2/3 (RX/TX) and the switch between ZigBee and PC link is PD5/6. PD7 can be used to indicate a cable has been plugged into the PC serial connector.

You don't have access to the SPI (PB0-3) pins without opening the controller and directly soldering cables onto the pins.

The I2C pins (PD0/1) are used otherwise (START button).

I don't think that a CM-510 is the best solution for your application.

The problem is that i have to work on an existing robot and the control board is a cm-510! I have to control the robot from the PC through Zigbee and I have to know the position of the robot in the world, so I have to use a GPS module, but all GPS modules uses a serial connection!
planius wrote:Have a look at the CM-5 schematic her], the CM-510 appears to be the same, just using the ATMega 2561

The serial port is PD2/3 (RX/TX) and the switch between ZigBee and PC link is PD5/6. PD7 can be used to indicate a cable has been plugged into the PC serial connector.

You don't have access to the SPI (PB0-3) pins without opening the controller and directly soldering cables onto the pins.

The I2C pins (PD0/1) are used otherwise (START button).

I don't think that a CM-510 is the best solution for your application.

The problem is that i have to work on an existing robot and the control board is a cm-510! I have to control the robot from the PC through Zigbee and I have to know the position of the robot in the world, so I have to use a GPS module, but all GPS modules uses a serial connection!
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by 4sk8ters » Mon Feb 11, 2013 10:10 am

Post by 4sk8ters
Mon Feb 11, 2013 10:10 am

planius wrote:Have a look at the CM-5 schematic here, the CM-510 appears to be the same, just using the ATMega 2561

The serial port is PD2/3 (RX/TX) and the switch between ZigBee and PC link is PD5/6. PD7 can be used to indicate a cable has been plugged into the PC serial connector.

You don't have access to the SPI (PB0-3) pins without opening the controller and directly soldering cables onto the pins.

The I2C pins (PD0/1) are used otherwise (START button).

I don't think that a CM-510 is the best solution for your application.

Do you think it's quite complicated to open the controller and directly solder cables onto the pins? I have seen that PE0 and PE1 are not used and they provide serial communication (RXD0 and TXD0)...
planius wrote:Have a look at the CM-5 schematic here, the CM-510 appears to be the same, just using the ATMega 2561

The serial port is PD2/3 (RX/TX) and the switch between ZigBee and PC link is PD5/6. PD7 can be used to indicate a cable has been plugged into the PC serial connector.

You don't have access to the SPI (PB0-3) pins without opening the controller and directly soldering cables onto the pins.

The I2C pins (PD0/1) are used otherwise (START button).

I don't think that a CM-510 is the best solution for your application.

Do you think it's quite complicated to open the controller and directly solder cables onto the pins? I have seen that PE0 and PE1 are not used and they provide serial communication (RXD0 and TXD0)...
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by planius » Mon Feb 11, 2013 11:05 am

Post by planius
Mon Feb 11, 2013 11:05 am

No idea, just open the case and have a look at the PCB. If the ATMega chip is a BGA package there is nothing you can do, but if it's QFP and you have a steady hand and a good soldering iron then it should be possible...
No idea, just open the case and have a look at the PCB. If the ATMega chip is a BGA package there is nothing you can do, but if it's QFP and you have a steady hand and a good soldering iron then it should be possible...
planius
Savvy Roboteer
Savvy Roboteer
Posts: 40
Joined: Wed Jul 20, 2011 5:33 am

Post by Fritzoid » Mon Feb 11, 2013 2:38 pm

Post by Fritzoid
Mon Feb 11, 2013 2:38 pm

Before you get any deeper into this project, are you aware that GPS units perform poorly indoors? In addition the effective accuracy of GPS location is quite low for most robotic applications. Typical error factors can be 2 meters or more in any direction.

So a GPS unit is really only useful for outdoor applications where the robot will cover a lot of ground.
Before you get any deeper into this project, are you aware that GPS units perform poorly indoors? In addition the effective accuracy of GPS location is quite low for most robotic applications. Typical error factors can be 2 meters or more in any direction.

So a GPS unit is really only useful for outdoor applications where the robot will cover a lot of ground.
Fritzoid
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

Post by 4sk8ters » Mon Feb 11, 2013 3:06 pm

Post by 4sk8ters
Mon Feb 11, 2013 3:06 pm

Fritzoid wrote:Before you get any deeper into this project, are you aware that GPS units perform poorly indoors? In addition the effective accuracy of GPS location is quite low for most robotic applications. Typical error factors can be 2 meters or more in any direction.

So a GPS unit is really only useful for outdoor applications where the robot will cover a lot of ground.

The robot is an outdoor robot for rough terrain environment.
Fritzoid wrote:Before you get any deeper into this project, are you aware that GPS units perform poorly indoors? In addition the effective accuracy of GPS location is quite low for most robotic applications. Typical error factors can be 2 meters or more in any direction.

So a GPS unit is really only useful for outdoor applications where the robot will cover a lot of ground.

The robot is an outdoor robot for rough terrain environment.
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by 4sk8ters » Wed Feb 13, 2013 11:34 am

Post by 4sk8ters
Wed Feb 13, 2013 11:34 am

I have seen that it's possible to implement a software UART.
Now, GPS module transmits NMEA sentences one time per second. The module has a pin that sends a pulse each second. How can I sense the pulse with the cm-510 and than begin to read from the software UART?
I have seen that it's possible to implement a software UART.
Now, GPS module transmits NMEA sentences one time per second. The module has a pin that sends a pulse each second. How can I sense the pulse with the cm-510 and than begin to read from the software UART?
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by Fritzoid » Wed Feb 13, 2013 2:57 pm

Post by Fritzoid
Wed Feb 13, 2013 2:57 pm

Technically this is possible. Each of the ports on the CM-510 has a pin that's wired to a digital port on the AVR (PA2-PA7). Any one of these could be used to implement a software driven serial line. You would have to be using embedded-C, with all that entails, to even think about implementing this kind of functionality.

The Arduino library has built-in support for type of software serial lines you are asking about. Because the CM-510 and the Arduino Mega are based on the same architecture, it should be possible to port the Arduino code over to your application. I don't know of anyone who has tried this and there could be other problems that make it unworkable but it may be worth looking into.
Technically this is possible. Each of the ports on the CM-510 has a pin that's wired to a digital port on the AVR (PA2-PA7). Any one of these could be used to implement a software driven serial line. You would have to be using embedded-C, with all that entails, to even think about implementing this kind of functionality.

The Arduino library has built-in support for type of software serial lines you are asking about. Because the CM-510 and the Arduino Mega are based on the same architecture, it should be possible to port the Arduino code over to your application. I don't know of anyone who has tried this and there could be other problems that make it unworkable but it may be worth looking into.
Fritzoid
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am

Post by 4sk8ters » Wed Feb 13, 2013 3:42 pm

Post by 4sk8ters
Wed Feb 13, 2013 3:42 pm

Fritzoid wrote:Technically this is possible. Each of the ports on the CM-510 has a pin that's wired to a digital port on the AVR (PA2-PA7). Any one of these could be used to implement a software driven serial line. You would have to be using embedded-C, with all that entails, to even think about implementing this kind of functionality.

The Arduino library has built-in support for type of software serial lines you are asking about. Because the CM-510 and the Arduino Mega are based on the same architecture, it should be possible to port the Arduino code over to your application. I don't know of anyone who has tried this and there could be other problems that make it unworkable but it may be worth looking into.

The problem is...how can I synchronize GPS and microcontroller? The GPS has a pin that pulse each second, but the controller hasn't any pin that support external interrupts!
Fritzoid wrote:Technically this is possible. Each of the ports on the CM-510 has a pin that's wired to a digital port on the AVR (PA2-PA7). Any one of these could be used to implement a software driven serial line. You would have to be using embedded-C, with all that entails, to even think about implementing this kind of functionality.

The Arduino library has built-in support for type of software serial lines you are asking about. Because the CM-510 and the Arduino Mega are based on the same architecture, it should be possible to port the Arduino code over to your application. I don't know of anyone who has tried this and there could be other problems that make it unworkable but it may be worth looking into.

The problem is...how can I synchronize GPS and microcontroller? The GPS has a pin that pulse each second, but the controller hasn't any pin that support external interrupts!
4sk8ters
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Feb 08, 2013 9:07 am

Post by Fritzoid » Wed Feb 13, 2013 4:43 pm

Post by Fritzoid
Wed Feb 13, 2013 4:43 pm

Looks like the only interruptable pin that's connected on the CM-510 is PB5 which is being used to drive the buzzer. You would have to make a hardware modification to go this route.

Another option is to use a dedicated AVR that sits on the dynamixel bus and can respond to read and write commands. This AVR runs custom code that extracts the position data from the GPS strings and stores it in a "control table" maintained locally. The CM-510 treats this AVR like any other dynamixel device and could read the stored information.

In the past I have used the HUV I/O Board to implement this sort of thing. http://blog.trossenrobotics.com/tag/bioloid-io-board/
Looks like the only interruptable pin that's connected on the CM-510 is PB5 which is being used to drive the buzzer. You would have to make a hardware modification to go this route.

Another option is to use a dedicated AVR that sits on the dynamixel bus and can respond to read and write commands. This AVR runs custom code that extracts the position data from the GPS strings and stores it in a "control table" maintained locally. The CM-510 treats this AVR like any other dynamixel device and could read the stored information.

In the past I have used the HUV I/O Board to implement this sort of thing. http://blog.trossenrobotics.com/tag/bioloid-io-board/
Fritzoid
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 331
Joined: Mon Dec 18, 2006 1:00 am


14 postsPage 1 of 1
14 postsPage 1 of 1