Tactility; The ESP32 Gets Another OS

Doing the rounds this week is a new operating system for ESP32 microcontrollers, it’s called Tactility, and it comes from [Ken Van Hoeylandt]. It provides a basic operating system level with the ability to run apps from an SD card, and it has the choice of a headless version or an LVGL-based touch UI.

Supported devices so far are some Lillygo and M5Stack boards, with intriguingly, support in the works for the Cheap Yellow Display board that’s caught some attention recently. The term “ESP32” is now a wide one encompassing Tensilica and RISC-V cores and a range of capabilities, so time will tell how flexible it is for all branches of the family.

We find this OS to be interesting, both in its own right and because it joins at least two others trying to do the same thing. There’s [Sprite_TM]’s PocketSprite mini console, and the operating system used by the series of Netherlands hacker camp badges,  We’ll be trying to get a device running it, in order to give you a look at whether it’s suitable for your projects. If it runs well on the cheaper hardware, it could be a winner!

14 thoughts on “Tactility; The ESP32 Gets Another OS

  1. Great article! I found a problem with one of the links:

    There’s [Sprite_TM]’s PocketSprite mini console

    Right now, that link points to the wrong URL (the same one as the Netherlands camp badges).

    1. Wouldn’t be hard to interface one to a CYD or really any board with a serial port and one gpio to control power. Modules like the SIM7080G make it incredibly easy to integrate LTE.

      1. That was exactly my first thought as well. If it would do calls (it already has mics and a speaker) and text I would ditch my android for this in a pinch.

        +1, would buy/build such a device to ditch Android too! I’ve been working on something similar using a 4G module and a raspberry Pi but I’ve been neglecting the project for a couple of years now :-(

  2. I wonder if this might lead to some FOSS smartwatches. I know about the PineTime but that is pretty old now and it doesn’t look competitive with the features available in rather cheap watches you can find from placeslike Amazfit.

    I’d love if we could get something widly supported and not sending all your data off to who knows.

  3. Regarding the range of processors under the “ESP32” umbrella, which can mean an ESP32 with a Tenselica LX6, or an ESP32-S3 with an LX7, or an ESP32-Cx with a RISC-V, this also restricts porting to ARM Cortex-A or Cortex-M machines, for us STM lovers. This is something I’ve been thinking about lately, noticing the number of different architectures on my bench. One solution is to compile code to an intermediate representation (IR), like the one that gcc uses, or to a generic virtual machine like WebAssembly, and then have this translate to the target instruction set the first time it is loaded. Translating from IR to any target instruction set is easier and resource-cheaper than the initial source parsing and optimization part of compilation, by a large factor. But unlike Apple’s Rosetta 2, which they use to translate Intel executables to Apple Silicon code as soon as you load an app, this would only need to be done once for each target instruction set. The translator would convert (for example) from MyApp to MyApp.lx7, and would save that on the SD card, right next to the original. The next time you run it, the loader detects that there’s already a .lx7 version, and just loads that. Even if you used the same card on multiple systems with different CPUs, it would only translate once to each needed target executable, and you wouldn’t need a full compiler on each machine to recompile, just the back end for that architecture. And SD cards are big these days compared to MCU memory, so no worry about running out of space for all of your apps. And if your SD card gets full, you can delete the least-used translations to make some space.

    And you might ask, “why not just compile to all popular targets and distribute all of them?” Which is fine except that the developer then has to test all of the architectures, and he’s probably not going to bother with Cortex-M4. You can develop for targets you never knew existed, similar to .net.

    1. I’m sorry I didn’t come up with this sooner – it’s a 10-month-old article. Hmm. Oh well. Anyway, this would mean not just ESP32, but all 32-bit MCUs potentially get another OS.

Leave a Reply to Thomas AndersonCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.