Skip to content

Commit 9979ac2

Browse files
committed
updates lily-go board
1 parent 425b044 commit 9979ac2

File tree

3 files changed

+63
-15
lines changed

3 files changed

+63
-15
lines changed

display_configs/LilyGo-TDeck/LilyGo-TDeck.toml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,26 @@ reg_bits = 8
4141

4242
[ST7789.display]
4343
data_bus = "display_bus"
44-
display_width = 320
45-
display_height = 240
44+
display_width = 240
45+
display_height = 320
4646
backlight_pin = 42
4747
backlight_on_state = "st7789.STATE_PWM"
4848
color_space = "lv.COLOR_FORMAT.RGB565"
4949
color_byte_order = "st7789.BYTE_ORDER_BGR"
5050
rgb565_byte_swap = true
5151

52+
[display._ORIENTATION_TABLE]
53+
value = [0, 160, 192, 96]
54+
5255
[display.set_power]
5356
params = [true]
5457

5558
[display.init]
5659
params = []
5760

61+
display.set_rotation]
62+
params = [3]
63+
5864
[gt911.touch]
5965
device = "touch_device"
6066

@@ -66,6 +72,7 @@ up_pin = 3
6672
down_pin = 2
6773
left_pin = 15
6874
right_pin = 1
75+
press_pin = 0
6976

7077
[power.Button.pwr_button]
7178
pin = 10

display_configs/LilyGo-TDeck/keyboard_s3.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
_LILYGO_KB_BRIGHTNESS_CMD = const(0x01)
99
_LILYGO_KB_ALT_B_BRIGHTNESS_CMD = const(0x02)
1010

11+
group = lv.group_create()
12+
group.set_default()
13+
1114

1215
class Keyboard(keypad_framework.KeypadDriver):
1316
def __init__(self, device, debug=False): # NOQA
@@ -16,8 +19,14 @@ def __init__(self, device, debug=False): # NOQA
1619
self._brightness = 0
1720
self._brightness_default = 127
1821

22+
self._buffer = bytearray(1)
23+
self._mv = memoryview(self._buffer)
24+
1925
super().__init__()
2026

27+
self.set_group(group)
28+
self.enable(1)
29+
2130
def set_default_brioghtness(self, value):
2231
value = lcd_utils.remap(float(value), 0.0, 100.0, 30.0, 255.0)
2332
value = int(round(value))
@@ -72,7 +81,10 @@ def _get_key(self):
7281
# lv.KEY.PREV = 0x0B
7382
# lv.KEY.HOME = 0x02
7483
# lv.KEY.END = 0x03
75-
key = bytearray(self._device.read_mem(0x00, num_bytes=1))[0]
84+
85+
self._device.read(buf=self._mv)
86+
key = self._buffer[0]
87+
7688
if key == 0x00: # no key
7789
return None
7890
elif key == 0x08: # backspace
@@ -89,9 +101,10 @@ def _get_key(self):
89101
# key else convert to hex
90102
if 127 > k >= 32:
91103
k = chr(k)
104+
print('RAW KEY:', k)
92105
else:
93106
k = hex(k)
94-
print('RAW KEY:', hex(k))
107+
print('RAW KEY:', hex(k))
95108

96109
return self.PRESSED, key
97110

display_configs/LilyGo-TDeck/trackball.py

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,45 @@
33
import keypad_framework
44
import machine
55
from micropython import const # NOQA
6+
import keyboard_s3
67

7-
_UP = 0x01
8-
_DOWN = 0x02
9-
_LEFT = 0x04
10-
_RIGHT = 0x08
8+
_UP = const(0x01)
9+
_DOWN = const(0x02)
10+
_LEFT = const(0x04)
11+
_RIGHT = const(0x08)
12+
_PRESS = const(0x10)
13+
14+
15+
group = keyboard_s3.group
1116

1217

1318
class TrackBall(keypad_framework.KeypadDriver):
1419

15-
def __init__(self, up_pin, down_pin, left_pin, right_pin): # NOQA
20+
def __init__(self, up_pin=3, down_pin=15, left_pin=1, right_pin=2, press_pin=0): # NOQA
1621

1722
self._up_pin = machine.Pin(up_pin, machine.Pin.IN)
1823
self._down_pin = machine.Pin(down_pin, machine.Pin.IN)
1924
self._left_pin = machine.Pin(left_pin, machine.Pin.IN)
2025
self._right_pin = machine.Pin(right_pin, machine.Pin.IN)
26+
self._press_pin = machine.Pin(press_pin, machine.Pin.IN)
2127
self._key = 0x00
2228

29+
self._key_state = self.RELEASED
30+
2331
super().__init__()
2432

33+
self.set_group(g)
34+
self.enable(1)
35+
2536
self._indev_drv.set_mode(lv.INDEV_MODE.EVENT) # NOQA
2637
self.__timer = lv.timer_create(self.__callback, 33, None) # NOQA
2738
self.__timer.set_repeat_count(-1) # NOQA
2839

2940
def __callback(self, _):
3041
self.read()
31-
last_state = self._current_state
42+
last_state = self._key_state
3243

33-
while self._current_state == self.PRESSED:
44+
while self._key_state == self.PRESSED:
3445
# this might be too fast so I may have to put a stall in here.
3546
lv.refr_now(self._disp_drv)
3647
self.read()
@@ -49,22 +60,39 @@ def _get_key(self):
4960
key |= _LEFT
5061
if self._right_pin.value():
5162
key |= _RIGHT
63+
if self._press_pin.value():
64+
key |= _PRESS
65+
66+
elif self._current_state == self.PRESSED:
67+
return self.RELEASED, self._last_key
68+
69+
if key == 0x00:
70+
self._key = key
71+
self._key_state = self.RELEASED
72+
return self.RELEASED, self._last_key
73+
else:
74+
self._key_state = self.PRESSED
5275

5376
if key & _UP:
5477
key &= ~_UP
5578
self._key = key
56-
return lv.KEY.UP
79+
return self.PRESSED, lv.KEY.UP
5780
elif key & _DOWN:
5881
key &= ~_DOWN
5982
self._key = key
60-
return lv.KEY.DOWN
83+
return self.PRESSED, lv.KEY.DOWN
6184
elif key & _LEFT:
6285
key &= ~_LEFT
6386
self._key = key
64-
return lv.KEY.LEFT
87+
return self.PRESSED, lv.KEY.LEFT
6588
elif key & _RIGHT:
6689
key &= ~_RIGHT
6790
self._key = key
68-
return lv.KEY.RIGHT
91+
return self.PRESSED, lv.KEY.RIGHT
92+
elif key & _PRESS:
93+
key &= ~_PRESS
94+
self._key = key
95+
return self.PRESSED, lv.KEY.ENTER
6996
else:
7097
self._key = 0x00
98+
return None

0 commit comments

Comments
 (0)