TechEd 2008 .NET Micro Framework FAQ
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 operatingsystem. It is bootable CLR which runs on very tiny processors withoutMMU (memory management unit). It means processors that can not hostoperating 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 orWindows Mobile, while .NET Micro Framework don't need operating systemat all. See previous question.
Q: What type of processors .NET Miro Framework supports?
A: At this time only ARM7, ARM9 and Blackfin are supported. Familyof supported processors will grow in the future. Remember, that yourapplication is written in C#, so you don't needto worry about hardware specific features of the processor, sinceeverything is exposed into managed code. Applications are very easilyportable 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 andneeds 128Kb RAM to run. Consider, that this is for "pure" .NET MicroFramework, 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 chipcomputer which has small RAM but a lot of Flash memory, right? RAM isnecessary for .NET Micro Framework. Microsoft is targeting 90K RAMfootprint.
Q: Is .NET Micro Framework new version of Microsoft Robotics Studio?
A: No, .NET Micro Framework and Microsoft Robotics Studio (MSRS) aretwo different efforts, which are not competing or going to replace eachother. MSRS is the advanced environment to control robots and simulatesreal-life environment for robots, while .NET Micro Framework is thedevelopment framework for tiny embedded applications. Theseapplications may include robots as well as home automation, diagnosticssystems and many others...
Q: Can .NET Micro Framework operate with Microsoft Robotics Studio?
A: Yes and No. Since .NET Micro Framework doesn't support genericsit can not be directly connected to MSRS. However, you can always builddriver in MSRS for your .NET Micro Framework robot, that will be hostedin 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 isneeded.
Q: Is the whole .NET Micro Framework deployed or just the application?
A: Just the compiled application is deployed to the CPU. .NET MicroFramework 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 MicroFramework on existing solution. Windows CE and .NET Micro Framework hasdifferent targets, even if there might subset of applications whereboth technologies will serve well.
Q: Are there some capabilities for graphic UI?
A: Yes, .NET Micro Framework has support for user interface based onWPF (Windows Presentation Foundation) object model. You can usewindowed model for use-cases as well as utilize bitmap support, fontsupport, 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 orother interface and write custom handling routine for it. In the .NETMicro 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 someparticular piece of hardware which is enabled for WiFi you caninterface it and use it. Native support for WiFi will be available inversion 3.0, including security.BlueTooth or ZigBee can be connected via serial port. CheckBlueSmirf from SparkFunandXBee from Digi.
Q: Is there support for EIB, AZI or 123, ABC, XYZ bus?
A: .NET Micro Framework supports standard serial buses, which usuallycomes with hosting CPU. It means I2C, SPI or CAN (1-Wire is coming).Support for other buses has to be done by porter (hardwaremanufacturer) or can be written in managed code if the speed will besufficient.Remember, that there are plenty of different buses on the market, someof them are proprietary, some of them needs special licensing, some ofthem needs special hardware requirements. It's almost impossible tocover them all by Microsoft.
Q: Is there support for Compact SQL Server?
A: No, .NET Micro Framework targets very tiny applications wherecompact SQL server will not fit. However, you can place your databaselogic on the back-end server and expose it via web-service or othernetwork protocol. .NET Micro Frameworksupports TCP/IP sockets and HTTP protocol (including web-services).Mechanisms to store data in persistent memory exists in .NET MicroFramework.
Q: What do I need to start with .NET Micro Framework?
A: First thing you need is the Visual Studio, at this time VisualStudio 2005 Standard, Proffesional or Team Suite. Then you need the SDKfor .NET Micro Framework which can be download for free. These twothings should be enough for first introduction,because SDK contains generic device emulator. However, .NET MicroFramework is for embedded development so some hardware platform isstrongly recommended. For list of available hardware look at thepartner page.
Q: Which development kit is the best to start with .NET Micro Framework?
A: This is difficult question to answer - it depends what youexactly looking for. For general introduction to .NET Micro Framework Ican recommend theTahoe platformbased on Meridian CPU. This board has color QVGA LCD display, buttons,serial ports, SPI, I2C and everything is wired-out to headers for easyprototyping. This makes it perfect for interfacing other hardware inthe development stage of projects. Disadvantge of this platform is thefact that ethernet needs to be connected via SPI interface, which makesit a bit complicated if you need to use SPI interface for other things.
TheGHI Embedded Mastermodule and it's development platform is very similar to Meridian andTahoe and has more interfaces directly on CPU: 4x Serial port,Ethernet, SPI, I2C, CAN and USB. This makes it very powerful platformforcomplex applications, including support for FAT file-system and USBkeyboard/mouse/joystick/printer/mass storage devices. The EmbeddedMaster is shaped better for surface mounting and easier soldering thanMeridian CPU. However, weakness of this perfect platform is thedevelopment board. It comes with LCD and some peripherals wired out,but possibilities for prototyping and interfacing other hardware (basedon GPIO, I2C, SPI) is a slightly more complicated.
If you are looking for something cheaper and something that can beimmediately used in you project with minimum of soldering - then go forEDK from SJJ Micro.Their cheapest board is for 165 USD and it's a very small board withmany GPIOs (general purpose input/output). Everything is interfaced viastandard 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. EDKcomes with brilliant manual, that gives you introduction to embeddedsystems and .NET Micro Framework.
In case that nothing above described is what you looking for. Then you probably looking forDigi Connect ME module,which is very small module with ethernet connection, serial ports andfive GPIOs. I personally love this module,because it's the smallest, cheapest (40 USD) and easy to use module onthe market (at this time). Development board with prototyping area isalso available.
Q: What languages can I use with .NET Micro Framework?
A: Only C# is fully supported, now. Since everything is JITed fromMSIL, almost every .NET language can be used. Visual Basic has beentested, but only C# is fully integrated to Visual Studio to be usedwith .NET Micro Framework.
Q: Why only Visual Studio 2005 is supported? What about 2008?
A: Integrating .NET Micro Framework tools into Visual Studio is notan easy process. Visual Studio 2008 will be supported in next majorrelease, 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 isscheduled to end of this year (2008). However, remember that it takesadditional time to hardware manufacturers for port version 3.0 to theirhardware.
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, unless you are not the porter(hardware manufacturer).
Q: How can I make my own hardware with .NET Micro Framework?
A: If for some special reason you don't want to use existinghardware for .NET Micro Framework, then you can port Micro Framework onyour specific hardware. Remember that this will need you to license theporting kit and begood enough and familiar with hardware platform to successfully buildthe port. If you don't have some special reason, than it's recommendedto go with existing platforms. Hardware manufactures are usually opento 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 youare already covered by license and don't need to worry. All licensingstuff goes after the hardware manufacturer, who has deal withMicrosoft. Remember that you will stillneed the license for Visual Studio.
Q: How about licensing of porting kit?
A: Porting kit licensing is not yet stabilized process. Generallyyou will need to licence the porting kit and then pay some smalldistribution fee from every hardware unit. Price for unit is consideredsmaller than for Windows CE.