Your feedback to Microsoft for NETMF and gadgeteer

You guys have heard how Microsoft is committed to do more for NETMF https://www.ghielectronics.com/community/forum/topic?id=15304

If you are able to provide feedback directly to Microsoft’s IoT team directly on what we as a community need, what would you say?

How can we make this amazing technology even a greater success to community and Microsoft?

How is this technology helping your business if you are a commercial customer?

We are hoping to compile a decent list, yet direct and simple, to provide to Microsoft and need your help.

2 Likes

reliable networking on home networks - DHCP in particular. I gave that feedback directly too :slight_smile:

Get creative folks, this is two-fold, what are the limitations / issues you’re concerned about in today’s product, as well as what would turn it into a bigger hit with the IoT community.

Cheap & stable WiFi networking! There’s no reason Gadgeteer shouldn’t be leading the IoT wave except that the expense is just too great. Compared to buying a Spark Core Arduino w/ built-in WiFi its all but impossible to convince people to go the NETMF/Gadgeteer route considering there isn’t a competitive WiFi solution yet. I think enhancing NETMF/Gadgeteer for IoT based solutions should be the highest priority right now.

Again…price. The competition is Arduino & RasPi. If Microsoft is serious then they should step up and subsidize as was done with the RasPi.

Spend on education. I spoke with a Nashville school teacher just this week who has received a grant from the Python foundation to teach RasPi workshops at her school with an emphasis on learning Python. The students get to keep the hardware after the workshop. Where can I apply for a similar grant to teach C# on Gadgeteer?

Multi-platform compiler. Even if its not the full-blown Visual Studio. People obviously don’t really care that much. Look at the Arduino IDE… But, being locked into Windows is an instant show-stopper for many people. Even a NETMF Eclipse plugin would be a huge improvement. I have a big problem with teaching Gadgeteer workshops in environments that don’t have computer labs or do but don’t allow me to install software. My dream environment would be something like a RasPi that runs a NETMF compiler where the RasPi replaces a computer. If there were a multi-platform compiler that would run on Linux on RasPi then this would be possible and I could carry a classroom full of equipment in a single box. Even better would be if Microsoft or GHI lent/rented out similar boxes for user groups wanting to teach the occasional workshop.

So, I suspect they are looking for a list of killer features and fun stuff they can work on. But my point is that is not at all what’s needed. NETMF/Gadgeteer is already the easiest platform to develop on. It is, however, the hardest platform to sell. The gorilla needs to help us with this problem first. Provide a cheap (subsidized) board with WiFi built-in and a cross-platform compiler and we can honestly recommend using NETMF for IoT solutions. Otherwise, I simply can’t do it with an honest face for 90% of the real problems people are trying to solve.

1 Like

Couldn’t agree more, price is the killer. When you stack the RasPi against a comparably-equipped Gadgeteer solution (not that you CAN even comparably equip a Gadgeteer solution in some areas), the price comparison is simply ridiculous, and it takes up way more space to boot.

Why is Gadgeteer more expensive? Several reasons. One, volume. Two, volume. Three, volume. Four, volume. Five, volume. Lastly, GHI is aiming to make a profit (as they should).

You’re wrong on one count, however, the (production of the) RasPi was NOT subsidised. While Broadcom’s employees did work on the hardware design (for free), there is NO SUBSIDY on the board production. Broadcom DID NOT SUBSIDISE the RasPi. If you have evidence that they did (or do), you’d be the first.

Networking has to be bullet proof, anything less is just unacceptable given the whole IoT thing.

Some Microsoft love would be nice. I will say Microsoft has given developers cause to be nervous about their technology selection. Silverlight, WPF, how they handled the Windows Mobile end of life and even Gadgeteer itself are examples of Microsoft development technologies which haven’t had the clearest of futures. Developers aren’t paid to learn new technologies, they are paid to use ones they know to finish projects and flipping over or even waffling on technologies is a sure fire way to get developers to leave to the ‘other’ companies. Say where Gadgeteer fits in Microsoft’s device plan, let us know if Microsoft is committed or not, then we can decide if we are committed. Put some Microsoft skin in the game as lately its been the Gadgeteer user community that has been shouldering the load alone (put a lowly intern into the role, I don’t really care, just as long as they have a Microsoft.com email address as Pete seems to have flown the coup here for example).

Gadgeteer has a brilliant and dedicated user community, time to take it to the next level.

I’m not so worried about price as I think I’m getting more then what the other ‘cheaper’ platforms offer.

Raspberry Pi is a different kind of beast given its actually a registered educational charity (registration number 1129409), which means profits (if it has or needs any) are taxed differently and donations to it are likely tax deductible etc and it has an instant in with educational facilities which private for profit corporations don’t have, but that is their game and not one everyone can play, so that is life.

1 Like

I think the best thing that Microsoft could do is to put a little clean up effort into the framework itself. It’s not very likely that anyone it’s going to build a Blackfin or SuperH NETMF device any time soon. Eliminate the PAL (I think?), build on CMSIS, and/or FreeRTOS, CMSIS RTOS, CooCox’ RTOS, or whatever makes sense given the fact that every current and foreseeable device is going to be built on Cortex-M hardware.

Make it easy to port, or simply give in and focus on one line of devices (STM32, or maybe LPC). Eliminate layers and inefficiencies. Make it run on cheap hardware.

Recipe for success, there.

I am not following you guys, what has MS to do with how Gadgeteer modules are priced? Prices are mainly determined by GHI, not by MS.
There are different products for different markets/segments. I don’t see why Gadgeteer platform should compete with Arduino platform in terms of prices. It’s like suggesting equalizing prices of business class and budget class laptops, or sport cars and economy cars so that they could compete ::slight_smile: .

IoT will be cheap an ubiquitous(if the futurologists are to be believed). For every smartphone we have there will be numerous IoT devices. This means that serious companies will choose technologies that make it cheap to scale. This will happen even if it increases the upfront development costs dramatically. They will not choose netmf if it increases there unit costs.

This brings me to my main point. NETMF needs to be fast. Increase the performance and everything else will follow. Say netmf is 100times slower than native(i know this figure is highly application dependent). This means that rather than buying an expensive 100MHz MCU I could get away with a much slower and cheaper one. This slower cheaper MCU would also consume less power so guess what, you can now buy a smaller cheaper battery and have a smaller cooler product.

RAM/flash storage is and will continue to get cheaper. This means the the memory constraints that drove the initial development of netmf have and will continue to change. I know a lot of folk like that the netmf will run in minimal RAM systems, but I think there should a least be compiler options to optimise for speed over size.

Also, anything that can reduce power consumption. Automatic dynamic underclocking/undervolting. BIG.little cpu’s or anything else that can reduce power.

+1 for faster bug resolving.

I get angry when I see that MS yet again refuses to fix a bug just because it is “not important enough”.

[em]“However, this particular issue has likely existed for quite some time now - it does not meet our triage bar at this point. Unfortunately, we won’t be able to fix this bug in the next version of Visual Studio”[/em].

Whaaaat? >:)

Clean up loose ends. Systematically go through the issues list and check which ones are still relevant, and fix those. Make sure that deployment is quick and smooth, every time. Make networking rock solid. Correct outdated documentation, add missing documentation.

[em]Don’t go after some silver bullet feature[/em] that would suddenly turn NETMF into an instant success. Nor a kitchen sink full of half-baked silver bullets. Doesn’t work. Instead, shoot lead bullets: one existing issue, one lead bullet.

Only then, as far as I am concerned, I’d further strenghten networking. In particular a credible and very light-weight SSL stack, where everything just works, including authentication. So that NETMF devices can become first class clients of Microsoft Azure, for example.

In the longer run, provide an AOT compiler in Visual Studio for Cortex-M, in a way that the existing HAL investments can be used with it as well. No one wants to rewrite all drivers from scratch…

Ah, and before I forget: there once was an established process for contributing to NETMF. It should be revived as quickly as possible. We would like to contribute some stuff that we have, but there’s no receiving end :wall:

4 Likes

All the previous comments are all so good that I have very little else to add. Except maybe what I would really like to see is really small inexpensive microcontroller that can run full NETMF and have excellent debugging and networking capabilities and can act as a USB host too. It should have excellent low power consumption so that one can use it battery powered applications as well. And please stay away from BGA or really small outline IC’s. It should be simple for a pleb like myself to integrate into my own PCB layout that I solder up at home.

I think IOT will be all about devices that only need to do one thing really well, reliable and inexpensive. Give us a NETMF chip that makes this possible and we will turn it into devices.

The MCUs that we use are already SIGNIFICANTLY lower-power than the “little” core in a BIG.little CPU.

[quote=“godefroi”]You’re wrong on one count, however, the (production of the) RasPi was NOT subsidised. While Broadcom’s employees did work on the hardware design (for free), there is NO SUBSIDY on the board production. Broadcom DID NOT SUBSIDISE the RasPi. If you have evidence that they did (or do), you’d be the first.
[/quote]

Thanks for the correction. I was thinking back to the articles from when the RasPi was first announced and it would seem that was all speculation. I still haven’t bothered buying a Pi and haven’t followed it that closely. I still think subsidies from Microsoft is a good idea. They do it all the time with phones, PCs, etc. I realize they make no profit from NETMF directly but getting a chunk of the 212B expected devices connected to Azure should be worth something.

Exactly. Although, I agree with everyone that NETMF is a good deal for what you get the fact is that doesn’t matter. If it costs $130 (Cerb + DP + WiFi) just to connect a simple relay to the Internet then this will never be a feasible IoT solution. I have a couple IoT projects in the works right now. I love Gadgeteer but when it comes time to build something more permanent I almost always reach for the Arduino. We need a Spark Core equivalent for NETMF.

This is where it gets sticky. If you’re a commercial enterprise developing a product, that $130 isn’t much, compared to the other costs of doing business. If you’re a hobbyist, looking to leave a solution in place long term, that $130 starts to look less attractive.

Also, GHI likes the $130, because that represents a whole lot more profit for them than a solution at a fraction of the price. That’s fine, that’s normal, they’re a business. There’s no profit in the RasPi.

Really. I just had a look through the NXP LPC4300 datasheet and it has M4 and M0 cores as compared to the LPC1700 with a single M3 processor or the CERB with a single M4. For applications that require a core to be always on, but with a relatively light load, that M0 will be more efficient than the M4 with it’s huge die area and large leakages. For applications that can run as fast as possible and then return to sleep the M4 will win hands down. Here are some example tests I found The Embedded Muse 228

Technical issues (as already mentioned) notwithstanding, spend spend spend on education. Whether it’s sponsorship, discounts, or other creative ideas, we need to get this hardware into the classroom. Small efforts have been sporadically publicized (like in the UK), but we can do a lot more.

Solidify the message. Get some evangelists out to the growing list of IoT conferences. We’re already at the point where MS looks like a late comer to the IoT game, having just announced (renewed?) interest at Build. It will be hard to overcome the " just jumping on the bandwagon" sense that the industry sees this move as. We need to do what we can to remove that (incorrect?) perception.

Related topic rant:

I would have loved to get in on the Azure Intelligent Systems beta (Bing ), but it was specifically geared towards (established) businesses. Doesn’t MS realize that businesses are CREATED by smart individuals like us using tech like this? How could I possibly get in on the ground floor if I have to wait for “the beta for the not so serious users”. That is sending the wrong message. Don’t exclude me because I’m not incorporated. I would love to create the a marketable IoT system using GHI hardware talking to an Azure service, but I want to do it in my proverbial garage!

1 Like

The LPC4300 isn’t “BIG.little”. It’s basically two microcontrollers (Cortex-M) smashed together on the same die.

The real “BIG.little” architecture marries a Cortex-A15 with a Cortex-A7.

Normally in the microcontroller world, power saving is done by spending most of the time sleeping, i.e. in an almost-powered-off state. Wake up, do your thing (as fast as possible), go back to sleep.

The very biggest, baddest STM32 typically consumes ~100mA at full-bore, and as little as 0.1uA in the lowest power mode. Even operating full-time, that’s something like 40 hours on a pair of AA batteries.

I do want to make it clear, here, that I agree with your philosophy: smaller, cheaper, more efficient. If we could get an AOT compiler and get code running on a Cortex-M0, I’d be in HEAVEN! At native speeds, we’d rarely need anything much faster.

1 Like

That is exactly how we minimize energy consumption on the autonomous gizmos we put in the ocean that need to run unattended for years. Having access to more of the low power capability already built into the Cortex M family would be great. Low energy peripherals that can run attended at very low power and wake up the rest of the system when something interesting happens would also be great. For example, the Low Energy UART on the Cortex processors from Energy Micro (now Silicon Labs)

As another builder of gadgets that go in the ocean, I echo Gene’s feelings about low power sleep modes. I was disappointed that Raptor could not be put to sleep (with NETMF code) and have the RTC wake it up without arranging some external interrupt (I am not sure if this is NETMF or GHI’s issue) . While Raptor like devices consume more power, in a wake/sleep operation, they will likely be on less time. As everyone knows, it is not about how many amps they draw, but how many joules it takes to accomplish the task - that sets the size of the battery. When I was using PICs, I liked the ability to have different power states to conserve battery life, and while I know that it is possible to write low level code to do this with the NETMF processor families, that is not something that I want to attempt.

When low power modes are added, issues should be addressed about how to reinitialize peripherals like networking components if they have been powered down when a sleep mode has been entered.

I would suggest having a few “Standard Applications” like a data logger for example, that has a low power sleep mode, a sampling mode, a data storage module, and wired and wireless internet for retrieval of stored and live data. If this application was published as a “reference design”, in both C# and VB, then this would be a great starting point for many. When new versions of NETMF are hatched, the reference designs should be updated. I know that there are reference designs for many individual modules, but a more advanced application would be appreciated. Perhaps Microsoft should put resources into making this happen. I am sure that they could provide the test conditions to verify that networking is solid. There could be adapted versions for FEZ Raptor, Netduino, and some of the other players in the market. Microsoft could pick the Raptor, for example, and build the application. They could then share the code with the other manufacturers and ask them to contribute adapted code, plus the hardware to Microsoft, and Microsoft could then publish it as a Reference design version. These reference designs could also be the heart of educational modules, which the various manufacturers could adapt for their own products, by substituting in photos of their products, for example. This would go to the points previously made about educational outreach. This sounds something like that Microsoft talked about at build about the Netduino with Azure - it will be interesting to see where this goes.

I also echo @ Brett and @ ianiee74 about networking. DHCP needs to be solid, and it is still not there, even with 4.3. WiFi also needs to be inexpensive and easy. If products we make are going to be successful in the marketplace, this is essential, or the costs of support will be out of sight. Currently, the only wireless technology that I feel comfortable integrating into a product is @ Justin’s WirelessPipe which just seems to work, because you have control of both ends of the connection.

From out point of view, the present cost structure is not unreasonable, given the overall costs of the products we make.

@ Ransomhall - I agree about Azure - maybe the datalogger Reference Design should include Azure and I mean the Azure side of the development, with modest storage space made available at little of no cost. This would include a introduction to Azure for the developer who has no experience on web hosted applications.

Sorry to go on so much…

@ rockybooth +100

Very good idea. A sample application like that would be incredibly useful.

How about combining that with a Nexus-esque program, where Microsoft picks an MCU and goes all out to hook into every last iota of performance and power saving features.