interestingly, this is the first esp32 firmware i've seen that claims to support loadable native code applications ("elf apps"), even though it seems to come with only a single example:
since a lot of the newer esp32 devices purport to be computers (e.g. lilygo t-deck/t-lora pager, m5stack cardputer, ...), it's a bit strange that with a typical esp-idf setup you can't actually run arbitrary code on them.
nunobrito 2 days ago [-]
It isn't easy but flipper did a remarkable work demonstrating it was possible. Tactility is following a similar concept and in my opinion is the project that implemented it best after flipper.
More recently also became possible to run Java apps with a JVM on ESP32: https://github.com/FlintVN/FlintESPJVM which is not yet arbitrary (e.g. download and run) but that is the route of development.
I've been toying with the ESP32 architecture for a few years. (I began with ESP32-DevKitC in 2022.) I recently got four ESP32-S3 modules with the intent of trying out the ESP32 Bus Pirate (https://github.com/geo-tp/ESP32-Bus-Pirate).
I hadn't heard about any Linux ports until I saw your comment here. Thanks!
The "playground" Linux port looks interesting, but it hasn't seen any updates for nearly a year. Still, I'm going to try it on a ESP32-S3 N16R8 and see how it goes.
It's funny, because I first ran Linux (SLS & Yggdrasil) on a PC with a 33MHz clock, 32MB RAM, and a 70MB hard drive. The N16R8 clock speed, RAM, and flash are all within an order of magnitude of what was on that old PC.
Yes, kind of crazy for those of us that remember those days. ESP32 are quite the magical devices when considering the price/features ratio.
If you try the Linux build I'd appreciate to read your feedback/experience when running it.
lelanthran 2 days ago [-]
> interestingly, this is the first esp32 firmware i've seen that claims to support loadable native code applications ("elf apps"),
Very skeptical that this is of any use; after bootup you have, what ... 260kb of RAM? Just doing runtime linking/relocations would eat up some of that. Just how small would your application have to be to be loaded at runtime?
Maybe they don't load the whole think into RAM, but thunk it somehow (I assume that elf supports that)?
Rohansi 2 days ago [-]
Some variants of the ESP32 support executing code from external memory (PSRAM) too. That gives you 8MB more to play with.
nerdsniper 18 hours ago [-]
Some ESP32's have 8MB of PSRAM and 16MB of flash "storage". You can theoretically also add external SRAM modules but I've never seen that IRL for the ESP32 family. I've occasionally seen the flash used as slower, persistent RAM.
numpad0 1 days ago [-]
You don't link bunch of stuffs in RAM at execution time on embedded devices... all static and anything static stays in ROM. "eXecute In Place". ROM's just slow RAM that forget writes. Only variables goes on to RAM, and 260kB is enough for a lot of non-multimedia data.
elcritch 1 days ago [-]
Pretty sure with xtensa and gcc you can compile to PIC. Google says a linker only would need to modify the Global Offset Table and Procedure Linkage Table. That doesn't sound too terrible.
Also 260kB of RAM on a 32bit processor could be a fair bit of code. Plus you could write it to external or internal flash. Though I don't know if esp-idf supports XIP (Zephyr does).
mrheosuper 1 days ago [-]
> esp-idf supports XIP
XIP depends on hardware support, not software.
iberator 1 days ago [-]
There must be some a.out format there or .com like in Dos. Also original Unix run at 48kb of ram
Cheer2171 1 days ago [-]
The Apollo Guidance Computer only had 4kb of RAM and got to the moon and back.
solarkraft 18 hours ago [-]
I am also looking for this.
I envision an OS that handles networking, remote maintenance and updates and possibly even some scheduling for multiple applications, so that I don’t have to do all that in my application code. I don’t see what conceptually would make this hard and it would be a great step up in hobbyist development experience to me.
As far as I’m aware NuttX (POSIX-like) even has a shell, so I don’t see what should be so hard about it (please correct me).
Edit: Apparently Zephyr is also gaining support for this. Whoever builds a simple platform on top of one of these definitely had my attention.
It's still not much, but more will be made in the coming months. I wanted to stabilize the APIs a bit more before making more apps.
I almost finished a Diceware app.
Rohansi 2 days ago [-]
You can technically do it on any processor that allows you to execute code from RAM. Loading ELF files at runtime is a whole process provided by an OS kernel, which ESP-IDF is not.
mrheosuper 2 days ago [-]
Zephyr support ESP32 and LLEXT
sroerick 2 days ago [-]
I bought a Picocalc and I have to confess I don't know what to do with it. Picomite looks like a pretty awesome and capable BASIC implementation, but it doesn't seem like there's any wifi capability at all.
I suppose I could do read write on an SD card but that's a lot of legwork for a not great workflow.
I'd love a simple device like the pico calc which I can use to hit a simple api endpoint. Clockwork PI and full Ubuntu seem a little bit like overkill.
I'd like to have a cool BASIC or Forth implementation and use a fun stack like that, but without being able to hit an API I'm not sure I will be motivated to use it.
This seems like a big improvement here, maybe I take a look at the LilyGo. I'm impressed
pjmlp 1 days ago [-]
We couldn't hit any Web API on TI 8x models, CASIO 8xx series, HP-48 GX, and yet there was plenty of motivation on how to use them for games and demoscene like coding.
No need for Internet for some fun.
gregsadetsky 2 days ago [-]
I've been surprised personally that there are now a number of these small qwerty-LCD portable devices (that mostly resemble blackberries), but very few? (certainly not none..??) of them boast actual 3g/4g ie "real" cell phone connectivity
I might personally find it a lot more tempting to use a super DIY device (ie a baroque OS, unique input devices, etc.) if I could also make calls out to the public Internet (to read wikipedia? answer SMS? fetch any sort of map/transit info?)
Feel free to pile on and tell me which devices I've missed..! :-) I'm sure there must be some out there, considering that "cell phone in a chip" is pretty much a whole category now ie the qualcomm snapdragon chips, mediatek, etc.
... (reading more about it) actually, is it true that design/certification of a small device that boasts a cellular module is a lot harder than an esp32/wifi-only board? which explains why there isn't a plethora of cell-internet-enabled devices?
ACCount37 2 days ago [-]
Just about every modem that can do actual real 4G cell phone connectivity is built around a SoC that blows the socks off your usual microcontroller.
The cheapest noname 4G USB stick you can buy now probably has a Qualcomm MSM8916 in it, and runs, I shit you not, Android.
As you can imagine, development with this kind of thing can be rather involved. No open development kits are available. There are no reference designs that don't require you to sign off on an NDA to access it, and Qualcomm wouldn't even want to talk to you unless you are at least "MOQ 100000+" tall.
The best you can do is get an existing modem module that hopefully doesn't bury too many of the interfaces you want, try to run your firmware on it, and then design your own board around that.
Which would probably yield a device that's inferior to most cheap smartphones or even feature phones.
miki123211 1 days ago [-]
The cheapest noname 4G USB stick you can buy now probably has a Qualcomm MSM8916 in it, and runs, I shit you not, Android.
You're not wrong, see also [1].
> and Qualcomm wouldn't even want to talk to you unless you are at least "MOQ 100000+"
These[2,3,4] definitely aren't MoQ "100000+" (I know this market), and yet they have gotten their hands on Android chipsets somehow, [2] even includes a cellular modem. Not cheap devices by any means though.
Those products are almost always sourced from Chinese ODMs. They're the adults in the projects to the eyes of chip vendors, and the ODMs handle the quadrillion MOQ situation between them and vendors. Also products in [3] and [4] don't seem to support cellular? [3] smells AllWinner or MediaTek, [4] specifies TI OMAP in specifications page. Those are less NDA/bajilion MOQ bound.
ACCount37 1 days ago [-]
Those specialized devices are usually made in partnership with some third party ODM that's big enough to get Qualcomm's attention. Same for things like warehouse barcode scanners that run Android.
Even if you could get attention of one, and get it to design and make a custom device that wouldn't break the bank? You are still likely to end up with that OEM owning the design and/or binding you with a small pile of NDAs.
Another option would be to find a supplier that can get you some "fell off the back of a truck" smartphone chipsets, and either design your own PCB and roll your own software, or use a "fell off the back of a truck" reference design, SDK and tooling too. You'd need to be a real hardcore motherfucker to do that though.
extraduder_ire 1 days ago [-]
Reminds me of people using esp8266/esp32 chips just for wifi/bluetooth when paired with an AVR chip on an arduino.
M95D 1 days ago [-]
There was a DYI mobile phone project (real mobile phone, with GSM/3G calling and SMS). Abandoned now.
I'm consistently puzzled why 5G versions of these SoC don't seem to exist for hardware hackers yet. I plain can't find any kind of 5G modem that isn't just a whole phone unless I pay like $1,000.
Which is pretty much what it costs for phone manufacturers right now.
I guess the real reason is that 4G is more than sufficient for pretty much anything, and it's going to be supported for the foreseeable future?
gunalx 1 days ago [-]
Where I live we are already talking about abandoning 2g, and 4g. (3g died a while back and 2g was kept as legacy network).
cyberax 18 hours ago [-]
Really? Even satellites for off-grid messaging abandoned _5G_ and instead went with the good old LTE.
bArray 2 days ago [-]
> I might personally find it a lot more tempting to use a super DIY device (ie a baroque OS, unique input devices, etc.) if I could also make calls out to the public Internet (to read wikipedia? answer SMS? fetch any sort of map/transit info?)
A browser would be quite tough on such an embedded system, you would need to really think outside of the box. The issue is that a browser could easily need more space to render than is available, have tonnes of images, require JS, etc.
On my machine. the lightweight browser dillo is 852kB, and that doesn't include the shared libraries (I could 26 on my machine). It's not going to be easy to get a similar experience running.
> Feel free to pile on and tell me which devices I've missed..! :-) I'm sure there must be some out there, considering that "cell phone in a chip" is pretty much a whole category now ie the qualcomm snapdragon chips, mediatek, etc.
I'm hoping to add to the list of devices myself maybe next year. It's a very difficult space to operate in.
> ... (reading more about it) actually, is it true that design/certification of a small device that boasts a cellular module is a lot harder than an esp32/wifi-only board? which explains why there isn't a plethora of cell-internet-enabled devices?
For the most part you can get already certified modules, where the ESP32 is itself largely one of these modules (the small ones with the metal body on a thin PCB). I think cellular is mostly avoided due to the increase in BOM, and you're not easily going to get 4G/5G support.
joshmarinacci 2 days ago [-]
I’m currently working on a browser targeting the T-deck in pure Rust. It’s effectively a text mode command line browser good for reading pages with links and nothing else. There just isn’t the ram for anything more. Interestingly, The slowest part is actually SSL connections.
To do everything onboard, maybe, just maybe, you could parse basic HTML/CSS and images. But the majority of pages would of course fail anyway without full support for every modern feature.
What you could do is the "opera mini trick", AKA one beefy server, shared between many users, used to run heavyweight browsers. The pre-rendered DOM from these browsers could then be optimized and compressed, HTMX / Liveview style, and sent to the device.
The key insight here is that most smartphones are idle most of the time, so such a server (or group of servers) would need far less processing power than all the smartphones it replaces.
Given a Mitmproxy trace, modern llms could probably quickly build you simple apps for most popular services, leaving the heavyweight browsers for the long tail.
bArray 1 days ago [-]
Yeah, exactly. I think this could make browsing feasible for small embedded devices. I even had an idea on how to make Youtube possible too with a similar method.
gregsadetsky 2 days ago [-]
Thanks for your reply! Good point re: browser but I guess that's where my excitement about the possibilities lies: I wouldn't mind an extremely under-resourced device. RSS feeds and text content could be sent (and wouldn't require specialized rendering), vector maps and points of interest or transit info could be super minimal in terms of bandwidth/rendering requirements, etc.
I think that I want a 5G tty qwerty terminal..? :-)
> and you're not easily going to get 4G/5G support
Sorry, what do you mean by that? In the sense of 4G not being that supported vs 3G? As in the chips aren't available? Or 4G service is hard to find..?
Cheers
bArray 2 days ago [-]
> I wouldn't mind an extremely under-resourced device. RSS feeds and text content could be sent (and wouldn't require specialized rendering), vector maps and points of interest or transit info could be super minimal in terms of bandwidth/rendering requirements, etc.
A compromise might be to send the traffic via a proxy that pre-resizes images, renders content and chops it up into a manageable format for a resource constrained device.
> I think that I want a 5G tty qwerty terminal..? :-)
For resource constrained devices, it's probably easier to render the vector graphics. There's a few open end points out there that could make it feasible for basic navigation.
> Sorry, what do you mean by that? In the sense of 4G not being that supported vs 3G? As in the chips aren't available? Or 4G service is hard to find..?
You can get them, but they are harder to interface with than the existing 2G/3G chips. Whoever takes on the challenge might have to do some work reverse engineering how to correctly speak to the modem, for example.
It would help, but the majority of pages out there are completely unusable without Javascript.
estimator7292 2 days ago [-]
I'm no expert, but as I understand the 2.4GHz band has more lax requirements than the cellular bands, but it's not like ridiculously difficult, it's "just" a matter of money. Especially if you're using off the shelf modules.
But at a practical level, there's really extremely few situations where you actually need a WWAN modem. There's almost always wifi available and if not you almost always have a phone with an internet connection. That aside, a big part of why people make these devices is specifically to get away from always-connected internet devices.
It also may or may not need approval from whichever telco operator you're trying to connect to, and the user has to provide their own SIM and do the legwork to get a subscription. It's just not super practical. Not impossible, but a big pain in the ass for not much benefit.
2 days ago [-]
rtpg 1 days ago [-]
beyond the unihertz existing, I think that there's probably an interesting space for a device that works on the idea of intermittent internet (i.e. wifi)
Offline maps being a big one that you could maybe "just" do. If you really need to get the device online pull out your phone.
Though I feel like there's loads of stuff that are on LTE etc. Just... they're real companies doing real things and not people hacking together one-offs. Think agtech, vending machines etc.
NullCascade 2 days ago [-]
The Toit language and runtime is also ESP32-focused:
Looks fun! I recently updated my Nim wrapper for esp32 for esp-idf 5.5 [1]. I've been wanting to play with a graphics device, maybe via Tactility..
Also the integrated usb-phy on newer esp32s is pretty handy. I setup a driver to do PPP (!) connection over a USB-CDC serial port with a second serial port for logging [2]. All in 200 lines of Nim and a few Codex/GPT5 prompts.
I got a multithreaded MsgPack RPC server over the PPP connection using IPv6. Unfortunately you can't use CDC mode and USB JTAG, so I have a little rpc based binary uploader.
There are so many cool use cases for those ESP32 type devices beyond IoT.
Something I was thinking about it turning them into password managers or TOTP tokens.
You would just need to be able to run an SSH server on it and have access to basic crypto. Apache NuttX is probably the best candidate for that.
Then you would just need to turn them on or turn the wifi on when needed.
Rebelgecko 2 days ago [-]
Neat, seems like a good way to build a flipper like experience with different utility apps. What is the "chat" app using for sending messages? Something local like BT/Esp now? Or a longer range platform like Meshtastic?
I think this device is begging for an IRC client though.
nunobrito 2 days ago [-]
I was writing that app together with the author, the communication is using ESPnow at the moment, albeit Tactility is running on devices with LoRa so it isn't that difficult to extend for LoRa.
Very good. I guess will give a new look over there soon to try out the novelties.
snvzz 2 days ago [-]
Does this support the recent RISC-V based ESP32s, or is it restricted to just legacy devices?
lioeters 1 days ago [-]
I see a change log that mentions RISC-V support.
> ## v1.0.0 - 2024-12-09
> * Added support for the following RISC-V chips: ESP32-P4 and ESP32-C6
iamflimflam1 1 days ago [-]
I’m probably missing it - but are there any instructions on how to add support for another board?
mrheosuper 2 days ago [-]
This is, AFAICT, not an OS.
stonogo 1 days ago [-]
I'm not sure a definition of "operating system" that doesn't cover this software is particularly meaningful.
mrheosuper 1 days ago [-]
it's just misleading to me, i was expecting a brand new RTOS.
People keep throwing OS into anything that is slightly look like a graphic interface.
iamflimflam1 1 days ago [-]
What would be your definition of an OS?
mrheosuper 1 days ago [-]
At least have a scheduler. That's bare minimum.
iamflimflam1 1 days ago [-]
Would define MS-DOS as an operating system?
mrheosuper 1 days ago [-]
Later vesion of ms-dos has scheduler, so yes.
Early version to me is just a fancy bootloader, that boot whatever program you choose and give up complete system control to that program.
Imustaskforhelp 1 days ago [-]
There is coreboot which is technically just linux but as the bootloader so a fancy bootloader could have many similarities with a os as although I know that linux is a kernel but I am not really sure as linux is also an operating system as well so the lines are definitely blurry and not as clear I suppose
Fun fact I was actually thinking of a similar idea and I had always known about coreboot but I hadn't known that it was actually invented because someone figured out that the bootloader and the linux kernel had similarities and so that's why. it was an aha moment of me for sorts
I came to know about this from the heads firmware ccc speech yesterday which I am going to link later as I saw it on my pc and I don't have its access right now
yes. It had an Impressive kernel API.
It was a single user by design. Background resident programs were possible and common btw (TRS) especially after 286 came to the market.
Rendered at 14:30:27 GMT+0000 (Coordinated Universal Time) with Vercel.
https://github.com/ByteWelder/Tactility/blob/main/App/Source...
since a lot of the newer esp32 devices purport to be computers (e.g. lilygo t-deck/t-lora pager, m5stack cardputer, ...), it's a bit strange that with a typical esp-idf setup you can't actually run arbitrary code on them.
In the past, the solution for arbitrary code was running scripts such as Wrench: https://github.com/jingoro2112/wrench
More recently also became possible to run Java apps with a JVM on ESP32: https://github.com/FlintVN/FlintESPJVM which is not yet arbitrary (e.g. download and run) but that is the route of development.
Even Linux was demonstrated running on ESP32 albeit I've never tried it: https://www.youtube.com/watch?v=pj0a91vlcGo
I hadn't heard about any Linux ports until I saw your comment here. Thanks!
The "playground" Linux port looks interesting, but it hasn't seen any updates for nearly a year. Still, I'm going to try it on a ESP32-S3 N16R8 and see how it goes.
It's funny, because I first ran Linux (SLS & Yggdrasil) on a PC with a 33MHz clock, 32MB RAM, and a 70MB hard drive. The N16R8 clock speed, RAM, and flash are all within an order of magnitude of what was on that old PC.
https://github.com/ESP32DE/Boot-Linux-ESP32S3-Playground
If you try the Linux build I'd appreciate to read your feedback/experience when running it.
Very skeptical that this is of any use; after bootup you have, what ... 260kb of RAM? Just doing runtime linking/relocations would eat up some of that. Just how small would your application have to be to be loaded at runtime?
Maybe they don't load the whole think into RAM, but thunk it somehow (I assume that elf supports that)?
Also 260kB of RAM on a 32bit processor could be a fair bit of code. Plus you could write it to external or internal flash. Though I don't know if esp-idf supports XIP (Zephyr does).
XIP depends on hardware support, not software.
I envision an OS that handles networking, remote maintenance and updates and possibly even some scheduling for multiple applications, so that I don’t have to do all that in my application code. I don’t see what conceptually would make this hard and it would be a great step up in hobbyist development experience to me.
As far as I’m aware NuttX (POSIX-like) even has a shell, so I don’t see what should be so hard about it (please correct me).
Edit: Apparently Zephyr is also gaining support for this. Whoever builds a simple platform on top of one of these definitely had my attention.
It's still not much, but more will be made in the coming months. I wanted to stabilize the APIs a bit more before making more apps. I almost finished a Diceware app.
I suppose I could do read write on an SD card but that's a lot of legwork for a not great workflow.
I'd love a simple device like the pico calc which I can use to hit a simple api endpoint. Clockwork PI and full Ubuntu seem a little bit like overkill.
I'd like to have a cool BASIC or Forth implementation and use a fun stack like that, but without being able to hit an API I'm not sure I will be motivated to use it.
This seems like a big improvement here, maybe I take a look at the LilyGo. I'm impressed
No need for Internet for some fun.
I might personally find it a lot more tempting to use a super DIY device (ie a baroque OS, unique input devices, etc.) if I could also make calls out to the public Internet (to read wikipedia? answer SMS? fetch any sort of map/transit info?)
Feel free to pile on and tell me which devices I've missed..! :-) I'm sure there must be some out there, considering that "cell phone in a chip" is pretty much a whole category now ie the qualcomm snapdragon chips, mediatek, etc.
... (reading more about it) actually, is it true that design/certification of a small device that boasts a cellular module is a lot harder than an esp32/wifi-only board? which explains why there isn't a plethora of cell-internet-enabled devices?
The cheapest noname 4G USB stick you can buy now probably has a Qualcomm MSM8916 in it, and runs, I shit you not, Android.
As you can imagine, development with this kind of thing can be rather involved. No open development kits are available. There are no reference designs that don't require you to sign off on an NDA to access it, and Qualcomm wouldn't even want to talk to you unless you are at least "MOQ 100000+" tall.
The best you can do is get an existing modem module that hopefully doesn't bury too many of the interfaces you want, try to run your firmware on it, and then design your own board around that.
Which would probably yield a device that's inferior to most cheap smartphones or even feature phones.
You're not wrong, see also [1].
> and Qualcomm wouldn't even want to talk to you unless you are at least "MOQ 100000+"
These[2,3,4] definitely aren't MoQ "100000+" (I know this market), and yet they have gotten their hands on Android chipsets somehow, [2] even includes a cellular modem. Not cheap devices by any means though.
[1] https://nickvsnetworking.com/adventures-with-a-10-lte-mifi-d... [2] https://www.blindshell.com/eshop/blindshell-classic-3-eu [3] https://www.himsintl.com/en/blindness/view.php?idx=8 [4] https://www.humanware.com/microsite/bntouch/index.php?srslti...
Even if you could get attention of one, and get it to design and make a custom device that wouldn't break the bank? You are still likely to end up with that OEM owning the design and/or binding you with a small pile of NDAs.
Another option would be to find a supplier that can get you some "fell off the back of a truck" smartphone chipsets, and either design your own PCB and roll your own software, or use a "fell off the back of a truck" reference design, SDK and tooling too. You'd need to be a real hardcore motherfucker to do that though.
https://github.com/CircuitMess/CircuitMess-Ringo
Which is pretty much what it costs for phone manufacturers right now.
I guess the real reason is that 4G is more than sufficient for pretty much anything, and it's going to be supported for the foreseeable future?
A browser would be quite tough on such an embedded system, you would need to really think outside of the box. The issue is that a browser could easily need more space to render than is available, have tonnes of images, require JS, etc.
On my machine. the lightweight browser dillo is 852kB, and that doesn't include the shared libraries (I could 26 on my machine). It's not going to be easy to get a similar experience running.
> Feel free to pile on and tell me which devices I've missed..! :-) I'm sure there must be some out there, considering that "cell phone in a chip" is pretty much a whole category now ie the qualcomm snapdragon chips, mediatek, etc.
I'm hoping to add to the list of devices myself maybe next year. It's a very difficult space to operate in.
> ... (reading more about it) actually, is it true that design/certification of a small device that boasts a cellular module is a lot harder than an esp32/wifi-only board? which explains why there isn't a plethora of cell-internet-enabled devices?
For the most part you can get already certified modules, where the ESP32 is itself largely one of these modules (the small ones with the metal body on a thin PCB). I think cellular is mostly avoided due to the increase in BOM, and you're not easily going to get 4G/5G support.
To do everything onboard, maybe, just maybe, you could parse basic HTML/CSS and images. But the majority of pages would of course fail anyway without full support for every modern feature.
This seems like it could be useful: https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.h...
The key insight here is that most smartphones are idle most of the time, so such a server (or group of servers) would need far less processing power than all the smartphones it replaces.
Given a Mitmproxy trace, modern llms could probably quickly build you simple apps for most popular services, leaving the heavyweight browsers for the long tail.
I think that I want a 5G tty qwerty terminal..? :-)
aka https://github.com/rastapasta/mapscii for maps, etc.
> and you're not easily going to get 4G/5G support
Sorry, what do you mean by that? In the sense of 4G not being that supported vs 3G? As in the chips aren't available? Or 4G service is hard to find..?
Cheers
A compromise might be to send the traffic via a proxy that pre-resizes images, renders content and chops it up into a manageable format for a resource constrained device.
> I think that I want a 5G tty qwerty terminal..? :-)
> aka https://github.com/rastapasta/mapscii for maps, etc.
For resource constrained devices, it's probably easier to render the vector graphics. There's a few open end points out there that could make it feasible for basic navigation.
> Sorry, what do you mean by that? In the sense of 4G not being that supported vs 3G? As in the chips aren't available? Or 4G service is hard to find..?
You can get them, but they are harder to interface with than the existing 2G/3G chips. Whoever takes on the challenge might have to do some work reverse engineering how to correctly speak to the modem, for example.
https://en.m.wikipedia.org/wiki/Wireless_Markup_Language
But at a practical level, there's really extremely few situations where you actually need a WWAN modem. There's almost always wifi available and if not you almost always have a phone with an internet connection. That aside, a big part of why people make these devices is specifically to get away from always-connected internet devices.
It also may or may not need approval from whichever telco operator you're trying to connect to, and the user has to provide their own SIM and do the legwork to get a subscription. It's just not super practical. Not impossible, but a big pain in the ass for not much benefit.
Offline maps being a big one that you could maybe "just" do. If you really need to get the device online pull out your phone.
Though I feel like there's loads of stuff that are on LTE etc. Just... they're real companies doing real things and not people hacking together one-offs. Think agtech, vending machines etc.
https://github.com/toitlang/toit
Also the integrated usb-phy on newer esp32s is pretty handy. I setup a driver to do PPP (!) connection over a USB-CDC serial port with a second serial port for logging [2]. All in 200 lines of Nim and a few Codex/GPT5 prompts.
I got a multithreaded MsgPack RPC server over the PPP connection using IPv6. Unfortunately you can't use CDC mode and USB JTAG, so I have a little rpc based binary uploader.
1: https://github.com/elcritch/nesper 2: https://github.com/elcritch/nesper/blob/devel/src/nesper/net...
There are so many cool use cases for those ESP32 type devices beyond IoT.
Something I was thinking about it turning them into password managers or TOTP tokens. You would just need to be able to run an SSH server on it and have access to basic crypto. Apache NuttX is probably the best candidate for that.
Then you would just need to turn them on or turn the wifi on when needed.
I think this device is begging for an IRC client though.
> ## v1.0.0 - 2024-12-09
> * Added support for the following RISC-V chips: ESP32-P4 and ESP32-C6
People keep throwing OS into anything that is slightly look like a graphic interface.
Early version to me is just a fancy bootloader, that boot whatever program you choose and give up complete system control to that program.
Fun fact I was actually thinking of a similar idea and I had always known about coreboot but I hadn't known that it was actually invented because someone figured out that the bootloader and the linux kernel had similarities and so that's why. it was an aha moment of me for sorts
I came to know about this from the heads firmware ccc speech yesterday which I am going to link later as I saw it on my pc and I don't have its access right now
See coreboot till then https://www.coreboot.org/ and also a fork of coreboot which removes propreitory blobs iirc https://libreboot.org/ as well