FS#10809 - Sansa E200 won't correctly connect mass storage with HID enabled

Attached to Project: Rockbox
Opened by geert van dijk (graey) - Wednesday, 25 November 2009, 15:26 GMT
Last edited by Nils Wallménius (nls) - Saturday, 16 October 2010, 22:04 GMT
Task Type Bugs
Category Operating System/Drivers
Status Closed
Assigned To No-one
Operating System Sansa e200
Severity Low
Priority Normal
Reported Version Release 3.4
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


My E200 won't correctly connect as a mass storage device with HID enabled (Windows wants a driver but can't find a suitable one). HID does work, and when HID is disabled, HID doesn't work (obviously), but mass storage does.
Build used: r23746-091125
OSes used: XP SP3, Vista SP2, Windows 7 (all x86).
If more information is needed, I'll gladly provide it ofcourse :)
This task depends upon

Closed by  Nils Wallménius (nls)
Saturday, 16 October 2010, 22:04 GMT
Reason for closing:  Out of Date
Additional comments about closing:  mc 2739 was unable to reproduce this and noone has commented in almost a year.
Comment by Tomer Shalev (tomers) - Wednesday, 25 November 2009, 15:31 GMT
Try to refresh the windows drivers.
Under Device Manager, right-click the Rockbox device (maybe even do it for each sub device - Mass and HID, separately), and select 'Uninstall'. Then unplug the DAP, and re-insert it (HID can be enabled).
I've noticed that Windows somehow caches the drivers, so when you upgraded your firmware, and now it also enumerates as a USB HID device, Windows can get confused.

Please report your results so we can know if this bug is valid or not.
Comment by geert van dijk (graey) - Wednesday, 25 November 2009, 16:26 GMT
Some more information:

HID disabled:
VID: 0x0781 (SanDisk Coorporation)
PID: 0x7421
Serial Number: 1000000000000000093B367880AE4FFF4

HID enabled:
VID: 0x0781 (SanDisk Coorporation)
PID: 0x7421
Serial Number: 3000000000000000093B367880AE4FFF4

Original Firmware, MSC:
VID: 0x0781 (SanDisk Coorporation)
PID: 0x7421
Serial Number: 00000000-00000000-8867b393-f4ffe40a-00000000

Original Firmware, MTP:
VID: 0x0781 (SanDisk Coorporation)
PID: 0x7420
Serial Number: 00000000-00000000-8867b393-f4ffe40a-00000000

So VIDs are equal for all, PID changes only with OF in MTP mode, and Serial Numbers are logically unique.
While I was on it, I checked, and when booting rockbox it always has the same PID (0x7421 in my case), even if the OF is set to MTP and has a different PID (0x7420 in my case). You probably already knew this as you wrote rockbox, but hey, it's worth to make sure.
Comment by geert van dijk (graey) - Wednesday, 25 November 2009, 16:33 GMT
Okay, this is very weird. After going into the OF and setting it to MTP (and rebooting into Rockbox ofcourse), it works (HID and mass storage at the same time).
I went back into OF and set it to MSC, and it still works.
Tomer Shalev: I did that already, but I went from 3.4 to current, and both 3.4 and current have both HID and mass storage, so it probably isn't some confusion because it now enumerate a HID as well (as it already did that with 3.4 stable, which worked for me flawlessly and continuously).
Comment by Michael Chicoine (mc2739) - Wednesday, 25 November 2009, 16:43 GMT
I am having the same issue on an e270r with r23746, but it started failing several days ago. I am not sure which current build was installed then. I first noticed the problem after connecting the device in the OF MTP mode, although this may be coincidental. I see the failure on Win 7RC and WinXP SP2. I have an e280v1 that is not having this problem.

I am attaching USBView info from the Win 7 system and pruned lsusb -v from my Ubuntu dev system of the OF MSC and MTP modes and the Rockbox HID enabled and disabled modes.

@tomers - I did uninstall the driver and then reattach on the Win 7 system and had the same results.