The API is not yet fixed.
The following are supported.
- key input
- squared matrix scan
 - matrix scan
 - duplex-matrix scan
 - rotary encoder
 - GPIO
 - UART
 - Shifter (tinygo.org/x/drivers/shifter)
 
 - layer feature by mod key
 - mouse click / mouse wheel
 - support TRRS (UART)
 - support Vial
- Keymap
 - Layers (MO(x), TO(x))
 - Matrix testers
 - Macros
 - Mod-Tap
 - Modifier Keys
 - Combos
 
 
The following microcontrollers are supported.
- rp2040
 - nrf52840
 - samd51
 - samd21
 
# sgkb-0.4.0
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/sgkb/left/
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/sgkb/right/
# sgkb-0.3.0 or before
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/sgkb/left-0.3.0/
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/sgkb/right/
- files
- ./kicad/sgkb for KiCad 7.0
- KiCanvas : sgkb-0.4.0 left
 - KiCanvas : sgkb-0.4.0 right
 - KiCanvas : sgkb-0.3.0 left
 - KiCanvas : sgkb-0.3.0 right
 
 
 - ./kicad/sgkb for KiCad 7.0
 
| name | amount | 
|---|---|
| Cherry MX / Kailh Choc V1 | 72 | 
| key cap (1u) | 68 | 
| key cap (1.5u) | 1 | 
| key cap (1.75u) | 1 | 
| key cap (2u) | 1 | 
| key cap (ISO-ENTER) | 1 | 
| Stabilizer (2u) | 2 | 
| diode 1N4148 | 72 | 
| xiao-rp2040 | 2 | 
| pin header 1x7 | 4 | 
| TRRS connector | 2 | 
| TRRS cable | 1 | 
tinygo flash --target xiao --size short --stack-size 8kb ./targets/sg48key/
- files
- ./kicad/sg48key
- KiCanvas : sg48key
 
 
 - ./kicad/sg48key
 
tinygo flash --target waveshare-rp2040-zero --size short --stack-size 8kb ./targets/sgh60/
- files
- ./kicad/sgh60
- KiCanvas : sgh60
 
 
 - ./kicad/sgh60
 
$ tinygo flash --target wioterminal --size short --stack-size 8kb ./targets/wiokey/
- files
- ./kicad/wiokey for KiCad 7.0
- KiCanvas : wiokey
 
 
 - ./kicad/wiokey for KiCad 7.0
 
| name | amount | 
|---|---|
| Cherry MX / Kailh Choc V1 | 6 | 
| key cap | 6 | 
| diode 1N4148 | 6 | 
| wioterminal | 1 | 
| pin socket 2x20 | 2 | 
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/sgkey/
- files
- ./kicad/sgkey for KiCad 7.0
- KiCanvas : sgkey
 
 
 - ./kicad/sgkey for KiCad 7.0
 - build guide
 
| name | amount | 
|---|---|
| Cherry MX / Kailh Choc V1 | 6 | 
| key cap | 6 | 
| diode 1N4148 | 6 | 
| xiao-rp2040 | 1 | 
| i2c ssd1306 | 1 | 
| register 10k ohm | 2 | 
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/fric10key/
- files
- ./kicad/fric10key for KiCad 7.0
- KiCanvas : fric10key
 
 
 - ./kicad/fric10key for KiCad 7.0
 
| name | amount | 
|---|---|
| Cherry MX / Kailh Choc V1 | 27 | 
| key cap (1u) | 26 | 
| key cap (2u) | 1 | 
| Stabilizer (2u) | 1 | 
| diode 1N4148 | 27 | 
| xiao-rp2040 | 1 | 
$ tinygo flash --target xiao-rp2040 --size short --stack-size 8kb ./targets/xiao-kb01/
- files
- ./kicad/xiao-kb01 for KiCad 7.0
- KiCanvas : xiao-kb01
 
 
 - ./kicad/xiao-kb01 for KiCad 7.0
 
$ tinygo flash --target gopher-badge --size short --stack-size 8kb ./targets/gopher-badge/
- schema
 
$ tinygo flash --target gobadge --size short --stack-size 8kb ./targets/gobadge
$ tinygo flash --target macropad-rp2040 --size short --stack-size 8kb ./targets/macropad-rp2040/
Set the key with the key code of 0x7C03, and then press it.
Then a reset will restore the default keymap.
See #8.
Restore default keymap each time it is reset by specifying --tags reset_to_default.
Note that in this setting, any changes made from Vial or other sources will immediately revert to the original setting.
$ tinygo flash --target wioterminal --size short  --tags reset_to_default ./targets/wiokey
- Basically, the 
--stack-size 8kbsettings is required. - If changing the version of tinygo-keyboard causes it to not work properly, please perform the 
Restore default keymapprocedure. 
MIT









