Rockbox Technical Forums

Rockbox Development => New Ports => Topic started by: wah_wah_69 on January 01, 2011, 06:01:53 PM

Title: Packard Bell Vibe 300
Post by: wah_wah_69 on January 01, 2011, 06:01:53 PM
Hi everyone!

I've owned a Packard Bell Vibe 300 for aroud 4 years (It was a christmas gift), the first thing I made when it was given to me was to take a look around here for a port, but there was none  :'(

Later this past year (2010) I found out about the vibe 500 port, I read somewhere that rockbox was ported to some Packard Bell player I was very disappointed when I realized I din't own the vibe 500 but the 300.

So this evening I took a look around here to see if a port for vibe 300 had "magically" appeared, but there was none  :'( :'(.

So I took a brief look at the documentation about rockbox's installation on the vibe 500, it seems there's no need to flash a bootloader, that gave me some hope. I decided to peek into my vibe's system directory I found it contained a file called PP5020.mi4 which contains the strings:

..portalplayer......PP5020AF-05.22-PP07-05.22-MN01-01.00.16-DT..2005.03.16..(Build 129)..Digital Media Platform..Copyright(c) 1999 - 2003 PortalPlayer, Inc. All rights

I googled up a bit and found some info that indicates my player might use a Portal Player 5020 processor:

http://en.wikipedia.org/wiki/PortalPlayer#PortalPlayer_5020

( You probably already know about this wikipedia entry, hell if you're reading this you might have written it yourself! )

Knowing that the portal player chip is already supported in rockbox (It's used in the iriver h10 and the ipod 4th gen) and wishing the bootloader is similar to one previously known...

How much work is needed to get a port up and running in the vibe 300?

I guess there's a lot that might differ from the other players using pp5020, like lcd driving, storage, radio, etc...


Here's some info that might be interesting for everyone:

The vibe 300 player has a 6gb microdrive, sd slot, FM radio (With and addon that came bunbled with the player), microphone in, a 160*120 screen (I guess I'd take a look at proper documentation later) and can act as a usb host.

When I received this player I read some site criticizing Packard Bell for using the same interface as some cheapers chinese players (But that means nothing as the internal components may vary).

Here's a dissasembly guide form Packard Bell:

ftp.legend-support.com/pub/itemnr_old/7045710000/Vibe_300_Disassembly_Manual.pdf

It might be interesting to open it but i'd like to know what to look at first.

I'm tempted to try the iriver h10's mi4 file on my player, as I've read about the vibe 500 as long as you have a backup of the original mi4 you can switch back to the original by just running as a usb disk and replacing the files.

Sadly I don't own a logic analizer not even an oscilloscope, I guess the most important thing apart from visual confirmation that its running a pp5022 is a dump of the eeprom with the bootloader (If there's any).

Later I'll take a look around for proper specs and any info that might be useful, please let me know what you think about this, I will also take a look about rockbox's codebase to familiarize with it.
Title: Re: Packard Bell Vibe 300
Post by: LambdaCalculus on January 03, 2011, 03:09:13 PM
In order to see what's needed for a new port, read this page:

http://www.rockbox.org/twiki/bin/view/Main/NewPort

Since the Vibe 300 uses a PP5020 SoC, this makes a big portion of the porting effort rather easy. The fact that it also uses mi4 files means that the porting effort may be even easier. You should read this page (http://daniel.haxx.se/sansa/mi4.html) for some more information about the mi4 file format, and some useful pointers for it.

Take apart your device and see if there are any chips in it that may be in use in existing targets. I know next to nothing about the Packard Bell DAPs, but I'm banking that the Vibe 300 and Vibe 500 may use similar hardware, apart from the LCDs.

On one last note, the pictures of the Vibe 300 that I'm seeing on Google show that it has a portrait oriented screen. Since you mentioned it having a 160x120 (possibly 160x128) resolution, then rotate that to portrait orientation and you have a 128x160 LCD.
Title: Re: Packard Bell Vibe 300
Post by: b0hoon on January 09, 2011, 05:26:26 PM
Hi.

So I took a brief look at the documentation about rockbox's installation on the vibe 500, it seems there's no need to flash a bootloader, that gave me some hope. I decided to peek into my vibe's system directory I found it contained a file called PP5020.mi4 which contains the strings:

..portalplayer......PP5020AF-05.22-PP07-05.22-MN01-01.00.16-DT..2005.03.16..(Build 129)..Digital Media Platform..Copyright(c) 1999 - 2003 PortalPlayer, Inc. All rights

Yes, it's definitely Portal Player (PP5020) based DAP. It's almost the same as Vibe 500. Some time ago i thought about porting Rockbox to it, but lack of hardware was the main reason to abandon my interest. You have to do a lot of tests during porting process and without the DAP this is impossible.

Knowing that the portal player chip is already supported in rockbox (It's used in the iriver h10 and the ipod 4th gen) and wishing the bootloader is similar to one previously known...

How much work is needed to get a port up and running in the vibe 300?

I guess there's a lot that might differ from the other players using pp5020, like lcd driving, storage, radio, etc...

Basically it's a hard work for one man. First you should dismantle your player and take a pictures of the hardware (lcd, mainboard etc.). Please take a look at the Vibe 500 Wiki page (http://www.rockbox.org/wiki/PackardBellVibe500Port) as a reference. Every valuable information should go to the new wiki page for this target. Then you should start to disassembly the bootloader image or firmware image (mi4) and find out how the lcd works. After it everything else like buttons, sound, radio, adc... Next step is to write the drivers for different components and at the end a lot of other things like simulator, plugin keymaps, manual, installation with RockBox Utility, etc.

When I received this player I read some site criticizing Packard Bell for using the same interface as some cheapers chinese players (But that means nothing as the internal components may vary).

Hehe, this is interesting. Cheap chinese player remind me of the China chips, not the Portal Player. So Apple iPods, Philips Gogears, Irivers H10 are chip chinese players according to this site... It's a good player and no worse than these mentioned above IMO.

I'm tempted to try the iriver h10's mi4 file on my player, as I've read about the vibe 500 as long as you have a backup of the original mi4 you can switch back to the original by just running as a usb disk and replacing the files.

True. There is always a way to restore Portal Player based DAP (HDD versions), but trying a different mi4 file does not make sense because of hardware differences, not to mention that every mi4 file is encrypted with a different key (for a different DAPs).

Sadly I don't own a logic analizer not even an osciloscope, I guess the most important thing apart from visual confirmation that its running a pp5022 is a dump of the eeprom with the bootloader (If there's any).

You should be able to unpack the bootloader image and the mi4 image from this file:
ftp://ftp.packardbell.com/pub/itemnr/7045080000/Vibe300_fw103.exe
The simplest method is to run the updater and then search C:\Documents and
Settings\[username]\Local Settings\Temp for the folder containing two files: BL_pp6005_5020_color.rom (bootloader image stored in the flash) and PP5020.mi4 (firmware image stored in the system folder).

And the last thing, here is the page which helped me a lot with starting to work on the files for Vibe 500. It's for Iriver H10, but it is an essence:
http://www.rockbox.org/wiki/IriverH10PortDevInfo#Development_Information
Title: Re: Packard Bell Vibe 300
Post by: wah_wah_69 on January 11, 2011, 11:42:47 AM
LambdaCalculus379 and b0hoon thanks for your reply!

I read all this past week:

http://www.rockbox.org/wiki/IriverH10PortDevInfo
http://www.rockbox.org/wiki/SamsungYH92xPort
http://www.rockbox.org/wiki/PackardBellVibe500Port
http://daniel.haxx.se/sansa/mi4.html
http://www.rockbox.org/wiki/PortalPlayer
http://www.rockbox.org/wiki/PortalPlayer502x

And I think got the bootloader (sort of) working, let me explain you how I made it.

As saratoga pointed me in IRC I should be looking for a bootrom, but the system directory of my player only contained the update.exe.

Looked in the packard bell site for the last update but it seems to be unsupported, all I found was the link to the disassembly guide, I could browse the ftp just fine but with the client I was using I couldn't list directories recursively, all the directories were named "/pub/itemnr/7045080000/" and the like, with no idea of what you were heading for, Archive.org didn't help here as the old site redirected to the new site.

As I didn't want to completely mirror the ftp for just one file I took a look into the .ini file of the update program located in the system directory of  my player here's it's content:

Code: [Select]
[UpdateVersion]
Firmware=01.00.06

[UpdateFilename]
Bootloader=BL_pp6005_5020_color.rom
Firmware=PP5020.mi4
Font=none

[PIDAndVIDOfPlayer]
VID=Portable
PID=Digital Player

[PID-Version Mapping]
Digital Player=01


Notice how the version reads: "Firmware=01.00.06" while the installed version is 01.00.16 ()

So I googled for "BL_pp6005_5020_color.rom"

And found this russian msi forum, http://forum-ru.msi.com/viewtopic.php?f=20&t=6865&start=90&st=0&sk=t&sd=a

My russian knowledge is next to none, but I could see they're talking about the msi mega 536, well it seems that the msi mega 536 and the vibe 300 are quite similar, similar case, similar if not same board (Same location of the sd slot, reset switch), same screen resolution,etc... (But different hd size).

So I decided to download the the firmware update of the msi mega 536, and it came with the BL_pp6005_5020_color.rom file, so all I did was keyscan with the msi bootrom and the msi mi4 file and got a key, then I tried the msi bootrom and the vibe 300 mi4... and got the same key.

I decrypted both mi4 files and both verified as ok.

After reading all the documentation and setting up the build enviroment I compiled the bootloader of the vibe500 but changed the corresponding keys in the tea keytable on the file bootloader\main.pp from the rockbox source.

I also built rockbox for the vibe 500 just to get the hang about building rockbox, tried decrypting the rockbox os with the vibe 500 bootrom key and the encrypting it with the msi mega 536 key, and adding the dummy signature later, I tried many things I don't remember right now but sometimes the player would identify itself as "New hardwared found - rockbox player" when plugged in under windows, I think that was with the vibe 500 rockbox os image signed with the vibe300/msi key and placed in /system directory as if it were the original firmware (without rockbox bootloader).


The rockbox bootloader I have is able to load the original firmware named OF.mi4 in the /system directory it seems to fail when loading the mi4 rockbox os from the .rockbox directory and default to of.

The vibe 300 loads the msi mega 536 firmware just fine, but it seems the touchbuttons controller is different as I can only use 4 of the 6 buttons, I can use up,down,left and right but back and accept are not detected (i can also use the record button and power-on/off).

b0hoon the packard bell ftp isn't working for me right now I guess they're  working on maintenance duties i'll check the original firmware just to make sure it uses the same rom or a different rom with the same key, but i think I got it correct.

*EDIT* yes it's working, there's something wrong about this forum and ftp links, it adds the http:// prefix!, the thing is the bootrom of the firmware update you posted produces the same key as the msi bootrom but the mi4 file itself doesn't load in my player, could it be caused for having a different bootrom flashed? The firmware I have is labeled 1.00.06 in the update program and 1.00.16 in the menu of the firmare itself, the one you linked is labeled 01.00.03.

There's one think I don't understand from the buildsystem, at which point the mi4 rockbox os image is signed with the corresponding key, or if it's needed at all since you load from the bootloader and you have the control of the player at that point.

Well, I'm not sure the bootloader is fully working because if I place the OF.mi4 renamed as  rockbox.mi4 in the .rockbox directory it fails and defaults to the OF in the /system directory, as I stated befor I don't understand fully how everything is signed don't know if they're interchangeable at all, all I can state is that it loads the OF.mi4 from the /system directory.

The Of.mi4 file has 01030100 at the corresponding offset, and loads just fine with the dummy signature (md5 changes after signing).

I guess the next step would be disassembling both the bootloader rom and the original firmware, but I have no idea what exactly I should be looking for plus I have no experience with ARM asm, I know x86 and mips assembly I hope arm is easy to pick up.

I'll post again when I find something useful or need some help.
Title: Re: Packard Bell Vibe 300
Post by: LambdaCalculus on February 25, 2011, 12:38:23 PM
If you have any findings to report, they should really go into the wiki as opposed to on the forums. At least on the wiki, everything about a port is in one place, and you can constantly add to it as you need to.

Anything like PCB scans, firmware files, hardware info, etc. should be posted there.