This is an experience-based list of custom functions that are currently work in progress.
### CLI flash command
Long press [Reset] key to enter DFU mode.
```sh
# list DFU devices
% dfu-util -l
Found DFU: [2e3c:df11] ver=0200, devnum=13, cfg=1, intf=0, path="20-3", alt=1, name="@Option Byte /0x1FFFF800/02*016 e", serial="AT32"
Found DFU: [2e3c:df11] ver=0200, devnum=13, cfg=1, intf=0, path="20-3", alt=0, name="@Internal Flash /0x08000000/ 128*2Kg", serial="AT32"
# backup firmware
% dfu-util -a 0 -d 2e3c:df11 -s 0x8000000 -U backup.bin
# convert .hex to .bin
% arm-none-eabi-objcopy -I ihex WQ201A1UBT2_V10_3721_KB68_RGB_VIA_V1.0.5_20220428.hex -O binary WQ201A1UBT2_V10_3721_KB68_RGB_VIA_V1.0.5_20220428.bin
# flash firmware
% dfu-util -a 0 -d 2e3c:df11 -s 0x8000000:leave -D WQ201A1UBT2_V10_3721_KB68_RGB_VIA_V1.0.5_20220428.bin
````
### WQ201A1UBT2_V10_3721_KB68_RGB_VIA_V1.0.5_20220428
| code | VIA label | function | note |
| - | - | - | - |
| 0x5c00 | Reset| Restart, long press for entering DFU mode. | dfu-util -l|
| 0x5c02~| - | QMK magic keycodes | VIAL can treat these codes as labeled button.|
| ??? | - | Restore factory settings | Once I dit, but forgot code |
| - | F14 | ??? | WTF! we lost F14-F24 keys, there is no sense of tech.
| - | F15 | Check which connection is selected.
Long press for reset LED settings. |None-Light=Wired, Green=BT1, Blue=BT2
| - | F16 | Long press for power-off when USB is not connected. | How to power-on again?
| - | F17 | ??? |
| - | F18 | ??? |
| - | F19 | ??? |
| - | F20 | Connection - Select wired device |
| - | F21 | Connection - Select BT device 1, long press for pairing |
| - | F22 | Connection - Select BT device 2, long press for pairing |
| - | F23 | ??? | maybe same as F21
| - | F24 | ??? |
| 0x5d0c | - | Layers - Latch layer 0 | Volatile
It seems JS_BUTTON0..31 range is used for custom functions.
| 0x5d0d | - | Layers - Latch layer 0 as default startup layer| Non-volatile
| 0x5d0e | - | Layers - Latch layer 1 | Volatile
| 0x5d0f | - | Layers - Latch layer 1 as default startup layer| Non-volatile
| 0x5d10 | - | Layers - Latch layer 2 | Volatile
| 0x5d11 | - | Utilities - Toggle locking both WIN key | Non-volatile
| 0x5d19 | - | Utilities - Lock left WIN key | Non-volatile
| 0x5d1a | - | Utilities - Unlock left WIN key | Non-volatile
| 0x5d1b | - | Utilities - Toggle locking left WIN key | Volatile
| 0x5d1c | - | Utilities - Lock right WIN key | Non-volatile
| 0x5d1d | - | Utilities - Unlock right WIN key | Non-volatile
| 0x5d1e | - | Utilities - Toggle locking right WIN key | Volatile
| - | RGB
Toggle | LED - Toggle on/off | In layer 2, it's for underglow LED. In the other layer, logo LED.
| - | RGB
Mode+ | LED - Cycle through modes | Ditto
| - | Hue+| LED - Color HUE+ | Ditto
| - | Hue- | LED - Color HUE- | Ditto
| - | Sat+ | LED - Color SAT+ | Ditto
| - | Sat- | LED - Color SAT- | Ditto
| - | Bright+ | LED - Brightness+ | Ditto
| - | Bright- | LED - Brightness- | Ditto
| - | Effect
speed+ | LED - Effect speed+ | Ditto
| - | Effect
speed- | LED - Effect speed- | Ditto
| 0x9001 | - | ??? | mapping "/" in default layer 2 |
### pre-installed firmware
| code | VIA label | function | note |
| - | - | - | - |
| 0x5c00 | Reset| Restart, long press for power off | maybe power on, I don't use LiPo battery.|
| ??? | - | Restore factory settings | Once I dit, but forgot code |
| 0x5cd8 | RS) | Underglow LED - on/off |
| 0x5cd9 | Sfent | Underglow LED - Cycle through modes |
| 0x5cdb | - | Underglow LED - Color HUE+ |
| 0x5cdc | - | Underglow LED - Color HUE- |
| 0x5cdd | - | Underglow LED - Color SAT+ |
| 0x5cde | - | Underglow LED - Color SAT- |
| 0x5cef | - | Underglow LED - Brightness+ |
| 0x5ce0 | - | Underglow LED - Brightness- |
| 0x5ce1 | - | Underglow LED - Effect speed+ |
| 0x5ce2 | - | Underglow LED - Effect speed- |
| 0x5cf3 | LC( | Connection - Select wired device |
| 0x5d22 | - | Connection - Select BT device 1, long press for pairing |
| 0x5d23 | - | Connection - Select BT device 2, long press for pairing |
| 0x5d28 | - | Layers - Latch layer 0 ??? | mapping "1" in default layer 1
| 0x5d29 | - | Layers - Latch layer 0 ??? | mapping "2" in default layer 1
| 0x5d2a | - | Layers - Latch layer 0 ??? |
| 0x5d2b | - | Layers - Latch layer 1 | Non-volatile
| 0x5d2c | - | Layers - Latch layer 2 | Non-volatile
| 0x5d2d | - | Logo LED - Select mode ??? |
| 0x5d2e | - | Logo LED - Select mode ??? |
| 0x5d2f | - | Logo LED - Select Mode ??? |
| 0x5d30 | - | Logo LED - Select Mode ??? |
| 0x5d31 | - | Logo LED - Select Mode ??? |
| 0x5d32 | - | Logo LED - Select Mode ??? |
| 0x5d33 | - | Logo LED - Select Mode ??? |
| 0x5d34 | - | Logo LED - ??? |
| 0x5d35 | - | Logo LED - Cycle through modes |
| 0x5d36 | - | Logo LED - ??? |
| 0x5d37 | - | Logo LED - Color HUE+ |
| 0x5d38 | - | Logo LED - Color HUE- |
| 0x5d39 | - | Logo LED - Color SAT+ |
| 0x5d3a | - | Logo LED - Color SAT- |
| 0x5d3b | - | Logo LED - Brightness+ |
| 0x5d3c | - | Logo LED - Brightness- |
| 0x5d3d | - | Logo LED - Effect speed+ |
| 0x5d3e | - | Logo LED - Effect speed- |
| 0x5d3f | - | Logo LED - Toggle dimming |
| 0x5d40 | - | Logo LED - on/off |
| 0x5d4a | - | Utilities - ??? | mapping CapsLock in default layer 1
| 0x5d4e | - | Utilities - Toggle locking WIN key | Non-volatile
| 0x9001 | - | ??? | mapping "/" in default layer 1 |
| 0x9002 | - | ??? | mapping "/" in default layer 2 |