Tao Wireless Media Player ( WMP235 )

Taking it apart, seeing how it works, making it function.

Update: 06/20/07



Background:
   I bought the Tao player to replace my Aireo ( http://mozy.org/aireo/ ). Tao's WMP (Wireless Media Player) is made by "Tao Life" which is part of "Giant International". Or something like that.  Basically SoniqCast didn't want to deal with another Aireo debacle (if you haven't noticed, it failed miserably) so they created Aireo2 and sold it off to another OEM. SoniqCast is currently focusing on creating weird little devices that have small screens and they seem to be OEM only. "Tao Life" had a site up for a while, thats where I found some info on the WMP and some updated software. Now (for the last 3 months) I can't get to http://www.taolife.com/ anymore. So, it looks like "Tao Life" is dead. That sucks. There's still some Press info from SoniqCast at http://www.soniqcast.com/presskit.html if anyone cares.
    The only reason I got an Aireo2 and not some other mainstream player is for the AutoStart Engine-sensing feature. With the car adapter, the Aireo2 can put itself into Standby mode when I turn the car off, and wake back up right away when I turn the car on. You wouldn't believe how convenient that is. Aireo1 was a great, tough MP3 player that made me fall in love with the Engine-sensing feature. Before I bought Aireo2, I did my research and wasn't able to come up with ANY other (commercial, as in, non-kit) MP3 player that would work like Aire1/2. I finally gave up and bought Aireo2 from an Amazon.com retailer. It cost me $160 which now that I look back at it is damn expensive ( could have bought a decent iPod for that...ugh....I hate iPods.)
 
First Impressions - BAD:

    WINDOWS MEDIA PLAYER for "synchronization"... WTF??? This thing won't transfer my M3U's like SonicSynq did. I have to MANUALLY create the playlists ON THE PLAYER. This is bullshit. THIS IS BAD. What am I complaining about? It's like this. Lets say you have an M3U (MP3 Playlist) containing a bunch 80's songs, and you name it 80s.m3u. You open the M3U in Windows Media Player and select the playlist to be transfered (also, your M3U is just a file listing, no sorting by Genre or Artist). You transfer the "playlist" with WMP and what happens? All the songs you selected get thrown into the "All Music" category. No sorting, no categorization (except for random Genre/Artist breakdowns). So, a "Playlist" for this Tao player is something you MANUALLY create (on the player, according to the manual). Imagine going through 5,000 songs that are uncategorized (bad ID3's) and creating a "Playlist" for each Genre (like 80s.m3u). This is freaking insane. As much as SonicSynq sucked I WANT IT BACK!!! Tao might have saved some money, but DAMN IT they messed up. I was hoping for just a higher-capacity Aireo. Boy am I disappointed.

Firs Impressions - GOOD:
    20GB (yay? iPods had that years ago...) BUT this drive is a standard 1.8" drive too (like the iPods) woo! Upgradeable? Lets hope it's not like Aireo1....
- Still has the good old Engine Sensing (with car adaptor) feature. I have yet to see another portable player with this feature. This is probably my most favorite of all the "Aireo" (and now...Aireo2) features. This baby stays in my car. Engine on = music starts playing. Engine off = player goes into "standby mode" automatically. Pure genius.
- Still has WiFi and stuff. I never much used the Aireo's WiFi junk. But it seems this one is more feature-packed. And more full of security holes (...more info coming soon...)



Tao WMP Pics and Internals

Yawn-inspiring  packaging and the $20 car adapter:


The magic moment:


How much I paid:


Where I bought it (through Amazon.com):


Aireo1 vs Aireo2. Not too big a difference:


Side shot comparisson. Much thinner:


Connectors (Power and data). Stupid proprietary shit again. This time they even took out the mini-USB port and now the
only way to transfer data is to use the proprietary Aireo2-to-USB cable. Better keep it handy.


Power cable taken apart, not too intricate:


USB Cable taken apart, again not TOO intricate...but still proprietary shit:


Finally, the internals. Did someone say iPod-compatible HD? I'm not sure if the iPods use ZIF or socket connectors, and I don't care
Also, the battery is on the right and the WiFi/Radio antenna s on top:


HD taken out. Be VERY careful taking this thing out. See the coil on the bottom left? Yeah. I broke it off it's connector.
The coil didn't get disconnected so I just stuck it back on and breathed a sigh of relief:


Main motherboard of the Aireo2:


Behind the motherboard. LCD, WiFi PCB, etc:


Another internals shot:




M3U2SPL - Convert M3U playlists to SPL format for the Tao WMP

    Like I've said before, I'm not a fan of using MS's Windows Media Player for managing my music. And the fact that most of my MP3's are not genre-specific, Windows Media Player sees it fit to jumble ALL 5GB of my music into one ginormous playlist. Yeah, thats VERY useful. Seeing no other alternative, I decided to whip up some code. It is C code, CLI-only. I coded it on WindowsXP in Dev-C++ but converting it to *NIX use should not be difficult. I might do that later.

    Here is the code: m3u2spl.c

    Want to know how this code came to be? Read below.



Playlist Wars: 2007

Since Windows Media Player SUCKS for "synchronizing" music. I decided to go a different route. I'm going to take the PlayLists you have to manually create on the TaoWMP and code something to convert my M3U's to the TaoWMP "SPL" PlayLists. Lets just say if you've never had to add EACH TRACK manually to a "custom playlist" using the 5 buttons on the player, you have no idea how painful this is. Thank you SoniqCast for killing off SonicSync, I'll never be able to tell you how much I appreciate that (well... maybe with a few explatives).

First step is to fire up good old Hex Workshop and try to figure out the file structure of a .SPL. I created a few "test" playlists on the Tao; one with a few tracks, one with  1 track, one with 3 tracks, one with 11 "Garbage" (HAH!) tracks. And of course there's that ever present "All Music" playlist....thank you Windows Media Player.....

All Music.spl = 975 Tracks
test2.spl = 43 Tracks
test3.spl = 1 Track
test4.spl = 3 Tracks
Garbage Version 2.0.spl = 11 tracks

Findings (.SPL File Format):
    1) Header = 28 Bytes (0x1C) (I though it was 32 bytes, but it isn't, read more below...)
    2) Byte 1 = 0x01, always.
    3) Byte 7 = # of Tracks in HEX (0x0B = 11)
    4) Bytes 17-20 = DATE/TIME STAMP???
    5) Bytes 20-28 = ??
    Rest is Track Title / Album / File Location and Name data separated by nulls/etc.

A view of what I'm talking about above:


    6) Byte 29 = Length of MP3 Song Title that will be displayed on the player, see this example:

    Here you see that the original Garbage playlist has a length of 7 characters for the song name ("Track 1").
    Well, in order to insert LONGER song titles (so that you actually know what you're listening to..)
    you have to modify the 4th byte from the beginning of the actualy song title.
    In this case (as an example) the title length came right after the header, so it's byte 29 that went from 7 Characters (0x07) to 27 Characters (0x1B).

Steps to making a "custom" playlist:
    1) Use Windows Media Player to add some tracks (not too many, I added "Garbage Version 2.0", 11 songs). After you do that, you will see the "Garbage         Version 2.0" playlist that includes the tracks you imported in "\Disk\Playlists\Garbage Version 2.0.spl" on your player.
    2) Put some other music on the player (such as, Depeche Mode - Personal Jesus.mp3 in my case) in a specific folder (\Disk\Music\80s\).
    3) Take the "Garbage Version 2.0"playlist (.SPL) and modify one track. All that has to be done is to edit the file listing for the track (\Disk\...), nothing else.     In my case I also edited the Album/Title name. From what I've seen, there is no "file size" or checksum data in the .SPL (thankfully). Because the                
    file/folder listing of the song that I was modifying was LONGER than the song I was going to put in there, I had to chop off some bytes from the file listing.     This worked awesome.
    See below:

   
    4)
I placed the modified "Garbage Version 2.0" playlist on the player, added my one test song (Depeche Mode - Personal Jesus.mp3) and fired it up. It worked! This means that there's no "special" procedure to creating these Playlists. Simple process of clumping together the ID3 Tag data (title/album/genre) and the file location. Add some separators and go on to the next song. Whats next? Code!
    5) (03/04/07) I was wrong about the above.... you have to modify the track title length byte
so that it doesn't crash your player (Go to beginning of Track Title, then go 4 bytes back, and you're at the Track Title Length byte). Unless you want to stick with song names such as (TrackOne or DphMdPJ<-- Depeche Mode - Personal Jesus). I figured this part out when I was trying to figure out how to add meaningful Track Titles to the Playlist i was about to create.



Firmware: Research

    Just like the original Aireo, the firmware is packed. I unpacked it (see Aireo page) and went straight to "PlayerAppMain.exe" (the heart of the Aireo2). I was looking through the STRINGS of PlayerAppMain.exe and found these little nuggets (what caught my eye is the / forward slash, instead of the usual \ backslash that means local files):


http://www.soniqcast.com/

followed by:

/player_config/player_config.ini
/player_config/podcasts.ini


Putting 2+2 together... I went to this URL:http://www.soniqcast.com/player_config/player_config.ini

OH BOY! Lots of other goodies in there.

firmware.ini
The WMP can check online if there is a firmware upgrade available, if it is, it check's the default download URL.
This will come in handy for Firmware replacement (if I ever get around to that).

Looks like those files are gone from the site. Good thing I have local copies.

PAGE UNFINISHED  - 06/20/07

Created by roto / mozy.org - May 10th, 2007