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

dmtalk

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
18 postsPage 2 of 21, 2
18 postsPage 2 of 21, 2

Post by JonHylands » Mon Jan 29, 2007 6:28 pm

Post by JonHylands
Mon Jan 29, 2007 6:28 pm

So it seems I was wrong on this one - you can do simultaneous transmit and receive between a PC and an ATmega128.

I guess that makes your concept of pushing sensor data to the PC from the CM-5 a pretty good one.

Just goes to show, it doesn't matter how long you've been doing embedded programming, you still learn new stuff every day...

- Jon
So it seems I was wrong on this one - you can do simultaneous transmit and receive between a PC and an ATmega128.

I guess that makes your concept of pushing sensor data to the PC from the CM-5 a pretty good one.

Just goes to show, it doesn't matter how long you've been doing embedded programming, you still learn new stuff every day...

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by JonHylands » Mon Jan 29, 2007 6:34 pm

Post by JonHylands
Mon Jan 29, 2007 6:34 pm

So I'm thinking about this a little more, and I realized there is one caveat - you need to make sure you have enough RAM for a receive buffer in the CM-5 (from the PC) to handle a full packet, which could reasonably be around 110 bytes. The Bioloid bus is a one-wire bus, so if the CM-5 started polling the servos just before it started to get a SYNC_WRITE from the PC, you would have to buffer a certain amount (if not all) of the SYNC_WRITE message.

Either that or you would have to be able to cancel the read mid-stream, but that seems like it could make things more complicated on the CM-5 side of things, and you'd still need at least a partial buffer.

- Jon
So I'm thinking about this a little more, and I realized there is one caveat - you need to make sure you have enough RAM for a receive buffer in the CM-5 (from the PC) to handle a full packet, which could reasonably be around 110 bytes. The Bioloid bus is a one-wire bus, so if the CM-5 started polling the servos just before it started to get a SYNC_WRITE from the PC, you would have to buffer a certain amount (if not all) of the SYNC_WRITE message.

Either that or you would have to be able to cancel the read mid-stream, but that seems like it could make things more complicated on the CM-5 side of things, and you'd still need at least a partial buffer.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by billyzelsnack » Mon Jan 29, 2007 9:53 pm

Post by billyzelsnack
Mon Jan 29, 2007 9:53 pm

This is good news that you can TX/RX at the same time.

As for buffering.. I don't think this will be a problem. I was thinking potentially having some sort of dumb compression on the CM-5 <-> PC traffic. So I'd have to be inspecting the packets anyway, buffering the decompressed result wouldn't add anymore complexity.

I might end up buffering anyway as I have no idea if the Atmega128 has enough power to do it just in time before sending.
This is good news that you can TX/RX at the same time.

As for buffering.. I don't think this will be a problem. I was thinking potentially having some sort of dumb compression on the CM-5 <-> PC traffic. So I'd have to be inspecting the packets anyway, buffering the decompressed result wouldn't add anymore complexity.

I might end up buffering anyway as I have no idea if the Atmega128 has enough power to do it just in time before sending.
billyzelsnack
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Previous
18 postsPage 2 of 21, 2
18 postsPage 2 of 21, 2