How well do they work for embedded apps? I generally thought that the non real-time nature of python means you can’t do anything serious with python in the embedded world.
Asking as a serious question though from a genuinely curious point of view. I was thinking of rust or zig as the primary methods of moving embedded systems out of c and c++.
They're great if you don't mind running out of memory every few minutes. I guess maybe if you use a platform with more than 32 kB of RAM, they might work better...
I'm going to be using this because it's in theory it's much easier to have over the air updates when the business logic are just text files, rather than compiled binaries.
That's was my draw to this ecosystem as well. It seems a lot more feasible to maintain a sort of "fleet" of boards running recent code this way.
I'm sure there are grown up ways of accomplishing this properly, but this was the lowest barrier to entry for me being able to maintain small embedded programs without having to physically plug into them.
There was a weird period about a decade ago when a business person was able to more or less take over Arduino leadership and pushed out the old founders. It was a split between arduino.org vs arduino.cc and each had their own boards. It was a mess for makers and uses to figure out but it's been long resolved, and last I saw Arduino was bought by ARM so likely has a lot more stability and less drama.
> MicroPython officially becomes part of the Arduino ecosystem
sounds like an acquisition, but
> Expanding on this initial experience we were lucky enough to partner with the creator of MicroPython, Damien George, to port the official the virtual machine to a number of Arduino products.
and
> Luckily we came across the work of Murilo Polese, who developed a simple tool we were able to adapt and use for teaching. The results have been so good that we decided to collaborate with him to produce a tool we can share with the community.
just sounds like they're heavy users - and contributors, to be fair - of micropython. Anyone have a better idea of what the relationship is?
EDIT: A quick look at https://micropython.org/ shows them still leading with the "pyboard" as their official hardware that they'd like to sell you, so I'm leaning towards "partnership" rather than "acquisition". Can't imagine that Arduino would do anything but immediately start pushing their own hardware.
Huh, I read it as "official support by us for this thing built by someone else" not "we acquired/partnered with the people who built this so that they are supporting us now".
> Raspberry Pi Pico Emulator for the Wokwi Simulation Platform. It blinks, runs Arduino code, and even the MicroPython REPL!
What are some advantages of Arduino IDE? (which is cross-platform and now supports MicroPython and Pi Pico W (a $6 IC with MicroUSB and a pinout spec))
I've been exploring options for using python in various IDEs, and I'm generally not very happy.
The Arduino IDE seems passable for its own flavour of C++, but it's not great with Circuit Python boards. The discovery and integration with those boards seems non-existent, but maybe I'm missing something.
Mu Editor is extremely slow when the serial bus is highly active, and its features are severely limited. As an IDE it's seemingly missing any bells and whistles.
I'm looking forward to trying the VS Code Circuit Python extension, but unfortunately on my first run it didn't work at all. Hopefully with a bit of debugging it'll be clear to see why.
I'm curious if embedded scripting language gurus know, would micro-python be suitable for pico-8? I'd prefer python over lua about 100 to 1. But maybe even in micro form, python is still too big to embed in that project?
Pico8 is defined as running Lua. You could, in principle, define your own fantasy console that used Python instead of Lua, but it wouldn't be Pico8 anymore.
It might be odd but I find Python so disrespectful to embedded devices. It pains me to think of all of the excess work those tiny things will do forever because of a very poor language choice.
More seriously, I think the long term effect of this will be truly catastrophic. There is an unfortunate effect whereby a tool's simplicity is able to attract newcomers to the space - which is great - but then severely limits progress by boxing them into this very small, simple, framework. It's very awkward when smart people and even professionals spend a lot of time fighting against the simplicity of Arduino or using weird, esoteric hacks as if it makes them a guru, just because it's all they know.
There needs to be an offramp. Micropython is the opposite - it's a one-way freeway to the middle of nowhere. It should be banished. So much human potential will be capped and wasted by this move.
I respect your opinion but I disagree wholeheartedly, and here’s why.
The introduction and support of MicroPython doesn’t mean the original “lower level” languages are unsupported. Code that “smart people and professionals” have built will continue to run.
Instead, you’ve opened the ecosystem up to new and creative ways to use the platform.
Raspberry Pis were created in part to help kids learn to program. That low barrier to entry didn’t stop “smart people and professionals” from being able to take that platform to build incredibly cool things.
35 comments
[ 3.6 ms ] story [ 80.0 ms ] threadAsking as a serious question though from a genuinely curious point of view. I was thinking of rust or zig as the primary methods of moving embedded systems out of c and c++.
If do you have real-timeish needs, MP makes it pretty easy to write modules in C.
I'm sure there are grown up ways of accomplishing this properly, but this was the lowest barrier to entry for me being able to maintain small embedded programs without having to physically plug into them.
It’s an “official” port of micropython to arduino boards.
So more like “Micropython now supported by Ardunio on our boards” or something like that
I have no idea where you saw that, but it isn't true.
Arduino sells some boards with ARM-based microcontrollers on them, but they have no official relationship with ARM.
and
https://hackaday.com/2017/10/05/who-owns-arduino/
sounds like an acquisition, but
> Expanding on this initial experience we were lucky enough to partner with the creator of MicroPython, Damien George, to port the official the virtual machine to a number of Arduino products.
and
> Luckily we came across the work of Murilo Polese, who developed a simple tool we were able to adapt and use for teaching. The results have been so good that we decided to collaborate with him to produce a tool we can share with the community.
just sounds like they're heavy users - and contributors, to be fair - of micropython. Anyone have a better idea of what the relationship is?
EDIT: A quick look at https://micropython.org/ shows them still leading with the "pyboard" as their official hardware that they'd like to sell you, so I'm leaning towards "partnership" rather than "acquisition". Can't imagine that Arduino would do anything but immediately start pushing their own hardware.
Arduino has not absorbed MicroPython in any way.
"BLD: Install thonny with conda and/or mamba" https://github.com/thonny/thonny/issues/2181
Mu editor has MicroPython support: https://codewith.mu/
For VSCode, there are a number of extensions for CircuitPython and MicroPython:
joedevivo.vscode-circuitpython https://marketplace.visualstudio.com/items?itemName=joedeviv...
Pymakr https://github.com/pycom/pymakr-vsc/blob/next/GET_STARTED.md
Pico-Go: https://github.com/cpwood/Pico-Go
/? CircuitPython MicroPython: https://www.google.com/search?q=circuitpython+micropython
Aurdino IDE now has support for Raspberry Pi Pico.
arduino-pico: https://arduino-pico.readthedocs.io/en/latest/index.html
Rshell and ampy are CLI tools for MicroPython:
rshell: https://github.com/dhylands/rshell
ampy: https://github.com/scientifichackers/ampy
Fedora MicroPython docs: https://developer.fedoraproject.org/tech/languages/python/mi...
awesome-micropython: https://github.com/mcauser/awesome-micropython#ides
awesome-arduino: https://github.com/Lembed/Awesome-arduino
KiCad (ngspice) is an open source tool for circuit simulation. Tinkercad is another.
TIL about Mecanum wheels.
wokwi/rp2040js: https://github.com/wokwi/rp2040js:
> Raspberry Pi Pico Emulator for the Wokwi Simulation Platform. It blinks, runs Arduino code, and even the MicroPython REPL!
What are some advantages of Arduino IDE? (which is cross-platform and now supports MicroPython and Pi Pico W (a $6 IC with MicroUSB and a pinout spec))
I've been exploring options for using python in various IDEs, and I'm generally not very happy.
The Arduino IDE seems passable for its own flavour of C++, but it's not great with Circuit Python boards. The discovery and integration with those boards seems non-existent, but maybe I'm missing something.
Mu Editor is extremely slow when the serial bus is highly active, and its features are severely limited. As an IDE it's seemingly missing any bells and whistles.
I'm looking forward to trying the VS Code Circuit Python extension, but unfortunately on my first run it didn't work at all. Hopefully with a bit of debugging it'll be clear to see why.
https://www.jetbrains.com/pycharm/
Pico8 is defined as running Lua. You could, in principle, define your own fantasy console that used Python instead of Lua, but it wouldn't be Pico8 anymore.
You could look at TIC-80 and WASM with micropython compiling to WASM (or even full python).
Or... just use a python tool inspired by PICO-8: https://github.com/kitao/pyxel
More seriously, I think the long term effect of this will be truly catastrophic. There is an unfortunate effect whereby a tool's simplicity is able to attract newcomers to the space - which is great - but then severely limits progress by boxing them into this very small, simple, framework. It's very awkward when smart people and even professionals spend a lot of time fighting against the simplicity of Arduino or using weird, esoteric hacks as if it makes them a guru, just because it's all they know.
There needs to be an offramp. Micropython is the opposite - it's a one-way freeway to the middle of nowhere. It should be banished. So much human potential will be capped and wasted by this move.
https://www.mikroe.com/compilers?programming-language*=basic...
For more modern hardware, https://www.wildernesslabs.co/
The introduction and support of MicroPython doesn’t mean the original “lower level” languages are unsupported. Code that “smart people and professionals” have built will continue to run.
Instead, you’ve opened the ecosystem up to new and creative ways to use the platform.
Raspberry Pis were created in part to help kids learn to program. That low barrier to entry didn’t stop “smart people and professionals” from being able to take that platform to build incredibly cool things.
"...officially supported by..." instead of "...officially becomes part of..."