sinowealth-kb-tool

所属分类:单片机开发
开发工具:Rust
文件大小:0KB
下载次数:0
上传日期:2023-07-19 22:21:51
上 传 者sh-1993
说明:  一款基于财富微控制器的键盘编程工具,
(A tool to program sinowealth mcu based keyboards,)

文件列表:
.envrc (10, 2023-12-23)
Cargo.lock (12863, 2023-12-23)
Cargo.toml (723, 2023-12-23)
LICENSE (1065, 2023-12-23)
flake.lock (4255, 2023-12-23)
flake.nix (2016, 2023-12-23)
rust-toolchain.toml (146, 2023-12-23)
rustfmt.toml (65, 2023-12-23)
src/ (0, 2023-12-23)
src/ihex.rs (4184, 2023-12-23)
src/isp.rs (12991, 2023-12-23)
src/main.rs (6690, 2023-12-23)
src/part.rs (3533, 2023-12-23)
src/util.rs (913, 2023-12-23)
tools/ (0, 2023-12-23)
tools/functional-test.sh (3821, 2023-12-23)

# sinowealth-kb-tool [![crate](https://img.shields.io/crates/v/sinowealth-kb-tool.svg)](https://crates.io/crates/sinowealth-kb-tool) [![ci](https://github.com/carlossless/sinowealth-kb-tool/actions/workflows/push.yml/badge.svg)](https://github.com/carlossless/sinowealth-kb-tool/actions/workflows/push.yml) A utility for reading and writing flash contents on Sinowealth 8051-based devices (keyboards and mice) since they all seem to have similar ISP bootloaders. ## Disclaimer This is an experimental tool, so use it at your own risk. ## Usage Read [here](https://github.com/carlossless/sinowealth-kb-tool/issues/19) for ISP quirks. ### Reading Reading is not entirely an idempotent operation. A read operation can change values in the `0xeffb - 0xeffd` region. The ISP bootloader will blank out bytes in the `0xeffb - 0xeffd` region, therefore the produced dump might not reflect the actual state in ROM. ```sh # reads firmware excluding isp bootloader sinowealth-kb-tool read -p nuphy-air60 foobar.hex # reads only isp bootloader section sinowealth-kb-tool read -p nuphy-air60 -b bootloader.hex # full dump including firmware and bootloader sinowealth-kb-tool read -p nuphy-air60 --full full.hex # custom device sinowealth-kb-tool read \ --flash_size 61440 \ --bootloader_size 4096 \ --page_size 2048 \ --vendor_id 0x05ac \ --product_id 0x024f \ foobar.hex ``` ### Writing ```sh # overwrites firmware (does not touch the bootloader section) sinowealth-kb-tool write -p nuphy-air60 foobar.hex # custom device sinowealth-kb-tool write \ --flash_size 61440 \ --bootloader_size 4096 \ --page_size 2048 \ --vendor_id 0x05ac \ --product_id 0x024f \ foobar.hex ``` ## Supported Hardware | Keyboard | ISP MD5 | MCU | MCU Label | Tested Read | Tested Write | | -------- | ------- | --- | --------- | ----------- | ------------ | | [NuPhy Air60](https://nuphy.com/products/air60) | 3e0ebd0c440af5236d7ff8872343f85d | SH68F90A | BYK916 | | | | [NuPhy Air75](https://nuphy.com/products/air75) | 3e0ebd0c440af5236d7ff8872343f85d | SH68F90A | BYK916 | | | | [NuPhy Air96](https://nuphy.com/products/air96-wireless-mechanical-keyboard) | 3e0ebd0c440af5236d7ff8872343f85d | SH68F90A | BYK916 | | | | [NuPhy Halo65](https://nuphy.com/products/halo65) | 3e0ebd0c440af5236d7ff8872343f85d | SH68F90A | BYK916 | | | | Terport TR95 | 2d169670eae0d36eae8188562c1f66e8 | SH68F90A | BYK916 | | | | [Redragon K617 FIZZ 60%](https://www.redragonzone.com/collections/keyboard/products/redragon-k617-fizz-60-wired-rgb-gaming-keyboard-61-keys-compact-mechanical-keyboard) | 2d169670eae0d36eae8188562c1f66e8 | SH68F90A | BYK916 | | | | Xinmeng K916 | cfc8661da8c9d7e351b36c0a763426aa | SH68F90 | | | | | Hykker X Range 2017 (RE-K70-BYK800) | 13df4ce2933f9654ffef80d6a3c27199 | SH68F881 | BYK801 | | | ## Prerequisites ### Linux To enable running this tool without superuser privileges add the following udev rule with `xxxx` and `yyyy` replaced with your device Vendor ID and Product ID respectively. ```udev # /etc/udev/rules.d/plugdev.rule SUBSYSTEMS=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", MODE="0660", GROUP="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="0603", ATTRS{idProduct}=="1020", MODE="0660", GROUP="plugdev" ``` Make sure your user is part of the `plugdev` group. ## Acknowledgments * https://github.com/gashtaan/sinowealth-8051-dumper * https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater

近期下载者

相关文件


收藏者