dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Wiki > Main > OlympusMR500Info (compare)

Difference: OlympusMR500Info (r53 vs. r52)

Olympus M:Robe MR-500 Info


The M:Robe MR-500 MP3 player has an integrated 1.2 MP camera and 20 GB hard drive. It's based on the Texas Instruments TMS320. It features a 640x480 VGA colour LCD screen with backlight. The player has a touchscreen and 79x16 pixel remote for interaction.

The official Olympus press release for the M:Robe MR-500 is here and their M:Robe 500 site is here.

Note: Olympus has discontinued the entire M:Robe product line.

Other Developments

There is a port of Opie to the MR-500 by Shirour and Catalin Patulea. A forum post explains how to install the pre-built Opie image. Shirour also has a development page that contains some tools for creating applications without Rockbox or Linux.

Many drivers have been written for the Linux/Opie port but there has been no activity since 12/08/06. A backup of the development wiki is available here. A compiled version plus some documentation is available.

Rockbox Status

There is a M:Robe MR-500 Rockbox port in progress. Beyond what is available in SVN an additional piece of code is needed to start the Rockbox boot process based off Shirour and Cat's(a.k.a eigma) work on Linux. The code is attached at the bottom and can be built in a standard Rockbox development environment. Once built, an SVG file is generated that should be placed in a remix directory.

Note: It does not appear that anything is attached to the I2C interface, but it has not been probed extensively.

LCD driver 95%
Backlight 100%
ATA driver 95%
Button driver 90%
ADC driver 95%
Remote button driver 70%
USB handler 90%
Power handling 90%
Audio DAC driver 95%

Additional work to be done:

  • Booting from Flash instead of using the OF to boot
  • Write low-level initialization for drivers that are still relying on the OF
  • Remote needs cleaner LCD support

Things that might be nice to have (not included in the driver status):

  • ATA driver might be improved with Multi-Word DMA or Single-Word DMA - UDMA does not look possible with the external interface. Quickly looking at the code, I believe this would require some changes to the current ATA DMA support in rockbox as it currently expects to be able to use UDMA when ATA DMA is enabled.

Installation / Running Rockbox

Installing and running Rockbox is a three part process, first you need to install the modified firmware, then you need to perform the rockbox installation steps, and finally you need to run it.

Step 1) Modified Firmware Installation

To run rockbox you will need a modified firmware installed on your player. The image was created by Shirour on the forums. There are currently three methods to install the modified firmware. I recommend using method A if you are on a windows machine and are not a developer.

Method a: Well tested modified firmware installation

  • Download the Windows firmware updater here.
  • Extract the zip file and run Firmup.exe.
  • Follow the steps presented on screen.
  • Go on to step 2 when this is complete.

Method b: Alternate firmware installation

Note that this has had little testing and was only confirmed to work on two players that were already running firmware version 1.03. This has not been tested at all with earlier firmware versions. This method likely does not have all the safeguards that the well-tested method does and it may break your device permanently.

  • Download the firmware image here.
  • Extract the contents to the root of your M:Robe, this will create a subfolder in the System folder named "{#4F494D4346575550#}" which contains a file named "N5002-BD.BIN". "N5002-BD.BIN" should be 8,323,100 bytes in size.
  • Hold the power button till the blue LED above the LCD begins to flash.
  • Release the power button and the player will shutdown.
  • Make sure the player is connected to its charger.
  • Press the power button again. The player will show the m:robe loading screen for a bit and then the LCD will go blank while the blue LED over the LCD flashes. This will continue for about 2 minutes.
  • The player will start up again with the new firmware.
  • Go on to step 2 when this is complete.

Method c: Installation method for patching with mk500boot

Note: This is the development method of installing patched firmware

  • Download the original M:Robe 500 1.03 firmware image here.
  • Extract the firmware image with 7zip: "7z x MR500i_FirmUp_103b.exe"
  • Run Decryption program on N5002-BD.BIN: "mk500boot -decrypt N5002-BD.BIN N5002-BD.DEC"
  • Patch N5002-BD.DEC: "mk500boot -patch N5002-BD.DEC"
  • Encrypt N5002-BD.DEC: "mk500boot -encrypt N5002-BD.DEC N5002-BD.BIN"
  • From here there are two methods to proceed:
    • Use the Olympus installer
      • Open Firmup.ini
        • Change "FirmVersion=1.030" to "FirmVersion=1.050"
        • Change "CheckVersion=1.03" to "CheckVersion=1.05"
      • Delete the N5002-BD.DEC file from the "{#4F494D4346575550#}" folder
      • Run Firmup.exe and follow instructions
    • Use Alternate installation method
      • Make a new folder in the /System/ folder called "{#4F494D4346575550#}"
      • Copy the newly encrypted N5002-BD.BIN to the "{#4F494D4346575550#}" folder
      • Hold the power button till the blue LED above the LCD begins to flash.
      • Release the power button and the player will shutdown.
      • Make sure the player is connected to its charger.
      • Press the power button again. The player will show the m:robe loading screen for a bit and then the LCD will go blank while the blue LED over the LCD flashes. This will continue for about 2 minutes.
      • The player will start up again with the newly patched firmware.
  • Go on to step 2 when this is complete.

Step 2) Rockbox Installation

Rockbox requires a modified SVG to load the Rockbox bootloader which then loads the main Rockbox build. The installation instructions are as follows:

  • Extract this zip file to a temporary directory on your computer.
  • Copy the SVG file in the temporary directory to the player's User/Remix/R0000001 folder. Make sure the SVG that is existing in that folder matches the name of the file that is copied in.
  • Copy "rockbox.mrboot" to the player's root (i.e. if the player is drive D: rockbox.mrboot would simply be copied to the D: drive)
  • Download the latest M:Robe 500 build ( and extract it to the player's root (For example the player shows up as the D drive on my machine so I would extract the zip to the D drive)
  • Continue to step 3 below.

Step 3) Running Rockbox

After the modified firmware is installed and the Rockbox installation directions have been followed Rockbox can be run:

  • Turn the player on (or go to the home screen)
  • Select the Remix option (center button on the home screen)
  • If the top of the screen says "SET" instead of "PLAY" press the top right button, and then play from the drop down.
  • Once on the "PLAY" screen select the first Remix cube and Rockbox will launch.


  • Processor
    • TI TMS320DM320 (DM320) - This is an ARM & DSP (C5409) SOC. TI no longer has information for this chip on their website, but this page has the full datasheets.
  • Battery
    • Li-Ion battery MH29722 - The battery capacity is about 1100mAh and it can be replaced with a high capacity 1 or 2 gen iPod battery.
    • Semtech SC802 Lithium Ion Batter Charger System
  • LCD
    • Sharp LS037V7DD02 - The other markings on the LCD at 4Z013063, DUNTB0017DPZZ, 4Z013337, P0014D on the side, and P0015D on the bottom.
  • Hard Drive
    • Toshiba MK2004GAL (HDD1422) - 20GB 1.8" harddrive from Toshiba: 3.3V, 500mA
  • Bus Switch
    • 46cnkvk cn210 - SN74CBTLV16210 FET 20BIT BUS SWITCH. HD buffer?
  • Connectors
    • The cradle has a Hirose ST-type 18 contact shielded plug. The part number is ST80X-18S(50) or (80).
    • The USB cable also has a Hirose ST-type 18 contact shielded plug. The part number is ST40X-18S-CV(50) or (80).
    • The cradle and USB pinout are available on the GPIO page.
    • These are some additional notes from the original M:Robe 500 Wiki written by the user cben:
      • WARNING:
        • Taking apart the USB cable is easy but putting it back without damage is very tricky! I broke the connection to the shielding, which is not that important electrically but quite important mechanically. Now my cable rotates freely at the point it enters the connector, and it worries me frown Please don't try this yourself at least until I post photos of the damage.
      • Charging without cradle
        • I think it is OK to short the DC 5V pins to VBUS pins of the USB cable, so that I can charge directly with the USB cable. The only drawback to that (and the probable reason why Olympus didn't do this) is that USB only allows taking 500mA and only if the device requested it, while the DC supply is rated for 2A. So doing this violates the USB spec - but should be OK with most PCs, they don't really limit the current. Anyway, I recommend you don't try this until I post my results.
        • TO DO/Questions:
          • Measure actual consumption while charging. (Estimated at about 250-300 mA in Rockbox at least).
          • How much current can the USB cable handle?
      • Video-out without cradle
        • The tip-and-3-rings connector for the remote is unfortunately (and confusingly) not stereo+video but stereo+reset :-(. This means that you can only watch the video-out through the cradle. I don't see a good easy way to work around that.
        • If you can obtaining new plugs, then preparing a custom cable (player to 3 RCA plugs) looks like a good idea. However, you can't use it and USB at the same time.
        • Soldering new leads out of the USB cable is possible but ugly, and I'm afraid it might give sub-optimal signal integrity.
      • Hidden interface
        • Does the cradle connector contain any hidden interface not accessible by the regular cradle? Apparently yes! Note that they bothered to connect pins 15 and 16 from the cradle-player connector to the cradle-USB cable connector. They didn't do it for other pins, only USB pins and 15,16. This implies that Olympus has some undocumented use for them (through some special cable), and wanted them use to be accessible through the cradle as well. My hope is that these pins allow writing to the flash in some way. If so, we could rescue bricked players, which means we wouldn't have to be afraid of bricking. No idea how to discover the interface though. As for pin 11, my guess is that it's simply unused.
  • More Information

JTAG interface

The M:Robe 500 has exposed test pads for a JTAG connection on the bottom side of the board. Many thanks to Cat for the information and associated image:


USB Information

Bus 005 Device 120: ID 07b4:0281 Olympus Optical Co., Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x07b4 Olympus Optical Co., Ltd
  idProduct          0x0281 
  bcdDevice            1.03
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0

PCB Scans

  • Bottom PCB Scan:
  • Top of the PCB:
  • The part that is obscured in the photo:

Sound Output Architecture

Sound output on the m:robe 500i is a bit of a pain in the butt because Olympus decided to attach the data interface of the DAC (TSC2100) to the DSP only. This means we need to run code on the DSP and use the DSP's DMA and peripherals to output sound. Below is a systems-level diagram of the parts involved in the process.


[Diagram is copyright 2008 Catalin Patulea under GNU Free Documentation License.]

(In most cases, the things in brackets are references to the documentation for that particular block. SPRUxxx are Texas Instruments document numbers and they are freely available on

This may seem a bit complicated "just to make sound play", but it's actually fairly justified. Since the DMA controllers can (approximately) do one transfer per clock cycle, they are much faster and more power-efficient than the CPU for the same job. And besides, the CPU has better things to do (like decoding).

The 16Kw (32 kbytes) of DSP data RAM is split in two halves. As soon as one half is completely sent out via the McBSP (and at the same time as the second half is being sent out), the DSP starts up the HPIB DMAC to grab the next half from SDRAM. And so on.

The DSP portion of the SVN code (in firmware/target/arm/tms320dm320/dsp/) can be built with TI's 54x code generation tools available here. The code generation tools are now available for windows and Linux machines. The DSP code is built outside of the normal rockbox flow. To build go into firmware/target/arm/tms320dm320/dsp/ and run "make" after the tools are properly installed and setup. This will create a dsp-image.h file that is used when building the main rockbox code.

CategoryFrontpage: Olympus M:Robe 500 Port Index [New Ports]

MrobLOAD.zipzipMrobLOAD.zipmanage 12.5 K 26 Feb 2009 - 21:52KarlKurbjun Rockbox revised raw image loader (needed for latest builds)

r53 - 15 Nov 2011 - 04:56:04 - CatalinPatulea

Revision r53 - 15 Nov 2011 - 04:56 - CatalinPatulea
Revision r52 - 20 Feb 2011 - 05:22 - KarlKurbjun
Copyright by the contributing authors.