Can you elaborate on how it detects and signals if it runs out of output buffer space? I couldn't see how the amount of available space was even communicated to `fc_enc()`.
Also there some "C icks" (to me, I'm very picky and used to know the standard awfully well from answering many SO questions) that you might want to look into. The two I remember now are the casting of `void` pointers from allocation functions, and (worse) the assumption that "all bits zero" is how a NULL pointer is represented.
As a ultra noob in the art of knotting, I liked this when I stumbled over it a few weeks back. I agree that for newbies it would be even more instructive with smoother flows, I guess they're held back by the animations being photos and not, well, animations.
I also have read their backstory/naming thing [1] several times but I still don't quite get it. I first thought they were related to the historical Grog, but that was a misunderstanding. I think.
Meta: This is a very messy title, it should just be "The minichord: a pocket-sized musical instrument" or something like that. We have the github info in the auto-generated blurb right after the title, after all. Thanks.
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.
Specifically: JSON is built-in, logging is available. There's no multiprocessing (it is designed for a micro, after-all - and note that thread is available on some ports), no built-in XML lib.
Be sure to check micropython-lib, the MicroPython Awesome List and mim for others.
MicroPython is primarily for embedddd devices with on the order of 1 MB of RAM and FLASH. And applications which makes sense with such constraints. If you have hundreds of MB of RAM, better to just use CPython.
reply