877.663.0877
FREE DOWNLOAD

Embedded Systems

A computer system with a dedicated function within a larger system or device.

Embedded Systems

Here is a sampling of projects we've successfully completed. If you need expertise with a specific, even obscure, technology, please let us know.

Emergency Vehicle Systems Integration Product

Technical Environment

Visual Studio 6.0, Visual C++, COM, Visual Basic 6.0, SQL Server 2000, XML, Cosmic Compiler, WinRiver Compiler, Motorola HC12 SIMS, PowerPC

Description

Emergency vehicles today have been outfitted with multiple pieces of electronic hardware which are mounted and attached in a variety of ways. A cluttered interior can be a dangerous environment for an emergency responder in the event of a collision, or may cause driver distraction that may endanger public safety. The purpose of this project was to relocate much of the hardware used in emergency vehicles into the trunk, control them through a single ruggedized PC control system, and consolidate the user presentation devices into a single touch panel monitor, a control pod and an optional head-up display. To reduce driver distraction, most commands were also available via voice control. The system integration also made it possible for an action on one piece of equipment to trigger an action on another—something that cannot be done in a non-integrated environment.

Stout’s team was involved in the initial system architecture. Subsequently it provided personnel to develop the user presentation layer, the custom configuration unit, the embedded systems, the device drivers and a testing unit.

The heart of the system was an embedded computer running a PowerPC processor, which allowed the system to start up within 1-2 seconds and could control events much more rapidly than a typical Windows-based operating system. The Windows computer functioned as a peripheral device to provide the primary user interface on the touch panel monitor and run other Windows applications. The system was designed so that it could function without the Windows computer (during start-up or in the event of a Windows Operating System failure).

The system controlled peripheral devices such as radios, scanners, repeaters, video devices, emergency lights, sirens, PA system. It had significant discrete IO capability for devices such as lights and sirens. HC12-based Serial Interface Modules (SIMS) were used to provide additional serial capability for more complex peripherals such as the traffic radar and radios. In some cases, Ethernet from the Windows computer was used to control devices.

The user interface included touch screen, voice commands and a control pod. The touch screen was ergonomically designed with large buttons suitable for use with gloved hands and large text suitable for viewing in a moving vehicle. Voice control allowed the user to switch between screens and run most commands. It was also used for such actions as license-plate look-ups, so that the officer could speak the license plate number rather than entering it via a keypad. The system also provided a COM-based interface for agency software to use when interacting with the system.

Separate, free-standing applications provided a configuration unit so that each vehicle could have a unique set-up (different radios, lights, sirens, etc.) and a testing unit.

Buzzwords

Embedded, Visual C++, COM, Visual Basic, SQL Server, XML, Cosmic Compiler, WinRiver Compiler, Motorola HC12 SIM, PowerPC, Discrete IO, Ergonomics, Systems Integration, Voice Recognition, Head Up Display

Infotainment System Development

Technical Environment

QNX (embedded Linux), DBUS, ARM, GPS, Bluetooth, USB, PAN

Description

This embedded system aggregates several user interface, network, and media technologies into a single human-machine-interface for infotainment. Members of our team contributed to the following areas of the project:

  • Bluetooth connectivity to mobile phones for hands-free phone, music, address book and calendar access.
  • Mobile Internet connectivity and connective services to provide current traffic, fuel prices, Google/Bing search, Pandora, weather, sports and other information.
  • A variety of development technologies including ActionScript (FlashDevelop), Flash, C++ (QNX Momentix), Java/LWUIT (eclipse), and LUA scripting.
  • Custom applications via Java/LWUIT.
  • DBUS service architecture providing low-level services to HMI.

Development is done using SCRUM methodology.

Challenges: resource constrained embedded environment, compatibility with a large number of mobile phones, global development team.

Buzzwords

SCRUM, embedded systems, Linux, ActionScript, FlashDevelop, JSON, HMI, C++, Eclipse, qdb, LUA, Java/LWUIT, navigation

Maintenance and Development of Visual Logic Controller IDE

Technical Environment

Visual Studio 2005, C/C++, JavaScript, Windows CE, Windows XP, Windows Vista, Windows 7, eCOS, INtime RTOS

Description

This product consists of an Integrated Development Environment, visual automation control language, and industrial controller run-times. The project highlights consisted of:

  • Improving the reliability of network connections to remote run-times.
  • Adding waveform and logic analyzer views to the IDE that allow developers to view the time history of variables on running projects.
  • Creating a system for capturing run-time variables to log files during program execution through the IDE.
  • Modifying an INtime based run-time to buffer variables during program execution and transfer the data to the IDE in bursts without negatively affecting the real-time performance of the control logic execution.
  • Creating a C++ template class that provides control of remote and local run-time targets.
  • Designing a binary safe dll interface that allows a single dll to be used in Release and Debug builds.
  • Redesign of the project printing and print preview process.
  • Creation of an AI based auto-router that intelligently routes flow lines interactively as flow chart elements are modified.

Buzzwords

Visual Studio 2005, C/C++, JavaScript, Windows CE, Windows XP, Windows Vista, Windows 7, eCOS, INtime RTOS, TCP/IP, STL, MFC, COM, ATL, WTL, NIOS, Eclipse, Visual Logic Controller, Data Visualization

Point-of-Sale Inventory System

Technical Environment

Windows CE 5.0, Symbol Handheld Device, SQL Server Compact Edition

Description

Stout implemented a system for Symbol handheld devices running Windows CE 5.0 that allows our client, a clothing manufacturer, to provide a continuous replenishment system for its retail clients. Retailers maintain their inventory on the device and transmit replenishment orders back to the manufacturer automatically. At the retailer the system is entirely self-contained on the handheld device. A SQL Server Compact Edition database contains the retailer’s target and actual inventory level records. The retailer updates the inventory as merchandise is sold. At a specified interval, typically once daily, the retailer plugs the device into the docking station, which is connected to phone line, and the system replicates the information back to the manufacturer’s SQL server database.

Buzzwords

Proof-of-concept, Windows CE, Symbol Handheld, SQL Server Compact Edition, Replication

Real Time Control System

Technical Environment

Linux, TCP/IP, JSON, USB, Java, C/C++, 32-bit ARM-7 processor, ARM assembler, Microchip 18F family 8-bit processors

Description

This product consists of an Integrated Development Environment, visual automation control language, and industrial controller run-times. The project highlights consisted of:

  • Improving the reliability of network connections to remote run-times.
  • Adding waveform and logic analyzer views to the IDE that allow developers to view the time history of variables on running projects.
  • Creating a system for capturing run-time variables to log files during program execution through the IDE.
  • Modifying an INtime based run-time to buffer variables during program execution and transfer the data to the IDE in bursts without negatively affecting the real-time performance of the control logic execution.
  • Creating a C++ template class that provides control of remote and local run-time targets.
  • Designing a binary safe dll interface that allows a single dll to be used in Release and Debug builds.
  • Redesign of the project printing and print preview process.
  • Creation of an AI based auto-router that intelligently routes flow lines interactively as flow chart elements are modified.

Buzzwords

Linux, TCP/IP, USB, JSON, GNU g++ compiler, GDB debugger, PC-LINT, Boost, DMX, I2C Bus, Embedded 32-bit ARM-7 processor, ARM assembler, C/C++, GNU G++ Compiler, GDB, Insight, Microchip 18F family 8-bit processor, MPLAB IDE, CCS PCH C-Compiler

Real Time Control System

Technical Environment

Linux, TCP/IP, JSON, USB, Java, C/C++, 32-bit ARM-7 processor, ARM assembler, Microchip 18F family 8-bit processors

Description

A highly distributed system which will expand to support numerous features, thereby creating a single platform for future product releases.

1) An X86 single board computer with Linux running the GUI, event timing and data storage. This board communicates with the real-time controller board over USB. The architecture capitalizes on Linux’s facilities to partition major components into independent processes. Each process is multi-threaded. Two of the processes run in the background and provide show management, show timing and console communications. One process is the GUI. The communications between processes use the TCP/IP stack passing JSON formatted messages.

The Linux system is optimized for the embedded environment, providing process and thread scheduling, memory management, networking, X-Windows graphics support, file storage and peripheral drivers.

The development tools for the background processes are the GNU g++ compiler, GDB debugger with graphical interface, PC-LINT for static syntax checking and several third party libraries including Boost.

2) The real time controller board handles two RS-485 serial channels and communicates over an I2C bus with the front panel controls. The real time controller board firmware is built with a real-time operating system and includes multiple threads to manage the different communications channels. It uses proprietary drivers for the peripheral devices. The microcontroller unit is an embedded 32-bit ARM-7 processor. The firmware is written in C/C++ and ARM assembler.

The development environment uses the GNU g++ compiler, GDB and Insight graphical debugger and PC-LINT for static syntax checking.

3) Display and Fader Boards handle all user interfacing, inputting button presses and potentiometer levels, as well as outputting LED levels and display text. These boards use Microchip 18F family 8-bit processors.

The firmware is written in C. The development tools are the MPLAB IDE and CCS PCH C-compiler.

Buzzwords

Linux, TCP/IP, USB, JSON, GNU g++ compiler, GDB debugger, PC-LINT, Boost, DMX, I2C Bus, Embedded 32-bit ARM-7 processor, ARM assembler, C/C++, GNU G++ Compiler, GDB, Insight, Microchip 18F family 8-bit processor, MPLAB IDE, CCS PCH C-Compiler

Not finding what you're looking for here? Send us a message and tell us how we can help: