M908 button duplication issue with buttons 1 and 5
Hello!
I'm encountering an issue with a simple rebinding config on the M908 with the following config:
[profile1]
# led mode:
# breathing, breathing_rainbow, rainbow, static, wave, alternating, reactive, reactive_button, flashing, off, random
lightmode=static
# led color
color=aa4fff
# led brightness level (1-3)
brightness=1
# led animation speed (1-8)
speed=1
# scrollspeed (1-3f)
scrollspeed=1
# Each profile has 5 dpi levels (1-5) that can be individually set and enabled/disabled.
# Set dpiX_enable=0 to disable a particular dpi level.
# It is not possible to disable all DPI levels, at least one will remain enabled.
dpi1_enable=1
dpi2_enable=0
dpi3_enable=0
dpi4_enable=0
dpi5_enable=0
# There are two formats to specify the DPI:
# 1. actual DPI: 200-12400 (resolution is 100 (200-6200) or 200 (6400-12400))
# 2. raw bytecode: 0x[04-8c][00-01]
# Note: the older DPI format (04-8c) is no longer supported.
dpi1=1500
dpi2=1000
dpi3=2000
dpi4=3000
dpi5=6200
# USB poll rate (125, 250, 500, 1000) Hz
report_rate=500
# Button mapping: there is a total of 20 programmable buttons. keymap.md for full details
button_left=left
button_right=right
button_middle=middle
button_fire=Esc
button_dpi_up=Esc
button_dpi_down=Return
scroll_up=scroll_up
scroll_down=scroll_down
button_1=1
button_2=7
button_3=8
button_4=9
button_5=0
button_6=Equals
button_7=u
button_8=i
button_9=o
button_10=j
button_11=k
button_12=l
[profile2]
[profile3]
[profile4]
[profile5]
The important part here are buttons 1 and 5 which respectively bind to 1 and 0. On debian bookworm, with default apt sources and libusb version 2:0.1.12-32, uploading my configuration with the binary produced with cmake -Bbuild && cmake --build build -j:
> lsusb | grep 04d9
Bus 001 Device 009: ID 04d9:fc4d Holtek Semiconductor, Inc. Gaming Mouse [Redragon M908]
> sudo ./build/mouse_m908 -c $XDG_CONFIG_HOME/dotfiles/redragon/redragon/m908.ini -M 908
I included the -M flag to make sure of the model but it produces the same result regardless. Then, both button_1 and button_5 button seem to have a superposed state, where pressing any produces 10, and keeping them pressed produces repeated 0. Changing the bind on any of them produces the same result, assuming button_1=a and button_5=b, both keys produce ab and repeat b when long-pressed.
Let me know if I can provide any more details. cheers
If you can rule out a hardware fault, you could capture the data sent by the official software with wireshark and try to fix this bug. Unfortunately there is not much i can do without reproducing this behaviour.