Controlling WowWee's Alive Elvis Part 2 - Custom Cartridge

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:

WowWee Alive Elvis Cartridge Hack

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.

Parts

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.

WowWee Alive Elvis Cartridge Hack 

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.

WowWee Alive Elvis Cartridge Hack

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.

WowWee Alive Elvis Cartridge Hack

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.

WowWee Alive Elvis Cartridge Hack

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:

Cart                   XD

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.

Comments

Currahee's picture

interesting

GWJax's picture

Nice will have to try that bt my Elvinator is almost not the Elvis anymore just a few more mods and an interface and it's live on the PC.
Jax

RetroPlayer's picture

When I am done with version 1 of my animator program (yeah, I am already planning a second version) I plan to make another cartridge, and I will have more detailed pictures of the process.

RetroPlayer's picture

GWJax,

When you are done with your mod and no longer need the controller board, I will still be interested in it and the cartridge. That is if you still want to get rid of them.

Jones sold me his spare Elvis head and I should be receiving it tomorrow. Soon I will have enough to build a small army of talking animatronic heads. :)

Retro

GWJax's picture

Sure, no problem Retro, I'll let you know when I can get rid of them both.

GWJax's picture

Oh I forgot to tell you, I went to import your program to add some diffrent features with VB8 but I could not import all of it, so I'll just use VB6 now plus the new version I got, worked with no problems... Thanks for uploading it, now it is just reading all the code and getting an idea of what variables you have in there and what they do. I may do a flow chart on this to help me better understand your coding process as well.
Jax

RetroPlayer's picture

After you do all that, you will get me updated code, which will have comments for just about everything :)

Go to download.com and look for a program called "VB project eye." This will REALLY help you to understand the relationship between the different modules (and there are going to be many more in this new revision (which is why it is taking me so long... being very careful and importing one routine at a time and triple checking it.)

What I think could really use the most improvement right now is the random fill routines. It would be nice to have some options on there and get a nice and even distribution of random movements. Especially the "Random Eye Movement" routine.

Also, the copy,insert,delete, etc... routines for the frames is something that is I am going to have to spend a great deal of focus on (to make it dosen't mess up the animation.) I haven't started any of that yet.

I am also moving to a "Project" mentality, where you can load or create a collection of animations and their associated sound files, put them in categories, and then assemble them into a full cartridge load.

RetroPlayer's picture

Oh, and some major improvements to the user interface "might" make it into the first official version. I won't tell yet, because I am in the early stages of testing it out. But, it is going to be pretty awesome, I think.

All I will say right now, is that I am really not happy with the sliders. :)

RetroPlayer's picture

Because some statements were made in this and article one, I would like to clarify and update some information.

Peter has helped me contact Wowwee and we have been informed that the contents of the cartridge are indeed under copyright. We have worked out what will and will not be acceptable for me to post, and one of those things not acceptable is an article on showing how to read the original contents of the cartridge or the mainboard flash. I believe however, that I have given (you can find it the first few pages of my original forum thread) enough information to figure out how to do this yourself.

I am not too concerned about not being able to share information about reading the original cartridge as the whole intention of this hack is to replace the animations and sound, and look of the bust to support a new character. The original wowwee files are not needed to do this. The only real reason that I can think of that anyone would need the files from the cartridge is to see how the original files work. When I release my animator program, I will include some animations and sound clips generated completely by me, which should work to solve that problem. It will be "my" content and not wowwee copyrighted material. And you will be free to do with it whatever you like.

My biggest disappointment, though, is that I will also not be allowed to post custom firmware or information on how to customize the firmware yourself. This is a bit of a problem, because of the fact that the bust has built in Elvis animations for startup, shut down, responses to the remote and sensors, and finally just some random short clips that he plays back.

Unfortunately, these random clips are played back regardless of the mode you are in and whenever he is idle.

You cannot even get around this by turning voice and alive on and off as needed, because Elvis will speak in response to those commands -- "A little less conversation", "A little more conversation" are examples of toggling the voice button the remote. These clips are located on the main flash.

There "may" be a hardware way around this and I will investigate this. But, it is a pretty severe limiting factor in the usefulness of this hack.

Another feature that was planned for custom firmware was to allow random access to animations. For example, you could have 32 monologue animations on the cartridge and tell Elvis to play number 27 directly. it is pretty obvious how useful this would be.

And finally, some real-time computer control of his movements was planned.

None of these things are possible without custom firmware and the only "hardware hack" around it is to build a custom controller and toss out a perfectly capable piece of hardware already built in.

I will try to think of something, but these restrictions might affect the amount of information that I can give you in future articles. I have enough information already to accomplish all of these goals personally, but I just might not be allowed to share all of it here.

Just wanted to give everyone following my progress a heads up. Hopefully all of this will be resolved somehow, as I really enjoy sharing what I have learned.

GWJax's picture

I was under the impression that WowWee designed these robots for hacking as Mark Tilman wanted them to be for us. but now they say we cannot override the firmware and cannot change the chip to do what we want as we did pay their price for the robots. I am very disapointed in them by hearing this information even though I was not going to use any of the boards for this, but was going to get another to make these mods and creat a new creature from it. I guess my next creature will be hand mand then and I'll post everything for everyone to copy, The creature will be an Ailen with arms that move, but once again this will be down the road.
Jax

RetroPlayer's picture

Really, the worst part for me is that the controller built into Elvis is very capable of supporting more motors, more sensors, real-time PC control etc.. It has everything you need built right in to create the interactive head that you have been planning, GWJax. But, if I am not able to share information on hacking the firmware, we are pretty much limited to what is built in.

The biggest deal killer for me, in my opinion, is the built in clips. The main flash is mapped into two separate areas of memory, with the sound and animation files in a contiguous block. This data is accessed differently than the firmware. It is possible to disable access to the data partition by cutting a trace on the main board and pulling it high, but since the firmware will expect to read information from these locations, it will probably just throw an unhandled exception in the firmware like a divide by zero and just reset, lock up, or probably both. I haven't tried it yet, so I am not 100% sure what will happen other than the firmware will be accessible and the data will not.

If the bust does somehow continues to work, then at least it will allow your custom character to stay in character. I think any of the other limitations could be worked around, but this one pretty much kills a custom character.

For random access to animations, there is a table stored in the code portion of the firmware which is for all built-in routines. A similar table is built in RAM for the routines stored on the cartridge. A single pointer in RAM stores the index for the next animation to play. This number is incremented or decremented depending on whether you press the next or previous button on the remote. The plan was to modify the firmware to allow this location to be written to directly based on some external stimulus to get the bust to play back a particular animation in whatever order. It should not be very difficult to do this as there is plenty of empty space in the 64K code partition to store your own routines and then just modfy a couple of instructions to jump to your new routine. Also the routine to do this would be mostly pretty simple.

Realtime PC control was planned by generating some routines to jump to the already present serial routines found in the firmware and see what, if anything, is missing. There does not appear to be any hardware way to enable the serial communications as these routines are not being called (at least not that we have found yet) from anywhere in the firmware, so likely it is missing the actual handler with the command parsing, etc.

I have a tremendous amount of information about the wowwee hardware that I have built up from mine and Sevik's analysis. I really wish that wowwee would be willing to change their mind about this. I can understand the concern about original files on the cartridge, especially the MP3s, which wowwee probably is only licensing themselves and are not copyright owners to, but the recordings that are built in on the main flash were obviously done using an Elvis impersonator and wowwee is the likely owner of those. Also, the firmware would be Wowwees original art as well. I would personally interpret this to mean that anything on the main flash is solely copyrighted to wowwee. But, this creates legal ambiguity that a company usually just doesn't want to get in to carefully defining for a small group of lone hackers.

I understand it; I just wish they would reconsider about the firmware.

I am certain that we are just a couple of the many, many people that bought this bust with the sole intention of hacking it.

Retro
(man, I have to get out of the habit of these long posts!:))

RetroPlayer's picture

RetroPlayer said: You cannot even get around this by turning voice and alive on and off as needed, because Elvis will speak in response to those commands -- "A little less conversation", "A little more conversation" are examples of toggling the voice button the remote. These clips are located on the main flash.

Actually, thinking about this a little further, if you turn off "voice" after entering the mode, this will prevent him from playing the random clips. So, you would still have to deal with his greeting when first turned on, then switch to a mode (monologue mode is probably the most useful) and then toggle the voice button on the remote. I believe then, he will only talk when you choose an animation to play. He will still randomly move about when idle, but I think this something that is desireable anyway.

If I am correct (I will check this when I get the new head today) then this isn't really so bad. If we keep him on, then after the initial greeting and mode change, we shoulding hear "Elivs" anymore until the next power cycle.

RetroPlayer's picture

Elvis does stop the random talking when idle if you press voice after you enter a mode. However, he does this wierd face thing instead. He also does continue with random movements.

GWJax's picture

Just thing here, If we use a diffrent circuit when turned on to disable the speakers, at leaset after he has spoken his words and then returned his speaker line one should do the trick at least a simple waay around this then you can use your program to control the rest. A simple 555 timer and a DPDT relay. Just remember this is just a simple thought.
Jax

RetroPlayer's picture

You mean, to cut off his speakers from the point of start up until he is switched into song or monologue mode, voice is pressed, and then turning it on?

I suppose you could do that right from the remote. If you turn the volume all the way down, he is muted. Then you could turn the volume all the way back up once you are in the mode you want to be in and have pressed voice.

But this way or your way he will still move (including his jaw to words), just with no sound. If you toggle the "alive" button on the remote, then he will stop moving, but not before he announces "A word to my critics: yes, I am alive!"

So, I don't think there is really anyway around it except either custom firmware, a hardware mod to disable the animation partition of the flash, or just initializing him first and then keeping him powered on while demonstrating him.

If the hardware mod will work, it will be an acceptable solution, I think. But, I don't expect it to work.

GWJax's picture

you could still use the method I described even for the motor movements, althoght this would need another board to piggyback the connectors on the main board, even using a MCU could provide enough I/O pins to allow this. Personaly I think this is a better way that will leave the firmware intact on the main board so no copyright violations would occure, as it would be a mod and not a firmware change so I don't think WowWee would have much to say about it, but one never knows.
Jax

Nocturnal's picture

RetroPlayer said:
We have worked out what will and will not be acceptable for me to post, and one of those things not acceptable is an article on showing how to read the original contents of the cartridge or the mainboard flash.

Why? as long as you aren't posting the contents, you are not violating copyright, and since you own the hardware you are withing your rights to do such things with it (provided you don't expect the waranty to cover it).

I am deeply disapointed with Wow Wee on this one. This is one of those things that I think is in the best interest of the community (even if Wow Wee doesn't like it).

RetroPlayer's picture

Nocturnal, my opinion is that whole thing has to do with the MP3s and the probable fact that wowwee is not the owner of those copyrights.

The unfortunate thing is that I don't think anyone willing to go through all this trouble is really interested in those MP3s :)

Actually, there is one other major drawback to this. It is possible to use the original cartridge without modifying it at all for 32MB of animations. Hooking it up to the reader/writer method which would allow you to read the original files is enough to just to just format it and write whatever you want on it. THIS is propably much more accessible to people that can't solder an xD socket or cut straight.

But, this was wowwee's opinion on the matter, and I must respect it as much as possible (at least publically -- my Elvis will have the custom firmware.) I will try to drop hints whereever I can, but the chances of me posting the firmware or details of a cartridge writer (at least here on RC) are null.

RetroPlayer's picture

As far as actually getting some animations to work with, like I said, I will be including some demos with my animator program that people can use however they want.

It should be pretty straightforward how to connect the cartridge to a USB **Smartmedia** reader like the **Dazzle series for Radio shack that I used**

It's not like the details to modify a smartmedia reader to do this aren't located **here** or anything. The pinout of the cartridge can be found either in this article or in the original forum thread.

All that is missing, really, is a single detailed article to put it all together with nice pictures. That is what I won't be allowed to post.

Nocturnal's picture

I think you are missing the point I was getting at. Wow Wee has no grounds to prevent you from disclosing the information (unless you signed an NDA somewhere along the way).

Their desire to prevent you from sharing that information is not in the spirit of this community.

RetroPlayer's picture

Good point, Nocturnal.

GWJax's picture

Well my point on this is to post the artice on some other site or on Nocturnal's site or even 4mem8 site since he has the Elvis "if they do not mind" this will leave R/C out of the loop. As for what we do with our bought products is our choise to do as we see fit. It's not like we are are asking for a waranty as this ends as soon as we take out one screw. I personally think is more about other companys reproducing their product rather than us improving the product for our own liking. Indead this is what WowWee is about, hacking and making mods to their robots else they would not screen the PCB's for us with very great detail and state that they are for the hobbiest hacker. With that said I'll leave this subject alone now.
Jax

ukrtalk's picture

This thing is sweet! Can you sell me one of these? ukrtalk@hotmail.com

ukrtalk's picture

Can you just put any songs on that memory card and elvis will sing it?

GWJax's picture

ukrtalk said:
Can you just put any songs on that memory card and elvis will sing it?

 

There's more to it than that. You still need software to write the anamations for Elvis to work and I think retroplayer has written that or at least is almost finnished but you'll have to ask him about that and if he is willing to download his program to the site for free or as shareware, ect..

 

Jax

ukrtalk's picture

Can you sell me one of these?

GWJax's picture

@ ukrtalk, I haven't seen RetroPlayer around in a while. Try to PM him and see if he responds, If not let me know and I'll see what I can do for you.

Jax

Kent's picture

I want to simply buy another cartridge that does more songs or says different phrases. I don't dare get into the original disc and modify it. I would buy a disc from you if you can make one vilable that works in the Elvis robot. My e-mail is 21centry@Comcast.net and my phone number is 352-255-2232.

GWJax's picture

Kent If you can get me a cartridge I can modify it for you so you can add what ever you want on it. Just let me know if you want to do that..

Jax

michleeann1's picture

i have the elvis kareoke head but no cartridge where can i get one iv looked every where?

GWJax's picture

michleeann1 said: i have the elvis kareoke head but no cartridge where can i get one iv looked every where?

The cartridge is for the WowWee Elvis Alive bust and not the aduio kareoke head. If you do have the Elvis Alive bust try to PM Evilis he might have a spare cartridge he can sell you, but I'm not sure.

 

Jax

badger's picture

Hi,
I have just bought the Wowwee Elvis for a friend's birthday gift. I would like to make a very simple cartridge with one phrase on "Happy Birthday Johnnie". I can source an XD card, I have a reader ans I have some hobby board PCB with edge connector. I can solder the XD connector to the PCB to make the cartridge. My question is can I just write a 128 kbs MP3 file named Mono01.dat (me saying "Happy Birthday Johnnie" in Elvis accent), and any random Mono.txt from the original cartridge (not too fussed about syncing, it's just for a birthday joke) to the card? Is this all I need to do to make a custom birthday cartridge?? I have one week until the birthday!!!!!

Thanks guys

RetroPlayer's picture

That should do it. Try to pick a monologue that is as small as you can find. Otherwise he will continue animating after the MP3 is over. You can also cut out some frames using a hex editor to match the length. You should be able to find my notes on calculating frame rate/etc... in my forum post about hacking the cartridge. I will have to look myself, it has been so long.