Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fancy T-Deck / SenseCAP Indicator / unPhone / PICOmputer-S3 TFT screen #3259

Draft
wants to merge 504 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
504 commits
Select commit Hold shift + click to select a range
106f228
update lib: node options part 1
mverch67 Jun 14, 2024
dd1bfb6
Merge branch 'master' into tft-gui-work
mverch67 Jun 14, 2024
f022d46
Merge branch 'master' into tft-gui-work
mverch67 Jun 14, 2024
f7a4f51
Merge branch 'master' into tft-gui-work
mverch67 Jun 14, 2024
8a2e29d
Merge branch 'master' into tft-gui-work
mverch67 Jun 15, 2024
2081278
Merge branch 'master' into tft-gui-work
mverch67 Jun 15, 2024
696eaa2
Merge branch 'master' into tft-gui-work
mverch67 Jun 16, 2024
cf1f003
lib update: node options + localisation preparations
mverch67 Jun 16, 2024
f6fa649
update lib: textarea and keyboard fixes
mverch67 Jun 16, 2024
fc80c3b
Merge branch 'master' into tft-gui-work
mverch67 Jun 16, 2024
2c2dfcf
reduce load of TFT task
mverch67 Jun 17, 2024
58102ac
exclude inputbroker fixes crash
mverch67 Jun 17, 2024
5936d0c
Merge branch 'master' into tft-gui-work
mverch67 Jun 17, 2024
d5d4312
Merge branch 'master' into tft-gui-work
mverch67 Jun 18, 2024
bebee05
add ext notification module to portduino
mverch67 Jun 18, 2024
d7d5cd0
give little more time for other threads
mverch67 Jun 18, 2024
d4776d2
lib update: ringtones
mverch67 Jun 18, 2024
2cb83d7
Merge branch 'master' into tft-gui-work
mverch67 Jun 18, 2024
01a1d86
update lib: time display
mverch67 Jun 18, 2024
ffb18db
disable BT when TFT in use
mverch67 Jun 19, 2024
5a6d01a
add comment BT disable
mverch67 Jun 19, 2024
c080b0f
lib update: bunch of fixes
mverch67 Jun 19, 2024
aec970b
lib update: channel + buzzer fix
mverch67 Jun 19, 2024
008b3c4
Merge branch 'master' into tft-gui-work
mverch67 Jun 20, 2024
179027e
fix wifi/bt connection status
mverch67 Jun 20, 2024
02922c4
lib update: home screen
mverch67 Jun 20, 2024
ca0c9a2
Merge branch 'master' into tft-gui-work
mverch67 Jun 20, 2024
d973d30
Merge branch 'master' into tft-gui-work
mverch67 Jun 21, 2024
963c109
lib update: initial PIComputer support
mverch67 Jun 20, 2024
1f14192
lib update: kbd matrix driver
mverch67 Jun 21, 2024
8423f9d
Merge branch 'master' into tft-gui-work
mverch67 Jun 22, 2024
a29497e
Merge branch 'master' into tft-gui-work
mverch67 Jun 24, 2024
7489e70
gcc option can be removed
mverch67 Jun 24, 2024
5682081
fix MESHTASTIC_EXCLUDE_GPS
mverch67 Jun 24, 2024
669d3b0
add diy TFT build to T3S3 (for tests)
mverch67 Jun 24, 2024
2f2ac71
lib update: generic driver
mverch67 Jun 24, 2024
ad5dbc2
Merge branch 'master' into tft-gui-work
mverch67 Jun 27, 2024
02a4f45
Merge branch 'master' into tft-gui-work
mverch67 Jun 27, 2024
520a8a8
trackball support
mverch67 Jun 27, 2024
5045284
enable buzzer alert for picomputer
mverch67 Jun 27, 2024
fc0e97d
lib update: inputnavigation
mverch67 Jun 27, 2024
e8f293f
Merge branch 'master' into tft-gui-work
mverch67 Jun 27, 2024
1776e99
Merge branch 'master' into tft-gui-work
mverch67 Jun 28, 2024
a57e493
bump up lovyanGFX driver version
mverch67 Jun 28, 2024
d73975c
bump lovyanGFX version
mverch67 Jun 28, 2024
106db1f
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Jun 28, 2024
bf7f9ba
Merge branch 'master' into tft-gui-work
mverch67 Jun 28, 2024
f1a0da3
Merge branch 'master' into tft-gui-work
mverch67 Jun 28, 2024
ba56d1d
Merge branch 'master' into tft-gui-work
mverch67 Jun 29, 2024
9dc9307
Merge branch 'master' into tft-gui-work
mverch67 Jun 30, 2024
1ccea6a
Merge branch 'master' into tft-gui-work
mverch67 Jun 30, 2024
5cb8283
lib update: PICOmputer fixes
mverch67 Jun 30, 2024
08c77a9
Merge branch 'master' into tft-gui-work
mverch67 Jul 1, 2024
2c2d75a
Merge branch 'master' into tft-gui-work
mverch67 Jul 1, 2024
2597ef1
Merge branch 'master' into tft-gui-work
mverch67 Jul 2, 2024
2ded2bf
lib update: fix LONG_PRESSED for button/enter key
mverch67 Jul 3, 2024
91a0ffb
added 1200baud reset
mverch67 Jul 3, 2024
3498890
USB mode=1 messed up the debug log
mverch67 Jul 3, 2024
b4eb8d1
lib update: swap controls for PICOmputer
mverch67 Jul 3, 2024
4162873
lib update: trackball behavior fix
mverch67 Jul 4, 2024
1670205
Merge branch 'master' into tft-gui-work
mverch67 Jul 4, 2024
87b9e15
lib update: settings panel disabled
mverch67 Jul 4, 2024
3868c8a
Merge branch 'master' into tft-gui-work
mverch67 Jul 5, 2024
cce11b7
prevent reducing CPU speed when using TFT
mverch67 Jul 5, 2024
674c7a8
exclude webserver / bluetooth
mverch67 Jul 5, 2024
7c8dca3
fix bluetooth exclusion
mverch67 Jul 5, 2024
f9babec
lib update
mverch67 Jul 5, 2024
6f6b627
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Jul 5, 2024
967ea60
Merge branch 'master' into tft-gui-work
mverch67 Jul 5, 2024
459da74
Merge branch 'master' into tft-gui-work
mverch67 Jul 7, 2024
c8bb37f
Merge branch 'master' into tft-gui-work
mverch67 Jul 8, 2024
3f3e210
Merge branch 'master' into tft-gui-work
mverch67 Jul 9, 2024
d04e5b8
Merge branch 'master' into tft-gui-work
mverch67 Jul 10, 2024
15ddbc1
Merge branch 'master' into tft-gui-work
mverch67 Jul 10, 2024
9f73def
Merge branch 'master' into tft-gui-work
mverch67 Jul 11, 2024
6cad674
Merge branch 'master' into tft-gui-work
mverch67 Jul 11, 2024
5c8fd37
Merge branch 'master' into tft-gui-work
mverch67 Jul 12, 2024
1018522
lib update: group input order
mverch67 Jul 12, 2024
9bfbd03
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Jul 12, 2024
2d45b33
try-fix spi lock
mverch67 Jul 15, 2024
2022d69
lib update: try-fix bat icon
mverch67 Jul 15, 2024
3d581b6
lib update: fix group ordering and null-pointer issue
mverch67 Jul 15, 2024
8b98aca
Merge branch 'master' into tft-gui-work
mverch67 Jul 15, 2024
00bcef7
Merge branch 'master' into tft-gui-work
mverch67 Jul 16, 2024
3b2ac05
lib update: battery & premature tool
mverch67 Jul 19, 2024
9a86da4
Merge branch 'master' into tft-gui-work
mverch67 Jul 19, 2024
9a5bb76
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Jul 19, 2024
75229e6
lib update: fix channel setting
mverch67 Jul 19, 2024
0dccb9a
adaptions for signal scanner
mverch67 Jul 22, 2024
d4a7a90
lib update: signal scanner
mverch67 Jul 22, 2024
daad832
lib update: fix battery display
mverch67 Jul 22, 2024
4b3fe76
Merge branch 'master' into tft-gui-work
mverch67 Jul 22, 2024
1631e28
lib update: trace route spinner behavior
mverch67 Jul 22, 2024
5e63f31
try-fix: stability
mverch67 Jul 25, 2024
1fe3f14
Merge branch 'master' into tft-gui-work
mverch67 Jul 25, 2024
b7475a4
update t3s3-tft
mverch67 Aug 2, 2024
efea1a9
Merge branch 'master' into tft-gui-work
mverch67 Aug 2, 2024
5ef58e9
sensecap indicator support
mverch67 Aug 3, 2024
0bee837
Merge branch 'master' into tft-gui-work
mverch67 Aug 3, 2024
31510b0
fix due to #4369
mverch67 Aug 3, 2024
219d8e8
Merge branch 'master' into tft-gui-work
thebentern Aug 10, 2024
b79cac5
Update ref to fix admin message
thebentern Aug 10, 2024
5c4a773
Merge branch 'master' into tft-gui-work
mverch67 Aug 21, 2024
4746112
lib update: light theme
mverch67 Aug 21, 2024
1d1995b
fix merge issue
mverch67 Aug 21, 2024
776268e
lib update: home buttons + button try-fix
mverch67 Aug 21, 2024
ca82d91
lib update: icon color fix
mverch67 Aug 21, 2024
ab5664a
Merge branch 'master' into tft-gui-work
mverch67 Aug 21, 2024
898a5d0
lib update: fix instability/crash on notification
mverch67 Aug 21, 2024
3c1ad03
update lib: timezone
mverch67 Aug 21, 2024
dfc6cae
timezone label
mverch67 Aug 21, 2024
a98adab
lib update: fix set owner
mverch67 Aug 23, 2024
7cc5f8c
Merge branch 'master' into tft-gui-work
mverch67 Aug 23, 2024
485f077
Merge branch 'master' into tft-gui-work
mverch67 Aug 23, 2024
f431280
Merge branch 'master' into tft-gui-work
mverch67 Aug 25, 2024
c8f0599
fix spiLock in RadioLibInterface
mverch67 Aug 25, 2024
5334e7b
add picomputer tft build
mverch67 Aug 26, 2024
3255991
picomputer build
mverch67 Aug 26, 2024
d306ece
fix compiler error std::find()
mverch67 Aug 27, 2024
b125fc4
Merge branch 'master' into tft-gui-work
mverch67 Aug 31, 2024
7b3ad3d
fix merge
mverch67 Aug 31, 2024
3a141ec
lib update: theme runtime config
mverch67 Sep 1, 2024
b18268c
Merge branch 'master' into tft-gui-work
mverch67 Sep 1, 2024
38b31a8
Merge branch 'master' into tft-gui-work
mverch67 Sep 2, 2024
c86b278
lib update: packet logger + T-Deck Plus
mverch67 Sep 2, 2024
ef635da
Merge branch 'master' into tft-gui-work
mverch67 Sep 4, 2024
c4e0989
lib update: mesh detector
mverch67 Sep 4, 2024
1d3d428
Merge branch 'master' into tft-gui-work
mverch67 Sep 4, 2024
3a73648
lib update: fix brightness & trackball crash
mverch67 Sep 5, 2024
d502e46
Merge branch 'master' into tft-gui-work
mverch67 Sep 6, 2024
7e8b023
Merge branch 'master' into tft-gui-work
mverch67 Sep 7, 2024
12431d4
Merge branch 'master' into tft-gui-work
mverch67 Sep 7, 2024
0ca687e
try-fix less paranoia
mverch67 Sep 8, 2024
bb7286c
sensecap indicator updates
mverch67 Sep 10, 2024
b4501d8
Merge branch 'master' into tft-gui-work
mverch67 Sep 10, 2024
08e6f75
lib update: indicator fix
mverch67 Sep 11, 2024
1513e65
Merge branch 'master' into tft-gui-work
mverch67 Sep 12, 2024
a2264b1
Merge branch 'master' into tft-gui-work
mverch67 Sep 14, 2024
8b9cc00
Merge branch 'master' into tft-gui-work
mverch67 Sep 17, 2024
aa20d91
Merge branch 'master' into tft-gui-work
mverch67 Sep 17, 2024
5829a74
lib update: statistic & some fixes
mverch67 Sep 17, 2024
73ce1cd
lib-update: other T-Deck touch driver
mverch67 Sep 18, 2024
002ae31
Merge branch 'master' into tft-gui-work
mverch67 Sep 18, 2024
7dc1236
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Sep 18, 2024
1ff5c86
use custom touch driver for Indicator
mverch67 Sep 19, 2024
3089009
lower tft task prio
mverch67 Sep 20, 2024
a034c95
Merge branch 'master' into tft-gui-work
mverch67 Sep 20, 2024
45b173a
prepare LVGL ST7789 driver
mverch67 Sep 23, 2024
307c44f
lib update: try-fix audio
mverch67 Sep 23, 2024
94e882c
Drop received packets from self
thebentern Sep 20, 2024
f625e8c
Additional decoded packet ignores
thebentern Sep 20, 2024
29442c5
Honor flip & color for Heltec T114 and T190 (#4786)
todd-herbert Sep 20, 2024
a84ec50
Download debian files after firmware zip
thebentern Sep 20, 2024
75eda8f
set title for protobufs bump PR (#4792)
scruplelesswizard Sep 21, 2024
81ec117
set title for version bump PR (#4791)
scruplelesswizard Sep 21, 2024
a2a68ce
Enable Dependabot
scruplelesswizard Sep 20, 2024
b6d63eb
chore: trunk fmt
scruplelesswizard Sep 21, 2024
d13755b
fix dependabot syntax (#4795)
fifieldt Sep 21, 2024
0d9fdec
Bump peter-evans/create-pull-request from 6 to 7 in /.github/workflow…
dependabot[bot] Sep 21, 2024
e15d40a
Bump docker/build-push-action from 5 to 6 in /.github/workflows (#4800)
dependabot[bot] Sep 21, 2024
0617f33
Actions: Semgrep Images have moved from returntocorp to semgrep (#4774)
fifieldt Sep 21, 2024
d3cb808
Bump meshtestic from `31ee3d9` to `37245b3` (#4799)
dependabot[bot] Sep 21, 2024
9f64adf
[create-pull-request] automated change (#4789)
github-actions[bot] Sep 21, 2024
b06238f
Bump pnpm/action-setup from 2 to 4 in /.github/workflows (#4798)
dependabot[bot] Sep 21, 2024
6377f0e
Raspberry Pico2 - needs protos
caveman99 Sep 21, 2024
c6e71f2
Re-order doDeepSleep (#4802)
todd-herbert Sep 21, 2024
2a06106
[create-pull-request] automated change
thebentern Sep 21, 2024
9e99fda
heltec-wireless-bridge
caveman99 Sep 21, 2024
1bff6bf
feat: trigger class update when protobufs are changed
scruplelesswizard Sep 21, 2024
4ee17bb
meshtastic/ is a test suite; protobufs/ contains protobufs;
scruplelesswizard Sep 21, 2024
873def5
Update platform-native to pick up portduino crash fix (#4807)
jp-bennett Sep 21, 2024
8cee3a4
Hopefully extract and commit to meshtastic.github.io
thebentern Sep 21, 2024
0e9c229
CI fixes
thebentern Sep 22, 2024
de7a3f9
[Board] DIY "t-energy-s3_e22" (#4782)
vidplace7 Sep 22, 2024
1c3d477
Consolidate variant build steps (#4806)
scruplelesswizard Sep 22, 2024
c356bec
Revert "Consolidate variant build steps (#4806)" (#4816)
fifieldt Sep 22, 2024
cbaee64
Make Ublox code more readable (#4727)
fifieldt Sep 22, 2024
fe41aba
Consider the LoRa header when checking packet length
jp-bennett Sep 22, 2024
2cd41d9
Minor fix (#4666)
fifieldt Sep 23, 2024
7b84a21
Revert "Update classes on protobufs update" (#4824)
scruplelesswizard Sep 23, 2024
db2f2dd
Implement optional second I2C bus for NRF52840
todd-herbert Sep 17, 2024
19c777d
Add I2C bus to Heltec T114 header pins
todd-herbert Sep 17, 2024
cceb2db
Tidier macros
todd-herbert Sep 17, 2024
7dfe42d
Swap SDA and SCL
todd-herbert Sep 18, 2024
83bbffd
Refactor and consolidate time window logic (#4826)
thebentern Sep 23, 2024
d91cda9
Rename message length headers and set payload max to 255 (#4827)
jp-bennett Sep 23, 2024
dfbd8db
Check for null before printing debug (#4835)
jp-bennett Sep 23, 2024
f6e9a67
Merge branch 'master' into tft-gui-work
mverch67 Sep 23, 2024
130b040
Merge branch 'master' into tft-gui-work
mverch67 Sep 23, 2024
5aa5b4e
Merge branch 'master' into tft-gui-work
mverch67 Sep 23, 2024
67f363b
fix merge
mverch67 Sep 23, 2024
a84276c
try-fix crash
mverch67 Sep 24, 2024
10b3de6
lib update: fix neighbors
mverch67 Sep 24, 2024
1d41469
Merge branch 'master' into tft-gui-work
mverch67 Sep 24, 2024
7b3e3df
fix GPIO0 mode after I2S audio
mverch67 Sep 27, 2024
61c170c
Merge branch 'master' into tft-gui-work
mverch67 Sep 27, 2024
e9dad0e
lib update: audio fix
mverch67 Sep 27, 2024
0bbad5f
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Sep 27, 2024
69666e3
Merge branch 'master' into tft-gui-work
mverch67 Sep 27, 2024
fb02f87
Merge branch 'master' into tft-gui-work
mverch67 Sep 28, 2024
bfe99b2
Merge branch 'master' into tft-gui-work
mverch67 Sep 28, 2024
dbf46f8
Merge branch 'master' into tft-gui-work
mverch67 Sep 29, 2024
ccc82ce
Merge branch 'master' into tft-gui-work
mverch67 Oct 1, 2024
fd498d9
Merge branch 'master' into tft-gui-work
mverch67 Oct 2, 2024
26e62bc
lib update: fixes and improvements
mverch67 Oct 3, 2024
6d550fe
Merge branch 'master' into tft-gui-work
mverch67 Oct 3, 2024
5dc4a9e
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Oct 3, 2024
db4fb1b
extra
mverch67 Oct 8, 2024
4492261
added ILI9342 (from master)
mverch67 Oct 8, 2024
d4e0c25
Merge branch 'master' into tft-gui-work
mverch67 Oct 8, 2024
9683a8f
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Oct 8, 2024
79b2685
Merge branch 'master' into tft-gui-work
mverch67 Oct 9, 2024
9662fc9
Merge branch 'master' into tft-gui-work
mverch67 Oct 10, 2024
5b08bc9
Merge branch 'master' into tft-gui-work
mverch67 Oct 11, 2024
97a602e
device-ui persistency
mverch67 Oct 11, 2024
24c9b9c
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Oct 11, 2024
b6fa052
Merge branch 'master' into tft-gui-work
mverch67 Oct 11, 2024
9f15ef5
review update
mverch67 Oct 11, 2024
d1cb129
fix request, add handled
mverch67 Oct 11, 2024
55bce94
Merge branch 'master' into tft-gui-work
mverch67 Oct 13, 2024
f7e7087
Merge branch 'master' into tft-gui-work
mverch67 Oct 14, 2024
339bbdb
fix merge issue
mverch67 Oct 14, 2024
fa74645
Merge branch 'master' into tft-gui-work
mverch67 Oct 14, 2024
56ab052
fix merge issue
mverch67 Oct 14, 2024
3e3ec71
remove newline
mverch67 Oct 15, 2024
4121abc
remove newlines from debug log
mverch67 Oct 16, 2024
39e67ae
Merge branch 'master' into tft-gui-work
mverch67 Oct 16, 2024
171eea0
Merge branch 'master' into tft-gui-work
mverch67 Oct 20, 2024
6564d71
playing with locks; but needs more testing
mverch67 Oct 20, 2024
6c597a4
diy mesh-tab initial files
mverch67 Oct 21, 2024
407c12f
board definition for mesh-tab (not yet used)
mverch67 Oct 21, 2024
f5afa44
Merge branch 'master' into tft-gui-work
mverch67 Oct 21, 2024
50087da
use DISPLAY_SET_RESOLUTION to avoid hw dependency in code
mverch67 Oct 23, 2024
c655591
Merge branch 'master' into tft-gui-work
mverch67 Oct 24, 2024
a73e683
no telemetry for Indicator
mverch67 Oct 24, 2024
e781b38
16MB partition for Indicator
mverch67 Oct 24, 2024
71d984e
8MB partition for Indicator
mverch67 Oct 24, 2024
f184ba5
stability: add SPI lock before saving via littleFS
mverch67 Oct 25, 2024
a6b429a
Merge branch 'master' into tft-gui-work
caveman99 Oct 26, 2024
42d22a9
dummy for config transfer (#5154)
caveman99 Oct 26, 2024
7f76775
Merge branch 'master' into tft-gui-work
mverch67 Oct 27, 2024
402d14d
Merge branch 'master' into tft-gui-work
fifieldt Oct 28, 2024
b4c3dfb
Merge branch 'master' into tft-gui-work
mverch67 Oct 28, 2024
790582f
Merge branch 'master' into tft-gui-work
fifieldt Oct 28, 2024
16f0a91
update indicator (due to compile and linker errors)
mverch67 Oct 24, 2024
a922e06
remove faulty partition line
mverch67 Oct 29, 2024
1b4a8e6
fix missing include
mverch67 Oct 30, 2024
a5f5c1b
Merge branch 'master' into tft-gui-work
mverch67 Oct 30, 2024
5de6e6a
update indicator board
mverch67 Oct 30, 2024
ae6c20c
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Oct 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
[submodule "protobufs"]
path = protobufs
url = https://github.com/meshtastic/protobufs.git
[submodule "lib/device-ui"]
path = lib/device-ui
url = https://github.com/meshtastic/device-ui.git
[submodule "meshtestic"]
path = meshtestic
url = https://github.com/meshtastic/meshTestic
2 changes: 1 addition & 1 deletion arch/nrf52/nrf52.ini
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ lib_deps=

lib_ignore =
BluetoothOTA
lvgl
lvgl
1 change: 1 addition & 0 deletions arch/rp2xx0/rp2040.ini
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ build_src_filter =

lib_ignore =
BluetoothOTA
lvgl

lib_deps =
${arduino_base.lib_deps}
Expand Down
42 changes: 42 additions & 0 deletions boards/mesh-tab.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"build": {
"arduino": {
"ldscript": "esp32s3_out.ld",
"partitions": "default_16MB.csv",
"memory_type": "qio_qspi"
},
"core": "esp32",
"extra_flags": [
"-DBOARD_HAS_PSRAM",
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_USB_MODE=0",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"hwids": [["0x303A", "0x1001"]],
"mcu": "esp32s3",
"variant": "mesh-tab"
},
"connectivity": ["wifi", "bluetooth", "lora"],
"debug": {
"default_tool": "esp-builtin",
"onboard_tools": ["esp-builtin"],
"openocd_target": "esp32s3.cfg"
},
"frameworks": ["arduino", "espidf"],
"name": "ESP32-S3 WROOM-1 N16R2 (16 MB FLASH, 2 MB PSRAM)",
"upload": {
"flash_size": "16MB",
"maximum_ram_size": 327680,
"maximum_size": 16777216,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"require_upload_port": true,
"speed": 460800
},
"url": "https://github.com/valzzu/Mesh-Tab",
"vendor": "Espressif"
}
4 changes: 3 additions & 1 deletion boards/seeed-sensecap-indicator.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
"f_boot": "120000000L",
"boot": "qio",
"flash_mode": "qio",
"hwids": [["0x1A86", "0x7523"]],
"mcu": "esp32s3",
"variant": "esp32s3r8"
"variant": "esp32s3"
},
"connectivity": ["wifi", "bluetooth", "lora"],
"debug": {
Expand Down
2 changes: 1 addition & 1 deletion boards/t-deck.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"-DARDUINO_USB_CDC_ON_BOOT=1",
"-DARDUINO_USB_MODE=0",
"-DARDUINO_RUNNING_CORE=1",
"-DARDUINO_EVENT_RUNNING_CORE=0"
"-DARDUINO_EVENT_RUNNING_CORE=1"
],
"f_cpu": "240000000L",
"f_flash": "80000000L",
Expand Down
1 change: 1 addition & 0 deletions lib/device-ui
Submodule device-ui added at 6b760f
3 changes: 3 additions & 0 deletions src/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef HAS_SCREEN
#define HAS_SCREEN 0
#endif
#ifndef HAS_TFT
#define HAS_TFT 0
#endif
#ifndef HAS_WIRE
#define HAS_WIRE 0
#endif
Expand Down
2 changes: 1 addition & 1 deletion src/detect/ScanI2CTwoWire.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -490,4 +490,4 @@ size_t ScanI2CTwoWire::countDevices() const
{
return foundDevices.size();
}
#endif
#endif
2 changes: 1 addition & 1 deletion src/graphics/Screen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1709,7 +1709,7 @@ void Screen::setup()
#endif
serialSinceMsec = millis();

#if ARCH_PORTDUINO
#if ARCH_PORTDUINO && !HAS_TFT
if (settingsMap[touchscreenModule]) {
touchScreenImpl1 =
new TouchScreenImpl1(dispdev->getWidth(), dispdev->getHeight(), static_cast<TFTDisplay *>(dispdev)->getTouch);
Expand Down
29 changes: 20 additions & 9 deletions src/graphics/TFTDisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -347,12 +347,12 @@ static LGFX *tft = nullptr;
#include <TFT_eSPI.h> // Graphics and font library for ILI9342 driver chip

static TFT_eSPI *tft = nullptr; // Invoke library, pins defined in User_Setup.h
#elif ARCH_PORTDUINO && HAS_SCREEN != 0
#elif ARCH_PORTDUINO && HAS_SCREEN != 0 && !HAS_TFT
#include <LovyanGFX.hpp> // Graphics and font library for ST7735 driver chip

class LGFX : public lgfx::LGFX_Device
{
lgfx::Panel_LCD *_panel_instance;
lgfx::Panel_Device *_panel_instance;
lgfx::Bus_SPI _bus_instance;

lgfx::ITouch *_touch_instance;
Expand All @@ -366,10 +366,21 @@ class LGFX : public lgfx::LGFX_Device
_panel_instance = new lgfx::Panel_ST7735;
else if (settingsMap[displayPanel] == st7735s)
_panel_instance = new lgfx::Panel_ST7735S;
else if (settingsMap[displayPanel] == st7796)
_panel_instance = new lgfx::Panel_ST7796;
else if (settingsMap[displayPanel] == ili9341)
_panel_instance = new lgfx::Panel_ILI9341;
else if (settingsMap[displayPanel] == ili9342)
_panel_instance = new lgfx::Panel_ILI9342;
else if (settingsMap[displayPanel] == ili9488)
_panel_instance = new lgfx::Panel_ILI9488;
else if (settingsMap[displayPanel] == hx8357d)
_panel_instance = new lgfx::Panel_HX8357D;
else {
_panel_instance = new lgfx::Panel_NULL;
LOG_ERROR("Unknown display panel configured!");
}

auto buscfg = _bus_instance.config();
buscfg.spi_mode = 0;
buscfg.spi_host = settingsMap[displayspidev];
Expand All @@ -383,12 +394,12 @@ class LGFX : public lgfx::LGFX_Device
LOG_DEBUG("Height: %d, Width: %d ", settingsMap[displayHeight], settingsMap[displayWidth]);
cfg.pin_cs = settingsMap[displayCS]; // Pin number where CS is connected (-1 = disable)
cfg.pin_rst = settingsMap[displayReset];
cfg.panel_width = settingsMap[displayWidth]; // actual displayable width
cfg.panel_height = settingsMap[displayHeight]; // actual displayable height
cfg.offset_x = settingsMap[displayOffsetX]; // Panel offset amount in X direction
cfg.offset_y = settingsMap[displayOffsetY]; // Panel offset amount in Y direction
cfg.offset_rotation = 0; // Rotation direction value offset 0~7 (4~7 is mirrored)
cfg.invert = settingsMap[displayInvert]; // Set to true if the light/darkness of the panel is reversed
cfg.panel_width = settingsMap[displayWidth]; // actual displayable width
cfg.panel_height = settingsMap[displayHeight]; // actual displayable height
cfg.offset_x = settingsMap[displayOffsetX]; // Panel offset amount in X direction
cfg.offset_y = settingsMap[displayOffsetY]; // Panel offset amount in Y direction
cfg.offset_rotation = settingsMap[displayOffsetRotate]; // Rotation direction value offset 0~7 (4~7 is mirrored)
cfg.invert = settingsMap[displayInvert]; // Set to true if the light/darkness of the panel is reversed

_panel_instance->config(cfg);

Expand All @@ -410,7 +421,7 @@ class LGFX : public lgfx::LGFX_Device
touch_cfg.y_max = settingsMap[displayWidth] - 1;
touch_cfg.pin_int = settingsMap[touchscreenIRQ];
touch_cfg.bus_shared = true;
touch_cfg.offset_rotation = 1;
touch_cfg.offset_rotation = settingsMap[touchscreenRotate];
if (settingsMap[touchscreenI2CAddr] != -1) {
touch_cfg.i2c_addr = settingsMap[touchscreenI2CAddr];
} else {
Expand Down
136 changes: 132 additions & 4 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
#include <utility>

#ifdef ARCH_ESP32
#include "freertosinc.h"
#if !MESHTASTIC_EXCLUDE_WEBSERVER
#include "mesh/http/WebServer.h"
#endif
Expand Down Expand Up @@ -113,6 +114,18 @@ AccelerometerThread *accelerometerThread = nullptr;
AudioThread *audioThread = nullptr;
#endif

#if HAS_TFT
#include "DeviceScreen.h"
#include "DisplayDriverConfig.h"
#include "PacketClient.h"
#include "PacketServer.h"
#include "api/PacketAPI.h"

void tft_task_handler(void *);

DeviceScreen *deviceScreen = nullptr;
#endif

#if defined(TCXO_OPTIONAL)
float tcxoVoltage = SX126X_DIO3_TCXO_VOLTAGE; // if TCXO is optional, put this here so it can be changed further down.
#endif
Expand Down Expand Up @@ -177,6 +190,8 @@ std::pair<uint8_t, TwoWire *> nodeTelemetrySensorsMap[_meshtastic_TelemetrySenso

Router *router = NULL; // Users of router don't care what sort of subclass implements that API

const char *firmware_version = optstr(APP_VERSION_SHORT);

const char *getDeviceName()
{
uint8_t dmac[6];
Expand Down Expand Up @@ -279,6 +294,7 @@ void setup()
#endif

powerMonInit();

serialSinceMsec = millis();

LOG_INFO("\n\n//\\ E S H T /\\ S T / C\n");
Expand Down Expand Up @@ -414,13 +430,13 @@ void setup()
digitalWrite(AQ_SET_PIN, HIGH);
#endif

#ifdef T_DECK
#if defined(T_DECK)
// enable keyboard
pinMode(KB_POWERON, OUTPUT);
digitalWrite(KB_POWERON, HIGH);
// There needs to be a delay after power on, give LILYGO-KEYBOARD some startup time
// otherwise keyboard and touch screen will not work
delay(800);
delay(200);
#endif

// Currently only the tbeam has a PMU
Expand Down Expand Up @@ -594,7 +610,6 @@ void setup()
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::INA3221, meshtastic_TelemetrySensorType_INA3221)
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::MAX17048, meshtastic_TelemetrySensorType_MAX17048)
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::MCP9808, meshtastic_TelemetrySensorType_MCP9808)
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::MCP9808, meshtastic_TelemetrySensorType_MCP9808)
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::SHT31, meshtastic_TelemetrySensorType_SHT31)
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::SHTC3, meshtastic_TelemetrySensorType_SHTC3)
SCANNER_TO_SENSORS_MAP(ScanI2C::DeviceType::LPS22HB, meshtastic_TelemetrySensorType_LPS22)
Expand Down Expand Up @@ -733,11 +748,92 @@ void setup()
SPI.begin(LORA_SCK, LORA_MISO, LORA_MOSI, LORA_CS);
LOG_DEBUG("SPI.begin(SCK=%d, MISO=%d, MOSI=%d, NSS=%d)", LORA_SCK, LORA_MISO, LORA_MOSI, LORA_CS);
SPI.setFrequency(4000000);
#endif
#if HAS_TFT
#ifdef PORTDUINO
if (settingsMap[displayPanel] != no_screen) {
DisplayDriverConfig displayConfig;
static char *panels[] = {"NOSCREEN", "X11", "ST7789", "ST7735", "ST7735S", "ST7796",
"ILI9341", "ILI9342", "ILI9486", "ILI9488", "HX8357D"};
static char *touch[] = {"NOTOUCH", "XPT2046", "STMPE610", "GT911", "FT5x06"};
#ifdef USE_X11
if (settingsMap[displayPanel] == x11) {
if (settingsMap[displayWidth] && settingsMap[displayHeight])
displayConfig = DisplayDriverConfig(DisplayDriverConfig::device_t::X11, (uint16_t)settingsMap[displayWidth],
(uint16_t)settingsMap[displayHeight]);
else
displayConfig.device(DisplayDriverConfig::device_t::X11);
} else
#endif
{
displayConfig.device(DisplayDriverConfig::device_t::CUSTOM_TFT)
.panel(DisplayDriverConfig::panel_config_t{.type = panels[settingsMap[displayPanel]],
.panel_width = (uint16_t)settingsMap[displayWidth],
.panel_height = (uint16_t)settingsMap[displayHeight],
.rotation = (bool)settingsMap[displayRotate],
.pin_cs = (int16_t)settingsMap[displayCS],
.pin_rst = (int16_t)settingsMap[displayReset],
.offset_x = (uint16_t)settingsMap[displayOffsetX],
.offset_y = (uint16_t)settingsMap[displayOffsetY],
.offset_rotation = (uint8_t)settingsMap[displayOffsetRotate],
.invert = settingsMap[displayInvert] ? true : false,
.rgb_order = (bool)settingsMap[displayRGBOrder],
.dlen_16bit = settingsMap[displayPanel] == ili9486 ||
settingsMap[displayPanel] == ili9488})
.bus(DisplayDriverConfig::bus_config_t{.freq_write = (uint32_t)settingsMap[displayBusFrequency],
.freq_read = 16000000,
.spi{.pin_dc = (int8_t)settingsMap[displayDC],
.use_lock = true,
.spi_host = (uint16_t)settingsMap[displayspidev]}})
.input(DisplayDriverConfig::input_config_t{.keyboardDevice = settingsStrings[keyboardDevice],
.pointerDevice = settingsStrings[pointerDevice]})
.light(DisplayDriverConfig::light_config_t{.pin_bl = (int16_t)settingsMap[displayBacklight],
.pwm_channel = (int8_t)settingsMap[displayBacklightPWMChannel],
.invert = (bool)settingsMap[displayBacklightInvert]});
if (settingsMap[touchscreenI2CAddr] == -1) {
displayConfig.touch(
DisplayDriverConfig::touch_config_t{.type = touch[settingsMap[touchscreenModule]],
.freq = (uint32_t)settingsMap[touchscreenBusFrequency],
.pin_int = (int16_t)settingsMap[touchscreenIRQ],
.offset_rotation = (uint8_t)settingsMap[touchscreenRotate],
.spi{
.spi_host = (int8_t)settingsMap[touchscreenspidev],
},
.pin_cs = (int16_t)settingsMap[touchscreenCS]});
} else {
displayConfig.touch(DisplayDriverConfig::touch_config_t{
.type = touch[settingsMap[touchscreenModule]],
.freq = (uint32_t)settingsMap[touchscreenBusFrequency],
.x_min = 0,
.x_max =
(int16_t)((settingsMap[touchscreenRotate] & 1 ? settingsMap[displayWidth] : settingsMap[displayHeight]) -
1),
.y_min = 0,
.y_max =
(int16_t)((settingsMap[touchscreenRotate] & 1 ? settingsMap[displayHeight] : settingsMap[displayWidth]) -
1),
.pin_int = (int16_t)settingsMap[touchscreenIRQ],
.offset_rotation = (uint8_t)settingsMap[touchscreenRotate],
.i2c{.i2c_addr = (uint8_t)settingsMap[touchscreenI2CAddr]}});
}
}
deviceScreen = &DeviceScreen::create(&displayConfig);
PacketAPI::create(PacketServer::init());
deviceScreen->init(new PacketClient);
} else {
LOG_INFO("Running without TFT display!");
}
#else
deviceScreen = &DeviceScreen::create();
PacketAPI::create(PacketServer::init());
deviceScreen->init(new PacketClient);
#endif
#endif

// Initialize the screen first so we can show the logo while we start up everything else.
#if HAS_SCREEN
screen = new graphics::Screen(screen_found, screen_model, screen_geometry);

#endif
// setup TZ prior to time actions.
#if !MESHTASTIC_EXCLUDE_TZ
LOG_DEBUG("Using compiled/slipstreamed %s", slipstreamTZString); // important, removing this clobbers our magic string
Expand Down Expand Up @@ -1137,7 +1233,19 @@ void setup()
// This must be _after_ service.init because we need our preferences loaded from flash to have proper timeout values
PowerFSM_setup(); // we will transition to ON in a couple of seconds, FIXME, only do this for cold boots, not waking from SDS
powerFSMthread = new PowerFSMThread();

#if HAS_TFT
#ifdef HAS_FREE_RTOS
xTaskCreatePinnedToCore(tft_task_handler, "tft", 8192, NULL, 1, NULL, 0);
#endif
#else
setCPUFast(false); // 80MHz is fine for our slow peripherals
#endif

#ifdef ARDUINO_ARCH_ESP32
LOG_DEBUG("Free heap : %7d bytes", ESP.getFreeHeap());
LOG_DEBUG("Free PSRAM : %7d bytes", ESP.getFreePsram());
#endif
}
#endif
uint32_t rebootAtMsec; // If not zero we will reboot at this time (used to reboot shortly after the update completes)
Expand Down Expand Up @@ -1165,6 +1273,7 @@ extern meshtastic_DeviceMetadata getDeviceMetadata()
#endif
return deviceMetadata;
}

#ifndef PIO_UNIT_TESTING
void loop()
{
Expand Down Expand Up @@ -1196,3 +1305,22 @@ void loop()
}
}
#endif

#if HAS_TFT
void tft_task_handler(void *param = nullptr)
{
while (true) {
if (deviceScreen) {
spiLock->lock();
deviceScreen->task_handler();
spiLock->unlock();
}
#ifdef HAS_FREE_RTOS
vTaskDelay(5 / portTICK_PERIOD_MS);
#else
delay(5);
#endif
}
}

#endif
Loading
Loading