Controlling the WowWee Alive Elvis, Part 1: Inside the Cartridge

Introduction

The WowWee Alive Elvis is an animatronic bust with very realistic facial and head movements utilizing 10 precision motors.  We're going to talk about how to hack and control the Alive Elvis, and to do that, we're delving deep into the inner workings of his cartridge.  Read on!

  • Eyes U/D
  • Eyes L/R
  • Eyebrows U/D
  • Left Eyelid
  • Right Eyelid
  • Jaw
  • Lip curl
  • Neck rotate
  • Neck Tilt L/R
  • Neck Tilt U/D

There are four modes of operation:

  • Songs
  • Monologues
  • Karaoke
  • Alive

From the factory, Elvis comes with a cartridge containing 8 songs and 37 monologues. With no cartridge installed, Elvis will be in Alive mode and will play back random skits of famous Elvis lines. He will also track your movement in front of him. There are no songs or monologues without the cartridge. Elvis will prompt you to insert a cartridge if you attempt to enter these modes without one.

WowWee Alive Elvis Cartridge 

With the cartridge installed, you can switch between song and monologue mode.  You can then use the remote to play/pause and skip forward/back between the recordings in each mode. To access karaoke mode, you either need to press the VOICE button on the remote, which turns on/off Elvis' voice or plug in a microphone into the front jack.

This gives us three modes of operation to customize.

In this series of articles, we will be exploring methods to customize the Elvis animatronic to play back your own audio clips and animations.

At the time of this writing Elvis is selling for around $70, which makes him a very inexpensive animatronics platform. 

Hacking Elvis

Having a cartridge makes for convenient hacking possibilities. And since the bulk of his animations are present on the cartridge, it made sense to attack that first. Upon opening the cartridge, we found a standard NAND Flash memory chip. By looking up the datasheet, we discovered that it is a 32MB memory. Using the pinout in the datasheet and tracing those lines to the cartridge connector, we were able to determine the pinout of the cartridge.

Pinout of WowWee Alive Elvis Cartridge

Now, on to reading the contents of the cartridge and trying to make sense of it!

Knowing that Smart Media and xD cards are direct interfaces to NAND chips with no controller, I determined that I would modify a Smart Media reader to offload the contents of the cartridge. I obtained the pinout for Smart Media cards and then wired everything up.  I had prepared an image making program that would dump the raw contents of the cartridge, and plugged the reader into my USB port. To my surprise, up popped a normal drive formatted as FAT16 with just over 100 files on it. I was a bit shocked that it would be this easy. I captured a raw image of the drive before doing anything else. I then inspected the image to determine if there were any hidden partitions or unallocated space used for code. There was nothing. The entire NAND flash chip is formatted as one 32MB volume.

Contents of WowWee Alive Elvis Cartridge

Contents of the WowWee Alive Elvis Cartridge

There are 123 files on the cartridge. These are:

Song files:
CoSong01.dat through CoSong08.dat
CoSong01.txt through CoSong08.txt

Monologue files:
Mono01.dat to Mono37.dat
Mono01.txt to Mono37.txt

Karaoke files:
Song01.dat to Song08.dat
Song01.txt to Song08.txt

Song names:
SongNa01.dat to SongNa08.dat
SongNa01.txt to SongNa08.txt

And one single Elvis.exe file. This EXE file caught my attention first. It turns out that it is an MSDOS program which simply caculates the checksums of the files on the cartridge; which is most likely used in production to ensure that none of the files are corrupted before shipping. It displays the results, but does nothing else with them. It can be deleted.

I had a general idea of what I was looking for, which were audio clips and animation scripts.

Audio Clips 

Opening the DAT files in a hex editor, it was immediately apparent that these were MP3 files.  I determined that they are recorded with these settings: 44.1KHz, 128kbps, Stereo. Some of the monologue recording and song names are recorded in mono, so it appears that either works fine.

That's it for the *.dat files. Just plain ol' MP3s. Nothing special about them. That made for a very short section, didn't it? Don't worry, it gets to be a little more complex shortly.

Animation Scripts

So, next up was the *.txt files. Given the extension, one might think they are plain ASCII text files, but they are not. The animation scripts are stored in hex.

Here is a sample of a small animation script, one of the song files:

The first thing to notice is that the bytes are obviously swapped (Little Endian) so 0100 should be read as 0001 and so forth.

We then searched for a pattern in the files and the result was 4 groups of 16 bits. There was some discussion on the forum about this and a theory was proposed. Each line was formatted as:

Struct Frame

u16 FrameID

u16 MotorID

u16 Position

u16 Speed

End Struct

To test the theory, I needed to build a custom cartridge. The next article will show you how.


Quick Links

Stay Tuned for Part 2 of Controlling WowWee's Alive Elvis, coming soon!

See the Original "Elvis Cartridge" Thread

Read More Articles on WowWee's Alive Elvis

See The "Elvinator" Hack

Comments

Currahee's picture

where are they selling for around $70 at

RetroPlayer's picture

Currahee,

At the time that I wrote this, Newegg.com was selling them for $70. They are unfortunately sold out now. But, I hear a lot of sightings in store between $60 & $70 still. Keep you eye out.

Watch buy.com, Newegg.com, geeks.com, etc..

RetroPlayer's picture

I noticed something that I didn't mention in the article. The stock cartridge is actually writeable without modification. The main reason that I modified the cartridge was because I could not locate a connector that would work with it. If one is found, it is possible to simply make a cartridge reader/writer and just use the stock 32MB cartridge.

If someone knows where to find the 18 pin connector, please let us know!

Currahee's picture

RetroPlayer said:
Currahee,
At the time that I wrote this, Newegg.com was selling them for $70. They are unfortunately sold out now. But, I hear a lot of sightings in store between $60 & $70 still. Keep you eye out.
Watch buy.com, Newegg.com, geeks.com, etc..

thanks i'll keep my eye out

roschler's picture

Great work RetroPlayer. Will Part 2 include a step by step guide on how to make your own Smart Media reader (writer) that can read/write the cartridge and also how to modify the animation files (data fields, etc.)? This tutorial sounds like a good candidate for Instructables.

GWJax's picture

Nice first Article, well formatted and not too much info to go into mind overload, looking foward to the next one. My Elvinator will not be using this card as all information will be on the PC hard drive. I like to see that your taking another approach to this hack than I am. Plus you may be able to incorporate some servos for better lip movement when you tap into the main CPU. And I'm working on a program that may be able to incorporate this information in the RoboRemote. I'll keep you informed in what I do with it.
Jax

GWJax's picture

roschler said:  This tutorial sounds like a good candidate for Instructables.

I agree Roschler this will be a great instrubtable when finnished.

Jax

RetroPlayer's picture

Roschler, part 4 will actually cover that... maybe. Part 2 and 3 are actually already written and part 2 will show you how to build a custom cartridge with an xD card socket like I did. Part 3 is going to go in a ton of detail about the file format. I am hoping to have at least a basic program ready by the time that is released because it is very difficult to try to create the animations in a hex editor.

To cover the smart-media reader conversion would mean that I need to do that part all over again. I will if enough people really want to see it. But, really after you do it once, there really isn't any reason to do it again. That is unless, you build it so that you can plug and unplug the cartridge. If I could find the socket for them, I would do this as I know it would be useful to a lot of people.

When I did that part of this project, I simply soldered the cartridge directly to the smartmedia reader. And at that time, I had no idea what to expect to find. Once I knew it was FAT formatted and I grabbed the files and decoded them, there wasn't any need to do any of that again. The original files are not needed to create a custom cartridge, but some people may want to do a backup.

Then again, with the xD cartridge, you can use bigger cards and any old reader.

I am interested in others opinions. I would be doing it mainly for others' benefit and if there isn't a demand for it, there isn't much incentive for me to do it.

Let me know what you think.

RetroPlayer's picture

BTW, all of this info is actually in the thread, but just spread out all over the 12 pages and is probably very difficult to follow. :)

So, most of this is not really a secret. :)

RetroPlayer's picture

GWJax said: Nice first Article, well formatted and not too much info to go into mind overload, looking foward to the next one. My Elvinator will not be using this card as all information will be on the PC hard drive. I like to see that your taking another approach to this hack than I am. Plus you may be able to incorporate some servos for better lip movement when you tap into the main CPU. And I'm working on a program that may be able to incorporate this information in the RoboRemote. I'll keep you informed in what I do with it. Jax

Thanks, GWJax. I had thought really hard the last few days about why I am doing it this way instead of just replacing all the motors with servos and a controller. What I came up with is that it is kind of nice to have everything portable. All the electronics are already there, if they can be used for my purposes.

As you know, I have two of these busts now. One, I have disassembled down to the very last screw. :) It is mainly my guinnea pig. When I rebuild it, I will probably put servos in it.

I am very interested in your project, too. :) Maybe the other bust will use your method. It is certainly an ambitious project. And you might find a way to make the motors quieter, too.

RetroPlayer's picture

If someone wants to look for the socket for the cartridge, it is 18 pins, 1.27mm pitch single sided. Board thickness is .81mm. A double sided 36 pin connector is fine as long as it can handle the thickness of the cart.

A DIMM memory module pins line up almost perfectly, but a DIM socket would not work because the contacts do not touch the edge of the board. A PCI socket might work if it is cut up.

mhead10's picture

Just wanted to say great article! It's really enjoyable to see another great, and entirely different, way to do it as apposed to GWJax. Also, excellent job on the overall explanations and pictures- they are really helpful.

Keep up the good work!
mhead10

RetroPlayer's picture

Thanks, mhead! Be sure to keep an eye out for the rest coming soon.

RetroPlayer's picture

Just to let everyone know, I have started a thread on the Elvis animator program, where you can get involved in helping me by offering suggestions for features and improvements in the interface.

http://www.robocommunity.com/forum/thread/14036/Elvis-Animator-Program

Getting involved in the alpha tester phase is not for the faint of heart, but subscribe to the thread and jump in at the beta tester stage, or just keep updated on the progress. Please offer any suggestions you have at any stage.

CCofE's picture

Do you still have the original cartridge pinout info? Thanks in advance!

RetroPlayer's picture
Goldenshuttle's picture

Nice brains RetroP. I was trying to use ELvis head change it into my boss face and have him say all the incosistent things he tells the staff. can you please advise; do I have 2 be fully versed with DOS ?

Goldenshuttle's picture

Great work indeed. Any progress on real time control thru a laptop? if not; what is the best approach you recommend if I wann try myself?

beadle86's picture

i have a wowwee elvis bust but it didnt cum with any cartridge im looking to by some no matter wot cost im in desperate need plus i want the ac adaptor for it please e-mail me with infomation asap please thanx

Hivoltage's picture

Good information and work. I am interested in the file edits also as I wanted to use that info to create a tool for making new animations.
Keep it up. :)

Goldenshuttle's picture

Dear Beedle86 :
Adaptor is not a problem just pick any adaptor with same output voltage and amps. careful with polarity of the jack.

about cartridge, one can make similar thing by doing his own mould at home and PCB, although I doubt we can do programming as retropleayer can...

I am thinking to commission it to some chinese guy and let him flood the market on the cheap..Wow wee deserves some under the belt punch for not giving proper support..