12 points by mkarliner 9 hours ago
Hi, I'm Mike,
I've made ThingStudio, a flow programing environment for microcontrollers. It allows drag and drop programming Node-RED style, but emits MicroPython which it uploads to the micro. The board does not need the editor to run after that. Runs fully local, Apache 2 licensed.
There's a functional version of the editor/IDE at linked to the home page, you'll need to install to be able to upload, because WebSerial is not universal.
Please give it a whirl. I'm happy to answer any questions.
Comments are read-only. Visit Hacker News to participate in the discussion.
superxpro12 5 hours ago | 0 points
I remember wishing for something like this that emitted C or C++ code a few years ago. Micropython is a fine choice, but very limiting. It's nearly impossible to do anything hard-realtime with it. But if it fits the nice, which is usually some flavor of a communication bus abstraction, this is probably a nice toy to play with. Curious how hard you can push the pedal on this.<p>Can it saturate the adc sampling? Can it configure a 20khz systick? Can it link interrupts together?<p>How easy is it to stand up uart/i2c/spi concurrently? What about canbus and usb?<p>How does it handle threaded programs? IS that part of the Node-RED arch? Or maybe micropy?
mkarliner 4 hours ago | 0 points
All very good questions. Which really have to be answered by real world testing.<p>On the subject of performance, there are really two points
- Microcontrollers are now a <i>lot</i> more powerful than they were, although clock speed isn't everything, an esp32s3 runs at 230Mhz and the RP2350(Rp Pico 2) can easily be clocked past 300 and have two cores.<p>- Also, MicroPython now supports two extra code emitters, Native and Viper, which create native code. They are already used on the spi display driver nodes and layout engine.<p>So I'm not sure it's as much a toy are you might think it is. OTOH, if this gets take up, I'd look at a lower level language.<p>Also, with AI somewhat more reliable now, making C/C++ addins is a much more reasonable proposition. Let me get this one tested and being used by folks and I'll think about how to create high speed paths :-)<p>At the end of the day, I'm trying to aim for use cases that aren't trying to squeeze the last drop of performance, but not toy use cases either.