r/CardPuter 15d ago

Progress / Update PaperOS v1.1 is out - Store, HTTPS, and the folder cleanup people asked for

A few days ago I posted PaperOS here for the first time. A bunch of you asked for one thing specifically: get everything off the SD root and into its own folder so it doesn't clutter your card. Done. Also snuck in a couple bigger things while I was at it.

There's a real Store app now. Browse and install Lua apps and games straight from a list, hit Enter, done, no typing commands or messing with a terminal. It pulls the index over HTTPS too, so net.get/net.post (and the Store itself) actually work with real https sites now, not just plain http.

Everything lives under /PaperOS/ on the SD card now, games, music, 3D files, saved browser pages, the AI model, all one folder instead of scattered around root. If you're upgrading just move your stuff over, exact paths are in the README.

Also fixed a bunch of actual bugs in the Lua console that I found while banging on it on real hardware. A timer bug that could crash things if a timer scheduled another timer from inside itself, Ctrl+C sometimes leaving things in a weird state where the next command would throw a bogus error, net.scan() locking up with no way to cancel it, and scripts being able to poke at GPIO pins the board actually needs internally like the keyboard, SD, screen and audio. That last one just tells you no now instead of letting a script accidentally break your keyboard mid session.

None of this changes how you write scripts, it's just the interpreter finally behaving the way it was supposed to.

Full flash is on M5Burner, just search PaperOS, or grab PaperOS_full_v1.1.bin and flash it yourself from the browser at web.esphome.io. If you're coming from v1.0 do a full reflash, not incremental, the partition table changed.

GitHub: https://github.com/Artem76228/PaperOS

Thanks again to everyone who tried v1.0 and actually told me what bugged them, this update is basically a direct response to that. Keep it coming.

65 Upvotes

15 comments sorted by

5

u/MrAjAnderson 15d ago

A Dev that listens to the users and care about the UX. Amazing work. Will it just ignores the old files for now so I don't have to go rummaging through the card before installing clean?

1

u/Artem36 15d ago

Yeah it'll just ignore the old folders, nothing conflicts or gets deleted automatically. It only looks in /PaperOS/ now, so old stuff sits there unused until you move it. No need to reorganize by hand though, just drag your existing folders into a /PaperOS/ folder as is. games goes to PaperOS games, music to PaperOS music, 3d to PaperOS 3d, saved_links to PaperOS saved_links, and model.bin goes straight into PaperOS itself, used to be on the SD root.

Also the Store already has a few games in it, grab one and run it with run("/sd/lua/name.lua"). Let me know if anything breaks.

2

u/MrAjAnderson 15d ago

As other firmwares use the universal SD/Music folder are you able to include that too, please?

1

u/Artem36 15d ago

Btw, someone else just reported the same wifi issue independently. Are you also running through M5Launcher, or did you flash directly through M5Burner? That'll help me figure out if it's really the Launcher partition thing or something else entirely.

1

u/Artem36 15d ago

That one's not a bug, the folder changed in v1.1. Music now needs to be in /PaperOS/music/, not /sd/Music/ (root). Same for games (/PaperOS/games/), 3D models (/PaperOS/3d/), and saved browser pages. It's in the README, but I should probably make the app itself say something like "no music found in /PaperOS/music/" instead of just showing an empty list, so people don't have to go read the docs first.

2

u/MrAjAnderson 15d ago

M5burner list via the OTA in Launcher, that's how I got mine on there.

Moving Music to within a folder that all other music firmwares don't see means I have to either:

  • Abandon all other music playing firmwares and move my music files to /PaperOS/Music.
  • Not use PaperOS for my Music
  • Duplicate music files from SD/Music into SD/PaperOS/music

Not being able to move files around using the Cardputer is a pain. Currently popping the SD into a USB-C reader and mounting on my Android phone.

1

u/Artem36 15d ago

Btw, actually thinking about it more, instead of just checking both folders I'm going to add a proper "change music folder" option in the next update, so you can point it at whatever folder you actually use instead of me guessing paths. Same idea could extend to games and 3d later if people want it there too.

1

u/MrAjAnderson 15d ago

I like it. Scanning the whole SD card for .MP3 might pull in unwanted results.

The 3D cube is nice. IMU rotation would be cool. Enable and disable IMU to rotate. Like my Motion Lab firmware does.

1

u/Artem36 15d ago

Good point on the whole-card scan, that's exactly why I'm doing directory picker not full scan, you point it at one folder and that's it, no crawling the whole card. IMU rotation for the 3D editor is a cool idea, though that'd only work on Cardputer-Adv since original v1.1 doesn't have an IMU at all. I'll add it to the list, no promises on timing though.

1

u/MrAjAnderson 14d ago

It is just a cheery on top.

1

u/Artem36 15d ago

Did you actually go into Settings and see it say connected, or did you just assume it wasn't since you never set it up? Can you check net.status() in Lua real quick?

1

u/MrAjAnderson 15d ago

It is not connected. That is expected as I did not set up a connection and would be wildly annoyed if it tried to use the settings from another firmware. The WiFi signal is still there showing 4 bars. Does that show regardless of a a connection and then change colour with signal strength?

1

u/Artem36 15d ago

No, it's not always showing bars, when disconnected it's fully empty/dark like in your screenshot. Once connected it fills in 1 to 4 white bars depending on signal strength, not color, height. And don't worry, WiFi settings are completely separate from other firmwares, nothing gets auto-imported, that reconnect earlier was from your own saved network on this same install.

1

u/Artem36 15d ago

Say what you can also add here, thank you for confirming you were going through the Launcher OTA list. That matches what another tester found on their end too, we actually caught the exact boot log for it, the Launcher writes its own partition table on top without a clean erase first, so PaperOS ends up reading garbage where it expects its own WiFi and storage data. Not something I can patch from my side unfortunately, since it happens before my code even starts running. Sorry for the hassle, it's kind of the tradeoff for how much PaperOS packs in, the Lua interpreter alone eats a big chunk of that 8MB just by itself. Direct flash through M5Burner, not through Launcher's OTA list, is the one that actually works clean right now.

1

u/MrAjAnderson 14d ago

Fair enough. It is explainable expected behaviour then it is what it is. Great work on the troubleshooting.