Skip to content

firmware

flo edited this page May 2, 2024 · 6 revisions

Firmware

Waiting for the PR

Chew is running on QMK.

You can see my keymap here and use it to create yours.

Flashing

To flash your controllers, you need QMK. So follow the QMK setup tutorial.
Then open a terminal and move to the chew default keymap folder.

cd ~/qmk_firmware/keyboards/chew/keymaps/default

To compile and flash, use the command:

qmk compile && qmk flash

If it's the first time you're flashing your controller, maintain the boot button and plug the usb cable in.
Otherwise, press twice the reset button.

The controller should appear in your file explorer.
Click on it when the QMK command is waiting for the access.

Handedness

To distinguish who's the master/slave and its left/right sides, you have two options:

SPLIT_USB_DETECT

(This is the default method)
QMK detects automatically which controller is the master on boot (those which is plugged-in).

The handness can be define with the EEPROM method :
Move into your keymap folder and flash both sides with these commands:

qmk compile && qmk flash -bl uf2-split-left
qmk compile && qmk flash -bl uf2-split-right

As explained in the documentation, "This method sets the keyboard’s handedness by setting a flag in the persistent storage".
So you only have to do this once.

Caveat:

On cold computer boot, the keyboard start could fail even if the watchdog is enabled (enabled by default).
In this case, you can increase the split timeout value:

// Default 2000
#define SPLIT_USB_TIMEOUT 8000

Try to find a value which works for you.
Unfortunately, due to this, you may not be able to have access to the bios.

VBUS

This method uses a pin which is active only on one side.
The master detection and handeness are static.

Add this lines in your config.h :

#undef EE_HANDS
#undef SPLIT_USB_DETECT
// On the left --
#define USB_VBUS_PIN GP10
#define SPLIT_HAND_PIN GP10
// Or on the right --
// #define USB_VBUS_PIN GP12
// #define SPLIT_HAND_PIN GP12
  
Caveat:

This method works as well, however you won't be able to use your keyboard with the slave plugged-in.

Clone this wiki locally