4 ms·
That post really resonated with me. I attempted making my own ESP32-based remote for controlling my media centre while I'm in my kitchen, or generally away from
by odiroot 5y ago
That post really resonated with me. I attempted making my own ESP32-based remote for controlling my media centre while I'm in my kitchen, or generally away from my laptop.
The nature of embedded with interrupts (e.g. from buttons) and trying to mix in MQTT events and nice multi-layered UI made me completely question my programming abilities.
I really wanted to have modals/pop-ups (e.g. to show current volume on change) and it ended up so messy. Not only it is about control flow but about memory too (as the author mentioned). I couldn't just store a stack of "screens" to fall back to.
I'm watching this library recently: https://github.com/peterhinch/micropython-micro-gui https://github.com/peterhinch/micropython-micro-gui
It seems promising to solve many of the common issues that you get, once you move from simple static information display.
- HeyLaughingBoy 5y agoUnless you're building many thousands of units for a price-sensitive market, it's almost always a better use of your time to run a nice GUI on a separate PC like a Raspberry pi and do your real-time stuff on a $4 arduino or $1.50 MCU.
- emsy 5y agoWe are definitely spoiled on modern systems. But imo, this convenience is unreasonably costly. It is baffling to me that modern devices with ghz clock rates can hardly render guis and websites responsibly. At the moment everyone swoons over the new M1 processors. Not too long and those performance gains will also be lost to costly abstractions and badly written code. I'm not very optimistic this will change in the near future.
- bruce343434 5y agoWe are already at a point where a cpu (!) based raytracer can outrender some user interfaces. The amount of cycles lost on the equivalent of paper pushing is incredible these days. Source: my own raytracer vs microsoft teams and 90% of all other electron apps or otherwise very javascript heavy frontends.