The software side of Gadgeteer

There’s been a lot of talk about the hardware side of Gadgeteer-like prototyping. But Gadgeteer was also a software ecosystem.

The software ecosystem included a graphical design surface that was useful in laying out your project and avoiding invalid connections, but it also helped you pull in the right drivers.

On the downside, it relied on Visual Studio and a bunch of graphing and domain-specific language (DSL) add-ins, and it forced a certain structure to your code that was not easy to break out of. It was also devilishly hard to create new plug-ins for new modules. It required a bunch of investment on the part of the module creator.

So what did you find most and least useful about the Gadgeteer software environment? Is there a need for a designer? Automated nuget inclusion of drivers? Should it be web-based, or should it be a local app? Cross platform (e.g., electron or Qt based?). Or do you need anything more than drivers?

I did create Sagitta Designer and take it fairly far (even modeling multiple busses - SPI, I2C, Grove, Gadgeteer, etc and auto-managing drivers), but in the end walked away from the original implementation because I decided that the overhead of being Windows-only and requiring a gigabyte of disk footprint was a fatal flaw. It might work as an Electron+web app though.

So is there a role for a software ecosystem to go with whateverthisnewthingis? What kind of ecosystem?

Designer: yes, please.
Automated driver inclusion: yes, please.
Web-based: no, thanks.
Cross-platform: as long as Win is supported, do not care.

By the way, I do not recall it being “devilishly hard” to create Gadgeteer plug-ins, maybe confusing the first time. But that was long time ago…

I just find it that way by modern standards. Too many things to get lined up right. No great way to auto-update. A lot of the flaws in Gadgeteer are only flaws in the context of current-day expectations. It was top-shelf by the standard of the day.

Designer was nice but not necessary for it to be graphic. All I needed was the ability to assign a module to a port (or to pins). However inclusion of the drivers was extremely helpful. I really don’t need anything else.