I work on the micros that aren’t plugged I to a grid. So solar and batteries and the like. In that world, power consumption is everything. Interrupts and aggressive sleeping of your processor are you biggest tool.
Does anyone have any experience with current draw of typical pieces of “firmware” using this? I see that it’s on the larger side of what feels like micro, BUT tomorrows micro has been growing heaps over yesterdays micros for a long time, so I can ignore that.
Compared to other microcontrollers: ESP32 is very power hungry. Shiny displays are very power hungry, Wi-Fi is power hungry. So expect to draw about 5 watts/hour continuously while in operation with all bells and whistles.
With this said (I'm also using them for off-grid) you will need to put them to sleep and only use the display when absolutely needed for most scenarios. I've recently started using devices with e-paper display which at least solve that nuisance of the display power draw: https://www.waveshare.com/wiki/ESP32-S3-ePaper-1.54
The last thing to keep in mind is heating. They will warm quite a bit and you should consider a way to either keep them cooled or make them sleep enough to cooldown, otherwise they will reboot or stop working until they are cooled again.
Serious recommendation: I would not have R. Kelly anywhere on your project page.
If you’re trying to give a 30 second elevator pitch about what your project does, you should not have a name be a guy spending 30+ years in prison for child sexual abuse.
Where do you draw the boundary? Can I no longer enjoy watching space jam because it contains songs by R Kelley? A WiFi SSID which is a pun from a popular song seems pretty far removed from promoting or celebrating R Kelley.
In a way, MicroPython already is an OS, in that it provides a bunch of services (filesystem, network, scheduling). It's up to you whether you want to access those through a script or a command line (repl)
We aren't in the 1980's any longer, most of these systems are way more powerful than a typical 16 bit home computer, and incrediblly as it sounds, those 16 bit home computers still had better tooling than most MCUs have nowadays.
Anything that brings MCU tooling into the 21st century is very much welcomed.
I haven't yet shook the feeling I got when I first realised my thermostat has more processing power than the computer I had as a child.
But also the devices this OS is aimed at will often be doing more than those computers were ever capable of, such as driving a full-colour display with touch interface while running a web server and wireless networking stack.
Agreed. It is really nice to have an OS like this. It will get a lot more people involved in the development. I would even think of scaling this up to more powerful processors and perhaps have it even on smartphones.
Look, I'm with you on those critics and my opinion about python in general is just "duh" but this project looks good, it is easy to write/deploy and looks well documented (need to test it out).
For apps that are simple, might be OK. I've done a similar operating system which would run C-like scripts (using Wrench) instead of python and came with a command line if you wanted to shell directly into the device but nobody cared: https://github.com/radio3-network/B3OS
At least they've done a far better job in presenting a capable operating system and bringing people to move it further.
The advantage of micropython is that you don't have to deal with all the poorly maintained toolchains and UART and flashing and whatnot; for a novice working on their own, that stuff is a nearly insurmountable barrier. That the syntax is Python doesn't make a whole lot of difference.
I agree though, probably shouldn't be the first choice for a professional application.
It's actually a great first choice for a professional application, in that you can get a prototype up and running much faster than a native SDK, iterate quickly, and try things out on a repl. In fact, it's used in industrial settings, including in medical devices and energy distribution.
MicroPython's a bytecode interpreter so, other than the existing Python ecosystem being a huge boon (popularity being a form of strength), you could get many of the same benefits and more from wasm
You can actually opt-in to native compilation on a function level so it's not just a bytecode interpreter. You can also compile it yourself with additional functionality written in C/C++ and just use Python for the glue that isn't performance sensitive.
I work on the micros that aren’t plugged I to a grid. So solar and batteries and the like. In that world, power consumption is everything. Interrupts and aggressive sleeping of your processor are you biggest tool.
Does anyone have any experience with current draw of typical pieces of “firmware” using this? I see that it’s on the larger side of what feels like micro, BUT tomorrows micro has been growing heaps over yesterdays micros for a long time, so I can ignore that.
Compared to other microcontrollers: ESP32 is very power hungry. Shiny displays are very power hungry, Wi-Fi is power hungry. So expect to draw about 5 watts/hour continuously while in operation with all bells and whistles.
With this said (I'm also using them for off-grid) you will need to put them to sleep and only use the display when absolutely needed for most scenarios. I've recently started using devices with e-paper display which at least solve that nuisance of the display power draw: https://www.waveshare.com/wiki/ESP32-S3-ePaper-1.54
The last thing to keep in mind is heating. They will warm quite a bit and you should consider a way to either keep them cooled or make them sleep enough to cooldown, otherwise they will reboot or stop working until they are cooled again.
> 5 watts/hour
Typo I'm guessing, but I found this unit of "energy acceleration" amusing.
"Gotta go fast" :-)
In my language we say it colloquially that way, turned out wrong in English. Should have been 5 Wh.
Rather you would say it draws 5 watts. If someone is interested in draw over a period, e.g. over one hour, you'd say it used 5Wh in that period.
I haven't used MicropythonOS per se, but Micropython is pretty efficient, and can utilise interrupts and sleep modes
Serious recommendation: I would not have R. Kelly anywhere on your project page.
If you’re trying to give a 30 second elevator pitch about what your project does, you should not have a name be a guy spending 30+ years in prison for child sexual abuse.
Where do you draw the boundary? Can I no longer enjoy watching space jam because it contains songs by R Kelley? A WiFi SSID which is a pun from a popular song seems pretty far removed from promoting or celebrating R Kelley.
Ooooops, I didn't notice it on a first quick look. Yeah, I'm with you.
Agree. There are other puns possible for wifi:
“PrettyFlyForAWiFi”
all work and no play makes jack a dull boy. having a little fun spurs good work and vice versa.
Your definition of fun is scary
andor you are a coward. then again it's a scary time to be alive
Hey! Take it easy with me!
As an alternative: MicroHydra [0]
Also, if you hate the REPL app, bug me to fix it.
[0] https://github.com/echo-lalia/MicroHydra
…for very large definitions of microcontroller
Right? If it needs >1MB flash lol no.
Given my experience with micropython's reliability... no thanks.
(in general actively using a heap in a constrained environment is just asking for trouble... fragmentation _will_ get you!)
Does it run on M5Stack Tab5 or the CARDPUTER? Did anyone try?
Hidden project members, masked domain info and offshore hosting designed to avoid dcma. No thanks.
To most of the world the United States is offshore. Recent developments have also made the US unreliable as a hosting provider.
I wish someone would make a wasm version of this. Should be doable and support many more languages.
A great playground for learning embedded systems, even if not ideal for every production use case.
The R Kelly references show a total lack of social/societal awareness. remove asap
[dead]
The name makes it seem like it's related to the MicroPython project, rather than just written in it, which feels slightly misleading to me.
In a way, MicroPython already is an OS, in that it provides a bunch of services (filesystem, network, scheduling). It's up to you whether you want to access those through a script or a command line (repl)
It looks really nice, but agreeing on the naming - it's not really an actual OS, more like a dashboard toolkit, or a set of widgets.
[dead]
Those tech bros should just...stop.
SBC is already cheap enough that you can throwaway without caring anything. Stop bloating MCU with....useless stuff.
If anyone suggest me "Python in mcu" professionally, i would never be able to trust them again.
We aren't in the 1980's any longer, most of these systems are way more powerful than a typical 16 bit home computer, and incrediblly as it sounds, those 16 bit home computers still had better tooling than most MCUs have nowadays.
Anything that brings MCU tooling into the 21st century is very much welcomed.
I haven't yet shook the feeling I got when I first realised my thermostat has more processing power than the computer I had as a child.
But also the devices this OS is aimed at will often be doing more than those computers were ever capable of, such as driving a full-colour display with touch interface while running a web server and wireless networking stack.
Agreed. It is really nice to have an OS like this. It will get a lot more people involved in the development. I would even think of scaling this up to more powerful processors and perhaps have it even on smartphones.
Look, I'm with you on those critics and my opinion about python in general is just "duh" but this project looks good, it is easy to write/deploy and looks well documented (need to test it out).
For apps that are simple, might be OK. I've done a similar operating system which would run C-like scripts (using Wrench) instead of python and came with a command line if you wanted to shell directly into the device but nobody cared: https://github.com/radio3-network/B3OS
At least they've done a far better job in presenting a capable operating system and bringing people to move it further.
The advantage of micropython is that you don't have to deal with all the poorly maintained toolchains and UART and flashing and whatnot; for a novice working on their own, that stuff is a nearly insurmountable barrier. That the syntax is Python doesn't make a whole lot of difference.
I agree though, probably shouldn't be the first choice for a professional application.
It's actually a great first choice for a professional application, in that you can get a prototype up and running much faster than a native SDK, iterate quickly, and try things out on a repl. In fact, it's used in industrial settings, including in medical devices and energy distribution.
MicroPython's a bytecode interpreter so, other than the existing Python ecosystem being a huge boon (popularity being a form of strength), you could get many of the same benefits and more from wasm
If we forget about the pain that most WASM toolchains happen to be.
MicroPython, like most BASIC interpreters in 8 bit days, also allows for inline Assembly.
As for running bytecode on MCU that is as old as MCU themselves, wasm doesn't bring anything to table.
https://en.wikipedia.org/wiki/BASIC_Stamp
You can actually opt-in to native compilation on a function level so it's not just a bytecode interpreter. You can also compile it yourself with additional functionality written in C/C++ and just use Python for the glue that isn't performance sensitive.
This software stack targets a $17 ESP-S3 board that comes with an integrated touch screen, 8 MB of PSRAM and 16 MB of flash.
https://www.waveshare.com/esp32-s3-touch-lcd-2.htm
"Android-like" term is pejorative these days. What do you mean? Closed app store with throwing out old software because so?