Windows Embedded 8 Standard

Windows Embedded 8 Standard, Windows Embedded 8 Pro, and Windows Embedded 8 Industry have all now reached General Availability.  Direct Insight can now ship devices built on these platforms to our customers to power the next generation of intelligent systems.

As part of the launch, Microsoft has created a Windows Embedded 8 launch portal that will serve as the primary resource for customers to learn how they can transform their business with Intelligent Systems and Windows Embedded 8.  The portal hosts a series of videos and content that will focus Windows Embedded 8 solutions for manufacturing, retail, and healthcare industries.

If you haven’t had an opportunity to evaluate how Windows 8 technologies fit on your device roadmap, you can do so by downloading Windows Embedded 8 Standard or the Windows Embedded 8 Industry here.

Any questions about a Windows Embedded project please don’t hesitate to ask us.

What next for Windows CE / Compact 7?

Microsoft has begun to release details of the next version of Windows CE, planned for Q1 2013.

A year ago, there was a certain amount of concern for the future of Windows CE, stemming from the dual announcements of Windows 8 on ARM, and a Windows Phone 8 built on the same Windows-on-ARM codebase replacing a Windows Phone 7 historically built on CE.

However, it soon became apparent that in the short and medium term, such endeavours would not produce a replacement for Windows CE, and a roadmap for Windows CE which is far from superficial has emerged. A significant investment in Microsoft’s small-footprint embedded OS is, it seems, being made.

The first details relate to an update to .NET Compact Framework from version 3.5 to 3.9, and integration with Visual Studio 2012.  Microsoft has released a video on this topic.

Up to now, Windows CE users have had to put up with using a version of Visual Studio at least one or two revisions behind current. Compact 7 users are limited to Visual Studio 2008.

VS2012 offers C++ users significant advantages, including support for the current version of C++, known as C++11, which includes many important new language features such as range-based FOR loops. Code management via Team Foundation Server and improvements to Solution Explorer can make a big difference to productivity. See Microsoft’s What’s New in VS2012  page. Other good stuff includes Standard Template library improvements, and auto-parallisation and vectorisating, which could provide big performance enhancements with the latest multicore ARM devices.

The update gives us .NET Compact Framework 3.9, which promises smaller images and is said to be multicore-safe (Compact 7 already claims support for multicore devices).

The new capabilities will no doubt be delivered as an update to VS2012 for those on an MSDN Subscription which covers embedded tools.

 

 

 

 

 

Choosing the right ARM based System on Module (SOM)

Introduction

I am regularly in the situation where the choice of processor, module and thus vendor selection is still a customer question.  This should not be a great surprise as there are so many variants for consideration.

So I’ll try and help with my thought process and highlight the major considerations when making this selection.

Target Usage

Obviously the overall technical decision comes from the functional requirements, but also for what is it going to be used for?

Most development projects are not fixed to a single function.  More and more companies require the use of the platform as the foundation for the product range going forward. It then becomes a fine balance of processor power, functional components and cost.

With software execution and data processing normally at the core of the whole system, choice is affected by architecture and instruction set (ARM9, Cortex-A8 or Cortex-A9). Also how fast the ARM core runs, and compiler optimization availability in the software build (Linux, Android, Windows CE 6.0 and Compact 7).

So to select from this range you should consider the need to process the data onboard or transfer data at high speed. If neither of these is a priority then a lower specification core and speed of module could be selected.

The other main consideration is the graphics requirement. If you simply want a 2D/flat user interface without animations it can make a huge difference to the selection, as a standard LCD controller would be sufficient. Otherwise you will need a Graphics Processing Unit (GPU) which generally only come fitted in the higher end processor designs e.g. Cortex-Ax series.

Once you have cleared these two questions it really narrows the choice and allows you to focus on the more functional areas of the selection (USB, Ethernet, SPI, I2C etc.)

Longevity

Most vertical market product business is based on the ability to supply the design for many years, with 5 to 10 generally accepted. Plus, in this market the testing and maybe product certification process can  be worth more than its development, so consistency of supply is paramount.

To answer this and select the right SOM you should ask and look for history of supply, and if required an additional statement of longevity. The SOM manufacturer’s selection of its silicon vendors is a main parameter in this, with specifically Freescale and Texas Instrument being the leading specialists quoting 10 to 15 years for their parts.

Support

Even though this is not a physical item delivered with the SOM. I believe it is an important part of the selection process. So things to look for when making your selection are:-

Can you speak with someone rather than just email? Much information and help can be dynamically supplied if you can work through your thoughts with an engineer.

Does the vendor supply ongoing updates and help? If the software and BSP is truly production ready there will be updates and not just the Silicon Vendor software download from day one.

Can you get help for addition tasks and review your design? The supplier should know more about the product and be able to catch any issue early avoiding design re-spin. So make sure this level of engagement is available (free schematic review etc.)

Conclusion

If all the above sections are positively addressed then you will have an enhanced experience and ultimately a successful product using a SOM.

 

>> Nigel Goodyear, Embedded Platform Architect

Windows Embedded blog

Last month Microsoft launched “Approaching Embedded Intelligently,” a new blog aimed at providing customers, partners and the broad intelligent systems community with a centralised source of information and platform for discussion.

The blog represents collaboration spanning marketing, engineering and the support of other teams throughout the Microsoft groups. Visit the blog to stay informed about Windows Embedded.

Embedded PC or ARM-based board?

ARM-based platforms are a foreign proposition to most users of embedded PC boards. But it’s clear that in terms of performance at least, ARM solutions are now comparable with x86. So what are the other key considerations which might lead an embedded PC user to cross the divide?

The above is the first paragraph of my blog post on designspark.com, please read on…

Why develop a smart, connected device with Windows CE / Compact 7?

A lot of people contact us looking for basic information about Windows CE 6.0 and Compact 7, probably because we are a Windows Embedded Gold Partner – maybe we are more approachable than Microsoft? Or perhaps it’s because we don’t just do Microsoft. Anyway, if you’re thinking about Windows CE, but undecided, hopefully this post will help.

Windows Embedded Compact 7 and its still-popular predecessor Windows Embedded CE 6.0 offer a number of key advantages, especially for developers looking to quickly develop a product with a touch screen, or to add wired and/or wireless connectivity. This article assumes no prior knowledge of Windows CE, and walks through the typical process step by step, from OS selection to hardware choice to development and deployment.

OS Selection Matters

Obviously different project teams will have their own unique reasons for choosing Windows CE or Compact 7 (the products are officially called Windows Embedded CE 6.0 and Windows Embedded Compact 7, but we’ll abbreviate to Windows CE to refer to the product family, or CE 6.0 or Compact 7 to refer to the two currently popular versions). Typically, the technologies competing for attention will be Linux and increasingly Android.

There is no right or wrong choice between these operating systems, and it’s important to enter the decision process with an open mind. Each offers different strengths and weaknesses in respect to a particular project. In case you heard otherwise, Windows CE is reliable, inexpensive and the source is available. But it is a proprietary system and will lead you to a constrained and predictable end point without exposing you to the huge choice of open-source stuff which can be leveraged under Linux, which may be a good or bad thing depending on your situation and skill-set. Often the application development environment or GUI methodology, as will the existing capabilities of the engineering team will quite rightly dictate OS choice. Other times, it’s not so cut-and-dried.

A good project manager will visualize the path to a successful, timely outcome, and attempt to predict and minimize risks along the way. There are sometimes good reasons for choosing Linux over Windows CE, but ideology and prejudice should never be amongst them. Here are some advantages of working with Windows CE:

-       Commercial out-of-the-box tools and support

-       Stable, reliable releases only changing every couple of years, and supported for 10 years

-       IP liability risk is fully underwritten

-       Real-time kernel functionality built-in

-       Good power-management framework for battery powered devices (often overlooked)

-       Good, included, high-level user-interface framework (particularly in Compact 7)

-       Reasonable pricing (especially for CE 6.0)

-       Compatible with familiar desktop .NET coding environment

In a nutshell, the promise of getting a development kit, loading up the tools, and having something that looks pretty application-ready running out-of-the-box, with the potential to develop a product as quickly as you can spin a board and code an application is the biggest attraction. Unless you are a Linux guru, Windows CE is a time-to-market winner.

Having made a preliminary decision to go with Windows CE, the next step is to get hold of the free 180-day evaluation version of the tools, and to start researching hardware.

Choosing the hardware

Windows CE, whether CE 6.0 or Compact 7, will run on both ARM and x86 based hardware. However, in most of our projects ARM hardware is chosen over x86 for its low-power, and low cost. CE 6.0 cannot easily make use of the enhanced instruction set of ARM-Cortex A series devices, including floating point, and so when looking towards these high-end devices with an eye to performance, it is as well to think about Compact 7. The highest-performing devices at the time of writing are ARM Cortex-A9 multicore parts, and Compact 7 also has multiprocessing capability to allow these to be used.

At the low-end, the minimum requirement is usually ARM9, which looking along the ARM roadmap was the first device family to incorporate an MMU, which is a basic requirement for a virtual memory addressing OS such as Windows CE (or Linux/Android). ARM9 system-on-chip micros are available with a full range of peripherals including USB, SD, Ethernet, UART, I2C, Audio,  CAN, SPI etc. – additional connectivity such as 3G modem, Bluetooth, GPS is easily added. Some (such as Freescale’s i.MX28) are available with longevity guarantees of up to 15 years. ARM9 devices can offer surprisingly good performance, and so there should be specific reasons for choosing high-end micros. The main features which are mostly exclusive to ARM Cortex-A8 or –A9 devices are:

-       On chip graphics accelerators

-       On-chip hardware video codecs

-       Floating point

-       Support for large displays (1024 x 768 and above)

-       Multicore

Remember that RAM requirement will also increase with complexity. A straightforward CE 6.0 project on ARM9 will happily get by with 64MB RAM or even less, while a demanding Compact 7 project on Cortex-A8, running Silverlight may need 512MB.

Board, module or integrated solution?

If your products will only ever be made in a quantity of 100s, your board will look a lot different when set alongside one designed to be made in 100s of thousands. The greater the production quantity, the more NRE (non-recurring engineering) charge that can be amortized over the production, and the less re-use of existing design will be needed.

If you are planning for a few dozen units, your starting point will naturally be to look far and wide for a ready-made board which is close enough in functionality to your requirement. Perhaps something already matched to a touch-screen is available?

If your project will run to hundreds or thousands, then using a standard production-ready module but spinning a custom baseboard to include the right connectors, power supply etc, will cut your development time and cost by a factor of 5 to 10 compared with full-custom. This type of solution can also come with the biggest task – porting the OS to a production-tested standard – already done.

If you are making 10s of thousands of units or more, then the cost incurred to develop a fully integrated board may be justified, providing the timescales also make sense. This generally involves starting from a silicon vendor reference design, but accepting that a lot of modification to the hardware design and in particular to the BSP will be needed to reach a production-ready platform.

How do I get started with the actual development?

First off, while developing with Windows CE can be much easier (from a standing start) than developing with Linux, do bear in mind that attending a training course will significantly accelerate your progress. Microsoft has an official program of Windows Embedded training courses, which are implemented by qualified partners such as Direct Insight.

Having chosen your hardware, you will be able to purchase a system already running Windows CE, whether this is a development board, a kit based around a production-ready module, or a reference board (such as TI’s Beagleboard or Freescale’s i.MX53 QuickStart). Bear in mind that a reference board, although cheap, will not come with a production quality BSP, and will not be easy to turn into manufacturable solution. Often, the services of a Systems Integrator are required to complete this task – particularly the creation of a finished BSP.

If you are using a production-ready module or other ready-made board, there will be minimal work to do at the level of the Board Support Package, and apart from some configuration, the platform is application-ready. In the case of a module the hardware developer will be set to work to respin the supplied baseboard schematics to implement a different set of connectors and physical layout, but this will not usually impact on the OS implementation.

The main areas where configuration is required when working with a production-ready module are:

-       Choice of screen type, size and resolution

-       Choice of BSP components according to chosen interfaces and features

-       Choice of OS functionality and components

This is largely accomplished from Platform Builder.

I have a development kit and have installed the eval. tools, where do I start?

When you power up the kit, it will boot a pre-configured Windows CE image, and so a familiar screen image should appear on the supplied touch-screen display. The kit is connected to the host via Ethernet, and RS-232.

The kit will ship with a binary and/or source BSP, and this should be extracted to the prescribed host directory, such as C:\WINCE700\PLATFORM . There should also be a sample Platform Builder Workspace which will allow you to recreate and adjust the OS image supplied with the kit…

But it’s not the purpose of this article to teach you Windows CE. If you have got this far, you should be thinking of attending windows CE training, and/or reading some books, such as Pavlov/Belevsky’s “Windows Embedded CE 6.0 Fundamentals” or Phung/Jones/Joubert’s “Professional Windows Embedded Compact 7″.

If you’re using a reference board, production hardware must be designed and prototyped, and then a production-quality BSP is developed to complete the finished application-ready platform.

If you are working with a production ready system-on-module (or “SOM”), you will have the schematics of the development system and a design guide to help your hardware designer to create a custom baseboard for your project. But because this will be functionally identical with the development baseboard, and will run an image based on the same BSP which is itself already production-ready, you can usually develop and test your application immediately on the development system.

When prototypes arrive, you will create a release build of your OS image for testing. When it is time for production deployment, you will need a purchased copy of the Microsoft tools to generate the licensed image, and a license sticker for each unit to be commercially shipped.

A Word about Support

Microsoft has a comprehensive ecosystem of Partners and Authorized Distributors, including Gold Partners like Direct Insight, who provide the required support, services and training to end-users, and have access to all required Microsoft resources. At first sight you may ask why Microsoft do not provide all that to the end-user themselves. But when you think about it, not doing so allows them to be completely focused on the product, and also means that even though your project might be trivial in license revenue terms (at $3 a licence, your volumes have to be quite high to be significant), by partnering with someone who is providing you with hardware, services, or training and is therefore suitably invested in your success, you can ensure help is there when you need it.

Do take a look at our Windows CE page to see how we can help your project. Feel free to email (info@) or call +44 1295 768800 for an informal chat.

Windows Embedded Compact 7 future

A note to highlight that Microsoft’s Windows CE (Compact) operating system has not been forgotten in the wake of Windows 8 for ARM.

Microsoft has announced plans for several Windows Embedded Compact 7 updates, one planned for the fourth quarter of this year (Q4CY11) and one for the second half of 2012 (2HCY12).

According to the EE Times report. Next year’s version will get an updated kernel, faster file system, and broader hardware support.

I think it’s also worth highlighting that one of the main complaints about Compact 7 was also referenced which is the lack of application development environment support for Microsoft Visual Studio 2010. But at present there are no details of any of the changes confirmed.

Compact 7 Update 3 now available

The Microsoft Embedded Compact 7 team have released the third update to Windows Embedded Compact 7 (previously named Windows CE).

You can get the update via WEDU in your Platform Builder or it can downloaded from here.

This update provides new tools, application updates and bug fixes for Windows Embedded Compact 7:

  • The Compact Test Kit (CTK) has two new tools: The Compact Automation Tool Solution (CATS) for automating test scenarios on Compact 7 devices and The Compact Stress Tool for automating stress tests on Compact 7 devices are included with this update.
  • Also included is new Silverlight for Windows Embedded (SWE) sample code for the Compact 7 Media Player. Previously provided only in binary format, the Media Player sample code is now included in source code and a previous dependency on the compositor in the sample code has been removed, improving performance across all hardware configurations.
  • Finally the update also includes cumulative bug fixes for the Windows Embedded Compact 7 operating system, Platform Builder tools and the Compact Test Kit.

The MSDN version of the release note can be found here.
A Documentation update has been released to MSDN to coincide with this release.
Plus you may find this link to all previous Compact 7 downloads and updates useful here

Hope you find this information useful and any feedback please let us know.

Visual Studio 2005 with Windows Embedded CE6 R3 Device – .NET CF 2.0/3.5 compatibility problems

Windows Embedded CE6 R3 supports both .NET CF 2.0 and 3.5. Great you think, but Visual Studio 2005 debugger only supports .NET CF 2.0. This can lead to some very ambiguous behavior when trying to debug .NET CF applications on a CE6 R3 device.

Picture the following scenario. You have a Windows CE6 R3 device which includes .NET CF 3.5 runtime (CF 3.5 is backwards compatible with 2.0), but does not include the CAB installer, in the installed OS image. You develop a managed code application with Visual Studio 2005 and you build and deploy. Alas the deployment fails and you get an error something like:

—— Build started: Project: HelloWorld, Configuration: Debug Any CPU ——
HelloWorld -> C:\Swift\Initialp\HelloWorld\HelloWorld\bin\Debug\HelloWorld.exe
—— Deploy started: Project: HelloWorld, Configuration: Debug Any CPU ——
Deploying ‘C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\windowsce\wce500\armv4i\NETCFV2.wce5.armv4i.cab’
The system cannot find the file specified.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========

Firstly the deployment error “The system cannot find the file specified” is a little misleading. This is not referring to the CAB file for .NET CF2 (NETCFV2.wce5.armv4i.cab) but to the CAB installer utility (wceload.exe), which it is expecting to find on the device. Obviously after deploying the .NET CF2 runtime to the device, the device needs to extract and install it, and it uses the CAB installer to do this (you also need .NET CF2 SP2 because you will get further additional errors without, see previous post Visual Studio 2005 deploy error after downloading a managed code application to a Windows CE6 R3 device ). The problem is that the OS on the device does not include the CAB installer. If you have the CE6 BSP for the device you could of course re-build the OS image and add the CAB installer from the catalog and that would fix the problem. Alternatively as a “hack” you could simply copy the CAB installer executable to the Windows directory of the device via ActiveSync before deploying.

However in theory this should not be necessary because the image on the device actually already contains the .NET CF3.5 run-time. In Visual Studio 2005 you can disable deployment of the .NET CF2 (Project -> Properties -> Devices), by de-selecting the option:

Since .NET CF3.5 is backwards compatible with CF2.0, this should do the trick, right? Unfortunately not. Although you will now successfully deploy the application, the Visual Studio 2005 debugger will fail to start it. This is because the debugger does not support CF3.5, only CF2.0. Of course if you do not want to actually debug the application you could simply copy the application executable to the device via ActiveSync and run it directly on the device. The better solution would be to install Visual Studio 2008 which does support .NET CF3.5 debugging.

So in summary the options are (in order of least effort):

1. Leave everything as is and copy the wceload.exe CAB installer (via ActiveSync) to the Windows directory of the device before deployment. You you may need to repeat this each time you power cycle the device since the Windows directory is often not persistent. This will give you full debugging capability. If you do not need debugging capability, you could simply copy the application itself to the device.

2. Install Visual Studio 2008 (for application development only, you will still need Visual Studio 2005 with PB for OS development, fortunately they can co-exist). Remember to disable deployment of the .NET CF in the Properties.

3. Re-build the CE6 image and include the CAB installer or exclude .NET CF3.5 and include .NET CF2.0. Remember you will ultimately need to do this anyway if you wish to include you driver in the image.

Whilst on the subject of .NET CF deployment, there is a good article on MSDN about creating a CAB installer for end users:

Deploying .NET Compact Framework 2.0 Applications with .cab and .msi Files

Will

 

Windows Embedded Compact 7

Direct Insight was recently involved in running a Windows Embedded Compact 7 event at the UK Microsoft Campus. From which an article has been written including information and quotes from me and colleagues.

You can find the article here at MTEMAG web site.

Please have a read and let us know what you think.

> Nigel