It seems like Pimoroni’s approach to supporting their Breakout Garden and other peripheral boards on MicroPython is limited to the RP2040. And that requires a specialised, “Pimoroni” distribution of MicroPython. I am using the standard distribution of MicroPython from micropython.org, so that wouldn’t help me even if I were using an RP2040.
But if I’m using an STM32 or an ESP32 is there any way to use a Breakout Garden board (such as the IO Expander, the PAA5100JE or one of the LED matrix displays) in MicroPython?
If that’s not currently possible, one thing that might be of help would be for Pimoroni to document how to build an *mpy file from the code for the board that can be found in the Pimoroni-Pico repository. I wouldn’t mind building my own (i.e., going to the trouble) if I knew how. For one of the engineers who wrote the code I’m guessing it wouldn’t take too much effort to provide such documentation, and it would permit those of us who are using non-RP2040 environments to use Breakout Garden (and other Pimoroni) products.
./drivers/ioexpander
./drivers/ioexpander/ioexpander.cpp
./drivers/ioexpander/ioexpander.hpp
./drivers/ioexpander/ioexpander.cmake
./libraries/breakout_ioexpander
./libraries/breakout_ioexpander/breakout_ioexpander.hpp
./libraries/breakout_ioexpander/breakout_ioexpander.cpp
./libraries/breakout_ioexpander/breakout_ioexpander.cmake
./micropython/examples/breakout_ioexpander
./micropython/modules/breakout_ioexpander
./micropython/modules/breakout_ioexpander/breakout_ioexpander.c
./micropython/modules/breakout_ioexpander/breakout_ioexpander.h
./micropython/modules/breakout_ioexpander/breakout_ioexpander.cpp
Thanks!
We had this discussion before, and as I said, the Pimoroni software is proprietary :-(
You should search around on Pimoroni’s site, I remember they somewhere had build instructions. But they all rely on the Pico SDK and CMAKE, so it is not a matter of dropping the existing code into some other build-system, but to port all the low-level SDK functions (like setting GPIO attributes, using I2C and so on) to the other architectures.
I’m not sure what you mean by proprietary. The code that I listed is distributed under an MIT license: LICENSE as part of their MicroPython “Pimoroni-Pico” distribution on github.
What I was explicitly asking for was some help from Pimoroni staff in providing the build documentation you’ve just mentioned.
For most of the products I’m interested in, the C++ code that’s used to “bake in” support into their Pimoroni version of MicroPython is available under that open source license. So availability of the code is not the issue. I’m assuming it’s probably time, motivation and not wanting to support the dozens of support libraries that would entail.
If one of their customers (such as myself) wanted to go to the trouble of building MicroPython support for one of those products whose code is already available, if Pimoroni could provide enough information for a reasonably experienced developer, but someone who is unfamiliar with the aspects of the build (such as you mention) that would be difficult for a non-Pimoroni developer, including any tricks that might be involved, well… that’s what I was asking. So I don’t have to rummage around on their website, try to do the build, fail because I’m missing some information, etc.
And yes, I understand that support for some features are sometimes different on other architectures, some like GPIO pins may be just a syntax difference, others might be significantly more difficult or even impossible. But that’s to be dealt with on a case by case basis.
I note just yesterday that one of the principal MicroPython developers noted in the Discord server that in their last meeting they were discussing a github project that let’s people compile code from about a half dozen different languages (including C++) into MicroPython for the ESP32. So there is an interest in being able to do this kind of thing.
So if they provided this information just once, it could be used by anyone to build MicroPython support for any of the dozens of products the code is already available for. To me that very much sounds like a win-win.