Any interest in .NET Micro Framework?

Microsoft has just released the .NET Micro Framework, which I find could be a very interesting platform. It is a very simplified version of the .NET Framework that is targeted at ARM7/ARM9 processors. From what I can tell, you can get this framework running with a minimum of external components and it’s very hard to argue with getting the full C# language available for use on a small device like this! Runs on a memory footprint as low as 300 KB and does not need an MMU, which is a far cry from Windows CE which needs 12 MB for the WinCE Compact Framework. See http://en.wikipedia.org/wiki/.NET_Micro_Framework for more info. It seems to me that the platform could save an awful lot of time as many drivers, etc. are already provided or can be easily written in C#.

My question is whether any of the ARM developers around here have taken note of this platform. Any thoughts? Personally, I’d love to build my own custom device utilizing this platform and use one of those 128x128 Nokia LCDs, some pushbuttons, secure digital/USB, and a bunch of interesting sensors and think it would be a great learning experience. I was originally thinking of doing something original in C but I realized that developing a decently professional-looking windowing system was probably way more than I have time for and that I would do well utilizing a professional off-the-shelf design. As I know the desktop and compact .NET frameworks quite well, this new embedded platform seems like it could minimize the time required on my part as I will need to write a minimal amount of firmware to accomplish what I want. The other alternative I see would be Linux but I don’t have near enough experience there to try tackling a Linux implementation. Perhaps in the future once I get the hardware working I might try Linux.

So far I know all the ins and outs of Atmel AVR and much of Microchip’s PIC18 platform, having created some significant custom circuit boards for these platforms. But I’d like to get into learning the ARM platform and this seems like it could be an easy way that isn’t very demanding time-wise for PCB design and layout (I have access to a PCB milling machine capable of doing 4 mil clearances so making quick one-off boards with fine-pitch QFP packages is a non-issue). After this I might decide to tackle a full-blown Windows CE/Linux board with a fair bit of memory, but since that requires fancier processors that usually come in BGA packages and lots of external memory, I think that will wait until another day.[/list]

correct me if I’m wrong, but for embedded system 300K just to say “hello world” is quite waste of resources

Tsvetan

You can do much more than just say “hello world.” I agree that it is wasteful to use it to simply say “hello world.” However you’ll notice that this seems to include a number of drivers, a HAL, base classes frequently used by .NET applications, and more. The argument for this is that you are then able to write in a high-level language and save yourself some significant time later on when building more sophisticated applications. Otherwise you face writing/procuring individual drivers, coming up with your own windowing system, your own threading system, etc. which are all provided by the framework.

See the white papers and more at http://msdn2.microsoft.com/en-us/embedded/bb267253.aspx. This is the core technology driving the creation of Windows Sideshow devices. One sample application of Sideshow devices, among many, would be the synchronization of an MS Outlook calendar with a Sideshow device. You would then be able to browse your appointments on the Sideshow device without needing to power up your laptop. Getting something like this working in a reasonable time frame without the .NET Micro Framework is simply not practical.

For me it sounds more like a competitor to Linux on embedded devices. Most of the used microcontrollers have not enough ROM to store a tenth of the .net framework in it. Even the ARM7 devices have not enough space.

So it seems only usable for devices with external Bus interface and lots of RAM and Flash…

Drivers are no argument for me because there is mostly everything available for free on the internet. And the steps to fit the driver to your hardware needs are propably the same.

I think this platform is a good start for people that are interested only in programming, because of the good documentation. But for a start in electronics design it would be a pain -too much prerequisites before you can see something.

Why don’t you just buy an SBC with Windows already installed?

All your arguments for using the ,net platform are DOA. There are multiple choices to do the same thing using OpenSource tools. If you like to be a servant to M$, of course, you might want to seek help in a different support forum - perhaps, I-dont-know-what-im-doing-but-im-sure-m$-does.com