Posted By Milw

Well, the setup was easier than I expected- after checking the pins on my scope to verify the data pin, I realized I could just use the Prop Plug as a 3.3V serial-to-USB interface to my PC. I soldered some pins onto the iSobot servo comm pin (adjacent to GND) for easier clip connecting, and used the ground pin of the 5-pin header in the middle of iSobots controller board. Here's an image of the setup for recording the left leg- only 2 wires needed!

Connecting to iSobot servo serial comm
Next I configured Hyperterminal for 2400 baud, 8-N-1 with no flow control. I started a 'capture to text file' session and then turned on iSobot. Voila! Well, not quite perfect, but good enough to make me happy. I had to open the saved file with UltraEdit to see the hex values, but there it is- strings of 8 bytes, starting xFF x05... In a few cases a byte was dropped, and the very first string after power up was recorded as xE8 x05 x00 x00 x00 x00 x00 x05. I don't know right now if xE8 is an initialization code, or just a recieive error; I'll check to see if that always occurs on powerup, or is variable.

 

During the startup sequence, iSobot does a little bow and then stands straight up, so not much leg action going on. I'll try using the IR controller to send 'left kick' and other leg commands to see if the numbers coming out can be correlated to servo positions. I believe the x00 sets the servos to 'limp' eg no holding torque. Again that's to be verified. Also to be done is identify which byte position corresponds to each servo.  For now, suffice to say that standing straight up is managed by repeatedly sending the string

xFF x05 x7D x65 xB5 x9A x7E xB6, where the hip and ankle tilt servos (first and last in the chain) are near their center positions. x7E is the center point between x01 and xFF (decimal 126 in a 1-255 range). So I expect it'll be in the same order as the physical servos, either going down the leg or up.

 


 
Posted By Milw

I've been intending to collect information on hacking the Tomy iSobot, with the intention of replacing the stock controller with a new Propeller MCU. To this end, I'm going to measure the controller board and  the locations of the pins that plug into the arm and leg servo busses. The Prop chip will have a great advantage in driving the 5 serial busses (head, 2 arms and 2 legs) in that a cog can be devoted to each bus, leaving 3 cogs to run sensors and any nav or control programs.

Here's a translation of a Japanese site that has some inside information on the serial protocol. It appears to be 3.3V, 2400 bps, 0 start bit, 1 stop bit, with parity, no flow control. Packets seem to be 8 bytes, (LSB-first?) starting with [xFF][x05] followed by 6 variable bytes. Each leg has 5 servos, so each byte is presumed to control one servo and the last byte is the checksum of bytes 2-7.

Here's an image of the controller board- there are 3 wire pairs coming into plugs- the thicker is power from the Eneloop batteries, the lower right corner is labelled SPK1 (speaker) and the center top (under the power wires) is, hm, well, not labelled. I'll see if I can find the function later. On the left and right sides are 4 pin connectors, one for each arm; along the lower edge are two more 4 pin connectors for the legs, and in the center, a 6 pin connector. Not sure on the function of that one either right now. On the 4 pin connectors, VCC is the battery power (~3.7V), second pin is VDD (3.3V regulated), third pin is serial comm (Xmit only from MCU?) and fourth pin is GND.

iSobot controller

I'm going to hook a Prop chip into the leg servo bus and try to monitor the data being sent while iSobot is making various moves, to see if I can confirm the translated Japanese findings.


 
Posted By Milw

This is the first post in my new blog, where I plan to post about various projects and happenings of the day. Current projects include building a Mech out of Bioloid parts (I now have a Bioloid Starter Set, 6 additional servos and a Comprehensive Frame Kit) and playing with DIY room beacons for the WowWee Rovio.


 

 

 
Google

User Profile
 
Category
 
Recent Entries
 
Archives
 
Visitors

You have 13925 hits.

 
Navigation