Skip to content

Releases: ByteWelder/Tactility

v0.6.0

29 Oct 19:05
4a343e5

Choose a tag to compare

New boards

  • CYD-2432S028RV3
  • E32R32P
  • M5Stack Cardputer
  • M5Stack Cardputer v1.1
  • M5Stack Cardputer Adv
  • Waveshare S3 LCD 1.3"
  • Waveshare S3 Touch LCD 1.28"
  • Waveshare S3 Touch LCD 1.47"

App Hub

The App Hub app is basically a simple app store - and everything in it is free! 🎉
It's still very rudimentary:

You can list apps, view app details, install/update/uninstall them. There is no automatic update functionality yet. App updates are only mentioned in the app details screen.

Note: Don't close the app during installation, as the device eventually crashes after successfully installing the app. This will be addressed in the next Tactility update.

If you can't use the App Hub, or you want to install apps manually: extract them from the TactilityApps.zip below and put the .app files on an SD card. You can use the Files app to open the .app file and you will be prompted with a dialog to install them.

Apps are automatically installed to SD card when one is present. Otherwise they will be installed to /data.

New apps / app features

  • App Settings: uninstall apps (can also be done from within App Hub, if the app was installed from there)
  • App packaging: external apps files are now .app format, containing all relevant executables (for all supported hardware platforms), assets and a manifest.
  • Created the HAL for GPIO
  • When Tactility starts, it checks /data and all SD cards for installed apps. These apps become visible in the app list.
  • Introduce UI scaling: this applies user interface improvements to devices with very small screens. All apps are updated to work well on these devices.
  • Files app now supports deleting directories (recursively)
  • Development service now supports uninstall action

Improvements & fixes

  • I2C Scanner: Fix for crash when no I2C devices were found in the board configuration
  • Add I2C and UART configurations to CYD-2432S028R
  • External app errors now show up in an alert dialog on the device
  • Improved stability of file reading/writing
  • Development app/service: fix crash when sending large files
  • Technical improvements to LoaderService and GuiService
  • Keep track of launched apps and their response with LaunchId
  • Implement support for HttpdReq and esp_http_client, including SSL (up to v1.3)
  • Refactored the way that elf_loader exposes functionality to the external apps (pending PR at Espressif repo)
  • AppManifest changes (related to external apps)
  • Refactor/simplify AppPaths and ServicePaths. This is to make it work better with external apps.
  • Update dependencies (ESP-IDF, ILI9341 - maybe more)
  • App configuration is simplified
  • Board definitions are simplified. It now takes less manual actions to add a new board.
  • Created EstimatedPower driver and implemented it in all relevant boards (voltage-based "power remaining" estimate for the statusbar)
  • Fix for T-Lora Pager keyboard driver & device
  • Various fixes for Preferences
  • Fix for crash when connecting to open Wi-Fi

Other Changes

  • Removed Log app
  • Removed various internal apps to the TactilityApps repository for external apps.
  • /system isn't visible in the Files app anymore
  • /data and /system now use a 512 byte sector size instead of 4096. This allows for more small files on a relatively small storage budget.
  • Increase stack size for the main task: this fixes a stack overflow when installing apps
  • Update SPI frequencies of all boards so they don't exceed the official specifications anymore
  • Simplify GitHub actions by using matrices
  • Renamed App project to Firmware
  • Renamed AppSim project to FirmwareSim
  • Created re-usable web server (used for DevelopmentService and later for Wi-Fi setup mode)

TactilitySDK

Too much to sum up.

One of the major improvements is support for certain C++ STL features such as std::string, std::vector, std::stack and std::deque.

Known Issues

  • Emulator is broken
  • App Hub crashes when you close it during app installation (when spinner is visible). The app does seem to get installed succesfully before the crash happens.
  • CrowPanel Basic 3.5": Insufficient memory to load data into App Hub. You can manually download the apps and put them on an SD card to install them. A fix is expected in the future.
  • CrowPanel Advance 3.5": Insufficient memory to load data into App Hub. You can manually download the apps and put them on an SD card to install them. A fix is expected in the future.
  • Glitches on RGB screens when reading files (e.g. Waveshare LCD Touch 4.3")
  • Small Waveshare displays: Touch is either not available, not implemented or hard to use. You can install apps manually to the SD card, but there is no guide for that yet. Ask on Discord if you want help with this.

v0.5.0

07 Sep 15:06
fe7fdd8

Choose a tag to compare

New boards

  • LilyGO T-Lora Pager
  • CYD 2432S028R
  • CYD E28R32T

New apps / app features

  • New app: Region & Language
  • New external app: Calculator
  • New external app: GraphicsDemo
  • Launcher now has an optional power off functionality (used by T-Lora Pager).
  • System Info:
    • Improved layout for memory
    • Added info about available storage
  • When external apps fail to start, show an error on the device

Improvements

  • Support for encoder wheels
  • New drivers: BQ2770, TCA8418, ST7796, BQ25896, DRV2605 (power off only), Xpt2046SoftSpi, EstimatedPower (voltage-based battery status), Axp2101Power
  • Fix for GPS init error on device start-up
  • LVGL is now an optional feature for displays, paving the way for external non-LVGL displays
  • Allow LVGL to be stopped & restarted.
  • Introduce 'core' driver concept for LVGL and touch. This allows apps to talk to the hardware directly.
  • Fixes for Gui and Statusbar service so they can be stopped & restarted at runtime
  • Removed requirement for each lv_textarea instance to register for keyboard events. This now happens automatically.
  • Background services now have a State
  • Update to ESP-IDF 5.5
  • And much more
  • Added PropertiesFile concept and refactored various services to use .properties files to read/write configurations (boot, Wi-Fi, etc.)
  • Added support for overriding launcher app, and to automatically start an app from the launcher.
  • Added support for provisioning boot and WiFi settings from SD card
  • Added support for app translations
  • All devices with extended ROM capacity are now using this capacity (results in larger /data partition)
  • tt::hal::power::PowerDevice now supports device power off
  • Xpt2046Touch driver improved
  • Dispatcher and DispatcherThread re-written to use C++ instead of C patterns
  • PubSub refactored to enforce type safety
  • All boards updated to newer code style
  • HAL init completely refactored
  • ... and much more!
  • Development service now saves external apps to /data instead of /sdcard. This fixes issues with devices that don't have an SD card.

TactilitySDK

  • Added tt_hal_device_find()
  • Added various tt_hal_display_*()
  • Added various tt_hal_touch_*()
  • Added tt_lvgl_start(), _stop() and _is_started()
  • Added tt_app_start(), tt_app_start_with_bundle() and tt_app_stop()
  • Added various tt_kernel_*()

Known board issues

  • CYD 2432-S024S has a display glitch
  • CrowPanel Basic 3.5": GraphicsDemo not working, System Info app doesn't show storage info
  • Chat app has UX issues

v0.4.0

15 Jun 11:22
f9acf04

Choose a tag to compare

New apps

  • Calculator
  • Notes

Improvements

  • Implemented dark mode theme
  • Buildscript prettified: shows more info about what is being built, and uses colours.
  • Reduced desktop icon sizes for faster desktop rendering and smaller memory footprint on devices without PSRAM

TactilitySDK

  • Introducing a new app build system (tactility.py, see ExternalApps/HelloWorld/)
  • Implement new APIs for: WiFi, GPS, Preferences, Timezone
  • Some cleanup with breaking changes (e.g. renamed enums)

Known board issues

  • 2432s024c has a display glitch

v0.3.0

31 Mar 18:40
eb4e9f9

Choose a tag to compare

v0.3.0 Pre-release
Pre-release

Newly supported boards

  • CYD-2432S032C
  • CYD-4848S040C
  • CYD-8048S043C
  • CYD-JC2432W328C
  • CYD-JC8048W550C
  • Elecrow Crowpanel Basic 2.8"
  • Elecrow Crowpanel Advance 2.8"
  • Elecrow Crowpanel Basic 3.5"
  • Elecrow Crowpanel Advance 3.5"
  • Elecrow Crowpanel Basic 5"
  • Elecrow Crowpanel Advance 5"
  • Waveshare ESP32 Touch LCD 4.3"

New apps

  • GPS Settings: manage GPS devices and fetch coordinates
  • Serial Console: connect to serial devices (e.g. GPS)
  • Chat (alpha state): chat with nearby Tactility devices via an open WiFi interface

App improvements

  • I2cScanner:
    • Remember last selected bus/port
    • Auto-scan when opening app
    • Show device name if available
  • Logs: Fix crash when not selecting filter
  • Files: Use proper SD card mount point
  • WiFi:
    • Tapping a connected SSID disconnects it (instead of reconnecting)
    • Improved auto-connect behaviour

Other improvements

  • When launching external app, it now auto-registers in the application list
  • Reduced splash screen time (1s, from 1.5s) and improved boot time (by 0.1 second)
  • Optimized backlight for some devices (e.g. noise sound reduction)
  • Fix for M5Stack CoreS3 I2C power
  • Fix for GT911 touch driver (use correct I2C address)

Internal changes

  • New SDK features via TactilityC
  • Reworked App interface (onStart()/onStop() is now onCreate()/onDestroy())
  • Major driver restructuring, created lots of re-usable driver subprojects
  • Implemented device discovery: find various types of devices (tt::hal::Device)
  • tt::hal::Configuration now uses smart pointers
  • Graphics driver performance improvements for many/most devices (use DMA buffers instead of PSRAM)
  • Instead of using tt::service::loader:: functions, you can now use tt::app:: ones to start/stop apps etc.
  • Targeting C++23 now (from C++20)
  • Implemented SPI HAL
  • Implemented UART HAL
  • Implemented GPS HAL
  • Removed screenshot mode (TT_SCREENSHOT_MODE)
  • I2C HAL locking API improved
  • Fixed and/or improved flash scripts for all platforms
  • Logging refactored, including new simulator log formatting
  • Updated dependencies: elf_loader, esp_lvgl_port, and more
  • Various new file utilities
  • Merged TactilityHeadless/ into Tactility/
  • Replace various C funtion pointer APIs to std::function ones

Known board issues

  • Boards with an RGB/i80 LCD Driver show glitches when reading/writing files or turning on WiFi:
    WaveShare S3, Crowpanel 5" (both),
  • Crowpanel: UARTs now working? (maybe tx and rx swapped)
  • M5Stack Core2: Grove port not configured yet

Known app issues

  • Chat app might crash when WiFi is on while starting the app. Chat might not reliably receive messages.

v0.2.0

26 Jan 15:50
1bb1260

Choose a tag to compare

v0.2.0 Pre-release
Pre-release

This is a preview release.

Changes

  • New device implemented: unPhone (warning: still has a power drain issue when the device is off!)
  • Fixed SD card compatibility issue for all devices
  • It's now possible to start more than 1 external app at the same time
  • External apps can now specify methods to create/destroy data, and it's easier to attach data
  • Lots of internal fixes and improvements. Changed the way how apps & services are defined. Refactored TactilityCore to include more C++ safety measures (e.g. smart pointers)
  • Updated to ESP-IDF v5.4
  • Renamed "Yellow Display" device to "CYD 2432S024C"

Devices

  • unPhone: There currently is a power drain issue where the device will drain the battery in the off state. It lasts about 3 days in off state.
  • T-Deck: Works the best. No serious issues.
  • Core2: Performance isn't great, but mainly entering WiFi credentials with on-screen keyboard is not great.
  • CoreS3: SD card doesn't work and doesn't seem fixable (hardware issue). External I2C does not work (no voltage output on ports). Entering WiFi credentials with on-screen keyboard is not great.
  • Yellow Board: Likely goes out-of-memory after connecting to WiFi, resulting in icon rendering issues. Works smoothly otherwise.

TactilitySDK

I do not suggest using the SDKs to build external apps, because the API is not stable yet. You're of course welcome to try it out and evaluate it.

HelloWorld.app.elf

This is an external app that you can store onto an SD card and run via the Files app.

Simulator

This should run on Linux (Intel/AMD64) and on Windows 11 with WSL+Ubuntu. See documentation for more info.

v0.1.0

13 Jan 20:16
43c78c6

Choose a tag to compare

v0.1.0 Pre-release
Pre-release

This is a preview release.

Devices

Update: There's an SD card compatibility for all devices, that will be resolved in the next release.

  • T-Deck: Works the best. No serious issues.
  • Core2: Performance isn't great, but mainly entering WiFi credentials with on-screen keyboard is not great.
  • CoreS3: SD card doesn't work and doesn't seem fixable (hardware issue). External I2C does not work (no voltage output on ports). Entering WiFi credentials with on-screen keyboard is not great.
  • Yellow Board: Likely goes out-of-memory after connecting to WiFi, resulting in icon rendering issues. Works smoothly otherwise.

TactilitySDK

I do not suggest using the SDKs to build external apps, because the API is not stable yet. You're of course welcome to try it out and evaluate it.

HelloWorld.app.elf

This is an external app that you can store onto an SD card and run via the Files app.

Simulator

This should run on Linux (Intel/AMD64) and on Windows 11 with WSL+Ubuntu. See documentation for more info.