The website and beta evaluation trial version for the Rich Media Extensions library is now online at
www.innobedded.com.
Programming embedded user interfaces on micro controllers using WPF
The Rich Media Extensions are a innovative component suite that allows software developers to create graphically compelling and highly intuitive user interfaces for embedded applications that are based on the Microsoft .NET Micro Framework.
The library includes a set of complete Windows Presentation Foundation (WPF) elements and controls that are based on the existing UIElement class of the .NET Micro Framework.
But our WPF controls are:
•more complete than existing builtin WPF controls
•aligned with Desktop WPF
•usable with buttons and/or finger friendly touchable
•standard controls and new ones
•fully themeable
The ebook version is now available and can be purchased at the book`s website.
The second edition of my book is now officially done and has been shipped off to the printer.
Please find more information on the official book page from Apress and on the Amazon page.

Book Description:
The Microsoft .NET Micro Framework is a small and efficient .NET runtime environment used to run managed code on embedded devices that are too small and resource constrained to run Windows CE and the .NET Compact Framework.
As a .NET programmer of desktop and smart device applications, I have been enthusiastic for some time about programming embedded microcontrollers with everyday development tools such as Microsoft Visual Studio and C#. I have been an active beta tester and a regular contributor to the .NET Micro Framework’s forums since I saw it previewed at MEDC in 2006. My passion for this technology has motivated me to write this book for you, in which I provide all the resources you will need to program the .NET Micro Framework. Version 3 introduced a lot of significant changes, including many new features and devices, that motivated me to update this book with a second edition.
I start by introducing you to the .NET Micro Framework and tools, presenting the available devices and touring the whole base class library. After that, I teach you how to use and write managed drivers to access the hardware components, how to use secure sockets, how to use and provide web services on devices with the new Device Profile for Web Services (DPWS), and how to write applications with rich GUIs that support button, touch, and gesture input. We also explore the extensible emulator and emulator components. You will find many practical and reusable samples and tips throughout this book that you can build on to create your own projects.
Whether you are a .NET developer or an embedded developer with a background in assembler, C, or C++, I am confident that you will be impressed by the benefits that managed code and the .NET Micro Framework bring to embedded development. This book enables you to get everything you possibly can from the .NET Micro Framework, so you can write your own powerful, effective, embedded applications.
Ever dreamt of programming embedded WPF applications on micro processors?
I have created a Rich Media Extension library with my own set of complete WPF elements and controls for the .NET Micro Framework. All elements are based on the existing UIElement class.
But my WPF controls are:
-more complete than existing WPF controls
-ready-to-use
-more aligned with Desktop WPF
-usable with buttons and/or finger friendly touchable
-many standard controls and new ones
-and fully theme-able
What are the Benefits for the developer?
-By providing cool and modern themes out-of-the-box, an embedded developer needs not to care about art design and skinning. Custom themes for corporate branding are also possible.
-The controls are usable via buttons and/or a touch-display. When using a touch display, controls are usable without the need of a Stylus, but with your fingers.
-Faster time to market and reduced development costs because of a complete set of ready-to-use elements.
-Transfer your existing WPF knowledge from the PC and Web to small embedded devices.
-A further benefit is the underlying .NET Micro Framework with all its advantages.
In short: This library will significantly reduce your development effort for your user interface. Further it provides a modern and powerful UI for your devices that will increase acceptance of your device compared to competing ones.
Please find my Round 2 video entry for the Microsoft Dare To Dream Different Contest here. The library will be commercially available soon. Stay tuned on this blog.






On the Embedded World 2009 in Nuremberg/Germany I had the chance to meet other .NET Micro Framework enthusiasts (developers, community contributors and people from AUG Electronics and even Device Solutions from New Zealand).
Frank Prengl, Technical Evangelist at Microsoft took a nice photo and can find more info and pictures about the party at Michael's, Pavel's, and Frank`s sites. Looking forward to seeing you next year again.

Thomas Amberg from Oberon microsystems AG pointed me to this extremly cool article from Marc Frei and Cuno Pfister who prove with their code, that the lack of generics barely affects the undeniable elegance of LINQ.
The AUG AMI DevKit Rev. 2 is now ready. There are some new pictures available. It is capable of PoE (Power over Ethernet) and has a display with an amazing contrast and viewing angle.
The Austrian company AUG Elektronik GmbH will soon release its AUG AMI DevKit. The main features of the board include the following:
Atmel AT91SAM9261 (200 MHz)
160 kB SRAM
64 MB SDRAM
256 MB NAND Flash
3.4" OLED Display 480x272, 24 BPP RGB
resistive Touch Screen (SPI)
4 serial Ports (2 RS-232, 1 RS-485, 1 Debug RS-232)
10/100 MBit Ethernet Auto-MDI
I2C Bus
SPI Bus
battery backed Realtime Clock (I2C)
several (15) free GPIOs (more depend on use of other peripherals)
single 5 V power supply
QProx capacitive sensor keypad (16 keys, I2C)
Temperature sensor TI TMP100 on board
110 mm x 65 mm x 28 mm
102 g incl. Ethernet and 3.4" OLED display
Serial or Ethernet deploying and debugging
On board (supported by hardware) but not yet supported by software/port are Micro SD-Card Slot and USB Host / USB Device.
I know they will provide a SDK with managed drivers for all the components mentioned above and an interesting emulator for the AMI DevKit that even support the QProx capacitive sensor keypad and temperature sensor.

Had a session to indroduce the .NET Micro Framework at the first German Embedded Software Congress (ESE) today. The audience consists of traditional embedded programmers using C++, C or even assembler. The interesting question at the beginning of the presentation for me was how much people of the 40 attendees have ever heard about the .NET Micro Framework before. There where 4 out of 40 hands up, so 10% ever heard about it. The second question was how much have ever downloaded the SDK/VS and messed around with it. There was only one raised hand, but this was Frank Prengel from Microsoft. So zero percent of the traditional embedded programmers had have a practical look at the .NET Micro Framework. I think there is potential to improve this.
The very interesting question I forgot to ask: How much people will download the .NET Micro Framework SDK after my session.
Upon a customers request I figured out how to use the .NET Micro Framework Emulator on a clear machine without Visual Studio 2008 and the .NET Micro Framework SDK 3.0 installed.
Imagine a scenario where you might need to send your device application to someone for demonstration that does not have any MF hardware (because you are in the prototype phase and there is no final hardware yet) and he also is not a programmer having Visual Studio and the MF SDK installed.
The .NET Micro Framework Emulator is in generally a Winforms .NET application. Unfortuately it references one .NET 3.5 assembly, so the target machine should have at least the .NET Framework 3.5. installed. Just copying the emulator executable would not work because you have to tell the emulator via command line arguments what device assemblies it shall load. That´s what Visual Studio actually does when launching an emulator.
As an example we want to give away the NewPresentationSample application on the Microsoft Sample Emulator.
Therefore copy the files Microsoft.SPOT.CLR.dll, Microsoft.SPOT.Emulator.dll, Microsoft.SPOT.Emulator.Interface.dll, Microsoft.SPOT.Emulator.Sample.SampleEmulator.exe and Microsoft.SPOT.Emulator.Sample.SampleEmulator.exe.emulatorconfig from the Tools directoy of the MF SDK to a new separate directory. Further copy the following system assemblies from the Assemblies directory of the MF SDK to the same directory as your emulator: mscorlib.pe, Microsoft.SPOT.Hardware.pe, Microsoft.SPOT.Native.pe, Microsoft.SPOT.Graphics.pe, and Microsoft.SPOT.TinyCore.pe. Finally copy the application NewPresentation.pe. Yes you need the .pe files and not .dll files since .pe files are the MF specific assemblies derived from the dlls.
To launch the emulator with the command line arguments we need to create a batch file with the following content:
"Microsoft.SPOT.Emulator.Sample.SampleEmulator.exe" "/load:NewPresentation.pe" "/load:mscorlib.pe" "/load:Microsoft.SPOT.Native.pe" "/load:Microsoft.SPOT.Graphics.pe" "/load:Microsoft.SPOT.Hardware.pe" "/load:Microsoft.SPOT.TinyCore.pe"
Which assemblies need to be loaded you can see in the Debug Output Window of Visual Studio.
Now you can demo your device application everywhere.
(Thanks to Andreas for testing in your machine parc).
Elektor magazine aims at inspiring people to master electronics at any personal level by presenting construction projects and spotting developments in electronics and information technology. The magazine is published worldwide through subscription, news stands and bookshops. Together with its French, Dutch, Spanish and German sister magazines, and other licensed editions Elektor is on circulation in more than 50 countries with a total circulation of about 150,000 copies per month. Also: Elektor International magazine has come to America.
I wrote an article that introduces the .NET Micro Framework for that magazine. The article is announced for example in
English (.NET on a Chip)
German (.NET auf dem Chip)
French (.NET sur puces)
Espagnol (La plataforma .NET en un chip)
Dutch (.NET embedded)
Two-dimensional matrix barcodes such as QR Code or Datamatrix are spreading more and more. You can generate QR codes with the free KAYWA QR Code generator. The ZXing Decoder Online is a page that allows you to upload a barcode image to decode it. It supports
- UPC-A and UPC-E
- EAN-8 and EAN-13
- Code 39
- Code 128
- QR Code
- DataMatrix (experimental)
I thought it would be nice to decode barcode with the .NET Micro Framework. I wrote the ZXingOnlineDecoder class in the Kuehner.SPOT.Barcode namespace. The Decode method accepts the bytes of an image to decode (jpeg, bitmap, gif) and uploads it to the ZXing online decoder page and returns the decoded bytes.
The attached library and demo application is also a good sample for submitting web form data to a web page via HTTP (thanks to Michael Schwarz for pointing that Fiddler thing).
It might also be possible to grap an image from the C328R Jpeg Camera with managed drivers as described on Pavel Banskys blog here and to decode it with my class.
You should have a look at Elze Kool’s experiences with the Micro Framework at www.microframework.nl. Elze shares some cool .NET Micro Framework projects written on the GHI Embedded Master Board:
- Simple Webserver
- QR Code Generator
- MP3 Shoutcast Client
- RSS and Weather Application
- TouchScreen Class
- nRF24L01 Tranciever Class
- Wii NumChuck Class
Very cool Elze.
On thursday 9th of October I will introduce the .NET Micro Framework in a session at the .NET Usergroup in Karlsruhe. Markus Pietrek from emtrion will also be there to show their hardware and ask your questions. (The session is held in German language).
If you are reading my blog, you are probably interessted in the .NET Micro Framework. There are more great blogs out there. If you do not want to miss anything you can subscibe to the aggregated feed of all .NET Micro Framework related blogs.
More Posts
Next page »