38 comments

[ 4.5 ms ] story [ 67.3 ms ] thread
Indeed much better resource than this ads ridden page…
Say goodbye to most ads with Brave or Vivaldi, with adblockers enabled (EasyList, EasyPrivacy, ADB+, Fanboy's Annoyances List).

I prefer viewing the text-only version of this HN site, it loads fast and clean with no ads: https://news.ycombinator.com/

> Android-like user experience

so crap. No inovation those days.

I mean I kind of get your frustration, but I don't think innovating the user interface is not really the goal of this project, the opposite actually, it's moreso trying to provide a well-known user interface to devices where that was previously hard, so the goal is to be similar.

I would like to see some fresh ideas in UI though, everything is the same nowadays... :(

It's FOSS, so you can use it primarily for output with real switches and knobs for input. But then just using plain LVGL would probably be more practical.
MIT lisenced; feel free to fork it if your feeling especially filial
I really wish people would stop trying to innovate with user interfaces. In a comment below you criticize this UI because it doesn't have delimited interface elements. I agree that non-delimited user interface is really bad, but I attribute that mostly to Microsoft's flat design innovation, which I didn't like at the time, and I still wish I hadn't had so much influence.

As for invisible scroll bars, again we agree. But I think that was Apple. I'm sure somebody will correct me if it wasn't.

That "Android-like" is based on LVGL which is a brilliant GUI framework for ESP32 (not invented for this project) when you consider the low capacities of the hardware and how efficiently it pulls the animations.

If Android had such GUI, it would be a heck lot faster and drink less energy.

Love me some MicroPython. Building a product line of small farm security devices that use uPy and MQTT.
Would you mind elaborating on what you mean by small farm security device?
Will MicroPythonOS also work with CircuitPython?

CircuitPython docs > Differences from MicroPython: https://docs.circuitpython.org/en/latest/README.html#differe...

Also, there's pipkin: https://github.com/aivarannamaa/pipkin#pipkin :

> Tool for managing distribution packages for MicroPython and CircuitPython on target devices or in a local directory.

> Supports mip- and upip-compatible packages, and regular pip-compatible packages

Hopefully - for 3 types of packages - pipkin supports GPG signatures, PyPI's TUF, and/or sigstore attestations like pip?

Just checked; pip doesn't support checking PEP740 attestations yet either?

pipkin: https://github.com/aivarannamaa/pipkin

trailofbits/pip-plugin-pep740: https://github.com/trailofbits/pip-plugin-pep740

Wow, these preassembled ESP32 plus touchscreen boards are extremely cheap, and there are tons of them in all kinds of different form factors on Amazon. I didn't realize this kind of thing was so plentiful, this seems like a great way to bootstrap many kinds of electronics/IoT projects
I would love to have this, but Lua not Python.
I wonder how hard to port this to eLua would be? The bigger problem is probably packing.

Pip can work fine with MicroPython. LuaRocks can be a pain, even on desktop.

(comment deleted)
Looks better than any Python GUI framework I’ve seen..
I'd use it. I'd be curious to see how close to daily driving it is for stuff like calls, SMS, and email. Something not driven by a giant data mining company would be splendid.
Does it support the threading module?
Interesting. Would want to see this going on actual Android. Especially since I have a few Python GUI projects going which I intend to use on Android (but currently using flet).

https://flet.dev

Micro python is the last hope for Python. Python simplicity got destroyed by a bunch of new wave of programmers who packed a lot of new useless features into it in the past 10 yrars. Now it's NOT easy and small language as it used to be...

Feature creep is an awful side effect. I would love to have language having just few add-ons per decade so I can grasp it all

I know Python since version 1.6, it was never simple, people that don't read the reference manuals are the ones that think that is a BASIC like language in complexity, when in reality it has always been more into Common Lisp / C++ kind of sense.
I still do not understand how Python won out over lua. Which is imho the superior scripting language just constrained by a smaller userbase. Lua is like embeddable in what 500 KiB. While python takes its about 200 to 300 MiB
So, am I right in assuming that ESP32, being simple and slow, isn't going to have cache lines or anything, and would just need 1-2 cycles to access its RAM? In which case a pointer-chasing dynamic language like python wouldn't have all of the typical performance penalties from constant cache misses?

EDIT: upon further research, I think the above assumptions are more or less all wrong, starting with the "simple" part. To start with, they're Harvard-architecture-ish with separate memory pathways - and caches - for data and instructions, so off the bat they have more heterogeneity than your modern general purpose CPUs. Also there seems to be a very wide variety of memory mappings, buses, and caching systems within ESP32 "family". [1]

[1] https://developer.espressif.com/blog/2024/08/esp32-memory-ma...

Would it be possible to slap this on top of FreeRTOS?
Python code and resource-constraint device don't seem like a good combo in terms of performance. Is it just for prototyping?
Really cool. How can this be fast? I'd have thought that Python (even MicroPython) would just be unsuitable for certain things like the graphics and animations, at the very least.
While cool, it certainly won't be delivering Android-like performance, due to the lack of JIT and AOT compiler, coupled with PGO metadata, shared via the PlayStore across devices.
But I don't want an "Android-like user experience", I want something that works and doesn't make me want to pull my hair out and fly to Silicon Valley and punch someone in the face.
Does this support installing normal Python versions on top, and then developing apps in normal Python? What is the language one writes apps in?

The docs say: "Developers: Learn how to install, build, and extend MicroPythonOS with new apps and features." -- But how? What are app devs using?

I don't understand, unless I'm misreading this OS has no memory protection. In other words: it can't run applications! And this is not fixable! You can never risk executing untrusted or semi-untrusted code with permissions on something like this.

I've always thought that it would be quite simple to pull "an android" but based on wasm (even perhaps using wasm-in-kernel execution). Quite simple, that is, compared to what Android achieved with Java. But this, this just can't work.