by JonHylands » Mon Jan 29, 2007 6:34 pm
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