Join Now Join Now Home

Post 5 Part 2

apd_steps600.jpg

Let's begin this SPARK post with a recap. I began this series with the notion that I would use a simple project, a smart home computer system, to explore a software development tool that was new to me. The first project was simple in the sense that I had a well-defined task: acquire several digital and analog signals and display information to a user. Through that simple task, I could explore the features and development process for Windows Embedded CE 6.0. When I started this project, I had not used Windows Embedded CE before, but I had used several other real-time operating systems to implement high reliability devices. These development tools are intricate and sophisticated. I've seen very experienced users struggle while implementing new projects, and struggled through some myself.

There is a fascinating world of very high reliability systems that are part of our everyday lives. Many of these systems are driven by software. As a biomedical engineer, I have a real appreciation for what software failure means for a pacemaker, defibrillator, or infusion pump.
 

 

windows_ce.jpg

Given the sophistication of RTOSs, I was definitely intrigued when asked to explore Windows Embedded CE 6.0 R2 for the maker community. I have a long list of unfinished projects that have stalled because I don't have access to the right tools, and a longer list of projects that live only as ideas on paper, waiting for some future capability to arrive. A feature-rich RTOS could really accelerate some of those project, and I was impressed by the list of features available with Windows Embedded CE, and the fact that the source code is available to developers. In addition to a great set of core operating system components, the communication, user interface, and multimedia components of Windows Embedded CE looked comprehensive. The speech library totally piqued my interest as well. I was definitely thinking about which unfinished projects would be most fun to try my new tools with. Of course, there is the history of Windows Embedded CE to deal with. The tools have made successful inroads into the professional developer community, but I didn't know anyone who used them for their own projects who could help me out. Even Microsoft's developer website gives the impression that the tools are "for professional use only":
"Windows Embedded CE 6.0 is designed specifically for the professional embedded developer who needs software to bring a device to market. CE 6.0 helps a device maker be successful by providing a hard real-time, small-footprint operating system (OS) with a redesigned kernel and embedded-specific development tools.

Windows Embedded CE is a portfolio of tools and OS features that interoperates with industry standards and Microsoft desktop and server technologies. Windows Embedded CE enhances the ability of a developer to innovate and create differentiated devices for a broad range of device categories with rapid time to market and reduced development costs.

CE 6.0 Highlights
CE 6.0 provides hundreds of OS features, source code access, and compatibility with a variety of processor architectures. The kernel for CE 6.0 has been redesigned. A device running CE 6.0 can run a larger number of more-complex applications than previous versions of the OS. CE 6.0 can run as many as 32,000 simultaneous processes, each with 2 GB of virtual memory space. The functionality of an application is generally unaffected by changes to the kernel."
My expectations for DIY tools include being very intuitive and easy to use out of the box. It's OK and even preferable to me when development tools have many layers of increasing sophistication. I'm happy with tools if I can get "Hello World" running in five minutes, but have access to powerful libraries and drivers, understanding that it takes time to learn how to use these extensions. As I prepared my earlier posts discussing aspects of the smart home automation and monitoring system project, I was also doing my homework to learn about Windows Embedded CE. Microsoft has prepared an online classroom materials with slides and videos to familiarize the developer with Windows Embedded CE. I found the materials useful as a general overview of the product. I did not, however, find what I was looking for: a five minute "quick start" tutorial. Again, I've worked with RTOSs and respect the sophistication of such products. I also believe that a DIY embedded software development tool must be accessible, in that I can download the tool and get a simple project running in a weekend.

I realized that I had a head-start on most DIY-ers since I read through much of the documentation and watched many hours of videos on Windows Embedded CE, so I decided to build my system from scratch, starting with downloading and installing the Visual Studio 2005 trial through writing and running my application. This is a process that Microsoft definitely needs to improve. After waiting several hours for a 3GB Visual Studio disk image to download, I got errors when I tried to install it using a virtual ISO mounting tool. I downloaded the disk image again, just to be sure, and got the same installation error even after I burned the image to DVD as a .img or .iso image. Microsoft then shipped me the DVDs that come with a SPARK kit, and I was able to successfully install Visual Studio 2005. I immediately found myself 16 files away from completing the installation with all the patches and updates. This process took days, not hours. When I was done, I had installed nearly 18GB of files onto my computer, and had to move home movies and music files to a backup drive to make room for all of the downloads and installed files. I really think a download manager would substantially improve this process.

Once the file installation was complete, I could get back to the "Hello World" program. While the Windows Embedded CE classroom has extensive tutorials, there is no quick-start guide. The "getting started" links take me to a page to download the tools. After going through several hours of video tutorial, I found out how to connect my SPARK kit to my development computer. My next task is to get a demo application running, and then work through a "Hello World" program.

So far, I like the SPARK hardware and the Windows Embedded CE tools have a very intriguing feature list. Microsoft has an opportunity to make this a tool for the masses, but it has taken me much more than a weekend to get started with them. Now that I have gotten started, it's time to take the tools out for a spin!

Stay tuned...

More:

Commentary

Text Comments (0)


2010 Challenge
NOW OPEN!
Round 1 in:
  Days
  Hours
  Minutes
  Seconds


Key Dates
  • April 27
    embeddedSPARK
    2010 SUMMER
    Challenge Opens
  • June 15
    R1 Closes
  • June 22
    R1 Winners
    Announced
  • August 31
    R2 Closes
  • September 7
    Winners/Finalists
    Announced
  • September 21
    Three Finalists Compete
    LIVE on Stage at
    ESC in Boston
This site hosted for Microsoft by Smooth Fusion, Inc.