New Piston V3 Buttons On Redmi 2 Pro Do Not Work


(b_a)

Members
Jan 13, 2016
12
13
My hardware:
Redmi 2 Pro (2 GB RAM; wt86047 / HM2014813)
Xiaomi Piston V3

My software:
MIUI 8 weekly ROM 6.8.25
Also occurred on MIUI 8 weekly ROM 6.6.16/17/18
All installed over the old ROM, then Dalvik/Cache wipe.

The bug:
Using any button on the Piston V3 remote is interpreted as a long-press.
Examples:
  • Pressing volume up once, raises the volume to its maximum level (showing the safe volume warning in between). All other 2 buttons are now blocked and cannot be used.
  • Pressing the middle button once shows the Google Voice Search window instead of acting like a play button.
  • Pressing the volume down button once, decreases the volume to zero. The two other buttons are now blocked and can only be used after a while
The logs (in Excel format for easy filtering):

Feel free to contact me if you need more info or you need me to for tests.
 
Last edited:
I have the same issue with Redmi 2 Pro and Xiaomi In-Ear Pro (Hybrid). But I use stable version MIUI. It occurs since V7.5.X.X till V8.0.3.0. No fix was found. Now I use stable V7.3.4.0. Last one does not contain this bug.
 
Last edited:
Same bug at my phone.
Redmi 3 pro.
I am using latest xiaomi.eu beta rom (6.9.29).
I have tried with a samsung and also a xiaomi handset, same bug.
 
Which headphones do you use by the way?
I use the Xiomi Piston Hybrid.

Same bug at my phone.
Redmi 3 pro.
I am using latest xiaomi.eu beta rom (6.9.29).
I have tried with a samsung and also a xiaomi handset, same bug.
I also tried my Hybrids with a Samsung S4 on Android 5.0.1 -> works fine.

This problem has been addressed several times on the MIUI forum, too.
 
Last edited:
  • Like
Reactions: (b_a)
I compared the logfiles when pressing vol+/vol- buttons and the headset buttons. I even compared the 6.6.30 logfile with the 6.7.7 logfile. Unfortunately I cannot see any differennce causing the error.

I wonder if this is the right forum as the error hasn't anything to do with xiaomi.eu but with the MIUI developer ROM itself.
 
Seems that in 6.7.7 there has been a "change of style" in addressing the headphone. In my 6.7.7 log the line
Code:
W/ViewRootImpl( 3379): Cancelling event due to no window focus: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_VOLUME_UP, scanCode=115, metaState=0, flags=0x28, repeatCount=0, eventTime=85680, downTime=85440, deviceId=13, source=0x101 }
appears several times. In the 6.6.30 log these lines are missing.

In my opinion the information wheater the headphone button is released is missing in 6.7.7:

In the first code snippet (6.6.30, first two lines) you can see that the vol- button is pressed (keyCode:25 down:true ) and released (keyCode:25 down:false). The volume is lowered to 0.055912.
Code:
D/BaseMiuiPhoneWindowManager( 3297): keyCode:25 down:true 7803649 7803649 isScreenOn:false
D/BaseMiuiPhoneWindowManager( 3297): keyCode:25 down:false 7803649 7803649 isScreenOn:false
I/PhoneStatusBar( 7124): remove music last volume when volume is changed by others
D/audio_hw_primary(  347): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0559117086
D/audio_hw_extn(  347): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  347): audio_extn_fm_set_parameters: set_fm_volume usecaseD/audio_hw_fm(  347): fm_set_volume: (0.055912)
V/EffectDiracSound(  347): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  347): DiracSo
und_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0xe503a
V/EffectDiracSound(  347): stream volume = 0.055912I/EffectDiracSound(  347): DiracSound_updateStreamVolume(), stream=3,

volume=0.055912
V/EffectDiracSound(  347): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  347): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0xe503a
V/EffectDiracSound(  347): stream volume = 0.055912
I/ServiceManager( 7704): Waiting for service goodix.fp...

In the 6.7.7 code snippet the information that the button is released is missing
Code:
D/BaseMiuiPhoneWindowManager( 2298): keyCode:25 down:true 195180 195180 isScreenOn:true
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0559117086
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.055912)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0xe503a
V/EffectDiracSound(  341): stream volume = 0.055912
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.055912
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0xe503a
V/EffectDiracSound(  341): stream volume = 0.055912
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/ViewRootImpl( 3379): CPU Rendering VSync enable = true
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0375840105
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.037584)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x99f1b
V/EffectDiracSound(  341): stream volume = 0.037584
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.037584
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x99f1b
V/EffectDiracSound(  341): stream volume = 0.037584
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0236457717
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.023646)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x60da6
V/EffectDiracSound(  341): stream volume = 0.023646
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.023646
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x60da6
V/EffectDiracSound(  341): stream volume = 0.023646
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0148766134
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.014877)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x3cef4
V/EffectDiracSound(  341): stream volume = 0.014877
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.014877
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x3cef4
V/EffectDiracSound(  341): stream volume = 0.014877
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0100000994
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.010000)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x28f5d
V/EffectDiracSound(  341): stream volume = 0.010000
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.01000
0V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x28f5d
V/EffectDiracSound(  341): stream volume = 0.010000
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0046604346
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.004660)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x1316d
V/EffectDiracSound(  341): stream volume = 0.004660
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.004660
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x1316d
V/EffectDiracSound(  341): stream volume = 0.004660
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0021719411
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.002172)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x8e57
V/EffectDiracSound(  341): stream volume = 0.002172
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.002172
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x8e57
V/EffectDiracSound(  341): stream volume = 0.002172
D/audio_hw_extn(  341): audio_extn_get_parameters: returns
I/str_params(  341): key: 'hifi_mode' value: ''
I/PhoneStatusBar( 3379): remove music last volume when volume is changed by others
D/audio_hw_primary(  341): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: fm_volume=0.0000000000
D/audio_hw_extn(  341): audio_extn_set_anc_parameters: anc_enabled:0
D/audio_hw_fm(  341): audio_extn_fm_set_parameters: set_fm_volume usecase
D/audio_hw_fm(  341): fm_set_volume: (0.000000)
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=3, valume=0x0
V/EffectDiracSound(  341): stream volume = 0.000000
I/EffectDiracSound(  341): DiracSound_updateStreamVolume(), stream=3, volume=0.000000
V/EffectDiracSound(  341): DiracSound_command() start, cmdCode=24
V/EffectDiracSound(  341): DiracSound_Command EFFECT_CMD_SET_STREAM_VOLUME: stream=10, valume=0x0
V/EffectDiracSound(  341): stream volume = 0.000000

Here you can see that
Code:
D/BaseMiuiPhoneWindowManager( xxx): keyCode:25 down:false
is missing, so that the volume is reduced from 0.055912 to 0.000000.

Apparently in 6.7.7 new DRM stuff has been implemented, too (deleted in the code snippets).

EDIT: 6.9.29 contains the same bug and "D/BaseMiuiPhoneWindowManager( xxx): keyCode:25 down:false" is missing, too.
 
Last edited:
Maybe I'm reading the linked Xiaomi bug report wrong, but according to "edit 5" it seems the issue was fixed in 6.8.4:

Edit 5: after go on global beta & china developer, i can say that the remote button are works again, i found that while still on china dev 6.7.28 & Global beta 6.7.29 & now after last update 6.8.4 Both Global beta & china Dev Rom remote button still works & wirks on headset mode ( both pick & answer the phonecall.

Does this mean it returned in later releases? Or is the release mentioned in the bug report not related to the weekly releases here?
 
Same problem here. redmi 3 pro, 6.9.22, mi in ear headphones (hybrid). It has been reported here - http://en.miui.com/thread-307101-1-1.html. Please add confirmation to that thread. That was in July though so obviously xiaomi don't really care. Joke company
Done. I haven't found this thread on Miui, so I created another one. This problem has been addressed often (e.g. http://en.miui.com/forum.php?mod=viewthread&tid=354900&extra=page=4&mobile=2). Someone in this thread said the problem has been fixed, while others deny it. Xiaomi won't fix bugs, IMHO the Redmi 3 won't get Android 6... Redmi is more and more turning to Crapmi.

Maybe I'm reading the linked Xiaomi bug report wrong, but according to "edit 5" it seems the issue was fixed in 6.8.4:

Edit 5: after go on global beta & china developer, i can say that the remote button are works again, i found that while still on china dev 6.7.28 & Global beta 6.7.29 & now after last update 6.8.4 Both Global beta & china Dev Rom remote button still works & wirks on headset mode ( both pick & answer the phonecall.

Does this mean it returned in later releases? Or is the release mentioned in the bug report not related to the weekly releases here?
All I can say is that the error is both in 6.7.7 and 6.9.29. I cannot say whether the error is still there or there again. After my hols I'll install the abovementioned versions (but xiaomi EU) and check whether the bug is fixed. Or I just buy an iPhone again..
 
I've installed the following firmwares:
  • latest global stable (V8.0.2.0.)
  • global developer 6.7.29
  • global developer 6.8.4
All of these contain the Xiaomi headphones error.

So I'll install 6.6.30 again. I can't be bothered to help Xiaomi fixing their screwed up firmware anymore.
 
Just out of curiosity: Can this bug be fixed by Xiaomi EU or only by those MIUI developers?
 
While I know it's not up to the Xiaomi EU to fix, just FYI: the bug is still there in 7.1.12
 
Someone on the MIUI forums has found a workaround:

They flashed the boot partition and replaced the modules directory (/system/lib/modules/*) with the files from an older ROM where the buttons still worked.

The Redmi 2 also has older ROM's that have working buttons, however I am not sure how I can extract only the boot image and the modules directory of those ROM's. Perhaps someone here is more familiar with that?