.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 http://gadgeteer.codeplex.com/
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 http://www.ghielectronics.com/contact/