Skip to content

sago35/tinygo-keyboard

Repository files navigation

USB HID Keyboard firmware for TinyGo

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

Microcontrollers

The following microcontrollers are supported.

  • rp2040
  • nrf52840
  • samd51
  • samd21

Tutorial

sgkb-0.4.0

# sgkb-0.4.0
$ tinygo flash --target xiao-rp2040 --size short ./targets/sgkb/left/
$ tinygo flash --target xiao-rp2040 --size short ./targets/sgkb/right/

# sgkb-0.3.0 or before
$ tinygo flash --target xiao-rp2040 --size short ./targets/sgkb/left-0.3.0/
$ tinygo flash --target xiao-rp2040 --size short ./targets/sgkb/right/
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

sg48key

tinygo flash --target xiao --size short ./targets/sg48key/

sgh60

tinygo flash --target waveshare-rp2040-zero --size short ./targets/sgh60/

wiokey-0.1.0

$ tinygo flash --target wioterminal --size short ./targets/wiokey/
name amount
Cherry MX / Kailh Choc V1 6
key cap 6
diode 1N4148 6
wioterminal 1
pin socket 2x20 2

sgkey-0.1.0

$ tinygo flash --target xiao-rp2040 --size short ./targets/sgkey/
name amount
Cherry MX / Kailh Choc V1 6
key cap 6
diode 1N4148 6
xiao-rp2040 1
i2c ssd1306 1
register 10k ohm 2

fric10key-0.1.0

$ tinygo flash --target xiao-rp2040 --size short ./targets/fric10key/
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

xiao-kb01

$ tinygo flash --target xiao-rp2040 --size short ./targets/xiao-kb01/

Gopher Badge

$ tinygo flash --target gopher-badge --size short ./targets/gopher-badge/

GoBadge / PyBadge

$ tinygo flash --target gobadge --size short ./targets/gobadge

MacroPad RP2040

$ tinygo flash --target macropad-rp2040 --size short ./targets/macropad-rp2040/

Restore default keymap

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 (tinygo flash)

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

Note

LICENSE

MIT