FS#7278 - remote volume up keypress sometimes causes directory skip (iriver h140)

Attached to Project: Rockbox
Opened by Kévin Ferrare (TiMiD) - Saturday, 09 June 2007, 08:01 GMT
Last edited by Steve Bavin (pondlife) - Tuesday, 05 May 2009, 12:44 GMT
Task Type Bugs
Category Remote
Status New   Reopened
Assigned To No-one
Operating System Iriver H100 series
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


Pressing the remote volume UP key on my iriver 140 in wps sometimes results in directory skip.
This is not easy to reproduce, but I was able to repeat once that problem in conditions where I'm sure that the directory skip key wasn't pressed.

I don't know if it's a hardware related problem, but I've read somewhere about another user having the same problem.
This task depends upon

Comment by Kévin Ferrare (TiMiD) - Thursday, 19 July 2007, 12:07 GMT
The problem doesn't occurs with the original firmware, so I guess it's a software related problem
Comment by Jose Celestino (japc) - Tuesday, 04 September 2007, 20:11 GMT
Can confirm that this happens to me also. Same iriver model, ihp-140.

Doesn't occur with iriver firmware.

[japc@morgoth:~/RB/.rockbox]$ grep ^Version rockbox-info.txt
Version: r14559-070831
Comment by Kévin Ferrare (TiMiD) - Saturday, 27 October 2007, 05:19 GMT
Seems like this only happens with aging remote units, but since it doesn't happens in the original fw there must be a way to fix it
Comment by Fabian Wenzel (sophonet) - Wednesday, 25 March 2009, 00:12 GMT
  • Field changed: Percent Complete (100% → 0%)
It would be great to find a solution (workaround) for this problem. My machine *always* skips to the next directory if the volume up button is used on the remote. This never happens with the original firmware (just tried). So indeed there should be a way to fix it.
Comment by Cliff Hammerschmidt (tanglebones) - Wednesday, 25 March 2009, 17:09 GMT
I note there is an ADC debonce on the main units inputs, but not on the remotes.

data = adc_scan(ADC_BUTTONS);

/* ADC debouncing: Only accept new reading if it's
* stable (+/-1). Use latest stable value otherwise. */
if ((unsigned)(data - prev_data + 1) <= 2)
last_valid = data;
prev_data = data;
data = last_valid;

data = adc_scan(ADC_REMOTE);
switch (remote_type())
if (data < 0xf5)

Maybe it's a combination of the hardware aging and producing a more significant bounce when changing the signal for the remote and the lack of the debouncing code being propagated to the remote handing code.
Comment by Cliff Hammerschmidt (tanglebones) - Saturday, 28 March 2009, 23:41 GMT
The following patch appears to help, but not eliminate the problem.

--- firmware/target/coldfire/iriver/h100/button-h100.c (revision 20563)
+++ firmware/target/coldfire/iriver/h100/button-h100.c (working copy)
@@ -68,6 +68,8 @@
static bool remote_hold_button = false;
static int prev_data = 0xff;
static int last_valid = 0xff;
+ static int prev_data_remote = 0xff;
+ static int last_valid_remote = 0xff;
bool hold_button_old;
bool remote_hold_button_old;

@@ -131,6 +133,14 @@
if (!remote_hold_button)
data = adc_scan(ADC_REMOTE);
+ /* ADC debouncing: Only accept new reading if it's
+ * stable (+/-1). Use latest stable value otherwise. */
+ if ((unsigned)(data - prev_data_remote + 1) <= 2)
+ last_valid_remote = data;
+ prev_data_remote = data;
+ data = last_valid_remote;
switch (remote_type())
Comment by graham (gap736uk) - Wednesday, 11 December 2013, 18:15 GMT
Can confirm that this is still an issue - it's recently started to happen with my H300 (now upgraded to us 32Gb CFcard). I'm attempting to see if the issue continues with unused LCD remote that I have lying around to see if it is software alone or if it includes hardware element.