"Teaching robotic dogs new tricks"
.. or How to hack an I-Cybie
France Cadet performed surgery on several robotic dogs, customized their forms, and reprogrammed them with unusual behaviours.
In Dog[LAB]01 her new dogs are genetically manipulated animal combinations, plastic chimeras. For instance, one is the “ultimate” domestic pet, a mixture of equal parts cat and dog. This earnest Frankenpet alternately wags its tail playfully, grooms itself, does feline stretches and, eventually, falls asleep and dreams dog dreams. Another is a cowdog - named “Dolly” after the famous cloned sheep - and as a result is prone to robotic BSE, twitching and collapsing while whining like a sad puppy. The results are constructions partially based on actual scientific and artistic experiments – an ironic demonstration of the potential consequences of cloning, eugenics and other contemporary experiments in biotechnology.
In Dog[LAB]02 a whole pack of 20 of these “cloned” robotic cow-dogs will appear to suffer from BSE in unison.
Some bugs deliberately added to the robots’ programs from Bug[LAB]01 will alter the normal behaviour of the dogs and appear randomly. They will remind us that the more life-like robots become, the more prone they’ll be to neurosis and illness and eventually they will end up hanging on a wall as Cadet’s “hunting trophies”.
AIBO from Sony
I-Cybie from Silverlit
An internal 2MB flash memory which contains the new programs must be added, and a bootloader must be installed to allow the robot to read the flash memory and to make it start on this new program instead of its original program, which is no longer used.
A MAX232 chip must be soldered inside the robot to allow the communication with the serial port of a PC (as well as a plug and a switch on his back). The shell of the robot is fully removed, the electronics is modified, the shell is customized and then reassembled.
Then all the movements of the robot have to be reprogrammed in C language on the computer, then compile and downloaded into the flash memory of the robot through the RS232 port thanks to the C232 cable which has been adapted to the robot (mini jack et USB power). ICSDK (I-Cybie System Development Kit from aibopet), Context (freeware text programmers editor) and “Terminal” (bray’s terminal indeed) are used to compile and download the C program into the robot via the serial port, and to communicate with it. Once the program downloaded, the robot can be disconnected from the PC, it is now autonomous and runs on its own new program.
We can control most of the motors and sensors of the robot: the 16 motor drive (12 real servo for the paws, and 4 cc motors: neck, head, mouse and tail), as well as the sounds (ADPCM format, 8bit, sample rate: 8KHz), the light of its eyes (green, yellow, red) and all the sensors (3 touch sensors, 1 light sensor, 2 sound sensors,1 voice recognitions with 8 different commands, balance sensor (right, left, back, butt, face…).
You need to separate the two sides of I-Cybie's main body
shell. For that you should first remove the four leg parts.
1. Remove the four upper parts of the legs
|Each leg part has two large triangular screws
and three small triangular screws holding it on.
There are three small triangular screws holding a small round piece of plastic on the other side of the legs that you do not have to remove.
NOTE: Triangular screws can be removed by:
- using the properly sized slot screwdriver and angling it into the triangular slot or
- getting a piece of metal and filing it down the proper triangular shape or
- using the special triangle screwdriver coming with a replacement shell.
2. Remove the four lower parts of the legs
|Each leg part has three Philips (cross shaped) screws inside. There are 4 inner parts and 4 outer parts.|
3. Remove the body shell
|Before removing the body shell, you must remove the blank cartridge from the right side of the body shell.|
|Then you need to remove the seven Phillips
screws holding the body together. On the dog's left side,
there is only one screw. On the dog's right side,
there are six (one for each hole).
Three are visible. The other three are hidden under plastic caps.
You must remove the plastic caps first !
Put the special tool (sort of “T” shaped screwdriver) in the hole, fit in slot on screw cap, push it hard inside, then turn 90°, gently pull out the screw and the plastic cap should come out with it
NOTE: there may be two plastic caps in the
same hole. Then use a Phillips screwdriver like all the rest.
The sides will easily move apart (if not you forgot a screw).
1. Add the serial connection
Now you must add a serial connection to be able to communicate with the robot through the serial port of the PC.
The standard signal voltage of the serial port of a computer (RS-232) is : –12 +12 volts.
The standard UART signals voltage of most of the microprocessors (TTL), including I-Cybie’s main chip: is 0-5 volt.
So you must use a TTL-RS232 converter which will convert the RS232 voltage (-12V +12V) to TTL voltage (0V +5V) and vice versa.
Solution 1: using a MAX232
The MAX232 chip is the most familiar chip used to build this electronic device. Here is the electronic diagram. The power supply is taken from the USB port of the computer to avoid an additional power supply.
Solution 2: using a Max 233
It is the same functioning as the MAX232 but it already includes the capacitors, no need to add external capacitors.
Solution 3: using transistors
The hardware modifications of the robot have been simplified by putting the electronic device needed (max 232 chip + capacitors) inside the cable (inside the DB9 shell indeed) which will be used to download the programs and communicate with the PC. Thus no need any longer to add it inside the robot.
Here is the used version which includes a SMD card (Surface Mounted Device).
Now you must solder the wires onto the motherboard to connect the stereo female mini-jack (serial connection to the PC) and add a bipolar switch to turn ON and turn OFF the robot.
|You must solder 3 wires:
- a black wire for the ground (Ground of the jack)
- a wire on the TX of the main chip (TX to the Tip of the jack)
- a wire on the Rx of the main chip (Rx to the Ring of the jack)
Tx = Transmitting = Tip of the jack
Rx = Receiving = Ring of the jack.
2. Add an ON/OFF swicth
The battery plug has 3 cables:
- a red one: +12V
- a yellow one: +6V
- a black one: 0V
Cut the red and the yellow cables and solder long cables to the bipolar switch as indicated on the picture
Don’t forget to place heat shrink tube before soldering the cables.
Now we must put the working 2MB cartridge
which contains the right booloader in the right side of the dog.
We will use the ICSDK (I-Cybie System Development Kit) from aibopet to program the robot.
All the technical details and steps for this are described on his website. See here.
For more general info see here.
Then drill two holes in the body shell:
- a 6mm diameter hole for the mini-jack on the right part
- a 5mm diameter hole for the switch on the left part
Place the switch and the min-jack.
Now you can reassemble the body shell and legs parts.
You can have a look at the VIDA workshop where some I-Cybies have been hacked in Madrid by some artists.
All photos: some rights reserved