Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 Buildscripts/release-sdk-esp32.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,9 @@ def main():
# Mapping logic
mappings = [
{'src': 'version.txt', 'dst': ''},
# platform-esp32
{'src': 'build/esp-idf/platform-esp32/libplatform-esp32.a', 'dst': 'Modules/platform-esp32/binary/'},
{'src': 'Platforms/platform-esp32/include/**/*.h', 'dst': 'Modules/platform-esp32/include/'},
Comment thread
KenVanHoeylandt marked this conversation as resolved.
Resolved
# TactilityFreeRtos
{'src': 'TactilityFreeRtos/Include/**', 'dst': 'Libraries/TactilityFreeRtos/Include/'},
{'src': 'TactilityFreeRtos/CMakeLists.txt', 'dst': 'Libraries/TactilityFreeRtos/'},
Expand Down
3 changes: 2 additions & 1 deletion Devices/cl32-v02-v03/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ display.dpi=139

lvgl.colorDepth=8
lvgl.theme=Mono
lvgl.uiDensity=compact
lvgl.uiSpacing=40
lvgl.uiSize=0

cdn.infoMessage=This variant supports hardware revision v0.2 and v0.3.
3 changes: 2 additions & 1 deletion Devices/cl32-v04/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ display.dpi=139

lvgl.colorDepth=8
lvgl.theme=Mono
lvgl.uiDensity=compact
lvgl.uiSpacing=40
lvgl.uiSize=0

cdn.infoMessage=This variant supports hardware revision v0.4 with the reflective LCD or e-paper display.
2 changes: 2 additions & 0 deletions Devices/cyd-2432s022c/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ display.size=2.2"
display.dpi=182

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-2432s024c/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ display.size=2.4"
display.dpi=167

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-2432s024r/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ display.size=2.4"
display.dpi=167

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-2432s028r/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ cdn.warningMessage=There are 3 hardware variants of this board. This build works

lvgl.colorDepth=16
lvgl.fsCacheSize=512
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-2432s028rv3/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ touch.calibrationRequired=false
cdn.warningMessage=There are 3 hardware variants of this board. This build only supports board version 3.

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-2432s032c/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ display.size=3.2"
display.dpi=125

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-e32r28t/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ touch.calibrationSupported=true
touch.calibrationRequired=false

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/cyd-e32r32p/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ touch.calibrationSupported=true
touch.calibrationRequired=false

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/elecrow-crowpanel-advance-28/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ display.size=2.8"
display.dpi=143

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/elecrow-crowpanel-advance-35/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@ display.dpi=165
cdn.warningMessage=This device has display driver and memory issues. App Hub doesn't work.

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=80
2 changes: 2 additions & 0 deletions Devices/elecrow-crowpanel-basic-28/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ touch.calibrationSupported=true
touch.calibrationRequired=false

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/elecrow-crowpanel-basic-35/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ touch.calibrationRequired=false
cdn.warningMessage=This device has display driver and memory issues. App Hub doesn't work.

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=80
2 changes: 2 additions & 0 deletions Devices/es3c28p/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ display.dpi=143
lvgl.colorDepth=16

storage.userDataLocation=SD
lvgl.uiSpacing=40
lvgl.uiSize=60
3 changes: 2 additions & 1 deletion Devices/heltec-wifi-lora-32-v3/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ cdn.infoMessage=Due to the small size of the screen, the icons don't render prop

lvgl.theme=Mono
lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=40
lvgl.uiSize=0
2 changes: 2 additions & 0 deletions Devices/lilygo-tdeck-plus/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ display.dpi=143
cdn.infoMessage=To put the device into bootloader mode: <br/>1. Press the trackball and then the reset button at the same time,<br/>2. Let go of the reset button, then the trackball.<br/><br/>When this website reports that flashing is finished, you likely have to press the reset button.

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60

sdkconfig.CONFIG_CODEC_DUMMY_SUPPORT=y

Expand Down
2 changes: 2 additions & 0 deletions Devices/lilygo-tdeck/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@ display.dpi=143
cdn.infoMessage=To put the device into bootloader mode: <br/>1. Press the trackball and then the reset button at the same time,<br/>2. Let go of the reset button, then the trackball.<br/><br/>When this website reports that flashing is finished, you likely have to press the reset button.

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60

sdkconfig.CONFIG_CODEC_DUMMY_SUPPORT=y
3 changes: 2 additions & 1 deletion Devices/lilygo-tdisplay-s3/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ display.size=1.9"
display.dpi=191

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=40
lvgl.uiSize=0
3 changes: 2 additions & 1 deletion Devices/lilygo-tdisplay/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ display.size=1.14"
display.dpi=242

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=40
lvgl.uiSize=0
3 changes: 2 additions & 1 deletion Devices/lilygo-tdongle-s3/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@ display.size=0.96"
display.dpi=186

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=40
lvgl.uiSize=0
lvgl.fontSize=10
3 changes: 2 additions & 1 deletion Devices/lilygo-tembed-cc1101-plus/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ display.dpi=191

lvgl.colorDepth=16
lvgl.fontSize=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

sdkconfig.CONFIG_CODEC_DUMMY_SUPPORT=y

Expand Down
3 changes: 2 additions & 1 deletion Devices/lilygo-tembed-cc1101/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ display.dpi=191

lvgl.colorDepth=16
lvgl.fontSize=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

sdkconfig.CONFIG_CODEC_DUMMY_SUPPORT=y

Expand Down
2 changes: 2 additions & 0 deletions Devices/lilygo-thmi/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ touch.calibrationSupported=true
touch.calibrationRequired=false

lvgl.colorDepth=16
lvgl.uiSpacing=40
lvgl.uiSize=60
2 changes: 2 additions & 0 deletions Devices/lilygo-tlora-pager/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ display.dpi=227
lvgl.colorDepth=16
lvgl.dpi=150
lvgl.fontSize=16
lvgl.uiSpacing=40
lvgl.uiSize=0
3 changes: 2 additions & 1 deletion Devices/m5stack-cardputer-adv/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ display.size=1.14"
display.dpi=139

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
3 changes: 2 additions & 1 deletion Devices/m5stack-cardputer/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ display.size=1.14"
display.dpi=139

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
Expand Down
3 changes: 2 additions & 1 deletion Devices/m5stack-stickc-plus2/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ display.size=1.14"
display.dpi=242

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
3 changes: 2 additions & 1 deletion Devices/m5stack-sticks3/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ display.size=1.14"
display.dpi=242

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
3 changes: 2 additions & 1 deletion Devices/simulator/Source/module.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ extern "C" {

static error_t start() {
simulator::initActiveProfile();
lvgl_theme_set_default_compact(simulator::getProfile(simulator::getActiveProfileIndex()).compact);
const uint8_t density = simulator::getProfile(simulator::getActiveProfileIndex()).compact ? 0 : 100;
lvgl_theme_set_default_density(density, density);
error_t error = app_manager_add(&simulator::profileAppManifest);
if (error != ERROR_NONE) {
return error;
Expand Down
3 changes: 2 additions & 1 deletion Devices/waveshare-esp32-s3-geek/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ display.size=1.14"
display.dpi=143

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
3 changes: 2 additions & 1 deletion Devices/waveshare-s3-lcd-13/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ display.size=1.3"
display.dpi=261

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
1 change: 0 additions & 1 deletion Devices/waveshare-s3-touch-amoled-206/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ display.shape=rectangle
display.dpi=326

lvgl.colorDepth=16
lvgl.uiDensity=default
lvgl.fontSize=22

sdkconfig.CONFIG_TASK_WDT_TIMEOUT_S=10
Expand Down
3 changes: 2 additions & 1 deletion Devices/waveshare-s3-touch-lcd-128/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ display.size=1.28"
display.dpi=265

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
3 changes: 2 additions & 1 deletion Devices/waveshare-s3-touch-lcd-147/device.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ display.size=1.47"
display.dpi=247

lvgl.colorDepth=16
lvgl.uiDensity=compact
lvgl.uiSpacing=20
lvgl.uiSize=0

ui.systemBarsPortrait=split
ui.systemBarsLandscape=split
9 changes: 7 additions & 2 deletions Documentation/ideas.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@

## Higher Priority

- Fix system icon selection on mono display
- Make tt.py work without an app project. Ping the device for info.
- LVGL spinner not working on cl32 v04 (possibly anything monochrome)
- Export platform-esp32 with TactilitySDK
- Find out why the first build of an app with a clean build cache folder always fails
- Improve posix support: use user home path and system /tmp folder.
- Drivers/audio-codec-module is not a module. Move it somewhere else. Or make it an actual module.
Expand All @@ -20,10 +22,13 @@

## Medium Priority

- Improve watch interface. Consider adding some sort of device classification so UI in apps can choose to optimize for the watch.
- Support for running scripts at boot
- Update timezones.csv wrt 2026e, write tests for related code
- Notification support
- Low/critical memory warning test/rework
- Try https://github.com/bootdsc/Fastwave-Eink-Driver with CL-32 e-paper.
- Pick different font to improve monochrome screen readability (or change the weight).
- Use GPS time to set/update the current time: when enabled, at boot, when wifi is not enabled, start the gps device and wait until a lock is acquired, then get the time and sync it. Then stop the GPS device.
- Inspect code for memory improvements: replace `std::*` with `tt::std::*`
- Tactility/Source/app/imageviewer/ImageViewer.cpp: Limit memory used to open an image.
loadFile() now resizes fileData to the entire file size before displaying the image. start accepts a file path without a size limit, so opening a large image can exhaust memory on an embedded device before LVGL decodes it. Reject files above a supported limit or retain a bounded file-backed decoding path.
Expand Down
13 changes: 12 additions & 1 deletion Modules/location-module/include/location/location.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ enum LocationPrecision location_get_precision(void);
*/
error_t location_get(struct Location* location);

/** In bytes */
#define LOCATION_SUBSCRIBER_DESCRIPTION_MAX_LENGTH 24

/**
* Caller-owned subscription: the service signals @a bit on the event group whenever a new current fix is reported.
* Read the fix with location_get().
Expand All @@ -98,6 +101,7 @@ struct LocationSubscription {
uint32_t bit;

struct {
char description[LOCATION_SUBSCRIBER_DESCRIPTION_MAX_LENGTH + 1];
struct TaskEventGroup* event_group;
struct LocationSubscription* next;
} internal;
Expand All @@ -108,14 +112,21 @@ struct LocationSubscription {
* Providers start and stop in the background: subscribing and unsubscribing don't wait for them.
* @param[in,out] sub subscription to register, must stay alive until unsubscribed
* @param[in] event_group caller-owned group to wait on, must outlive @a sub
* @param[in] description what the subscriber is, shown to the user. Truncated to LOCATION_SUBSCRIBER_DESCRIPTION_MAX_LENGTH bytes, at a UTF-8 character boundary.
* @retval ERROR_RESOURCE @a event_group has no free bits left
* @retval ERROR_INVALID_STATE @a sub is already registered
*/
error_t location_subscribe(struct LocationSubscription* sub, struct TaskEventGroup* event_group);
error_t location_subscribe(struct LocationSubscription* sub, struct TaskEventGroup* event_group, const char* description);

/** @retval ERROR_NOT_FOUND when @a sub is not registered */
error_t location_unsubscribe(struct LocationSubscription* sub);

/**
* Calls @a callback for each subscription, in subscription order.
* The service lock is held during the callback, so it must only copy the description.
*/
void location_for_each_subscriber(void* context, void (*callback)(const char* description, void* context));

/** @return true when location services are enabled and there is at least one subscription */
bool location_is_in_use(void);

Expand Down
6 changes: 6 additions & 0 deletions Modules/location-module/include/location/provider.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ struct LocationProviderApi {
*/
bool fallback;

/**
* True when the provider reports the time of its fixes from a reliable clock, e.g. satellites.
* The service announces that time with KERNEL_EVENT_LOCATION_TIME.
*/
bool provides_time;

/**
* Start the provider. Called on the service's worker task while the service runs and has subscriptions.
* It must not block: the work happens on the provider's own task.
Expand Down
1 change: 1 addition & 0 deletions Modules/location-module/source/gps_provider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ bool gps_location_from_nmea(const minmea_sentence_rmc* rmc, const minmea_sentenc
const LocationProviderApi gps_location_provider = {
.id = "gps",
.fallback = false,
.provides_time = true,
.create = create,
.request_stop = requestStop,
.wait_stopped = waitStopped,
Expand Down
Loading
Loading