Main Site Documentation

Sagitta Designer


#1

What is it?

The “Sagitta Designer” is a hardware and software orchestration tool that runs within Visual Studio 2017 (VS15) and supports the graphical orchestration of hardware elements and the scaffolding of drivers and software to assist in prototyping and development. It is similar to Gadgeteer in concept, and does support the Gadgeteer mainboards, modules and buses, but also extends to Grove and ‘naked’ SPI, I2C, GPIO, UART, CAN, etc. It uses a generalized model for devices, interconnections, and software blocks. Sagitta Designer is meant to scale from initial prototype to final production and deployment.

When is it?

Although this draws from things I learned and built as part of Verdant, it’s still early days. A minimally usable version is probably at least four months away. We’ll use this thread to post status from time to time and solicit early adopters.

Where is it?

Ultimately, it will be up on the Visual Studio Marketplace, but again, we’re not quite there yet. Watch for an announcement here on this thread.

Supported Hardware

It is our intention to build hardware models for mass-production netmf/TinyCLR/nanomf capable boards, plus Raspberry Pi, plus Ingenuity Micro boards, plus two new series of Sagitta-specific boards that @Justin and I are working on. Think of the SagittaDR devices as ‘deployment-ready’ (e.g., hardened) Gadgeteer - these will be cased and cabled devices that are immediately field deployable. There will also be a line of SagittaG boards that are compatible with the Gadgeteer 10-pin cabling.

Supported Software

It is our intention to support netmf 4.4, TinyCLR, nanomf, and VisualGDB C/C++ projects with scaffolding/templating that will pull in drivers for the devices that you place on your design surface. Not every device will work with every software foundation (and we can only write stuff so fast, so we will have to prioritize). One of the key design points here is that it must be easy to ‘leave’ Sagitta Designer and continue to develop your project without the awkwardness that often came with trying to scale up a Gadgeteer project.

Current Status

Right now I am working on parts management and @Justin is working away on compatible hardware. Gadgeteer was based on the Microsoft Domain Specific Languages SDK (or Modelling SDK). That meant that hardware models were mostly fixed at compile time. Sagitta Designer is not based on the DSL SDK and uses a downloadable set of hardware models that include schematic, iconic, breadboard and pcb definitions, and downloadable language templates (eventually for netmf, tiny, nano, and VisualGDB C/C++). I am also leveraging the Fritzing library CC BY-SA content for building parts libraries, and the Fritzing part editor can be used to create parts.

Call to action

It’s early days, so now is the time to let me know what you’d wish to see in such a package. What annoyed you about Gadgeteer? What would you like to see in the way of schematic capture, software scaffolding, etc.?

How much?

I can tell you that we intend to keep this free for hobby and educational use. We’ll have to offset the cost of hosting and Friday beers in some way, but that might be in the form of a commercial-use fee of some sort, or perhaps sponsorships from generous vendors.


#2

Here’s a first screenshot - the Parts Manager running in VS2017: The parts manager is how you choose which ‘parts bins’ you want to use on your design surface. Installing a ‘bin’ will download all of those hardware and software definitions and populate your designer toolbox with those parts.


#3

Yes please


#4

I would say that it looks pretty interesting. Will it support VB and C#?


#5

When does one think that TinyCLR and/or the development mentioned will be production proven?

We currently run .netMF 4.3.8.1, GHI libraries and such on custom boards based on the G120.
Currently, everything works just fine…of course the closer to full .net development (libraries and such) would be welcome…!

Essentially, I want to keep up-to-date on the latest and greatest and don’t want to find someday that all the work we have done has gone up in smoke and we have no alternative but to totally redesign everything on a new platform.

Does all talked about with TinyCLR and Sagitta give any reason to worry about continuing with the G120 and .netMF 4.3.8.1?


#6

I’ve heard that there are some serious VB fans around, so I’ll certainly consider it, but I’m still working on the hardware modeling and haven’t gotten to the software scaffolding yet. Since I only have to do the foundational work once for both languages, it might not be that difficult to include VB templates.


#7

@mhardy - TinyCLR is a product of GHI, so they’ll need to speak to that. I don’t work for GHI. Sagitta Designer is a product of my imagination and Pervasive Digital LLC, not GHI. The Sagitta hardware is a joint venture between @Justin (also not a GHI employee) and I.

“My imagination” status is a long way from “production”. Some things never survive to exit that phase. It may reach Minimum Viable Product status in 4-6 months, but I wouldn’t want to predict any timeline beyond that.
I will say that I am pretty dedicated to this and have invested what is for me, a substantial amount of money into this undertaking on both the hardware and software side, so I am determined to see it through.

Now for the soapbox…
Change and even breaking change is a fact of life in every level and aspect of computing. The best you can hope for is a system that functions and stays relevant long enough for you to amortize your development cost, and maybe make some profit. Needing to throw it all away at some point is a given.

As for your G120 and netmf combination, hang onto your existing toolchain (VS, the sdk, and vsix plugin and a copy of an OS to run it on) and you can probably maintain it for years to come. And in a big win for you, netmf 4.4 runs on modern tooling and will run the same code as 4.3 on updated hardware, which is more than you can say for most native-code implementations. And if you can’t find a suitable netmf4.4 board, ring up @Justin and he will make you one (or 100).


#8

mcalsyn - Thank you for the clarification and also the vote-of-confidence with the GHI tools, boards and company…!

GHI - Thanks for continued support, production and from all I have been able to gather, a stable environment for well into the future.!


#9

If that is a question, you should pose it separately to @mcalsyn’s thread on Sagitta


#10

typo…it was meant as kudos to GHI.


#11

ok cool - edit the post to get rid of the question mark? That should make it unambiguous :slight_smile:


#12

My students love Gadgeteers … we are waiting for Sagitta. :smiley:


#13


#14

One of the cool things about Gadgeteer…

A GHI Client DP powering a IngenuityMicro Octopus which is then driving a Sagitta display…


#15

I think we’re making good progress - parts can be created with Schematic, Breadboard and PCB symbology. Part images can be imported from Fritzing bins, or created with Inkscape or Illustrator. Pins and buses are documented just like in Gadgeteer so that we can apply interconnection design rules (preventing connecting SPI to I2C for instance). Because Sagitta Designer knows your HW design, it can pull in the right SW drivers and middleware and configure those correctly so you can get down to coding the meat of your app.

I’m now working on the design surfaces. Still a long, long way to go, but here’s your sort-of-weekly teaser…


PartsBrowser


#16

Sagitta Designer :heart: TinyCLR C# and Vb (and netmf, and nano…)

Adding a Sagitta Designer design to your project will pull in the nuget packages that contain the needed drivers and middleware to match your hardware design, AND configure them with your hookup choices.

Unlike Gadgeteer, Sagitta is an addition to your existing projects, not a completely separate project type. It does not dictate the rest of your project’s lifecycle.

image

(-b is a breadboard design, -p is a PCB design, and -s is a schematic capture.)


#17

Can I get an early access to try this awesome project?


#18

Yup - I have to get further with the VS Designer surfaces (the graphical layout editors) and the nuget packages but when it’s available for early adopters, you will hear it here on this thread first. In the meantime, I will be shamelessly posting teasers in the hopes of engaging early adopters and interested parties with questions, ideas and suggestions.