Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[device-report] Xinmeng M71 v2 (same with Yunzii AL71) #65

Open
2 of 5 tasks
rfcclub opened this issue Apr 8, 2024 · 8 comments
Open
2 of 5 tasks

[device-report] Xinmeng M71 v2 (same with Yunzii AL71) #65

rfcclub opened this issue Apr 8, 2024 · 8 comments

Comments

@rfcclub
Copy link

rfcclub commented Apr 8, 2024

Device Info

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.

@rfcclub
Copy link
Author

rfcclub commented Apr 8, 2024

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

@carlossless
Copy link
Owner

@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

@rfcclub
Copy link
Author

rfcclub commented Apr 14, 2024

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.

@carlossless
Copy link
Owner

@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).

@rfcclub
Copy link
Author

rfcclub commented Apr 18, 2024

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.

image

@rfcclub
Copy link
Author

rfcclub commented Apr 18, 2024

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.

@carlossless
Copy link
Owner

@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!

@carlossless
Copy link
Owner

@rfcclub interestingly I noticed that the md5sum for your first read (a123abac3a075fd4745cb6fd31a5324d) and second read (189f254a5715fba9ccd610890f5b90fc) is different.
The only actual difference is:
image

🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants