Exploring the wonderful world of technology and software development   RSS 2.0
 Monday, May 26, 2008

As I mentioned in my previous post, I am building a prototype of a cool new idea for a product. This product will be an embedded system that controls several devices.

I know that the resulting device is going to need to be small, consume relatively little power, cost-effective and yet must process large amounts of continually varying data. It's also going to need to support a variety of devices, most of which can be connected via USB. It'll also need to support WiFi and possibly cellular Internet connectivity.

The requirements above pretty much exclude the really low-end 8-bit and even 16-bit embedded microcontrollers due to the data processing requirements that the device will require. So, I'm going to be using a 32-bit CPU of some kind.

Now, whilst the resulting product may well end up using a power efficient ARM (or similar) core, along with various ancillary support (USB, WiFi, etc), the prototype device doesn't need to be quite so stringent. In fact, it'd be quite useful to have a little more processing power, sockets, etc., available during prototype so that I can try new things out before finalizing any productization plans.

So, do I use an emulator or a real device? The problem with the emulator route is that I would only be able to test the prototype out from my desk at home. This won't work for me, so I decided to explore how I might go about building a real prototype.

imageWhen I began investigating prototype hardware, I quickly learned that that there are now a rapidly growing number of hobbyist computing devices that will fit my needs nicely. Products like Via's Artigo Pico-ITX kit provide support for pretty much everything I will need to get this sucker running:

  • Low power x86 CPU
  • Up to 1GB RAM
  • HDD Interfaces (PATA & SATA) for persistent storage
  • SVGA (the final product won't need video out, but it'll be useful while prototyping)
  • 4 x USB sockets
  • 1 x 10/100mbps network socket
  • Only costs around $350 (inc tax) from Fry's!

Okay, so if I know what kind of tin I'm working with, what about the software?

When it comes to prototyping this device, I need to focus on getting the thing built as quickly and as easily as possible. Therefore, I won't be building my own Real Time Operating System from scratch - there's just too much that would need to be done: Memory manager, CPU scheduler, USB IO, Storage IO, TCP/IP v4 & v6 stacks, WiFi and wired networking, etc.

So which RTOS do I use? Symbian? QNX? VxWorks? Linux? Windows Embedded CE?

I am a Microsoft developer. I have been for years. Back when DOS was around I was generally dividing my time between hand-coded assembly and C on UNIX, but ever since working in commercial software development, I've been a Windows developer: first in C/C++, then In Delphi, now in C#.

When looking into the available RTOS options, Windows Embedded CE just made perfect sense to me: It's features are very impressive - particularly for Windows CE 6.0. I'm already very familiar with most of it's API, it's tools support is pretty stellar and is very cost effective. It also supports .NET Compact framework and .NET Micro Framework which may also help shorten time to completion. Via also ship a free Board Support Package (BSP) for the Artigo for Windows CE 6.0.

So there, in a nutshell was my decision making process for how to build the prototype: I am going to use Via's Artigo Pico-ITX kit running Windows Embedded CE, Visual Studio 2005 (for the OS & drivers etc.) & Visual Studio 2008 (for the apps).IMG_1315

Next: Building the Artigo! Stay tuned.

Posted: Monday, May 26, 2008 7:41:56 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] -
Embedded Development | Sentinel

Comments are closed.
All content (unless otherwise specified) is © Copyright 2008 Richard Turner.