255 pointsby mikece9 days ago24 comments
  • sillywalk8 days ago
    • larodi6 days ago
      Indeed much better resource than this ads ridden page…
      • FergusArgyll5 days ago
        • larodi5 days ago
          Have u tried it with mobile safari on arbitrary iOS?
      • vee-kay5 days ago
        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/

        • choffee5 days ago
          That really reads like an ad.
          • vee-kay5 days ago
            It is true though.

            Except Chrome, other Chromium browsers have effective filters/blockers for ads and annoyances. I find Brave's GUI to be very intuitive and fast, and one can disable its crypto features and other nonsense.

            But in past year, I've noticed Brave is broken on popular sites like Reddit, so I have recently switched ditches it and switched over to Vivaldi.

            Vivaldi is fast and nice, with a clean interface, though it is slower in its Windows variant as it has lots of features compared to other Chromium browsers.

            I have Firefox as secondary browser, I especially like its extensions support: uBlock Origin and Privacy Badger are great at adblocking and annoyances filtering. But Firefox is a bit cumbersome in its UI, and I felt it is slower especially in its Windows variant

            Firefox had some memory leakage problem, so I had avoided it for years, but it's become better in its latest versions, I don't seem to encounter the memory leakage issue anymore.

            I steer clear of Chrome (disabled it on all my phones and tablets) due to Google's penchant for ads-based revenue, though its corporate avatar as Microsoft Edge is quite efficient and effective as a daily workhorse.

        • OJFord5 days ago
          You realise the vast majority of people seeing your comment are on news.ycombinator.com and have no idea what you're talking about?
          • vee-kay5 days ago
            The parent comment mentioned ads, hence my response and the link to the text-only site.
            • OJFord5 days ago
              They said the links provided by their parent were better than 'this' page, which presumably refers to the submission, not (some undisclosed alternate ad-ridden frontend to) HN.
  • shawnz6 days ago
    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
    • frogperson6 days ago
      Yeah ESP32 is an awesome rabbit hole. An esp32-c6, cheap yellow display, and a 3d printer and you can build some really interesting things.
    • brcmthrowaway6 days ago
      Any commercial products using ESP?
      • saidinesh56 days ago
        Just look for ESP32 CYD - CYD stands for cheap yellow display. There are a lot of variants.

        https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display?t... . I bought mine for about $12 and it's been quite fun tinkering with it.

      • bri3d5 days ago
        https://templates.blakadder.com/esp32.html

        Here’s a list of just a few. They’re insanely popular not only because they’re just good to use, but also because they’re one of the cheaper FCC approved modules you can buy, which takes a lot of the pain out of bringing a product to market.

      • slmkbh5 days ago
        A lot of Shelly devices use ESP chips: https://www.shelly.com/ - And they are hackable!
      • buescher5 days ago
        You can find the fcc notices in manuals if you search on espressif’s module grantee code which is 2AC7Z. Espressif is extremely widely used.
      • jansper395 days ago
        Loads, you can usually tell if something is limited to 2.4Ghz only.

        Cabled up an EVSE the other day and the brains of that was a ESP32 chip.

      • cyberax5 days ago
        If you pick a smart device that has WiFi connectivity, then there's about a 50% chance that it has an ESP inside.
      • MallocVoidstar5 days ago
        Yes, many. As a random example, see: https://www.servethehome.com/ubiquiti-flex-mini-2-5g-review-...

        The last image on the page shows various chips in the switch, the top left is an ESP32.

        • magicalhippo5 days ago
          Interesting, seems like they're just using it as a MCU? Specs don't mention anything wireless, and I don't see an antenna.
      • 5 days ago
        undefined
      • magicalhippo5 days ago
        My "smart" resistive water heater uses an ESP for Wifi connectivity, so it can heat the water when the electricity prices are low for example.
      • kurtoid5 days ago
        (my older) LIFX bulbs have an Espressif MAC address, and I think LIFX has stated they're ESP32-based in the past
      • bdavbdav6 days ago
        I think there are plenty using espressif chips. One of my robot vacuums (possibly the Neato?) certainly appeared to be.
      • shawnz5 days ago
        AFAIK my humidifier uses an ESP32 chip.
  • 12_throw_away5 days ago
    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...

  • iberator5 days ago
    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

    • wewewedxfgdf5 days ago
      >> "the last hope for Python"

      Python is in the top 3 programming languages in the world.

      • wiseowise5 days ago
        Being lingua franca of AI and scripting world isn't enough for GP.
    • pjmlp5 days ago
      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.
    • mastermage5 days ago
      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
      • zelphirkalt5 days ago
        I think Lua is an interesting language and I really like it having TCO, so that I can properly write recursive logic like in a Scheme. However, I am somewhat worried about data structures. When I read about Lua, it always seems quite thin on that front. On the other hand I just looked up Lua data structures and found a book called "Programming in Lua" and the first page I read was about "tables", which I assume to be something like dictionaries in Python, and it says that arrays and others are implemented on top of "tables". What about immutable data structures? Are there libraries for purely functional data structures? How complete are they?

        These things I don't usually look up for Python, because Python is clearly not a very functional language and doesn't have the immutable data structures at all, and doesn't even feature TCO, so basically Python is mostly lost, when it comes to doing FP, and I accept, that it is not really that kind of language. I only try to use FP knowledge to avoid common pitfalls, when coding in Python. But from Lua I would expect better.

      • teunispeters5 days ago
        No viral license in Python, very easy to link to libraries with python.

        not sure which means more, but the second is definitely critical.

      • SR2Z5 days ago
        Lua has lots of ugly syntax and is 1-indexed. That's probably the only reason it never took off.
        • mrighele5 days ago
          I don't think being 1-indexed is what made the reason.

          While it was already in widespread use, Python really took off in the scientific/research community, thanks first to numpy and then to all the other libraries built on top of it up to the current crop of ML/AI libraries.

          Those people used to write a lot code in Fortran, Matlab and R (depending on their research area) which are all 1-indexed.

      • pjmlp5 days ago
        Batteries included and a more sane language.

        Also Lua is kind of frozen in version 5.1, if one cares about performace, while even if CPython only recently got JIT love, there are several other alternatives.

    • VK-pro5 days ago
      This is kind of a strange take to me given that Python is quickly becoming the default for many projects that 1) are not indexing for speed/efficiency and 2) is not on the web (and sometimes this only applies for frontend). There are plenty of cases where that statement is incorrect but I think you get my point.

      I think I read a title on HN that was literally titled “Why Python Won” in late 2025.

    • InitEnabler5 days ago
      Which useless features?
      • nikitau5 days ago
        Amazing. We have actually gone full circle reactionary on the typing debate where duck typing is considered the "traditional" way by some.
        • ReflectedImage5 days ago
          Static typing and duck typing both date back to the 1950s. You may have heard of Lisp.

          The last new significant thing invented in programming was OOP in the 1990s.

          Everything else is just ancient, OOP was about bringing the benefits of micro-services to single computer environments. Yes, you read that right

          The new ECS system for 3d games was used by the first computer drawing program Sketchpad in 1963.

          Programming is mostly just recycling ideas around and around.

          • dragonwriter5 days ago
            > Static typing and duck typing both date back to the 1950s. You may have heard of Lisp.

            > The last new significant thing invented in programming was OOP in the 1990s.

            OOP is from the 1960s (Simula 67 is generally recognized as the first OOP language.) Probably not actually the last new significant thing invented in programming, though.

      • iberator5 days ago
        All of them. Starting with syntax changes or type hints.... (Python should be always and only be duck typed forever as designed by God itself (it's creator).
        • wiseowise5 days ago
          > Python should be always and only be duck typed forever as designed by God itself (it's creator).

          Isn't Guido the one who came up with type hints spec and made the reference implementation (Mypy)?

          • dragonwriter5 days ago
            No, mypy existed before the type hints spec, and was created by Jukka Lehtosalo; Guido did, once he encountered it, work to make sure mypy could work with Python rather than being a separate, python-like language, and the type hints spec was a big part of that.
          • ReflectedImage5 days ago
            The issue is that duck typing with a minimal set of types was the great idea of ABC, which is the language Guido cloned to make Python
        • AlexeyBelov4 days ago
          OK, so this is a troll.
      • vpribish5 days ago
        async is the big one. it was half-baked
        • halfcat5 days ago
          Yeah, async Python is one of the top 2 things that I just get pissed off when I think about it too much. Along with Lin-Manuel Miranda not being involved with Moana 2.
      • shakna5 days ago
        Walrus operator, match. They're just syntax sugar, but expand the vocabulary for little benefit.
  • westurner6 days ago
    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

  • cbdevidal6 days ago
    Love me some MicroPython. Building a product line of small farm security devices that use uPy and MQTT.
    • pluralmonad5 days ago
      Would you mind elaborating on what you mean by small farm security device?
      • cbdevidal5 days ago
        First product is called SecureCoop, that either opens the coop door or monitors another coop opener, then sends phone notifications if there are issues. Door didn't open on time, door is stuck, etc.

        Next product will be battery security cameras trained on predator models (raccoon, fox, snake). Then the next one will be an electric fence monitor. All solar powered.

        Basically going for back yard security for small hobby farms.

        Biggest hurdle has been that I only knew 5% of what I needed to know to do this. Haha. Many mistakes. But now am close to visiting the FCC lab for SDoC verification, and then I can legally sell.

        Thanks for asking!

  • bvan6 days ago
    Looks better than any Python GUI framework I’ve seen..
    • sintezcs6 days ago
      • sgt5 days ago
        Oh that explains why it's fast!
        • nubinetwork5 days ago
          LVGL... fast? It's used on meshtastic devices, and I've always felt it was rather clunky. /shrug
          • sgt5 days ago
            Is it possible to make a fast UI on say, an ESP32?
            • apitman2 days ago
              I've been looking into this recently. It seems to be possible with the right kind of controller: https://www.youtube.com/watch?v=ZWtTmmne6Bo

              Also the newer esp32-p4s have MIPI DSI onboard which apparently can do smooth HD.

            • nubinetwork5 days ago
              Wish I knew... I'm half way towards looking for companies who make white label android devices for a project of mine... I originally wanted to go stm32, but as soon as you add a touchscreen and want a responsive gui, my only options seemed like "smart displays" with pre-rendered ui graphics, or a full blown arm device. /shrug
              • sgt5 days ago
                Now I am curious what you're working on :-)
            • hulitu5 days ago
              Well it runs at 20 Mhz, like a Motorola 68020 (Apollo DomainOS), so I would say, yes.

              Microsoft has difficulties drawing (rounded) rectangles at 2 - 4 GHz but that's another issue.

              • sgt4 days ago
                But Motorola 68k in say... the Amiga (I don't know Apollo) would have additional chips for sprites and blitting, right? And the ESP - despite being extremely fast, doesn't have that extra support. So you need CPU... + tricks, DMA, triple buffering etc
              • matt_trentini4 days ago
                Where are you getting 20MHz from? The OG ESP32 is a dual-core 240MHz micro...
            • pjmlp5 days ago
              Yes, see MS-DOS games. Now skills to do it 30 years later is another matter.
              • sgt3 days ago
                Is it possible though? I have never seen an LVGL demo (just plain C) able to present a demo or animation that is as "smooth" as a MS-DOS game on say a 486. Not that the 486 was butter smooth but it's not quite there. Maybe its the interface for the screen?
    • skeledrew6 days ago
      I reckon you've never seen flet.

      https://flet.dev

      • apitman2 days ago
        How does it compare to Beeware?
        • skeledrew2 days ago
          Far easier to use. I never got beyond just trying to setup Beeware; became overwhelmed by complexity. Flet, you install it like any other Python package and start coding your UI. It's one of those rare things that just works(tm).
      • PyWoody6 days ago
        That looks interesting. I had not heard of flet.

        How do you like it? How easy is it to work withe the layout controls?

        • skeledrew5 days ago
          It's a mixed bag, as it's still not stable (esp as very recently declarative support was added in what was likely a mostly-rewrite). But when it works, it works great (I've only tried on Linux and Android).
          • PyWoody5 days ago
            Neat. I'm skimming the documentation now and it looks like something worth keeping an eye on.

            I have so many long-running scripts that I sometimes set up with TUIs or quick PyQt/PySide GUIs but the GUIs always seem overkill and the TUIs always leave me lacking. flet looks like a good in-between of the two.

            • skeledrew4 days ago
              I'd say it definitely makes building GUIs more simple and intuitive than the Qt and Tk frameworks at least. And very important for me, it's fully cross-platform (for the most popular platforms anyway). I must admit that the imperative style does start to become painful as complexity increases, which led to me dropping it for a while, and so the declarative update is welcome even though it takes some time for me to mentally grep.
    • ErroneousBosh6 days ago
      Can we port it to Intel, I wonder...?
  • wiradikusuma5 days ago
    Python code and resource-constraint device don't seem like a good combo in terms of performance. Is it just for prototyping?
    • pjmlp5 days ago
      Only in the same sense as interpreted BASIC in 8 bit home computers, with their 64 KB RAM, single digit MHz, tape loading.

      Good for prototyping and introduction to programming, then you had to switch to Assembly for anything meaningful.

      Here, you might switch to Assembly like in those days, or maybe C, C++, Rust, Zig, whatever.

    • whynotmaybe5 days ago
      Some I know use it in production for iot in remote factories where internet isn't reliable.

      If anything needs to be fixed, anyone with a computer can connect on the USB port and push new pythons files, without the need of an up to date dev environment.

      Usually performance isn't that important as those devices handle a few events per second.

  • spwa44 days ago
    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.

  • skeledrew6 days ago
    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

    • bri3d5 days ago
      It’s LVGL based, if the GUI and widgets are what you wanted you could use that on Android, although if you have access to native Android this actually doesn’t seem like the best approach to me.
      • skeledrew5 days ago
        The primary goal I've been seeking for a while now (and which so far only flet has reasonably fulfilled) is the ability to dynamically create GUIs. Like I created a REPL app which works similar to the regular Python REPL, but also if the code entered at the prompt returns a control/component, it shows that control with full functionality. No need to compile anything, esp on another device. And it's a standalone app, not a frontend to a server or even a web view.
  • MomsAVoxell6 days ago
    I would love to have this, but Lua not Python.
    • shakna5 days ago
      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.

    • moffkalast6 days ago
      Mathematicians don't build GUIs, and nobody else can stand starting their arrays with 1.
      • dlcarrier6 days ago
        Lua also let's you start arrays at 3.
        • zimpenfish6 days ago
          As does Perl with `$[`[0][1]

          [0] "This variable stores the index of the first element in an array, and of the first character in a substring."

          [1] With the caveat: 'As of Perl v5.30.0, or under "use v5.16", or "no feature "array_base"", $[ no longer has any effect"'

      • ErroneousBosh6 days ago
        You can start your arrays in Lua at 0. Conventionally you don't, but you can.
      • pjmlp5 days ago
        Plenty of languages use either 1 as base or flexible array indexes.
        • moffkalast5 days ago
          And we can make fun of them equally, there's enough mocking to go around.
  • delijati6 days ago
    how does it compare to https://github.com/wasp-os/wasp-os?
  • 6 days ago
    undefined
  • zelphirkalt5 days ago
    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?

    • unwind5 days ago
      Reasonably, that language is MicroPython [1] which is the special pared-down version of Python for memory-constrained embedded targets.

      [1]: https://micropython.org/

      • zelphirkalt5 days ago
        I couldn't quickly find a comparison table or similar, to see what parts of Python are not supported by MicroPython. So I asked an LLM and it listed quite a substantial amount of modules of the standard library, that are a shame not to have. No logging module? No multiprocessing? No json, no xml? And the list goes on, including many very useful modules. One can probably somehow get by, installing third party libraries, but then what is the point of being MicroPython, if you need to install tons of libraries to do basic things like reading a JSON file? And as I am currently working on a tkinter application, tkinter being on the list also makes me think: "What a pity, cannot port that to MicroPython."

        This is just my first superficial look at it and it is also based on LLM info, which doesn't have to be correct, but if it is correct, then it feels a little disappointing.

        Perhaps for more serious app development, it would be good to have real Python and interface with MicroPython for the hardware controlling stuff.

  • sgt5 days ago
    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.
    • sgt5 days ago
      Later realized it's because it uses lvgl under the hood.
  • te00066 days ago
    • stavros5 days ago
      No, it says my ESP32 is not supported. I'd love to get it to run there, though.
      • te00065 days ago
        "it says" - where did you find info on HW support? Or did you try to build and flash the thing yourself?
  • hkt6 days ago
    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.
  • sgt5 days ago
    Would it be possible to slap this on top of FreeRTOS?
  • pjmlp5 days ago
    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.
  • amelius6 days ago
    Does it support the threading module?
  • otabdeveloper45 days ago
    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.
  • ConanRus5 days ago
    [dead]
  • hulitu7 days ago
    > Android-like user experience

    so crap. No inovation those days.

    • rpdillon5 days ago
      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.

    • nunobrito5 days ago
      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.

    • b00ty4breakfast6 days ago
      MIT lisenced; feel free to fork it if your feeling especially filial
    • functionmouse6 days ago
      What would you have wanted to see?
      • hulitu6 days ago
        At the first look: clear delimitation of UI elements, usable scrollbars.
    • squarefoot6 days ago
      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.
    • Melonai6 days ago
      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... :(