603 Commits

Author SHA1 Message Date
Ken Van Hoeylandt
2cf8beae7a esp_hosted downgrade 2026-09-11 19:49:30 +02:00
Ken Van Hoeylandt
4022f206e4 Fixes 2026-09-11 15:26:16 +02:00
Ken Van Hoeylandt
15735af476 Fixes 2026-09-11 00:15:07 +02:00
Ken Van Hoeylandt
026532b1f0 Update SDK in GitHub Actions 2026-09-10 18:06:34 +02:00
Ken Van Hoeylandt
d9399e3311 Fix for findOrCreateDirectoryInternal() 2026-09-10 17:58:51 +02:00
Ken Van Hoeylandt
4cb0882ee7 Driver migrations 2026-09-10 17:58:38 +02:00
Ken Van Hoeylandt
5d2ca3188a idf 6.1 initial updates for T-Deck 2026-09-10 00:04:12 +02:00
Ken Van Hoeylandt
3d71ba5407 Update esp_tinyusb to v2.2.1
+ add error screen for usb mount failure at boot
2026-09-09 21:49:00 +02:00
Ken Van Hoeylandt
8556103eb1
Implemented multi-binary app packaging (#648) 2026-09-09 20:05:04 +02:00
Shadowtrance
2496dea5c2
M5Stack PaperS3 display driver improved (#647) 2026-09-08 21:57:41 +02:00
Ken Van Hoeylandt
1b16184a72
Multi-platform http server (#646)
- Add server support to `http-module`
- Ensure `DevelopmentService` works on all platforms (including posix)
- Ensure the built-in web server with dashboard works on all platforms (inluding posix). It still has some issues with certain featuers, but the basics work.
2026-09-06 14:16:23 +02:00
Ken Van Hoeylandt
a0b2ee7ebc
Run executables directly (#645)
- Apps can be launched directly from file paths (including Files app support)
- Added executable detection to identify unsupported or invalid binaries before launch.
- App startup is now streamlined through separate registered-app and direct-execution interfaces.
- Existing app launch points were migrated to the updated startup APIs.
2026-09-04 21:23:08 +02:00
Ken Van Hoeylandt
643cbc3806
Implement posix app loading (#643)
- Added POSIX desktop support for SDK builds, application packaging, and integration testing.
- Added POSIX filesystem partitions and improved application path handling.
- Added simulator support for loading and running applications dynamically.
- Improved simulator task stack handling and display startup reliability.
- Improved simulator display scaling, resizing, high-DPI support, and pointer accuracy.
- Fixed LVGL timers and input polling on POSIX. (fixes simulator with Linux on some Intel graphics platforms)
- Standardized data paths across platforms.
- Logging now works via separate task: this allows apps to write to log without it affecting their stdout (for apps that output text as relevant date for other apps, like the File Selection app)
- Fixes for app stdio
2026-08-31 22:09:04 +02:00
Shadowtrance
d3656bcd3d
Fixes and improvements (#642) 2026-08-30 23:10:52 +02:00
Ken Van Hoeylandt
7a81b525ed
elf_loader update and fix for remote install (#641) 2026-08-30 12:58:48 +02:00
Ken Van Hoeylandt
6e5e35610b
Implement app streams: stdio for apps (#640)
Implement file IO for applications to facilitate text input/output capturing.

Apps can now launch apps and:
- Read their stdio output
- Write to their stdio input
2026-08-30 12:07:40 +02:00
Ken Van Hoeylandt
64fb1a9f52
display backlight and bluetooth reference counting (#639) 2026-08-29 23:37:31 +02:00
Ken Van Hoeylandt
19b11eb9a8
Remove TactilityC and Firmware subprojects (#638)
- Removed TactilityC, moved its symbols to existing modules and several new ones (pthread-module, c-symbols-module, cpp-symbols-module, posix-symbols-module, freertos-module).
- Removed Firmware subproject and moved main() into Tactility subproject.
- Strengthened application archive, path, version, stack-size, and device validation.
- Moved symbol resolution for elf_loader to app-esp32-module.
- Improved `struct Module` declarations and made module and symbol definitions in modules more consistent.
- Removed old http download code from Tactility subproject.
- Rename app-module's source files for consistency.
- Add missing pthread symbols.
- Kernel module symbols are now resolvable on all platforms.
2026-08-29 21:06:43 +02:00
Crazypedia
d3556fb536
feat(lilygo-tdeck-max): wire up the DRV2605 haptic driver (#635) 2026-08-29 17:53:45 +02:00
Crazypedia
e466b183cc
feat(lilygo-tdeck-max): wire up the MIA-M10Q GPS (#634) 2026-08-29 17:51:35 +02:00
Ken Van Hoeylandt
bcbf18e363
Implement http-module (#637)
Create http-module and implement it in App Hub and App Hub Details apps.
2026-08-28 23:09:59 +02:00
Ken Van Hoeylandt
d2442bedb4
LoraApi callbacks refactored to events (#632) 2026-08-28 18:56:12 +02:00
Crazypedia
b7577f2328
feat(gdeq031t10): support an optional frontlight (#633) 2026-08-28 08:59:46 +02:00
Ken Van Hoeylandt
020aa471e2
File locking refactored (#631)
Remove FileMutex and wire locking into driver subsystems.
2026-08-28 01:06:53 +02:00
Ken Van Hoeylandt
92ca046681
app-module events & callstack config, crash diagnostics (#630)
- Apps can specify task stack depth and preferred memory placement in their manifests.
- App identifiers are validated against length and character requirements.
- Crash diagnostics now show the crash cause, reason, fault address, call stack, and program-counter details, with logs saved for review.
- App closing is more consistent across built-in screens. There's now a dedicated function, and the old _emit() function is made private.
- Crash diagnostics no longer display a QR code without a call stack.
- Improved memory allocation for unrestricted requests.
2026-08-27 21:50:12 +02:00
Crazypedia
c656ee9ffd
fix(gdeq031t10): skip the panel refresh when the frame is unchanged (#624) 2026-08-27 17:03:34 +02:00
Ken Van Hoeylandt
0ee2415f3b
Bluetooth and Wi-Fi improvements (#622)
- Enable BT by default in DTS, and create separate radio on/of functionality (like recent Wi-Fi changes)
- Bluetooth event handling now uses queued subscriptions, improving event delivery and application responsiveness.
- Improved synchronization of Bluetooth advertising, connections, HID, MIDI, and SPP operations.
- Enhanced cleanup during Bluetooth shutdown and subscription removal.
- Clarified Bluetooth start and stop behavior.
- Improved wifi driver subscription stability to prevent endless loops
2026-08-26 00:30:03 +02:00
Ken Van Hoeylandt
ab75d2022d
Refactored events (#621)
Event handling:

- Added unified event handling for application, system, and Wi‑Fi events.
- Updated all apps to reflect event handling changes

Wi-Fi:

- Refactored event handling from listener interface to task & event group.
- Added direct Wi‑Fi radio controls and improved event subscriptions.
- Wi‑Fi screens now refresh asynchronously and handle unavailable devices more gracefully.
- Enabled Wi‑Fi by default on in dts files, but radio on/off is still done by code. The main reason was reliable event subscription and consistent devicetree states.
- Improved Wi‑Fi shutdown cleanup and radio-state handling.

Other:
- Renamed the Kernel Display app to Display.
2026-08-25 17:44:20 +02:00
Ken Van Hoeylandt
db48dfe812
Fixes and improvements (#620)
- Standardized keyboard input using Unicode-based key codes across supported devices and the simulator. Keyboards don't emit `LV_KEY_*` anymore.
- Refactored lilygo encoder driver into a reusable GPIO rotary encoder driver (see `Drivers/gpio-encoder-module/`). Added more features to the config file.
- Improved LVGL keyboard device management, including duplicate prevention and reliable reconnects.
- LVGL file mutex now registers with lvgl start/stop
- Improved LVGL startup/shutdown stability and memory allocation reliability.
- Increased simulator LVGL memory capacity and improved USB device-class handling.
2026-08-23 17:21:16 +02:00
Ken Van Hoeylandt
4fea48f433
Remove explicit app closing function (#618) 2026-08-21 08:59:52 +02:00
Ken Van Hoeylandt
0ff1627385
Fixes and improvements (#617) 2026-08-20 17:22:01 +02:00
Ken Van Hoeylandt
b03759a111
Fixes and improvements (#616) 2026-08-18 20:43:07 +02:00
Ken Van Hoeylandt
f943c4dd69
Move tests to relevant subprojects (#615)
- Moved test projects to the parent project they belong to
- Improved test stability/corectness
- Improved recursive directory deletion by safely ignoring current- and parent-directory entries.
- Update docs
2026-08-13 23:01:12 +02:00
Ken Van Hoeylandt
d6b1d15e56
Various improvements (#614)
- Auto-select widgets in Launcher and apps with toolbars on devices without touch.
- Improved USB HID input reliability, cleanup
- Updated PSRAM settings to improve boot stability on supported devices.
- Prevented duplicate Wi-Fi event subscriptions during screen rebuilds.
- Updated docs
- Fixes in WifiManage and WifiConnect
- Reduced main task stack size
- Moved USB HID stack size to PSRAM when available
- app_manager_find_manifest() now returns a copy instead of a pointer
2026-08-13 20:30:47 +02:00
Shadowtrance
cc8be3faef
USB device-mode support (#613) 2026-08-12 21:29:35 +02:00
Ken Van Hoeylandt
37c507544b
Refactor app loading and window management (#609) 2026-08-11 23:40:59 +02:00
Shadowtrance
dc3f6104b8
Papers3 improvements (#611)
- And Tab5 keyboard improvements
- Usb host keyboard improvements
- Symbols
- Requires the device.py change from CL-32 PR but that only affects visuals and not build breaking
2026-08-08 15:02:49 +02:00
NellowTCS
564d8af64c
Implement Tulip Creative Computer 4r11 (#608) 2026-08-08 14:52:34 +02:00
NellowTCS
c6373b79e9
Implement CL-32 Support (#610) 2026-08-07 19:30:22 +02:00
Ken Van Hoeylandt
d2c69ee7e8
Move service API from TactilityKernel to service-module (#604)
Extracted the service API from TactilityKernel and put it in a new module at `Modules/service-module`
2026-08-01 20:51:43 +02:00
Shadowtrance
85fe1a319a
Tab5 ST7121 variant + fixes (#605)
Added the newest variant to the tab5, St7121.
Fixed variant detection reliability
Fixed tab5 camera WHO_AM_I failing sometimes
Fixed tab5 keyboard live rotation on boot and after stopping/starting lvgl
2026-08-01 20:50:55 +02:00
Crazypedia
d72d5a0ef2
fix(gdeq031t10): only commit the shadow after the panel confirms (#607)
shadow_framebuffer records what the panel is currently showing, but both
refresh paths updated it before the refresh was confirmed, so a failed
trigger or a BUSY timeout left it describing content that was never
displayed.

That misdescription compounds: the shadow is sent to the controller as
CMD_DATA_START_OLD, so the per-pixel transitions get computed from an
image the panel never held, and draw_bitmap() diffs against it, so a
region matching a wrong shadow is treated as clean and never repainted.

Both paths now commit only after wait_while_busy() confirms. refresh_full()
also sends new data straight from the render buffer, which drops a
full-framebuffer copy from the path.
2026-07-31 22:09:45 +02:00
Crazypedia
94deee8875
fix(gdeq031t10): reset the panel at the start of a full init (#603) 2026-07-30 23:07:25 +02:00
Crazypedia
f13c18f398
LoRa device type + SX1262 kernel driver (first checkpoint) (#565)
Adds sub-GHz radio support to Tactility as a first-class kernel device type, plus a
driver for the Semtech SX1262. Continues the radio work discussed in #342, brought up to
the current kernel driver model (rather than the deprecated tt::hal layer the earlier
prototype targeted).
2026-07-30 19:32:23 +02:00
Ken Van Hoeylandt
606b918f9c
Device license changes (#596)
See https://github.com/TactilityProject/Tactility/pull/596 for author consent.
2026-07-30 17:19:11 +02:00
Ken Van Hoeylandt
1cb661469d
GPS refactor & license text updates (#601)
- Split up `gps-generic-module` into:
  - `gps-generic-module` that contains only interfaces/configs/bindings (Apache license)
  - `gps-meshtastic-module` that contains an implementation (GPL license)
- Update `LICENSE.md` for changes, but also added clarifications
- Added licenses to directories where they were missing
- Changed license of some test projects from GPL to Apache.
2026-07-30 16:28:41 +02:00
Ken Van Hoeylandt
c729e8340f
Trackball rewrite (#600)
- Implement generic trackball settings
- Refactor T-Deck trackball driver into generic driver at `Drivers/gpio-trackball-module`
- Automatically bind/unbind trackball devices with LVGL
- Automatically load settings for trackball devices on boot
2026-07-30 13:38:19 +02:00
Ken Van Hoeylandt
de6fc3b346
Update dependencies in Devices/ and remove "useDeprecatedHal" (#599)
- Updated dependencies in `Devices/`: remove unused ones, update incorrect ones
- Removed `dependencies.useDeprecatedHal` from device properties (and related scripting/code)
2026-07-29 18:47:19 +02:00
Ken Van Hoeylandt
acb2f1d4c7
Replace Tactility SystemEvents with new kernel implementation (#598)
TactilityKernel now has a system event API to replace the one from the Tactility subproject. It also implements several tests for it.
2026-07-29 17:31:20 +02:00
Ken Van Hoeylandt
6e55e71e67
Export atof symbol (#597) 2026-07-29 00:09:58 +02:00