Device has been working fine until now. FW/SW is totally fine. Only problem is that i can now push the scroll wheel at the top, right beneath the play button and it acts as that button. the play button has no more functionality. i don't know how this happened, but it think somehow the tactile buttons on the pcb have moved. is there a chance to fix this?
Edit:
I opened the device and everything looked fine. But the topmost button is overly reactive. all other buttons have to get real presses (i.e. you feel the button click) but the top button reacts to the slightest touch. this is with either the OF or RB, so it's really a hardware issue. is it possible to replace a button? can i simply unsolder that button? i didn't find which model it is on the wiki. Can you tell me, so i can buy a new one?
On the other hand, could i exclude the function of the play button from the source and compile a version which lacks the play button? which files/parts of the code would i have to edit?
Edit:
With the friendly help of bertrik on the Rockbox IRC chanel, i got this problem fixed. if anybody else encounters such a strange behaviour, all you have to do is disable the play button in the button keymap file like this:
Index: firmware/target/arm/sandisk/sansa-e200/button-e200.c
===================================================================
--- firmware/target/arm/sandisk/sansa-e200/button-e200.c (revision 24143)
+++ firmware/target/arm/sandisk/sansa-e200/button-e200.c (working copy)
@@ -252,12 +252,12 @@
if (!_button_hold())
{
/* Read normal buttons */
- if ((state & 0x01) == 0) int_btn |= BUTTON_REC;
+ if ((state & 0x01) == 0) int_btn |= BUTTON_UP;
if ((state & 0x02) == 0) int_btn |= BUTTON_DOWN;
if ((state & 0x04) == 0) int_btn |= BUTTON_RIGHT;
if ((state & 0x08) == 0) int_btn |= BUTTON_LEFT;
if ((state & 0x10) == 0) int_btn |= BUTTON_SELECT; /* The centre button */
- if ((state & 0x20) == 0) int_btn |= BUTTON_UP; /* The "play" button */
+// if ((state & 0x20) == 0) int_btn |= BUTTON_UP; /* The "play" button */
if ((state & 0x40) != 0) int_btn |= BUTTON_POWER;
}
}
The proper way to fix it would be to replace the button, but since i don't know which part number it is, this simple firmware modification fits my needs perfectly.