keyboard

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2024 License: MIT Imports: 1 Imported by: 0

README

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

Documentation

Index

Constants

View Source
const (
	LayerCount = 6
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option func(*Options)

func InvertButtonState

func InvertButtonState(b bool) Option

func InvertDiode

func InvertDiode(b bool) Option

func MatrixScanPeriod added in v0.0.5

func MatrixScanPeriod(period time.Duration) Option

MatrixScanPeriod sets the total period for scanning the entire keyboard matrix. This period determines the overall frequency at which the complete keyboard state is updated.

type Options

type Options struct {
	InvertButtonState bool
	InvertDiode       bool
	MatrixScanPeriod  time.Duration
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL