Skip to content

Commit 788e20d

Browse files
committed
Add ./targets/sgkey2
1 parent b633821 commit 788e20d

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

targets/sgkey2/def.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package main
2+
3+
import keyboard "github.com/sago35/tinygo-keyboard"
4+
5+
func loadKeyboardDef() {
6+
keyboard.KeyboardDef = []byte{
7+
0x5D, 0x00, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x3D, 0x82, 0x80, 0x19, 0x1B, 0x9A, 0xE8, 0xB8, 0xA7, 0x6E, 0x26, 0x77, 0x5D, 0x26, 0xFB, 0x93, 0xC2, 0xE2, 0xE7, 0x46, 0x70, 0xE9, 0xC5, 0x5C, 0x25, 0x18, 0xBE, 0xAF, 0x39, 0x0B, 0xA2, 0x5E, 0x69, 0x76, 0xF2, 0x88, 0x22, 0x64, 0xD8, 0x8C, 0x86, 0x95, 0x27, 0x0D, 0xE9, 0x6E, 0xE8, 0x73, 0x86, 0xB3, 0xBF, 0xDD, 0x63, 0xCF, 0x32, 0x42, 0xA7, 0x84, 0x36, 0xD0, 0x2C, 0xC1, 0xAE, 0x27, 0x15, 0xF2, 0xE6, 0xC1, 0xE0, 0xAE, 0x1D, 0x48, 0x90, 0x76, 0xBC, 0x27, 0xDD, 0xF9, 0x0A, 0x41, 0x32, 0x58, 0x3A, 0x66, 0x2D, 0xC2, 0x05, 0x84, 0xF7, 0x1B, 0xE9, 0x4B, 0x25, 0xDC, 0x94, 0x0D, 0x50, 0x22, 0x37, 0x43, 0x70, 0x2F, 0x54, 0x38, 0x7F, 0xED, 0xEF, 0x5A, 0x0C, 0x98, 0xF9, 0x10, 0x80, 0x75, 0xB6, 0xA7, 0x3F, 0xCC, 0xE6, 0xC6, 0x29, 0x3C, 0xBF, 0xB6, 0x80, 0x67, 0x29, 0x51, 0x44, 0x06, 0x95, 0x0C, 0x5A, 0x8B, 0x92, 0x77, 0x71, 0x1C, 0x2F, 0xB7, 0x54, 0xA2, 0x31, 0xBF, 0xD9, 0xEA, 0xFF, 0xC4, 0xE1, 0x07, 0x00,
8+
}
9+
}

targets/sgkey2/main.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package main
2+
3+
import (
4+
"context"
5+
_ "embed"
6+
"fmt"
7+
"log"
8+
"machine"
9+
"machine/usb"
10+
11+
keyboard "github.com/sago35/tinygo-keyboard"
12+
"github.com/sago35/tinygo-keyboard/ble"
13+
"github.com/sago35/tinygo-keyboard/keycodes/jp"
14+
)
15+
16+
func main() {
17+
usb.Product = "sgkey-ble-0.1.0"
18+
19+
err := run()
20+
if err != nil {
21+
log.Fatal(err)
22+
}
23+
}
24+
25+
type RCS struct {
26+
row, col int
27+
state keyboard.State
28+
}
29+
30+
func run() error {
31+
d := keyboard.New()
32+
33+
colPins := []machine.Pin{
34+
machine.D8,
35+
machine.D9,
36+
machine.D10,
37+
}
38+
39+
rowPins := []machine.Pin{
40+
machine.D1,
41+
machine.D2,
42+
}
43+
44+
mk := d.AddMatrixKeyboard(colPins, rowPins, [][]keyboard.Keycode{
45+
{
46+
jp.KeyT, jp.KeyMediaPlay, jp.KeyMediaNextTrack,
47+
jp.KeyLeftShift, jp.KeyG, jp.KeyMod1,
48+
},
49+
{
50+
jp.KeyA, jp.KeyMediaVolumeInc, jp.KeyN,
51+
jp.KeyLeftShift, jp.KeyMediaVolumeDec, jp.KeyMod1,
52+
},
53+
})
54+
mk.SetCallback(func(layer, index int, state keyboard.State) {
55+
row := index / len(colPins)
56+
col := index % len(colPins)
57+
fmt.Printf("mk: %d %d %d %d\n", layer, row, col, state)
58+
})
59+
60+
bk := ble.NewKeyboard(usb.Product)
61+
err := bk.Connect()
62+
if err != nil {
63+
return err
64+
}
65+
66+
d.Keyboard = bk
67+
68+
// for Vial
69+
loadKeyboardDef()
70+
71+
d.Debug = true
72+
return d.Loop(context.Background())
73+
}

targets/sgkey2/vial.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"name": "tinygo-sgkey-ble",
3+
"vendorId": "0x2e8a",
4+
"productId": "0x000a",
5+
"matrix": {"rows": 1, "cols": 6},
6+
"layouts": {
7+
"keymap": [
8+
["0,0","0,1","0,2"],
9+
["0,3","0,4","0,5"]
10+
]
11+
}
12+
}

0 commit comments

Comments
 (0)