Other languages: English, 简体中文
This is a porting of QMK keyboard firmware for CH58x series, with the main focus on bridging the application layer (QMK) and the underlying hardware.
CherryUSB, qmk_firmware, mcuboot: Components introduced as submodules, NO any file is modified.
The qmk_firmware submodule should be able to keep up with upstream.
Currently only CH582M is tested, but it should also work for CH582F.
PATH
environment variable manually.INT_SOFT
is needed or the ISR handlers might not working properly.Fork this repository then manually upload you keyboard configuration file to keyboards. You'll be able to use the GitHub Actions to build your firmware online.
Note that currently the configuration file is slightly different from the original QMK ones, you may take this keyboard as a start point.
Visual Studio Code is recommended.
You can follow this guide to set up a development environment locally. Or you can also use Codespace instead.
Or follow these steps below to build it on your system:
Install compiler and nrf command line tools:
Download and configure the compiler provided by WCH, and the nrf command line tools.
For deb-based Linux distributions users (Debian GNU/Linux, Ubuntu, or Ubuntu on WSL2):
The following commands will download them from their official websites and extract the files to the $HOME/.local/opt
directory.
$ wget http://file.mounriver.com/tools/MRS_Toolchain_Linux_X64_V170.tar.xz
$ wget https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/desktop-software/nrf-command-line-tools/sw/versions-10-x-x/10-21-0/nrf-command-line-tools-10.21.0_linux-amd64.tar.gz
$ mkdir -p $HOME/.local/opt
$ tar xvf MRS_Toolchain_Linux_X64_V170.tar.xz -C $HOME/.local/opt
$ tar xvf nrf-command-line-tools-10.21.0_linux-amd64.tar.gz -C $HOME/.local/opt
Next, add these programs to your $PATH
. For bash
users, this can typically be accomplished by:
$ echo 'export PATH=$HOME/.local/opt/MRS_Toolchain_Linux_x64_V1.70/RISC-V\ Embedded\ GCC/bin/:$HOME/.local/opt/nrf-command-line-tools/bin/:$PATH' >> $HOME/.bashrc
$ source $HOME/.bashrc
For macOS users:
Download and install the nrf command line tools from here. And use the following commands to download and configure the compiler:
$ curl -O http://file.mounriver.com/tools/MRS_Toolchain_MAC_V180.zip
$ unzip MRS_Toolchain_MAC_V180.zip -d $HOME/.local/opt
$ unzip $HOME/.local/opt/MRS_Toolchain_MAC_V180/xpack-riscv-none-embed-gcc-8.2.0.zip -d $HOME/.local/opt
Next, add these programs to your $PATH
. For bash
users, this can typically be accomplished by:
$ echo 'export PATH=$HOME/.local/opt/xpack-riscv-none-embed-gcc-8.2.0/bin/:$PATH' >> $HOME/.bashrc
$ source $HOME/.bashrc
Install some other dependencies:
For deb-based Linux distributions users:
$ sudo apt update
$ sudo apt install git cmake ccache python3 python3-click python3-cbor2 python3-intelhex
For macOS users, assuming XCode is installed here:
$ pip3 install --user cryptography click cbor2 intelhex
Clone this repository by:
$ git clone https://github.com/O-H-M2/qmk_port_ch582.git
$ cd qmk_port_ch582
$ git -c submodule."qmk_porting/keyboards_private".update=none submodule update --recursive --init
$ mkdir build
$ cd build
$ cmake -Dkeyboard=m2wired -Dkeymap=default ..
You may replace m2wired
and default
in the above command with the names of your own keyboard and keymap.
$ make -j$(nproc)
.uf2
and .hex
will be generated in the top directory of the project if the build succeeds.
For end users: Use Bootmagic Lite with .uf2
only, or take your own risk of bricking your keyboard.
For developers: You may use the flashing utility which is provided by WCH.