401
submitted 1 day ago* (last edited 1 day ago) by ByteWelder@feddit.nl to c/opensource@lemmy.ml

The project is called "Tactility" and its website is https://tactility.one/

You can run ELF binary apps directly from an SD card without restarting or flashing the ROM. There's an SDK for building these apps, but I haven't made an official release yet.

I wrote a blog post with some background information: https://bytewelder.com/posts/2025/01/06/tactility-one-year-later.html

Source code and project files: https://github.com/ByteWelder/Tactility

you are viewing a single comment's thread
view the rest of the comments
[-] grue@lemmy.world 7 points 1 day ago

Admittedly, I don't know a whole lot about what instruction set features the ESP32 actually has, but isn't an embedded processor that small by nature lacking in things like, say, a memory management unit? Don't take this the wrong way, but the notion of making a general-purpose OS that relies on cooperative multitasking seems a bit sketchy at a time when you could just spend an extra buck to move up to something like a Raspberry Pi Zero that can run a proper memory-safe and preemptive OS.

[-] ByteWelder@feddit.nl 20 points 1 day ago* (last edited 1 day ago)

There is indeed no way to create new virtual memory mappings. When a binary is loaded, it's manually mapped into IRAM (instruction RAM).

The target audience for things like Lilygo T-Deck is probably the more technical side of the Flipper Zero audience. I can see how it could also become an end-user device (like Flipper Zero is to many people), but we'll need more apps for that.

And sure, you could use a Raspberry Pi, but part of the fun/challenge of this project is that it hasn't been done for ESP32 before (as far as I'm aware). Some differences: a Raspberry Pi draws more power, costs more, and generally doesn't boot in under 2 seconds. I'm also not aware of compact Pi-based handhelds like the Lilygo T-Deck is to my project. edit: There's the uConsole, but it's twice the price, likely has 6+ months delivery time, is much larger, and weighs much more.

[-] RobotToaster@mander.xyz 8 points 1 day ago
[-] ByteWelder@feddit.nl 10 points 1 day ago

I didn't know this exists! I'm currently using a dependency to load ELF files: https://components.espressif.com/components/espressif/elf_loader I guess it would make more sense to have the memory mapping done inside elf_loader, so that S3 devices can load to PSRAM and non-S3 devices can load into IRAM. Thanks for the tip!

[-] RobotToaster@mander.xyz 3 points 10 hours ago

Looking at some of the bug reports it looks like your dependency may already be using the MMU.

this post was submitted on 07 Jan 2025
401 points (99.5% liked)

Open Source

31894 readers
212 users here now

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

founded 5 years ago
MODERATORS