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, 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 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 licence the porting kit and then pay some small
distribution fee from every hardware unit. Price for unit is considered
smaller than for Windows CE.