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 558 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
558 commits
Select commit Hold shift + click to select a range
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
06c7f51
update mesh-tab ILI9143 TFT
mverch67 Nov 1, 2024
21ea3f3
fix naming
mverch67 Nov 1, 2024
84bbfa1
Merge branch 'master' into tft-gui-work
mverch67 Nov 3, 2024
d68650d
mesh-tab targets
mverch67 Nov 4, 2024
d5fb039
Merge branch 'master' into tft-gui-work
mverch67 Nov 5, 2024
5d95edb
try: disable duplicate locks
mverch67 Nov 7, 2024
44ebb6d
Merge branch 'master' into tft-gui-work
mverch67 Nov 8, 2024
5b135ec
fix nodeDB erase loop when free mem returns invalid value (0, -1).
mverch67 Nov 8, 2024
79f36e6
upgrade toolchain for nrf52 to gcc 9.3.1
mverch67 Nov 9, 2024
8eb8c67
try-fix (workaround) T-Deck audio crash
mverch67 Nov 9, 2024
3b6920a
Merge branch 'master' into tft-gui-work
mverch67 Nov 11, 2024
e9461a0
update mesh-tab tft configs
mverch67 Nov 11, 2024
3f02ee4
set T-Deck audio to unused 48 (mem mclk)
mverch67 Nov 11, 2024
86792f7
swap mclk to gpio 21
mverch67 Nov 11, 2024
13f0a6d
update meshtab voltage divider
mverch67 Nov 12, 2024
bece512
update mesh-tab ini
mverch67 Nov 13, 2024
c06b446
Fixed the issue that indicator device uploads via rp2040 serial port …
Wvirgil123 Nov 14, 2024
e697d2c
Fixed the issue that the touch I2C address definition was not effective.
Wvirgil123 Nov 14, 2024
b932d43
Fixed the issue that the wifi configuration saved to RAM did not take…
Wvirgil123 Nov 14, 2024
0b088e1
rotation fix; added ST7789 3.2" display
mverch67 Nov 14, 2024
573d2dc
Merge branch 'master' into tft-gui-work
mverch67 Nov 14, 2024
9a9172f
dreamcatcher: assign GPIO44 to audio mclk
mverch67 Nov 15, 2024
d1aa26c
Merge pull request #5350 from Wvirgil123/tft-gui-work-sensecap
markbirss Nov 16, 2024
7e79439
mesh-tab touch updates
mverch67 Nov 16, 2024
210b627
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Nov 16, 2024
db2fcea
add mesh-tab powersave as default
mverch67 Nov 17, 2024
87b82f5
fix DIO1 wakeup
mverch67 Nov 17, 2024
9a5112c
mesh-tab: enable alert message menu
mverch67 Nov 17, 2024
b1aa23c
Merge branch 'master' into tft-gui-work
mverch67 Nov 18, 2024
630568c
Streamline board definitions for first tech preview. (#5390)
caveman99 Nov 19, 2024
6bb0e8a
fix native targets
mverch67 Nov 20, 2024
21867e5
add RadioLib debugging options for (T-Deck)
mverch67 Nov 20, 2024
3f997ba
fix T-Deck build
mverch67 Nov 20, 2024
0f31e35
fix native tft targets for rpi
mverch67 Nov 23, 2024
83a89f1
remove wrong debug defines
mverch67 Nov 24, 2024
60fe974
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Nov 24, 2024
e29d0e8
t-deck-tft button is handled in device-ui
mverch67 Nov 24, 2024
62a5e86
Merge branch 'master' into tft-gui-work
mverch67 Nov 24, 2024
210dfb0
disable default lightsleep for indicator
mverch67 Nov 25, 2024
50f1cb8
Windows Support - Trunk and Platformio (#5397)
ThatKalle Nov 27, 2024
07b7336
Merge branch 'master' into tft-gui-work
mverch67 Nov 29, 2024
aac2a80
fix radioLib warnings for T-Deck target
mverch67 Nov 30, 2024
ab6dfe4
wake screen with button only
mverch67 Dec 1, 2024
0f7cdde
Merge branch 'tft-gui-work' of https://github.com/meshtastic/firmware…
mverch67 Dec 1, 2024
5a6f36d
use custom touch driver
mverch67 Dec 1, 2024
44238cf
define wake button for unphone
mverch67 Dec 3, 2024
8e40144
Merge branch 'master' into tft-gui-work
jp-bennett Dec 5, 2024
678a489
use board definition for mesh-tab
mverch67 Dec 5, 2024
357af0b
Merge branch 'master' into tft-gui-work
fifieldt Dec 7, 2024
ca6a80a
Merge branch 'master' into tft-gui-work
fifieldt Dec 12, 2024
66101bc
mesh-tab rotation upside-down
mverch67 Dec 16, 2024
cdf76d6
update platform native
mverch67 Dec 20, 2024
6a0f973
Merge branch 'master' into tft-gui-work
mverch67 Dec 22, 2024
fb5bd97
use MESH_TAB hardware model definition
mverch67 Dec 23, 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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
url = https://github.com/meshtastic/device-ui.git
url = https://github.com/meshtastic/device-ui.git
branch = master

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mariotti:

As device-ui is basically master driven, I was checking if a submodule can alway point to master. [comment]

I believe this solves this particular complaint! But as far as I know you cannot specify a commit hash or tag, so this is good for keeping the HEAD of master but not going deeper.
@mverch67 I will make a PR — you are welcome to use or reject!

Copy link
Collaborator Author

@mverch67 mverch67 Dec 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is a good idea in general as it won't be possible to ever re-build old versions of the software. The branch tag is currently not maintened as there are no automatic builds but will be as soon as the last needed feature is implemented and running.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! But sadly it will work for a short time :(

If tomorrow we will start versioning the device-ui, which will be the idea, then we have an issue.

I think it is best to leave this to the developers until it is merged.

[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 @@ -4,7 +4,7 @@ platform = platformio/nordicnrf52@^10.7.0
extends = arduino_base
platform_packages =
; our custom Git version until they merge our PR
framework-arduinoadafruitnrf52 @ https://github.com/geeksville/Adafruit_nRF52_Arduino.git
framework-arduinoadafruitnrf52 @ https://github.com/geeksville/Adafruit_nRF52_Arduino.git#4f591d0f71f75e5128fab9dc42ac72f1696cf89f
toolchain-gccarmnoneeabi@~1.90301.0

build_type = debug
Expand Down
2 changes: 1 addition & 1 deletion arch/portduino/portduino.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
; The Portduino based 'native' environment. Currently supported on Linux targets with real LoRa hardware (or simulated).
[portduino_base]
platform = https://github.com/meshtastic/platform-native.git#73bd1a21183ca8b00c4ea58bb21315df31a50dff
platform = https://github.com/meshtastic/platform-native.git#0e10e92627802594576ce831bb84e3127525b7dd
framework = arduino

build_src_filter =
Expand Down
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", "0x80D6"]],
"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"
}
8 changes: 5 additions & 3 deletions 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 All @@ -32,9 +34,9 @@
"flash_size": "8MB",
"maximum_ram_size": 327680,
"maximum_size": 8388608,
"require_upload_port": true,
"require_upload_port": false,
"use_1200bps_touch": true,
"wait_for_upload_port": true,
"wait_for_upload_port": false,
"speed": 921600
},
"url": "https://www.seeedstudio.com/Indicator-for-Meshtastic.html",
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 @@ -250,6 +250,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 @@ -486,4 +486,4 @@ void ScanI2CTwoWire::logFoundDevice(const char *device, uint8_t address)
{
LOG_INFO("%s found at address 0x%x", device, address);
}
#endif
#endif
2 changes: 1 addition & 1 deletion src/graphics/Screen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1718,7 +1718,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
131 changes: 129 additions & 2 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,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 @@ -173,6 +186,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 @@ -727,11 +742,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("Use compiled/slipstreamed %s", slipstreamTZString); // important, removing this clobbers our magic string
Expand Down Expand Up @@ -1178,7 +1274,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 @@ -1275,4 +1383,23 @@ void loop()
mainDelay.delay(delayMsec);
}
}
#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

#endif
Loading
Loading