Introduction

When a player is attached via USB as a mass storage device, the USB to ATA / ATAPI drive interface may be handled by a bridge chip in the DAP. This chip is responsible for the drive initialisation, and the stock parameters do not necessarily provide the best performance.

ISD-300

Several of the Rockbox compatible DAPs use either an ISD-300A or ISD-300LP USB-ATA bridge device. In some cases, the stock configuration limits the fastest transfer mode to PIO mode 4 (max 16MB/s). The ISD-300 devices are capable of UDMA mode 4 (max 66MB/s). This guide shows how to update the ISD-300 configuration to enable UDMA mode 4.

The datasheet implies that, with the updated configuration, if the ATA device is not UDMA mode 4 capable then the fastest mode that the drive supports will be used.

DAPs known to have an ISD-300:

ISD-300A

Archos Rec. V1 (USB2.0)

Archos Rec. V2

Archos Rec. FM

ISD-300LP

iAudio X5

iAudio M5

iAudio M3

Iriver H1x0 series

Iriver H3x0 series

ISD-300 UDMA USB Utility

This utility communicates directly over USB from the PC to the ISD-300.

It can:

determine the current UDMA settings

write UDMA enable to RAM for testing or temporary changes.

attempt to write to the EEPROM to make UDMA permanently enabled when used as a mass storage device.

After installing libusb-win32-filter-bin-0.1.12.1.exe, run the libusb test program to ensure that the library can see the DAP.

Prerequisites for speed gain

your DAP has an ISD-300

the drive (CF or hard disc) is UDMA capable

The ISD-300 default maximum is currently < UDMA mode 4

Find the UDMA settings

1) Connect the DAP to the computer via USB.

2) Run isd300_udma.exe

3) If a compatible DAP is found (USB ID listed in isd300_udma_id.h), select 'Config bytes'. The current UDMA configuration will be displayed. You can then proceed to:

Test the modified settings

UDMA enable settings can be tested temporarily if 'Config bytes' was selected in step 3). The original settings will be restored after powering off, or reconnecting a USB cable depending upon the DAP. After following steps 1) to 3) above, if the maximum settings are not in use, you will have the option to write the faster settings to the config RAM. Press 'y' if you wish to do this. If the write is successful, the DAP will be reset to activate the settings.

If you find that the modified settings produce a performance gain, you may wish to make them permanent by:

Writing to EEPROM

The EEPROM is where the ISD-300 loads its configuration from. The modified settings may be written here so that they are loaded every time. On some DAPs the EEPROM may be written to by default, on others the EEPROM has a write protect pin enabled which prevents writes. The program will inform you whether the write was successful.

To attempt to write to the EEPROM, follow steps 1) and 2) above, then select 'EEPROM' as the target, then 'y' to try to write.

If protected, then the EEPROM may be temporarily write enabled by changing the state of the pin. This must be undertaken with great caution, especially with regard to ensuring that VCC is not shorted to ground. Alternatively, if you just wish to use the UDMA settings whenever a large transfer to or from a PC is required, or cannot write to the EEPROM, then modify the config RAM before starting a transfer.

On IRiver H300 series you can do this safe and easy: under the Harddrive (back of PCB) there is a debug header top/left of the main CPU. There are many test points, one of them is called WP. This is the point directly under the text. Connect this to ground (i clamped a wire between the usb plug and header) to write the EEPROM.