Posted By Colin Murphy
Technical Product Manager
What a great question! Just getting started is one of the hardest steps in a device-development scenario because there are just too many questions to answer all at once. I like to break it down into more manageable steps. If you’re just starting out developing with Windows Embedded, here are some foundational steps you can go through for a small-footprint (Compact) device.
Step 1: What are we trying to accomplish? Before even thinking about hardware, think about the product you want to build. Don’t worry about the chip or the power consumption yet. Focus on the device and not dealing with the OS, device drivers, lawyers and such. Start with the application. Extract the feature set away from any decision regarding hardware or OS. Define your look, feel and function. In software engineering terms, consider this a design specification or even a functional specification, and it will drive your decision-making process in later steps.
Step 2: What hardware meets my needs? Now that you have your design and functionality defined, you can build a feature checklist to map to hardware options you have available. Don’t forget to also research the availability of the hardware and make sure it meets your timeframe. Devices have a lifecycle that is very different from your average PC, so if your product ship date does slip, you are losing valuable time that your device could be available to its target market. What OS meets my needs? That same feature checklist applies to which OS you are going to choose. Software development time also has a cost, so picking hardware that comes with an associated OS and drivers can get your device to market faster and give you the luxury of focusing on the target application rather than bit twiddling. To help with this stage of the process, Microsoft works closely with silicon vendors and independent hardware vendors to offer you an extensive list of Board Support Packages (BSPs) supported on Windows Embedded Compact to help you decide which hardware meets your needs.
Step 3: Does my design work? Okay, time for a sanity check. We call this “proof of concept.” When I pull all of the stuff I have together, can I get a reasonable semblance of my final product? At this point, I need a user design document with end-to-end scenarios that I can walk through to confirm that my concept is actually going to work. Once the scenarios are nailed down, build a verification test suite that will run through a full set of tests to confirm the system does what it’s supposed to do, and expand this suite as you refine your scenarios. A great place to start for a test suite would be the Compact Test Kit CTK) included with Windows Embedded Compact. The CTK lets you test the functionality and performance of device drivers and related hardware for Compact-powered devices.
Step 4: Who will make my board? Up until this point, we have been using a reference board (BSP), something produced by someone else that likely does more than we need in our final product. Now that we have confirmed that everything works with the reference design, does it make sense to create our own board to save on costs? A simple rule is that if you are only making a few devices, creating you own board is likely not cost-effective, and you should consider shipping your product on reference hardware (BSP). You can normally contact the creator of the reference hardware and they will most likely have a commercial version of the board you can use. However, if you are creating thousands of devices, creating your own board will likely save you enough money to drop the cost of your device and better compete in its market. If you do decide to create your own board and you do not have the expertise to do so in your company, often the same creator of the reference board will offer that service or provide board-design documents for you to take to the design house of your choice. Microsoft has a great community of developers and partners, such as Bsquare and Adeneo, and silicon vendors such as Texas Instruments, AMD and Freescale that can help support and realize your unique solution requirements.
Step 4a: Does my board work? If you did create your own board, you will likely go through a couple of revisions. This is where the resulting tests from Step 3 will save you from making poor decisions. If your test suite covers both performance and functionality goals, you can be confident that the custom board created for your devices hits your target scenarios.
I can’t stress enough how important it is to fully test your target hardware before committing to a device run. As you can imagine, creating thousands of boards only to discover they have an issue means at best selectively updating components on those boards, or scrapping the whole run—and neither of those options are cheap.
Step 5: Can I ship my device? Whoo hoo! You made it! The last step is to pinch yourself! Are you really done? Does the device need a special case? Once your sales and marketing are in place and your device is packaged, you think you might get a rest? Not likely! Time to think about the next version and maybe some other products to add you your line… welcome back to step one!
Remember, when you want to build a product, think about what you are trying to accomplish first. Don’t worry about the chip, OS or anything else until you know what you want. Start with the application, and then define your look, feel and function before worrying about hardware. Selecting hardware too soon may limit finding a solution that best fits your requirements.
Making decisions too soon without adequate understanding of the real needs of the device can have a huge impact on your time to market. In the small form factor devices world, faster time to market means more than getting your product in the hands of customers sooner, but it also means your product gets a longer lifetime. Devices have longer lives than your average PC. How often does a gas station replace its pumps, for example? As you think about the actual working lifetime of your device, how do you want to approach developing your project?
To find out about more about Windows Embedded device development, check out Doug Boling’s webinar, “Back to School,” and other Windows Embedded webinar events.