Is .NET Gadgeteer open source? What about FEZ Spider and other modules?

.NET Gadgeteer is open source hardware and software, even better, it’s an open source platform. How does this work? Gadgeteer defines a “connection point” between one “mainboard” and one or more “modules”. The “connection point” is a 1.27mm 10pin socket which can hold one or more types. For example, socket type A is analog and S is SPI so when we see AS on a socket then this socket can work with modules type A or S.

In terms of software, there are a set of core drivers (called GadgeteerCore) that do things like check that modules are plugged into valid sockets, help manage cross-thread calls, provide advanced networking functionality and additional graphics libraries. The GadgeteerCore is released as open source on the codeplex website, and is independent from any mainboard, module or vendor. When a vendor produces a mainboard, they will need to add extensions to the Gadgeteer core and when a vendor produces a module they also need to provide extensions.

What does this mean? You can take a module from any vendor (open source or not), connect it to any mainboard (open source or not), and you should be able to use that module with a couple lines of code. In most cases, it is under five lines of code. It is up to the vendor if they want to open their hardware/software or not.

Allowing for open source and closed source is very beneficial. For example, the WiFi module by GHI has agreements and NDAs behind it. Which means GHI will not be able to release it as open source. However, having WiFi is important for many users. The way Gadgeteer is designed, we can easily have complete open source modules/mainboards and still make use of closed source modules if needed. Of course mainboards may not have every socket type or drivers for every module. For example, a mainboard may not have socket A (analog) so you will not be able to use module type A. Overall, we believe that 99% of Gadgeteer modules will be generic and will run on any mainboard with a decent array of socket types.

Okay, but where are the files? We have just finished the first test run of FEZ Spider and we are still finalizing the software. There are also other internal points that need to be covered. Once completed, you will see a lot more hardware and software files. The Gadgeteer core files are found here

Not a .NET C# developer? No problem, you can still take advantage of the Gadgeteer modules and mainboards with your preferred language and preferred environment. For example, a shield can be added to arduino which includes Gadgeteer compatible sockets. This allows you to take advantage of the growing list of available modules from multiple vendors. You can also use the open source C# module drivers as a base to write the c++ (sketch) drivers for arduino. This can be taken even further, why not run linux or your favorite RTOS preference right on the mainboard? I personally suggest you first try the Gadgeteer software. The Gadgeteer team has really put a lot of work into the included open source code. We’ve even seen a member of our community port eLua to run on FEZ Panda, so running non-NETMF firmware is not new to our devices.

We’d like to add that GHI is interested in working with others on creating new open source modules/mainboards for Gadgeteer. The more diverse the offers, the more powerful Gadgeteer becomes. Let’s work together on making a wide variety of modules for the market. If you’re interested in making Gadgeteer modules/mainboards, please contact us directly

Very informative. I posted this link on the adafruit blog, [url][/url]

Thanks EricH, you have been and still is a great support to GHI and community.

So. What actually changed with “.NET Gadgeteer open source”?
You still have to buy closed-source SoC/Module (with proprietary GHI .NET Framework “firmware” ) to make your own custom device.
Or Microsoft/GHI is going to introduce completely open-source platform (including hardware, firmware and software, like Netduino), but with the set of commercial modules?

Not true. As explained above, you can make a gadgeteer mainboard completely open source if you want. Our fez spider is not open source when it comes to the module.

I have to port NET MF using Porting Kit then, right?

well you could also opt to use a processor for which a port already exists. Since NetMF is open, you’re able to do what you choose.

Remember, the Fez Spider is the first commercial module that is available; as you see more come online, you’ll see things will appear to open up more. The whole concept is driven by modules; what modules you buy or make can go from one brand of core module to another. The processor you choose is somewhat irrelevant, if you don’t rely on any of the value-add parts that a vendor might add to their firmware.

Not sure why this is not clear, gadgeteer is all done on high level in C# and has nothing to do with the layer underneath. You can get any NETMF module and use that as a base, or port netmf or use one of the ports.

In other words, gadgeteer code is a C# application that runs on any NETMF system (assuming this device has enough resources)

I could consider Gadgeteer more of an abstraction layer/library rather than an application.

Hi, is it possible to download latest sources for some modules? I have sercam module which does not work, it seems there is some bug in module class, i try to get source from codeplex to investigate and maybe find the bug, but codeplex version seems to be old, there are some methods missing. Is there any repository i can connect to and get latest source code? I thing there are many people which can help with debugging ant tuning the code, but it is impossible under current codeplex version when ghi shipping version is different.


The codeplex source is the correct place this stuff will be stored. GHI have only just released a new SDK and the upload to codeplex does lag behind the release;

probably not a relevant thread for this given it’s a year old…