Rockbox

  • Status New   Reopened
  • Percent Complete
    0%
  • Task Type Bugs
  • Category Remote
  • Assigned To No-one
  • Operating System Iriver H100 series
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by TiMiD - 2007-06-09
Last edited by pondlife - 2009-05-05

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

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.

TiMiD commented on 2007-07-19 12:07

The problem doesn't occurs with the original firmware, so I guess it's a software related problem

japc commented on 2007-09-04 20:11

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

TiMiD commented on 2007-10-27 05:19

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

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.

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;

… verses

     data = adc_scan(ADC_REMOTE);
     switch (remote_type())
     {
         case REMOTETYPE_H100_LCD:
             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.

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 1)

1) unsigned)(data - prev_data_remote + 1) ⇐ 2)
+ last_valid_remote = data;
+ prev_data_remote = data;
+ data = last_valid_remote;
+
       switch (remote_type())
       {
           case REMOTETYPE_H100_LCD:

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.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing