1. Microsoft .NET Micro Framework
Customer Solution Case Study
Driver Safety Device Uses .NET Micro Framework
to Lower Cost and Ease Development
Overview “When creating solutions that work to save human lives, quality is
Country or Region: United States the prime directive. The .NET Micro Framework helped to reduce
Industry: Manufacturing — Vehicle hardware costs, streamline the development and add a new level
electronics for driver safety of flexibility to the entire process.”
Customer Profile
Corey Catten, CTO, inthinc™
inthinc, based in Salt Lake City, Utah,
manufactures the waySmart driver alert
system, the Witness black box logging
system, and other driver safety products.
inthinc™ is a North American producer of electronic products for
Business Situation fleet drivers. Their waySmart™ product is a driver safety and audio
After creating the waySmart driver safety
notification device for fleet vehicles. waySmart works in conjunction
notification product, inthinc needed to
design the next version of the product to with inthinc’s Witness® “black box” vehicle tracking and crash data
reduce hardware cost and make it easier to
recorder, which is used for motor sports racing, over-the-road
develop application features.
operations, cab companies, and law enforcement fleets. To reduce
Solution
the hardware cost of waySmart, and to make it easier to add new
inthinc partnered with Edge Products to
design a platform based on .NET Micro functionality and safety features, inthinc worked with partner
Framework, using the Meridian module
companies to switch from a QNX-based embedded platform to the
from Device Solutions.
Microsoft® .NET Micro Framework.
Benefits
Low-cost manufacture
Easy development of improved features
Clearly audible driver alerts
Integration with the Witness black box
logging system
r
2. Situation features of this product. During this
The waySmart accident prevention system evaluation process, inthinc’s engineering
uses audio to provide safety alerts and manager approached Edge Products, a
driving instructions to the driver. The manufacturer of automotive after-market
waySmart system includes a display and products, for some help. inthinc relied on
keypad, and is used to interact with the Edge Products to help define and build the
Witness black box device, which tracks next version of the waySmart. For the new
information about the vehicle including design, Edge Products focused on reducing
speed, distance traveled, GPS position, and overall cost, increasing developer
how long and how often a driver is operating productivity, increasing the flexibility of the
the vehicle. Information from the Witness product, and ensuring longevity of the
black box is viewed via the waySmart device, product.
which also enables the driver of the vehicle to
“We needed a way to reduce log in and out and enter additional Platforms that Were Considered
complexities and drive down information, such as log notes and passenger As an alternative to the off-the-shelf QNX
the cost of the next version of information. All of the information can be system, inthinc evaluated the following
the solution.” uploaded to the central office via a satellite platforms for the next version of the
wireless connection. waySmart:
Anthony Best, Sr. Software
Engineer, inthinc™ Windows® Embedded CE
The original waySmart display device was
C code on an embedded RTOS
based on commercial off-the-shelf hardware
.NET Micro Framework
running a complicated QNX®-based real-time
operating system (RTOS). The initial
Windows Embedded CE
waySmart was based on standard hardware,
One of the first ideas evaluated was using the
but it was difficult to customize and enhance.
existing Windows Embedded CE device that
inthinc’s developers struggled with the
was made by Edge Products. This particular
special tools required to build QNX
device provided sufficient flexibility and
applications.
processing power, and didn’t require the
specialized and complex development tools
Another issue was the cost of the waySmart
that were needed for the original waySmart
device in terms of both hardware and
display device. With a Windows CE device,
development costs. The QNX platform led to a
inthinc’s application developers would be
long development period, which seemed
able to use Visual Studio® and C#, boosting
acceptable for the first version. The extra
productivity and reducing development time.
expense of the QNX hardware platform also
However, in its current form, the Windows CE-
seemed acceptable for the first generation of
based platform did not meet the aggressive
the waySmart, though it meant higher
cost targets set by inthinc.
production costs.
C Code on an Embedded RTOS
Finding a Partner to Help Design a Lower-Cost
Another design that was considered was C
Device
code on an embedded RTOS. This option met
After releasing the original waySmart product,
the target hardware cost, but required special
inthinc evaluated its design by working with
tools and training.
customers, engineering, and marketing. The
existing hardware was too expensive because
it had features that weren’t needed, and too
limited because it didn’t support the desired
3. “The .NET Micro Framework .NET Micro Framework Partnering Efficiently on the Application and
uses tools our team was The final option that was evaluated was the Hardware
already familiar with, .NET Micro Framework, which would enable After selecting the .NET Micro Framework and
substantially reducing the running on streamlined, low-cost hardware, Meridian module as the platform, inthinc and
and enable using Visual Studio and C# as the Edge Products had to divide up and
learning curve.”
development environment. coordinate the work. inthinc’s development
Carleton Watkins, VP of team for the original waySmart product wrote
Research and Development, the application software. Edge Products
inthinc™ Solution worked on the design of the hardware and
After evaluating these options, inthinc and drivers, because Edge Products had
Edge Products chose the .NET Micro experience writing drivers for the .NET Micro
Framework as the platform for the new Framework and working with the hardware.
version of the waySmart display device. A
main reason for choosing the .NET Micro With traditional low-level embedded
Framework was the availability of the development, it would have been more
Meridian hardware module and Tahoe difficult to coordinate development of the
development board, both from Device application, drivers, and hardware between
Solutions. The Meridian module is based on separate teams, because there is a strong
the Freescale iMXS® processor and contains overlap between these tasks. The .NET Micro
RAM, flash, USB, GPIO, I2C, SPI, and a TFT Framework provides greater separation of the
display in a single module. The Meridian application, driver, and firmware layers, and
module is sized to work with the majority of enables writing the drivers in C# managed
automated assembly machines, for easy code, rather than lower-level code. This
integration with most types of board designs. increased separation of layers, together with
an easy learning curve, meant that the
Using the Meridian off-the-shelf module application development team at inthinc
enabled rapid prototyping and development. could quickly focus on the application
The hardware was flexible enough to handle functionality, while Edge Products focused on
the requirements of the waySmart, including the hardware and drivers. Edge Products also
a large TFT display and a 48-key keypad. The consulted on the application, because they
Tahoe development board with its Meridian had experience writing other applications for
module enabled inthinc to test the new the .NET Micro Framework.
version of waySmart on the target processor,
while the final hardware for the waySmart
was still in development. Challenges
In redesigning the waySmart, inthinc had to
.NET Micro Framework met the productivity determine how to use the .NET Micro
goal. The development team already had Framework to support a 3.5” QVGA full color
extensive experience with Visual Studio, C#, display, a 48-key keypad, and high-fidelity
and the .NET Framework. .NET Micro audio for providing instructions and alerts to
Framework uses these same tools, drivers. Other hardware components included
substantially reducing the learning curve that a hardware key lock system and a serial link
would have come with a different platform, to the Witness black box.
and thus led to effective development from
day one.
4. “The waySmart system The .NET Micro Framework enabled the their device had too many buttons and would
provides verbal messages and following: exceed the capacity of the .NET Micro
alerts to drivers of vehicles in Abstracting the display driver from the Framework. The framework provides direct
hardware access to the hardware GPIO, I2C, SPI and
order to improve driver safety.
Extending the input capacity other low-level components, and the Meridian
The .NET Micro Framework Adding audio support module exposes most of the pins of the i.MXS
enabled us to integrate an Reducing the problem of discontinued processor. But this module still did not
audio solution that was components provide enough dedicated GPIO pins for 48
appropriate for the noisy Easily incorporating new platform individual buttons, even by using a “row,
environment of a cab’s truck”. features in future product versions column” scanning method.
Thomas Leishman, Product Abstracting the Display Driver from the However, the Meridian module and the .NET
Manager, inthinc™ Hardware Micro Framework provide easy access to the
The .NET Micro Framework can support many SPI bus, so inthinc decided to use 3 GPIO
types of displays. Hardware vendors for the extender chips, connected to the Meridian
.NET Micro Framework typically write a simple module via the SPI bus. Each GPIO extender
driver defining the display, so applications chip provides 16 GPIO pins; 3 extender chips
written for the .NET Micro Framework can provided the required 48 GPIO pins. After
utilize the display without having special extending the GPIO capacity, it took only a
knowledge of the underlying hardware. The few days for the Edge Products developers to
i.MXS processor has an embedded TFT write the driver for the keypad, because the
controller, which the Meridian module .NET Micro Framework enabled all the driver
exposes through TFT controller pins, and the code to be created using managed C# code.
Tahoe development board includes a TFT
display. This TFT display enables application Adding Audio Support
developers to get started rapidly, and then The waySmart system is used in vehicles and
seamlessly switch to the larger LCD used in provides feedback to the user in the form of
the final product. verbal commands and alerts. But the
background noise level in a vehicle is higher
When Device Solutions created the Meridian than in many other work environments; the
module, they had to do some firmware design audio solution chosen for the waySmart
to enable connecting the pins of the LCD to needed to be effective in a noisy
the Meridian module. The Device Solutions environment. Edge Products found a single-
firmware abstracts the parameters to drive chip audio solution from VLSI Solution: the
displays, so that changing the parameters to VS1011 audio chip, which provides hardware
drive the new LCD panel took much less time decoding of MP3 files through a simple
than is typical in similar types of embedded SPI/SSI interface.
devices.
The .NET Micro Framework supports the
Extending the Input Capacity Visual Studio .NET approach of embedding
Most .NET Micro Framework devices have resources directly into the application. Adding
only a small number of buttons for input, but new MP3 files merely required browsing to
the waySmart device required 48 buttons the MP3 file and selecting it as a new
that were arranged in 9 rows and 5 columns, resource in the project. The driver for the
with several additional buttons outside of that VS1011 audio chip takes a parameter
matrix. inthinc was initially concerned that identifying which MP3 resource to use, and
then the driver pumps the raw data from the
5. specified MP3 resource into the VS1011 really would need to be changed would be pin
chip. The driver provides functions for starting assignments in the drivers. The transition of
and stopping the MP3 sound, as well as the Meridian module and Tahoe development
setting the volume. The audio driver was board from EmbeddedFusion to Device
completed in just a few days. The resulting Solutions went smoothly, and inthinc was
sound output from the waySmart is high- able to continue to use the Meridian module.
quality and has plenty of volume.
Easily Incorporating New Platform Features
Reducing the Problem of Discontinued Now that the new waySmart system is
Components completed and in customer hands, the future
In embedded development, parts are often is wide open for further improved versions of
discontinued or component vendors close-up the product. The .NET Micro Framework
shop, presenting the problem of life-cycle continues to be enhanced. Version 2.5 added
management. .NET Micro Framework TCP/IP support and uses fewer resources
improves life-cycle management by providing than the previous version. Version 3.0 adds
greater hardware independence. new features including the release version of
the Devices Protocol for Web Services,
The Meridian module and Tahoe support for a full-featured file system,
development board were originally designed interoperability with native code, a Wi-Fi
by EmbeddedFusion. Near the end of the infrastructure, USB device support, and
waySmart development cycle, touch-screen support. Because the waySmart
EmbeddedFusion announced that it would be device is based on the .NET Micro Framework
closing down and transitioning its products to and Meridian module, any new features that
Device Solutions. Having this change of are added to the .NET Micro Framework can
manufacturers occur at a critical stage in the easily be incorporated into the product.
project looked like a major setback for the
project. Many embedded projects would need Many embedded devices don’t require the
to be extensively redesigned, or even size and complexity of an RTOS or embedded
cancelled, in such a situation. At the least, Linux. The .NET Micro Framework is perfect
the sell-off of this hardware business could for this type of device. inthinc’s decision to
have set the whole project back by many use the .NET Micro Framework opens up a
months. bright future for this device and other
“Lifecycle management is a
products inthinc is working on. Rapid
breeze when we don’t have to Because the platform was based on the .NET development, a popular language, and a
worry about the hassles of Micro Framework, however, the change of mature development environment with
dealing with discontinued component suppliers was not a big problem. access to a large pool of skilled developers
components.” The drivers and applications that inthinc and made using the .NET Micro Framework an
Edge Products wrote in C# managed code easy and successful choice for further
Corey Catten, CTO, inthinc™ were mostly independent of the underlying developing the waySmart driver safety
hardware and processor. Even if an entirely product.
new .NET Micro Framework platform had to
be chosen, few of the drivers and none of the
application need to be re-written. As long as
the screen size didn’t change and the drivers
on the new platform had the same interface,
not a single line of application code would
need to be re-written. The only thing that