NETMF for education, a community effort

We want the future generation to understand programming better using professional tools, and we need your help.

The community have probably talked about this a million times! Some have even taught some classes. I think this is due to the fact that we know NETMF is just perfect. It is easy to learn and fun, yet students will be using Visual Studio, a professional tool used by professionals. Meaning their learning would scale from blinking an LED to full blown commercial projects, still using the same tools! Unfortunately, we never grouped our efforts into pushing this forward.

As some of you know, Gary and John have been working with some middle school students for few weeks. We have used Gadgeteer and just plain NETMF. We have learned many things through this experiment. Things that was obvious for us was very difficult for kids it understand. Other topics were thought to be complex but the kids understood it easily. For example, we found out that Gadgeteer is a great tool for someone who already knew a little programming. Gadgeteer greatly simplified the hardware but you still need to program it.

At the end we decided to simplify NETMF to a single board that would have everything from sensors to outputs. While its being expandable for advanced students, it has everything the very beginner needs. We handed the board to individuals (boys/girls) with no programming or electronic background and they would quickly be able to come up with project ideas.

This board will be combined with books and curriculums, plus it will be scalable, from the very young with no programming or electronics experience, to the more advanced programming and science students.

Finally, we understand cost is crucial and we are trying to complete the circuit at around $25 school price, and around $40 retail.

If you are interested in helping in any way, we would like to chat with you privately and show you what we have so far. Once we and you (contributors) agree on the basics, we will make the materials and the circuit public for further feedback from everyone. Please email me directly at gusi@ to get started. And feel free to reply to this post with question, comments or concerns.


At the end we decided to simplify NETMF to a single board that would have everything from sensors to outputs. While its being expandable for advanced students, it has everything the very beginner needs. We handed the board to individuals (boys/girls) with no programming or electronic background and they would quickly be able to come up with project ideas.[/quote]

So, are you thinking a board w/o any sockets?

Great initiative. :hand:

When i saw the imp Hannah board I wished it supported netmf and not squirrel.

It has some cool sensors LEDs and connectors. Just for inspiration.


Some standard input and output devices like buttons, LEDs, light sensors, perhaps even a 16x2 LCD would be good to have on board, but a couple of sockets might also be nice so they can extend their knowledge with Gadgeteer modules without having to invest in different hardware.

Just an opinion.

@ Gus - Ok you know I’m interested so I’ll send you an email later.

One of the many things I like about Gadgeteer is I’m able to setup project boards as needed for the different classes I’ve taught and so I worry that a one size fits everything board might be either too limited or cost to much, so I’m very interested in what your planning.

So it is something like Cerberus Tinker kit, but on a single PCB?

@ everyone I think for the low level we are trying to start them at, we need something even more simple than gadgeteer. We tried gadgeteer and we thought it is good for the next level, after they learn the basics, the very basics.

I will share more info on the board once we clear few things up in few days.

Too complex still. Show that board to a 15 year old and ask them what it is.

Ok my point was lost in complexity.

The cool:

  • multicolour LEDs
  • battery holder
  • temp sensor (cheap)
  • light sensor (cheap)
  • hall sensor (cheap)
  • digital pot-meter
  • servo controller (cheap)

The bonus:

  • network access
  • online ide
  • extreme low power modes


  • drivers
  • debugging
  • small text display

The missing parts can be solved with netmf.

I too am concerned about one monolithic board limiting the lesson possibilities, but I do understand what you are saying about complex electronics distracting from the coding lessons.

Not a completely new concept, but what about completely sealed blocks that interconnect through a simple two-wire interface (e.g., I2C)? You could have a processor block, display block, led blocks, motor blocks etc. They could interconnect by snapping together using magnets, preferably on multiple sides and in multiple orientations, or via magnetically attached cabling. A super-simplified gadgeteer.

All of the hardware complexities are abstracted away both in hardware and code - in hardware, the blocks are just lego-like gadgets that snap together with no real rules, and in software you gain a level of plug-and-play functionality, so pins and ports and such are gone from the programming experience. In fact, you could even have your programming environment pre-seed the program with the list of discovered devices when a constructed project is connected via usb.

Yeah, that’s way beyond the scope of what you were suggesting with a single board, but I do believe that if you want an educational platform that is more than an RPi or Arduino with more onboard blinky bits, then I think you need an extensible platform. I believe you can make it interesting while still abstracting away the gnarly electronics and hardware-imposed software complexity.

@ mcalsyn - it is also about what do you want to teach, electronics or programming. Will the student learn what a resistor is and why you need one for an led? What would be covered and at what level.

And for the standard i2c connection you area suggesting, this is not much different than gadgeteer but gadgeteer is much more capable.

The board we have so far includes an expansion port but we are thinking this will be used in more advanced class.

You can use arduino on the same style board but students can’t step in the code to see how the program flows.

@ Gus - Good question - which are you targetting? Hardware lesson plans? Software? Hybrid lesson plans?

My suggestion was for enabling a pure programming lesson plan where the hardware is (initially) just a tool for getting engagement. If this system was designed with a migration path into Gadgeteer, then you have a nice roadmap for teaching hardware topics too. But first teach the software side without the hardware getting in the way.

I kind of like the software-first approach because you get payoff by controlling and using hardware without having to introduce math-laden hardware concepts before you get any payoff. And if you don’t introduce some of that math, then really you are already treating the hardware like abstract tinker-toys.

I’m not totally wedded to this concept to the exclusion of others. I just see how it can be bent to a lot of different lesson plans in different orders by abstracting away the pieces you don’t want to talk about yet.

@ mcalsyn - we are on the same page. Let me email you later with more info.

@ Gus
Very cool, I’d be interested in helping in some way on this effort. I did teach a high school class using C# and .Net. I’ve also judged a bunch of high school and college ROV and AUV competitions that .Net Micro and Gadgeteer hardware would be perfect for. Let me know how I can help.

The e-mail you provided in your first post on this thread isn’t working for me. I’ll be happy to send an e-mail when I figure out the right address.

Cheers - Gene

@ Gene - great. Your experience is prefect for this. The email is gusi@ and the domain is this website :slight_smile: this is not working?

i’m part of startup that is creating visual tool for building iot projects without programming. Currently we are in beta phase, and we are using G120 module, but it’s easy scalable to other mainboards.
Here’s more info:

It’s kind of pre-step into programming, feel free to ping me for more.


@ tvinko - this is just perfect. I was thinking of a pre programming course and was thinking about using scratch. Is your offering similar to scratch?

Zenodys is IoT development tool. It can also be used for learning, but it’s main purpose is to simplify and accelerate the development.

You can easily create application that sends data to the cloud, monitoring devices from the cloud etc.

You can explore it here : . But I must warn you, it’s a beta edition, and we are still working on help and documentation :slight_smile:

Also new functionalities and elements are added daily

@ Gus - here is my email mcneillb@, you know you can count me in.

Approach, software first of course, its one of the limiting factors for platforms like Arduino and pretty much everyone else on the planet. Asking someone to learn hardware before they can learn the software is pretty much a no go anymore, so take one out of the equation which is what Gadgeteer does. Even better Gadgeteer doesn’t prevent you from doing hardware stuff, but it allows you to focus on the hardware your interested in. For example I want to use a new sensor to send readings to the cloud, I don’t have to breadboard everything, just the sensor I’m interested in, so if there is a problem, I know the network stuff for example works so I know that my problem is in the sensor area (code or hardware). So as an educator you can focus (and bound) your leaning.

The classes I teach tend to be fairly well define so a set project board works great, now if the objective isn’t to teach, but to let the students or attendees experiment then a kit is better. So perhaps ‘education’ is really too broad of a term and some further definition is needed.

1 Like

@ Duke Nukem - I already had you on the list even before you replied :slight_smile:

By the way, the kids we worked with can barely blink an led. Networking would be defiantly for the next class. Their ultimate thrilling project is in being able to control the led blinking speed using a button. The code for this very basic thing is still somewhat overwhelming.