While attending TechEd 2008, I’ve find out lot’s of people were asking similiar type of questions. Even if official .NET Micro Framework site has very good white paper covering whole technology. I’ve decide to publish brief answers to frequently asked questions. Some of them are not covered in official FAQ but were very frequent on TechEd 2008.

Q: What is the. NET Micro Framework?

A: .NET Micro Framework is a way how to run managed code (C# applications) directly on top of the CPU, without underlying operating system. It is bootable CLR which runs on very tiny processors without MMU (memory management unit). It means processors that can not host operating system, in the way we usually understand it.

Q: What is the difference between Micro Framework and Compact Framework?

A: .NET Compact Framework needs to be hosted by Windows CE or Windows Mobile, while .NET Micro Framework don’t need operating system at all. See previous question.

Q: What type of processors .NET Miro Framework supports?

A: At this time only ARM7, ARM9 and Blackfin are supported. Family of supported processors will grow in the future. Remember, that your application is written in C#, so you don’t need to worry about hardware specific features of the processor, since everything is exposed into managed code. Applications are very easily portable from one CPU to another.

Q: Is .NET Micro Framework running on 8 or 16 bit processors?

A: No, Nicro Framework is designed for 32 bit processors.

Q: What are the RAM and Flash requirements?

A: At this time .NET Micro Framework can fit into 300Kb Flash and needs 128Kb RAM to run. Consider, that this is for “pure” .NET Micro Framework, count with more space for you application.

Q: Is it possible to run .NET Micro Framework only from Flash memory?

A: You are probably want to use Micro Framework on a single chip computer which has small RAM but a lot of Flash memory, right? RAM is necessary for .NET Micro Framework. Microsoft is targeting 90K RAM footprint.

Q: Is .NET Micro Framework new version of Microsoft Robotics Studio?

A: No, .NET Micro Framework and Microsoft Robotics Studio (MSRS) are two different efforts, which are not competing or going to replace each other. MSRS is the advanced environment to control robots and simulates real-life environment for robots, while .NET Micro Framework is the development framework for tiny embedded applications. These applications may include robots as well as home automation, diagnostics systems and many others…

Q: Can .NET Micro Framework operate with Microsoft Robotics Studio?

A: Yes and No. Since .NET Micro Framework doesn’t support generics it can not be directly connected to MSRS. However, you can always build driver in MSRS for your .NET Micro Framework robot, that will be hosted in MSRS and communicating with robot via serial port, zigbee, bluetooth, network etc…

Q: How do I deploy my C# application into the CPU? Do I need eeprom programmer?

A: Applications are deployed directly from Visual Studio via USB, Serial port or Ethernet. No other hardware than appropriate cable is needed.

Q: Is the whole .NET Micro Framework deployed or just the application?

A: Just the compiled application is deployed to the CPU. .NET Micro Framework is already deployed into the CPU by the manufacturer.

Q: What is the main argument to switch from Windows CE to .NET Micro Framework?

A: There is no reason to switch from Windows CE to .NET Micro Framework on existing solution. Windows CE and .NET Micro Framework has different targets, even if there might subset of applications where both technologies will serve well.

Q: Are there some capabilities for graphic UI?

A: Yes, .NET Micro Framework has support for user interface based on WPF (Windows Presentation Foundation) object model. You can use windowed model for use-cases as well as utilize bitmap support, font support, graphic primitives drawing etc..

Q: What about touch-screen in .NET Micro Framework?

A: At this time, you can use touch-screen layer connected via SPI or other interface and write custom handling routine for it. In the .NET Micro Framework 3.0 general touch screen support will be available.

Q: What about WiFi or BlueTooth (ZigBee) support?

A: .NET Micro Framework has support for sockets, so if you have some particular piece of hardware which is enabled for WiFi you can interface it and use it. Native support for WiFi will be available in version 3.0, including security. BlueTooth or ZigBee can be connected via serial port. Check BlueSmirf from SparkFun and XBee from Digi.

Q: Is there support for EIB, AZI or 123, ABC, XYZ bus?

A: .NET Micro Framework supports standard serial buses, which usually comes with hosting CPU. It means I2C, SPI or CAN (1-Wire is coming). Support for other buses has to be done by porter (hardware manufacturer) or can be written in managed code if the speed will be sufficient. Remember, that there are plenty of different buses on the market, some of them are proprietary, some of them needs special licensing, some of them needs special hardware requirements. It’s almost impossible to cover them all by Microsoft.

Q: Is there support for Compact SQL Server?

A: No, .NET Micro Framework targets very tiny applications where compact SQL server will not fit. However, you can place your database logic on the back-end server and expose it via web-service or other network protocol. .NET Micro Framework supports TCP/IP sockets and HTTP protocol (including web-services). Mechanisms to store data in persistent memory exists in .NET Micro Framework.

Q: What do I need to start with .NET Micro Framework?

A: First thing you need is the Visual Studio, at this time Visual Studio 2005 Standard, Proffesional or Team Suite. Then you need the SDK for .NET Micro Framework which can be download for free. These two things should be enough for first introduction, because SDK contains generic device emulator. However, .NET Micro Framework is for embedded development so some hardware platform is strongly recommended. For list of available hardware look at the partner page.

Q: Which development kit is the best to start with .NET Micro Framework?

A: This is difficult question to answer - it depends what you exactly looking for. For general introduction to .NET Micro Framework I can recommend the Tahoe platform based on Meridian CPU. This board has color QVGA LCD display, buttons, serial ports, SPI, I2C and everything is wired-out to headers for easy prototyping. This makes it perfect for interfacing other hardware in the development stage of projects. Disadvantge of this platform is the fact that ethernet needs to be connected via SPI interface, which makes it a bit complicated if you need to use SPI interface for other things. The GHI Embedded Master module and it’s development platform is very similar to Meridian and Tahoe and has more interfaces directly on CPU: 4x Serial port, Ethernet, SPI, I2C, CAN and USB. This makes it very powerful platform for complex applications, including support for FAT file-system and USB keyboard/mouse/joystick/printer/mass storage devices. The Embedded Master is shaped better for surface mounting and easier soldering than Meridian CPU. However, weakness of this perfect platform is the development board. It comes with LCD and some peripherals wired out, but possibilities for prototyping and interfacing other hardware (based on GPIO, I2C, SPI) is a slightly more complicated.

If you are looking for something cheaper and something that can be immediately used in you project with minimum of soldering - then go for EDK from SJJ Micro. Their cheapest board is for 165 USD and it’s a very small board with many GPIOs (general purpose input/output). Everything is interfaced via standard 2.54 mm (1 inch) header for easy non-soldering connections. This board has no display, but you can use any SPI or serial LCD. EDK comes with brilliant manual, that gives you introduction to embedded systems and .NET Micro Framework.

In case that nothing above described is what you looking for. Then you probably looking for Digi Connect ME module, which is very small module with ethernet connection, serial ports and five GPIOs. I personally love this module, because it’s the smallest, cheapest (40 USD) and easy to use module on the market (at this time). Development board with prototyping area is also available.

Q: What languages can I use with .NET Micro Framework?

A: Only C# is fully supported, now. Since everything is JITed from MSIL, almost every .NET language can be used. Visual Basic has been tested, but only C# is fully integrated to Visual Studio to be used with .NET Micro Framework.

Q: Why only Visual Studio 2005 is supported? What about 2008?

A: Integrating .NET Micro Framework tools into Visual Studio is not an easy process. Visual Studio 2008 will be supported in next major release, which is .NET Micro Framework 3.0.

Q: When version 3.0 will be public?

A: First public beta should be available in summer. Release is scheduled to end of this year (2008). However, remember that it takes additional time to hardware manufacturers for port version 3.0 to their hardware.

Q: How can I make a feature selection in .NET Micro Framework?

A: Micro Framework has nothing like platform builder in Windows CE. You can not make features selection. Only porters (hardware manufacturers) has this option. With version 3.0 the feature selection for porter is made very easy using the wizard GUI.

Q: How can I make my own hardware with .NET Micro Framework?

A: If for some special reason you don’t want to use existing hardware for .NET Micro Framework, then you can port Micro Framework on your specific hardware. Remember that this will need you to license the porting kit and be good enough and familiar with hardware platform to successfully build the port. If you don’t have some special reason, than it’s recommended to go with existing platforms. Hardware manufactures are usually open to do some particular changes in their platforms to fit your needs.

Q: How about licensing?

A: In case that you purchase existing hardware platform, then you are already covered by license and don’t need to worry. All licensing stuff goes after the hardware manufacturer, who has deal with Microsoft. Remember that you will still need the license for Visual Studio.

Q: How about licensing of porting kit?

A: Porting kit licensing is not yet stabilized process. Generally you will need to license the porting kit and then pay some small distribution fee for every hardware unit. Price for unit is considered smaller than for Windows CE.