[device-report] Xinmeng M71 v2 (same with Yunzii AL71)
rfcclub opened this issue · 8 comments
Device Info
- Sinowealth Device: SH6890A
- IC Label: Sinowealth SH6890AS
- PCB label: BYK926
- Product Page:
https://mechkeys.com/products/xinmeng-m71-aluminum-mechanical-keyboard?variant=45043999867103
Variant:
https://www.yunzii.com/en-ca/products/yunzii-al71-mechanical-keyboard
They are almost the same (Yunzii has a version M71B I don't know what it is, but M71 and AL71 are the same), AL71 is rebrand name of M71. They use the same software (in AL71 software has a folder name M71) and since AL71 is flexcut, it's equal to M71v2 (v1 is 1.6mm non flex-cut). Reference
https://www.reddit.com/r/keyboards/comments/175pvtn/110_keyboard/
Part Info
firmware_size: 61440
vendor_id: 0x258a
product_id: 0x010c
isp_index: 1
Operations Tested
- Read
- Write
Platforms Tested
- linux
- macos
- windows
Checksums
- Bootloader MD5:
2d169670eae0d36eae8188562c1f66e8
- Stock Firmware MD5:
189f254a5715fba9ccd610890f5b90fc
- Full MD5:
c6b1be8743ec87eb0c3aa630939c6e41
HID Dump
A dump from usbhid-dump, win-hid-dump or mac-hid-dump
HID Tool Output
# Xinmeng M71 using win-hid-dump
...
WinHIDdump:
...
258A:010C: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_010c&mi_00#a&9f2aaa&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd
DESCRIPTOR:
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
35 00 45 01 65 00 55 00 75 01 95 08 81 02 95 38
81 03 05 08 19 01 29 05 95 05 91 02 95 03 91 03
C1 00
(50 bytes)
...
258A:010C: BY Tech - Gaming Keyboard
PATH:\\?\hid#vid_258a&pid_010c&mi_01&col05#a&2476686c&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}
DESCRIPTOR:
06 00 FF 09 01 A1 01 85 05 15 00 25 01 35 00 45
01 65 00 55 00 75 01 95 28 B1 03 C1 00
(29 bytes)
Edit: Update winhiddump with direct cable plugged to mainboard.
I've run sinowealth-kb-tool 0.0.10 several times and it returned nothing. Will try to run it on a Linux distro.
sinowealth-kb-tool.exe read --vendor_id 0x258a --product_id 0x010c --firmware_size 61440 xm71.hex
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 2/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 3/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 4/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 5/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 6/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 7/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 8/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 9/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 10/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
ERROR [sinowealth_kb_tool] Device not found
@rfcclub based on the HID dump, try using --isp_index 1
, it should work:
sinowealth-kb-tool.exe read --vendor_id 0x258a --product_id 0x010c --firmware_size 61440 --isp_index 1 xm71.hex
It worked, but I performed the read through an USB hub so I must plug keyboard directly to PC to make it works again. Read is OK, I am not confidence to perform a write yet since I don't have Sinolink to backup it first.
Also, the size of hex file is 168,972 bytes.
xm71.zip
Uploaded it here, hope it's useful.
@rfcclub could you please read the bootloader portion of your device and update the device report template with it? (use the -b
flag)
Also, based on the title, do you have two different devices? Do they have the exact same firmware? Eitherway, could you please open up another device-report issue for the Yunzii AL71, if you're able to test against it?
I am not confidence to perform a write yet since I don't have Sinolink to backup it first.
You can get a full dump of your device flash with the --full
option, but yes, incase something goes wrong, you would need other means to restore it (sinolink).
xm71_full.zip
@carlossless here is full dump with log
[xm71.zip](https://github.com/carlossless/sinowealth-kb-tool/files/15023799/xm71.zip)
sinowealth-kb-tool.exe read --vendor_id 0x258a --product_id 0x010c --full --firmware_size 61440 --isp_index 1 xm71.hex
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Waiting for ISP device...
INFO [sinowealth_kb_tool::isp] Connected!
INFO [sinowealth_kb_tool::isp] Enabling firmware...
INFO [sinowealth_kb_tool::isp] Reading...
INFO [sinowealth_kb_tool::isp] Rebooting...
INFO [sinowealth_kb_tool] MD5: c6b1be8743ec87eb0c3aa630939c6e41
Actually I read from community AL71 and M71 are the same. Also I see they share the same software (AL71 also has M71 directory in their software). I can just try on M71 only.
Log for reading with boot_loader flag
sinowealth-kb-tool.exe read --vendor_id 0x258a --product_id 0x010c --firmware_size 61440 --bootloader_size 4096 --isp_index 1 xm71.hex
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x010c
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Waiting for ISP device...
INFO [sinowealth_kb_tool::isp] Connected!
INFO [sinowealth_kb_tool::isp] Enabling firmware...
INFO [sinowealth_kb_tool::isp] Reading...
INFO [sinowealth_kb_tool::isp] Rebooting...
INFO [sinowealth_kb_tool] MD5: 189f254a5715fba9ccd610890f5b90fc
xm71_bootloader.zip
Hope it helps to determine device information.
@rfcclub thanks! the flag to read the bootloader is actually -b
but I got the bootloader portion from your full dump and can confirm that its md5sum is 2d169670eae0d36eae8188562c1f66e8
!
@rfcclub interestingly I noticed that the md5sum for your first read (a123abac3a075fd4745cb6fd31a5324d
) and second read (189f254a5715fba9ccd610890f5b90fc
) is different.
The only actual difference is:
🤔