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
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?
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.
> 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.
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.
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..? :-)
> 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.
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.
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.
> 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)?
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.
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.
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 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.
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
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?
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.
> 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.
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.
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..? :-)
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
> 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..? :-)
> 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.
WML is (needed) back?
https://en.m.wikipedia.org/wiki/Wireless_Markup_Language
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:
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.
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.
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
> 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)?
Some variants of the ESP32 support executing code from external memory (PSRAM) too. That gives you 8MB more to play with.
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.
This is really great.
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.
The Toit language and runtime is also ESP32-focused:
https://github.com/toitlang/toit
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 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.
Seems to be using ESP now: https://github.com/ByteWelder/Tactility/blob/main/Tactility/...
I think this device is begging for an IRC client though.