Controlling WowWee's Alive Elvis Part 2 - Custom CartridgePosted by RetroPlayer on Wednesday, 10 September 2008
This article will show you how to modify your original WowWee Elvis cartridge to accept an xD picture card. If you want to retain the original files from your cartridge, you will need to do that on your own. I cannot post the original files because of their copyrighted content. Please do not ask me or any other members for these files.
In the last article, we discussed the discovery of the the files on the cartridge and proposed a theory of the format of the animation scripts. If you haven't read it already, start there!
Testing out the theory proposed in the previous article required the assembly of a custom cartridge. There are a few choices to make when building a custom cartridge. One option that was originally attractive was using SmartMedia cards. The plastic in these cards is really just a carrier for the NAND flash chip. You could puchase a 3.3V card larger enough to satisfy you and simply peel out the connector part and put it all inside a cartridge. However, I chose the xD format because it was small enough to fit inside the stock cartridge and still make it removable and upgradeable. Also, SmartMedia cards are becoming quite expensive. The xD, by comparison is at least reasonable (though much more expensive than other card formats of the same size.)
I decided to install a socket in my cartridge to make the memory removable and able to read/write with a standard card reader.
This proved to be a daunting task for me because of the size of the pins. It took 3 attempts before getting it working (but that may have had more to do with card corruption from previous attempts.)
I believe the end result is excellent, however:
The slot actually sits flush with the bottom of the cartridge. Nice, clean fit. Constructing this cartridge may be too difficult for some, and I am working on another method of modifying the Elvis which might be easier for a beginner. For now, let's continue discussion on this style of cartridge.
Besides the Elvis head and remote, you will need the following parts to complete these instructions:
A note about selecting an xD card: There are currently 4 types of xD cards out there. The standard or "S" type is the one that I used. There are also H, M, and M+ formats which provide higher speed and larger capacities (up to 3GB.) There may be compatibility issues with these newer types, so try to get a standard if you can. I believe 512MB is the largest size in this type. All xD cards are 3.3v type, which is what we need for this project.
Lastly, your card will have to be formatted as FAT16 so the maximum size that will work is 2GB. So there is no reason to go all out and purchase some ridiculously large card for this project. You'll probably never fill it up with animations, anyway. :) The longest MP3s in the cartridge only take up about 1MB each, and last over just over 1 minute. The theoretical limit is 99 routines for each of the three modes, but may practically be less. 256MB is probably more than enough room for most people. And if you do need more - with the socket, you can just insert a bigger card later.
This was a USB xD Reader (sorry - I tore it apart before taking a picture.) This was just a cheap pen-drive style reader purchased on eBay solely for the purpose of ripping out the socket. The xD socket itself is pretty difficult to find in single quantities and is more expensive than this reader.
Purchase two readers if you don't already have something else that can read/write xD cards. Obviously after ripping the socket out, you will need a reader to change files on the card. Any type of reader is is fine, but to get the socket for your cartridge, you will need one that is xD ONLY. There are tons of Smartmedia/xD combo readers out there. Those are fine for the PC reader, but will not work for the cartridge.
And of course, the Elvis cartridge. You can see that I removed all of the components from the cartridge. I ended up putting the capacitors back on. Leave them on there for yours, and just remove the IC. Make sure that you clean the solder off the pads. Any shorts that you created while removing the IC will still be electrically connected to the edge connector and will keep your new cartridge from working.
Remember: you will no longer be able to retrieve the original files off the cartridge once you do this (not easily anyway.) This is probably not important to you if you are hacking this head in the first place, but if you do want them,you will have to find a way to save them on your own.
I opened the cartridge and test fitted the components to get a general idea of what I needed to do.
The parts are just laid on top of each other here. I made sure that the xD socket was flush (leaving some room for the pins and resulting solder joints) with the back of the cartridge and marked the circuit board where the two metal mounting tabs on the side sit. Also notice that we are laying the socket on the bottom side of the cartridge. There are a few reasons for this; first and most important is that the pinouts match up nearly 1 to 1 this way between the socket and the card edge connectors, two because the component side of the PCB has capacitors in place that we want to keep, and third, because the top of the cartridge has a carved emblem that would look horrible cut up.
In the last step, I marked the PCB where the metal mounting tabs would sit. In this step I scratched away the solder mask at these points so that I can solder the metal tabs to the PCB. Don't worry, this is all ground plane material and nothing will be shorted. The metal tabs are not connected electrically on the socket.
Now, I flipped the board over and began soldering my connections. But, first, I bent down every other pin. This gave me a little more room to work with and helps prevent shorts. I ended up having to redo this a couple of times and didn't get many pictures of the final proccess. After the image, I will add a description of why I did things a certain way in the final attempt. This should be enough to help you understand what to do.
The wire that I used was from an 80pin IDE cable. The red striped wire came in handy to mark the VCC points. As you can see, I connected the ground and VCC points as close to the top of the PCB as possible. This was to reduce noise since they are near the capacitors. The VCC and Ground points are the only pins that do not match up 1 to 1.
One last point about this: There are pins at either end of the socket that are spaced farther apart than the rest. These are are electrically connected to the pin next to them on either side (VCC and GND) when the cartridge is installed. I believe that this is to ensure that VCC and ground are connected before (and disconnected last) the data and control signals get to the rest of the connections. Unstable signals could corrupt or damage the card. I just shorted these lines together to retain this ability, even though you should never pull out or insert the xD card with Elvis powered on.
Here are the connections to be made, from left to right:
01 GND (LEFT) 01 VCC (LEFT)
02 IO7 02 IO7
03 IO6 03 IO6
04 IO5 04 IO5
05 IO4 05 IO4
06 IO3 06 IO3
07 IO2 07 IO2
08 IO1 08 IO1
09 IO0 09 IO0
10 GND 10 GND
11 VCC 11 WP*
12 WE* 12 WE*
13 ALE 13 ALE*
14 CLE 14 CLE*
15 CE* 15 CE*
16 RE* 16 RE*
17 R/B* 17 R/B*
18 GND (RIGHT) 18 GND (RIGHT)
WP* on the XD slot was connected to VCC. The rest of the VCC and GND pins were connected to the ground plane or the capacitors (for VCC.) VCC is on the end of the big yellow capacitor in the middle on the side with the beige band.
Make your wires terminate as close to the top of the card edge contacts as possible. There is about 2.5mm of the contacts that are actually inside the cartridge housing and do not enter the cartridge connector on the Elvis. If your wires are too far down or you have large blobs of solder on them, it will get damaged or cause damage when being inserted. I masked off the inserted portion of the contacts with tape to prevent solder from flowing down them and also to help me know where to stop my wires. Just line the edge of the tape up with the plastic edge on the cartridge.
Putting It All Together
Now that I had the cartridge all wired together, I needed to modify the housing to fit the xD socket and allow me to insert and remove the cartridge. The xD socket is just a little too big to fit into the closed cartridge housing, so it required me to cut the plastic around the socket.
First, I placed a label on the bottom side of the cartridge, and marked the dimensions of the xD socket. I made them a little too small on purpose so that I could trim it and make it neat. I also needed to clear out the innards of the housing to make sure that nothing interfered with the socket. Carefully trim the edges of the two side screw posts so that the slot fits snug between them.
I then test fit everything together and trimmed the cuts made in the previous step so the socket fit snugly in the plastic. I don't know if it was by design, but the xD socket actually sits flush with the plastic across the top. I didn't plan this actually, but knew the socket would be back far enough to clear the cartridge slot on Elvis and wouldn't interfere even if it wasn't flush.
After putting everything together and test fitting the cartridge in the Elvis slot, I pulled out the xD card and formatted it as FAT16 with no label. I then threw all the files that I had extracted from the cartridge onto the card and inserted it into my custom cartridge and then into Elvis.
I crossed my fingers and powered him up. Success! (well, OK, not on the first try... but you don't need to hear about ALL of my mistakes that lead to the final recipe you are reading! :) You can read the forum thread in the Alive! section if you are interested in my 'diary'.
I tested all of the modes and listened and watched for anything unsual. Elvis operated just as he did with the original cartridge.
Now I could start decoding the animation script format by modifying the existing scripts and watching the results. The next article will go into great detail about the animation script format.