413
submitted 2 weeks ago* (last edited 2 weeks 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

top 20 comments
sorted by: hot top controversial new old
[-] beeng@discuss.tchncs.de 34 points 2 weeks ago

Looks cool, but what should I look to do with it?

[-] ByteWelder@feddit.nl 40 points 2 weeks ago

In its current state, it's mainly a tool for developers to be able to build prototypes or experiments quickly. From a user perspective, there isn't enough yet. We'll need more apps before it's useful for end-users. I want to improve the core functionality before I build more apps: I already have to maintain about 2 dozen apps and I'd rather spend my time on building a better platform for now.

[-] Valmond@lemmy.world 6 points 2 weeks ago

I have a python app that would love to run on a small wifi device like an ESP, how far away is the possibility to do that? Could I freeze the python fikes to (8MB IIRC) executables (Linux) and run them?

Also, how do you use an sd card on the esp?

I toyed around a lot with the old ESP 8266 back in the day so I'm a bit out of the loop with thise newer ones.

[-] ByteWelder@feddit.nl 11 points 2 weeks ago

I don't expect regular Python apps to ever run on Tactility, as the memory requirements are likely too high. There is at most about 8MB of RAM for apps available. Perhaps a special build of micropython could work at some point.

You can open the Files app and there's a folder named "sdcard". So far, all SD card implementations are done via a serial interface (SPI). I cannot mount them on-the-fly yet - only at boot.

[-] tetris11@lemmy.ml 10 points 2 weeks ago
[-] ByteWelder@feddit.nl 5 points 2 weeks ago

Thanks! Good to see there's an ESP32 community too. I just subscribed ^^

[-] grue@lemmy.world 7 points 2 weeks 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 2 weeks ago* (last edited 2 weeks 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 2 weeks ago
[-] ByteWelder@feddit.nl 10 points 2 weeks 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 2 weeks ago

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

[-] Voyajer@lemmy.world 7 points 2 weeks ago

Nice! I currently only use my tdeck for meshtastic but this would broaden it's capabilities.

[-] SomeAmateur@sh.itjust.works 8 points 2 weeks ago

Meshtastic is cool I wish there were more public users around me.

[-] Mubelotix@jlai.lu 6 points 2 weeks ago

My friend runs a similar project in Rust, focusing on running wasm-compiled programs

[-] akai_android@programming.dev 6 points 2 weeks ago

very cool! lots of neat other projects too

[-] slazer2au@lemmy.world 3 points 2 weeks ago

Having some blackberry flashbacks with that keyboard.

[-] darkfiremp3@beehaw.org 2 points 2 weeks ago

I just picked up one of those lily go systems and am excited

[-] ByteWelder@feddit.nl 2 points 2 weeks ago* (last edited 1 week ago)

You can find some builds at the bottom of the page here (edit: when logged in) : https://github.com/ByteWelder/Tactility/actions/runs/12659191949 These files expire in 30 days though.

[-] pietervdvn@lemmy.ml 2 points 2 weeks ago

Looks cool! However, there is with badge.team also a similar app platform which they used on https://flow3r.garden/, on the MCH22-badge and the now in preorder namatsu: https://shop.nicolaielectronics.nl/products/tanmatsu?variant=55608856183133 (which I just ordered two of)

[-] ByteWelder@feddit.nl 3 points 2 weeks ago

While it definitely is a cool project, it’s a micropython one, so the target audience is similar but not the same.

this post was submitted on 07 Jan 2025
413 points (99.3% liked)

Open Source

32115 readers
52 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