Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

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, 10:01 GMT+2
Last edited by Steve Bavin (pondlife) - Tuesday, 05 May 2009, 14:44 GMT+2
Task Type Bugs
Category Remote
Status New   Reopened
Assigned To No-one
Player Type Iriver H100 series
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Private No

Details

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, 14:07 GMT+2
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, 22:11 GMT+2
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, 07:19 GMT+2
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, 01:12 GMT+2
  • 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, 18:09 GMT+2
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.
Comment by Cliff Hammerschmidt (tanglebones) - Sunday, 29 March 2009, 00:41 GMT+2
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())
{
case REMOTETYPE_H100_LCD:

Loading...