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

Should I make the jump???

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
36 postsPage 2 of 31, 2, 3
36 postsPage 2 of 31, 2, 3

Post by pepperm » Wed Aug 30, 2006 9:08 pm

Post by pepperm
Wed Aug 30, 2006 9:08 pm

If Robotis would either modify this board to bring all or most of the I/O pins out to a connector like they have done in their CM-2 and CM-3 boards or provide an expansion module such as you described, I would buy it in a heartbeat. However my guess is we won't see this happen any time soon.


I'm thinking of another approach to bringing out all the I/O from the mega128 to pins. I am thinking of producing a an equivalent of the serial servos but with I/O at that point. Using this method one will be able to use the Behaviour control programming software and, when we see it, the tokeniser software described on the forum. You could use "C" too of course.

So, has anyone any suggested I/O requirements of such a serially connected device? e.g. output for normal servos, input from gyros, proximity sensors.......any suggestions?

I hope to produce a small PCB that hosts a Mega8 (like the AX12s) and provides connections for the I/O.

Mark
If Robotis would either modify this board to bring all or most of the I/O pins out to a connector like they have done in their CM-2 and CM-3 boards or provide an expansion module such as you described, I would buy it in a heartbeat. However my guess is we won't see this happen any time soon.


I'm thinking of another approach to bringing out all the I/O from the mega128 to pins. I am thinking of producing a an equivalent of the serial servos but with I/O at that point. Using this method one will be able to use the Behaviour control programming software and, when we see it, the tokeniser software described on the forum. You could use "C" too of course.

So, has anyone any suggested I/O requirements of such a serially connected device? e.g. output for normal servos, input from gyros, proximity sensors.......any suggestions?

I hope to produce a small PCB that hosts a Mega8 (like the AX12s) and provides connections for the I/O.

Mark
pepperm
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 190
Joined: Sat Jul 01, 2006 1:00 am

Post by Juha » Thu Aug 31, 2006 10:25 am

Post by Juha
Thu Aug 31, 2006 10:25 am

Pev wrote:I have just had a thought. All we would need is a simple processor that could do 2 things:

1. interface with Digital and Analogue sensors
2. support a serial interface of 57K
.
.
Anyway it is literally a thought I just had sitting hear so feel free to beat holes in it I am sure I have missed something??


Well, since you probably have to program some logic to this processor,
why don't you just stick in a few transistors to make the serial connection half-duplex, and stick this module in to the same chain with the servos (what I've been talking about in the other thread) ?

This way you leave the serial interface on the controller still free.

You could do almost what ever you want with this: you might have multible i/o channels (*) on the same module, sensors like gyros, you could for example make a bridge to i2c bus etc....

* = Like you probably know, there are so many cool chips which use i2c.. this solution could even share the same address-space as cm-5's bus. So you would not even know, if you're talking to a module in the i2c bus or the cm-5's half-duplex serial bus.

Pev wrote:Sorry this is all a bit off topic - apologises for Hijacking thread


You shouldn't worry about that :) not that many new messages per day in this forum.. and most of us seem to be talking about same things.
Pev wrote:I have just had a thought. All we would need is a simple processor that could do 2 things:

1. interface with Digital and Analogue sensors
2. support a serial interface of 57K
.
.
Anyway it is literally a thought I just had sitting hear so feel free to beat holes in it I am sure I have missed something??


Well, since you probably have to program some logic to this processor,
why don't you just stick in a few transistors to make the serial connection half-duplex, and stick this module in to the same chain with the servos (what I've been talking about in the other thread) ?

This way you leave the serial interface on the controller still free.

You could do almost what ever you want with this: you might have multible i/o channels (*) on the same module, sensors like gyros, you could for example make a bridge to i2c bus etc....

* = Like you probably know, there are so many cool chips which use i2c.. this solution could even share the same address-space as cm-5's bus. So you would not even know, if you're talking to a module in the i2c bus or the cm-5's half-duplex serial bus.

Pev wrote:Sorry this is all a bit off topic - apologises for Hijacking thread


You shouldn't worry about that :) not that many new messages per day in this forum.. and most of us seem to be talking about same things.
Juha
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 30
Joined: Fri Aug 25, 2006 1:00 am
Location: Helsinki, Finland

Post by limor » Thu Aug 31, 2006 11:37 pm

Post by limor
Thu Aug 31, 2006 11:37 pm

pepperm wrote:I'm thinking of another approach to bringing out all the I/O from the mega128 to pins. I am thinking of producing a an equivalent of the serial servos but with I/O at that point. Using this method one will be able to use the Behaviour control programming software and, when we see it, the tokeniser software described on the forum. You could use "C" too of course.

So, has anyone any suggested I/O requirements of such a serially connected device? e.g. output for normal servos, input from gyros, proximity sensors.......any suggestions?

I hope to produce a small PCB that hosts a Mega8 (like the AX12s) and provides connections for the I/O.

Mark


I happened to have had a long discussion about this today with a professor from the local university robotics department for an upcoming research project. The idea is to create a small PCB that would have an Atmel controller that can talk RS485 and be a citizen on the Bioloid servo bus. (this has been done before by RoboCup team Humboldt - check out this paper). The big question is, as was mentioned before, what it will the board have. We discussed a couple of scenarios:

Scenario1 (not so ambitious):
1) powered by the Bioloid bus 12V.. so needs voltage convertor (+ regulator?)
2) accelerometer and gyro (like the board sold by sparkfun)
3) pin-outs for A/D and I2C (whatever the small Atmel provides)
4) anything else?

Scenario2 (ambitious):
1) powered by the Bioloid bus 12V.. so needs voltage convertor (+ regulator?)
2) accelerometer and gyro (like the board sold by sparkfun)
3) pin-outs for A/D and I2C (whatever the small Atmel provides)
4) Hirose mating connector linked to the RS485 bus and to the gyro&accelerometer. To allow to plug a gumstix onto the board and use it instead of the small Atmel.

Yes.. the second scenario does sound very ambitious and the ultimate agenda is to replace the functionality of the CM5 :twisted:
There will be some switch that disables the Atmel if the Gumstix is plugged into the board. So you either use the board as a sensor entity on the bus or as a sensor entity + a master that replaces the CM5

Replacing the CM5 should be possible as long as the CM5 is not doing anything undocumented to communicate with the servos.
(the source code is available with the exception of the boot-loader so there shouldn't be any nasty surprizes but you never know..)

This second scenario means that for 100$ you get gyro, accellerometer and possibly more sensors added to the bus and for 250$ you basically transform the Bioloid into an autonomous Linux enabled robot (with bluetooth and 400mhz & 64mb memory).


Anyone wants to help design this board ?
pepperm wrote:I'm thinking of another approach to bringing out all the I/O from the mega128 to pins. I am thinking of producing a an equivalent of the serial servos but with I/O at that point. Using this method one will be able to use the Behaviour control programming software and, when we see it, the tokeniser software described on the forum. You could use "C" too of course.

So, has anyone any suggested I/O requirements of such a serially connected device? e.g. output for normal servos, input from gyros, proximity sensors.......any suggestions?

I hope to produce a small PCB that hosts a Mega8 (like the AX12s) and provides connections for the I/O.

Mark


I happened to have had a long discussion about this today with a professor from the local university robotics department for an upcoming research project. The idea is to create a small PCB that would have an Atmel controller that can talk RS485 and be a citizen on the Bioloid servo bus. (this has been done before by RoboCup team Humboldt - check out this paper). The big question is, as was mentioned before, what it will the board have. We discussed a couple of scenarios:

Scenario1 (not so ambitious):
1) powered by the Bioloid bus 12V.. so needs voltage convertor (+ regulator?)
2) accelerometer and gyro (like the board sold by sparkfun)
3) pin-outs for A/D and I2C (whatever the small Atmel provides)
4) anything else?

Scenario2 (ambitious):
1) powered by the Bioloid bus 12V.. so needs voltage convertor (+ regulator?)
2) accelerometer and gyro (like the board sold by sparkfun)
3) pin-outs for A/D and I2C (whatever the small Atmel provides)
4) Hirose mating connector linked to the RS485 bus and to the gyro&accelerometer. To allow to plug a gumstix onto the board and use it instead of the small Atmel.

Yes.. the second scenario does sound very ambitious and the ultimate agenda is to replace the functionality of the CM5 :twisted:
There will be some switch that disables the Atmel if the Gumstix is plugged into the board. So you either use the board as a sensor entity on the bus or as a sensor entity + a master that replaces the CM5

Replacing the CM5 should be possible as long as the CM5 is not doing anything undocumented to communicate with the servos.
(the source code is available with the exception of the boot-loader so there shouldn't be any nasty surprizes but you never know..)

This second scenario means that for 100$ you get gyro, accellerometer and possibly more sensors added to the bus and for 250$ you basically transform the Bioloid into an autonomous Linux enabled robot (with bluetooth and 400mhz & 64mb memory).


Anyone wants to help design this board ?
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by inaki » Fri Sep 01, 2006 10:39 am

Post by inaki
Fri Sep 01, 2006 10:39 am

The source code for CM5 is available ? Where ?
The source code for CM5 is available ? Where ?
inaki
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 233
Joined: Sun Mar 06, 2005 1:00 am
Location: EH

Post by limor » Fri Sep 01, 2006 1:49 pm

Post by limor
Fri Sep 01, 2006 1:49 pm

inaki wrote:The source code for CM5 is available ? Where ?


I'll dump what i've learned so far about this:

Example.c (updated version of the code previously posted here on the August Robotis update thread) actually contains the meat of the CM5 communications with the servos and the PC. The code is pretty straightforward (if you have AVR programming experience) showing a simple protocol on top of asyncronous interrupt driven communication using the USART interface at 1mbps.

This RS485 is just like RS232 except that there are multiple entities attached to the communication line.

The protocol is simple: send a packet to with a servo-ID in the header, wait for an answer. The CM5 is acting as master, he doesn't expect some servo to suddenly send him any request (like ethernet). The servos on the bus listen to all communications and wait for their ID to be called and then respond.

I'm hoping this kind of 1mbps async serial communication is also possible using the linux tty drivers for the Gumstix's Intel PXA255. If it is, then the Gumstix can replace the CM5 and act as master to control the servos.
inaki wrote:The source code for CM5 is available ? Where ?


I'll dump what i've learned so far about this:

Example.c (updated version of the code previously posted here on the August Robotis update thread) actually contains the meat of the CM5 communications with the servos and the PC. The code is pretty straightforward (if you have AVR programming experience) showing a simple protocol on top of asyncronous interrupt driven communication using the USART interface at 1mbps.

This RS485 is just like RS232 except that there are multiple entities attached to the communication line.

The protocol is simple: send a packet to with a servo-ID in the header, wait for an answer. The CM5 is acting as master, he doesn't expect some servo to suddenly send him any request (like ethernet). The servos on the bus listen to all communications and wait for their ID to be called and then respond.

I'm hoping this kind of 1mbps async serial communication is also possible using the linux tty drivers for the Gumstix's Intel PXA255. If it is, then the Gumstix can replace the CM5 and act as master to control the servos.
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by pepperm » Fri Sep 01, 2006 9:05 pm

Post by pepperm
Fri Sep 01, 2006 9:05 pm

I can design hardware but the problem for me is software. Hence my desire to keep with the CM5 and it's software then add stuff that is compatible. A device placed on the CM-5 serial bus would be something I could design/make but would probably need help with the code in the processor on the board.

I suspect replacing the CM-5 is sort of like using a sledge hammer to crack a nut. What I want is more I/O for the bot I have, not to replace a big chunk of it with something else.

Mark
I can design hardware but the problem for me is software. Hence my desire to keep with the CM5 and it's software then add stuff that is compatible. A device placed on the CM-5 serial bus would be something I could design/make but would probably need help with the code in the processor on the board.

I suspect replacing the CM-5 is sort of like using a sledge hammer to crack a nut. What I want is more I/O for the bot I have, not to replace a big chunk of it with something else.

Mark
pepperm
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 190
Joined: Sat Jul 01, 2006 1:00 am

Post by inaki » Sat Sep 02, 2006 12:58 pm

Post by inaki
Sat Sep 02, 2006 12:58 pm

I think any replacing board should be also compatible with the existing board. It should support BCP at least.

I wanted the source code precisely because I want to know some details about the BCP interpreter in order to improve my tokenizer.

Pepperm, I can help you in the side software if you want.

I think I would start with a sensor module using the serial interface already used in the Bioloid kit.
I think any replacing board should be also compatible with the existing board. It should support BCP at least.

I wanted the source code precisely because I want to know some details about the BCP interpreter in order to improve my tokenizer.

Pepperm, I can help you in the side software if you want.

I think I would start with a sensor module using the serial interface already used in the Bioloid kit.
inaki
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 233
Joined: Sun Mar 06, 2005 1:00 am
Location: EH

Post by limor » Sat Sep 02, 2006 2:19 pm

Post by limor
Sat Sep 02, 2006 2:19 pm

pepperm wrote:I can design hardware but the problem for me is software.

If you design the board I will write the code and i'm sure Inaki and others will help aswell once we get started. Do you know of companies that can not only make the PCB in quantities of 2-5, but also procure the parts and do the SMD soldering ?

inaki wrote:I think any replacing board should be also compatible with the existing board. It should support BCP at least.

We could have an Atmega128 on this sensor board instead of a smaller Atmel ($15 in digikey). We'll just have to write a boot-loader that mimics the one on the CM5 (in theory we could copy the protected boot-loader code from the CM5 to the new board's Atmega128 but it means somehow tapping into the chip's SPI legs..

Regarding The advantage of having the Gumstix processing power onboard the robot is that we'll be able to run dynamic closed-loop control algorithms and acheive movement like Qurio, Assimo and Aibo. Running and skateboarding can be acheived. And another important aspect is that running Linux will be welcome by many new programmers.
pepperm wrote:I can design hardware but the problem for me is software.

If you design the board I will write the code and i'm sure Inaki and others will help aswell once we get started. Do you know of companies that can not only make the PCB in quantities of 2-5, but also procure the parts and do the SMD soldering ?

inaki wrote:I think any replacing board should be also compatible with the existing board. It should support BCP at least.

We could have an Atmega128 on this sensor board instead of a smaller Atmel ($15 in digikey). We'll just have to write a boot-loader that mimics the one on the CM5 (in theory we could copy the protected boot-loader code from the CM5 to the new board's Atmega128 but it means somehow tapping into the chip's SPI legs..

Regarding The advantage of having the Gumstix processing power onboard the robot is that we'll be able to run dynamic closed-loop control algorithms and acheive movement like Qurio, Assimo and Aibo. Running and skateboarding can be acheived. And another important aspect is that running Linux will be welcome by many new programmers.
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by limor » Sat Sep 02, 2006 3:14 pm

Post by limor
Sat Sep 02, 2006 3:14 pm

I just noticed the Robostix product from Gumstix.
It is basically a stand-alone Atmega128 board with lots of pinouts.
Can't beat $50.
I just noticed the Robostix product from Gumstix.
It is basically a stand-alone Atmega128 board with lots of pinouts.
Can't beat $50.
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by pepperm » Sun Sep 03, 2006 8:29 am

Post by pepperm
Sun Sep 03, 2006 8:29 am

limor wrote:If you design the board I will write the code and i'm sure Inaki and others will help aswell once we get started. Do you know of companies that can not only make the PCB in quantities of 2-5, but also procure the parts and do the SMD soldering ?


I'll start comping up with something simple first then. Mega 8 based with some I/O taken to a connector, single sided PCB so I can make it at home, SMD. This way we can develop the comms code and begin to work out how to present parameters to the CM-5.

Mark
limor wrote:If you design the board I will write the code and i'm sure Inaki and others will help aswell once we get started. Do you know of companies that can not only make the PCB in quantities of 2-5, but also procure the parts and do the SMD soldering ?


I'll start comping up with something simple first then. Mega 8 based with some I/O taken to a connector, single sided PCB so I can make it at home, SMD. This way we can develop the comms code and begin to work out how to present parameters to the CM-5.

Mark
pepperm
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 190
Joined: Sat Jul 01, 2006 1:00 am

Post by limor » Sun Sep 03, 2006 9:58 am

Post by limor
Sun Sep 03, 2006 9:58 am

Great!
Do you make at home the single side board?
BTW: Atmega8 also comes in PDIP package which (doesnt need SMD work).

I've ordered the Robostix. will start a separate thread about it..
Great!
Do you make at home the single side board?
BTW: Atmega8 also comes in PDIP package which (doesnt need SMD work).

I've ordered the Robostix. will start a separate thread about it..
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by pepperm » Sun Sep 03, 2006 11:23 am

Post by pepperm
Sun Sep 03, 2006 11:23 am

Yep, I make single sided PCBs at home, in my bath! You can have a look at some of my work for robot wars (a few years ago now) here:

http://www.askt47.dsl.pipex.com/Robot_WarsStag/electronics.htm

I realise there are PDIP versions of the Mega8 but I can also make SMD versions. I will see what I have in my components draw. I am currently trying to reverse engineer the AX-12+ PCB so that the board designed will be in some way compatible Mega8 port wise. I don't suppose you have any of the code that runs in the AX-12s do you?

Of course, we could just use AX-12+ servo boards, if there are spares available.

It may take me a week to come up with a first stab because unfortunately, I will be away from home this week.

Mark
Yep, I make single sided PCBs at home, in my bath! You can have a look at some of my work for robot wars (a few years ago now) here:

http://www.askt47.dsl.pipex.com/Robot_WarsStag/electronics.htm

I realise there are PDIP versions of the Mega8 but I can also make SMD versions. I will see what I have in my components draw. I am currently trying to reverse engineer the AX-12+ PCB so that the board designed will be in some way compatible Mega8 port wise. I don't suppose you have any of the code that runs in the AX-12s do you?

Of course, we could just use AX-12+ servo boards, if there are spares available.

It may take me a week to come up with a first stab because unfortunately, I will be away from home this week.

Mark
pepperm
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 190
Joined: Sat Jul 01, 2006 1:00 am

Post by limor » Sun Sep 03, 2006 11:51 am

Post by limor
Sun Sep 03, 2006 11:51 am

wow! that's hardcore moonshine PCB making..

are you familiar with these Olimax boards that DanAlbert mentioned in the other post?

Could one of these serve as our Bioloid sensor board?
We need is a processor that has some A/Ds and a decent internal clock that can do UART at 1mbps. probably 16mhz is needed.
what about powering the board with the high voltage that is found on the Bioloid bus?
wow! that's hardcore moonshine PCB making..

are you familiar with these Olimax boards that DanAlbert mentioned in the other post?

Could one of these serve as our Bioloid sensor board?
We need is a processor that has some A/Ds and a decent internal clock that can do UART at 1mbps. probably 16mhz is needed.
what about powering the board with the high voltage that is found on the Bioloid bus?
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by pepperm » Sun Sep 03, 2006 1:09 pm

Post by pepperm
Sun Sep 03, 2006 1:09 pm

Nope, not familiar with those boards but the AX-12s use the mega8 so it should do the job, it does in the AX-12 and AX-S1s.

It has A/Ds and Uarts.

Mark
Nope, not familiar with those boards but the AX-12s use the mega8 so it should do the job, it does in the AX-12 and AX-S1s.

It has A/Ds and Uarts.

Mark
pepperm
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 190
Joined: Sat Jul 01, 2006 1:00 am

Post by pepperm » Sun Sep 03, 2006 6:34 pm

Post by pepperm
Sun Sep 03, 2006 6:34 pm

Limor

From a programmers perspective, which of the Mega8's I/O would you like to bring out on a connector, if you had any 8 pins to choose from?

How about all Port C pins (6 pins) and PB1 and 2. PD0, 1, 6 and 7 are used for the serial comms and PD2 for an led (as on the AX12). PB3, 4, 5 and RESET are used for the programming port.

Mark
Limor

From a programmers perspective, which of the Mega8's I/O would you like to bring out on a connector, if you had any 8 pins to choose from?

How about all Port C pins (6 pins) and PB1 and 2. PD0, 1, 6 and 7 are used for the serial comms and PD2 for an led (as on the AX12). PB3, 4, 5 and RESET are used for the programming port.

Mark
pepperm
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 190
Joined: Sat Jul 01, 2006 1:00 am

PreviousNext
36 postsPage 2 of 31, 2, 3
36 postsPage 2 of 31, 2, 3