HackerTrans
TopNewTrendsCommentsPastAskShowJobs

isitcontent

no profile record

Submissions

Show HN: Celeste game installs as ELF binary (42kB) on ESP32/breezybox [video]

youtube.com
3 points·by isitcontent·vor 5 Monaten·1 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

github.com
327 points·by isitcontent·vor 5 Monaten·40 comments

Show HN: Instant-on tiny ESP32 PC with an editor, compiler, and apps installer

github.com
7 points·by isitcontent·vor 6 Monaten·0 comments

Show HN: Xcc700: Self-hosting mini C compiler for ESP32 (Xtensa) in 700 lines

github.com
154 points·by isitcontent·vor 7 Monaten·36 comments

comments

isitcontent
·vor 5 Monaten·discuss
Hi again! Some of you asked about Doom in my previous post about my BreezyBox shell for ESP32-S3. In my family, Celeste is more popular, so I ported it instead. Doom is left as an exercise for the reader.

Also, I extracted a few things as separate components (vterm, BT keyboard, display driver), because they have their own uses outside of BreezyBox, and some of them run on other chips, too.

I wonder if I could get the whole thing to run with some limitations e.g. on C6. Most of it compiles on RISC-V just fine (except my xcc700 compiler would be useless there). Having no PSRAM makes it tight. But some useful tiny apps can actually fit in just a few kilobytes.

What other apps do you think would be a great fit for this platform? I already noticed many people interested in ssh; I'll have a look what it takes.

Git repo with the updated demo firmware: https://github.com/valdanylchuk/breezydemo

Celeste port repo: https://github.com/valdanylchuk/ccleste

Youtube demo video: https://www.youtube.com/watch?v=nufOQWBmwpk
isitcontent
·vor 5 Monaten·discuss
I would like to explore the RISC-V systems more as well eventually, but for the nearest future I will probably stick with one platform, try to get my actual device to do more of the fun things I like.
isitcontent
·vor 5 Monaten·discuss
Mostly if you like the usual ESP-IDF setup and ecosystem.
isitcontent
·vor 5 Monaten·discuss
BreezyBox is at an early development stage. What you see in the demo is mostly all there is so far. There is no telling if it will catch on, with more developers adding apps and features.

Some sort of web access for remote config should be possible, if anyone cares to implement that. The web server is already there; getting it to run some server side code may take extra effort.
isitcontent
·vor 5 Monaten·discuss
It should be possible to get most of it compiled for C3, C6, or P4. But xcc700 is specific to the Xtensa CPU, so that would be a bigger effort. And the ELF binaries you install with eget would need to be recompiled (with existing gcc) and published for RISC-V. When it gets to that, we should make some minimal manifest support to eget and the release conventions, to distinguish between ELF files for different platforms. Also keep in mind how much PSRAM is available, if any.
isitcontent
·vor 5 Monaten·discuss
I am looking forward to $20 laptops on aliexpress running this thing!
isitcontent
·vor 5 Monaten·discuss
Right, people were asking about the shell used in the xcc700 demo, so that is released now too, and I tried to make it convenient to reuse as a component.

Esp32-s3 can do so much more, we are just scratching the surface. You might remember FabGL, that ran some nice demos in the realm of games and DOS emulation. Unfortunately, seems to be hard to update for modern versions of ESP-IDF. I am trying to build something more modular, with hope that some parts of it will survive longer.

I think someone also ran an old version of MacOS simulated on it, too, that is also an indication of the general capability.
isitcontent
·vor 5 Monaten·discuss
Some parts of it, very likely. The shell is just linenoise with some glue code. How are things with ELF loading on rp2350, I did not check. May be possible, the question is, how much effort. In ESP-IDF that is a standard component now.
isitcontent
·vor 5 Monaten·discuss
The memory model is flat enough. The problem with the memory is, you only have about 200kB traditional RAM. But then, you have 8MB of PSRAM. But it requires strict 4-byte alignment, and is noticeably slower.

What makes traditional OSs difficult on this platform, is the lack of memory protection. But I am a simple man, I am not writing an OS, all I wanted was a usable shell and an apps installer, so I made that work.
isitcontent
·vor 7 Monaten·discuss
Porting to different CPU/bytecodes should be doable. Just keep in mind that in ESP-IDF we also get the dynamic linker and the libc for free (and any other C functions exposed in the firmware). On the other platforms, that may be some extra work for the compiler.
isitcontent
·vor 7 Monaten·discuss
I only wrote the compiler. But ESP-IDF elf_loader component can do that, yes.
isitcontent
·vor 7 Monaten·discuss
There is the TCC. Adapting that would probably be a faster path to a full featured C compiler on esp32 than building up my xcc700. This is more of an educational sandbox project.
isitcontent
·vor 7 Monaten·discuss
Right, Rust is more complex, and it is the complex bits that make it Rust. There are sure some shortcuts possible for starters, for example scope-based lifetimes like in early Rust versions, but still, to make it a worthwhile upgrade over C, it would take some intermediate representation, and definitely more than 700 lines.

There is a lively movement for coding in Rust for esp32, that works, just not on the device I think.
isitcontent
·vor 7 Monaten·discuss
Thanks! That is just my small custom experimental mini shell. This project started as a retro DOS-like cyberdeck, and first thing I tried to run there was DOS programs, which is why it looks like that. Only got to COM files, when I learned about elf_loader, so I now focus on that. I might extract and release whatever is valuable/reusable in that shell later on.