Simple Real-Time Scheduler for Embedded Linux

Linux Event Loop with Cyclic Executive

So, you’re developing a real-time application which runs under Linux You’ve got some periodic (for example, timer) signals to handle And some aperiodic tasks (perhaps handling TCP/IP packets or other I/O) And some regularly scheduled tasks to perform (such as motor control, UI) Here is a simple design which cleanly handles all those soft real-time … Read more

Glucose Meter Software Development

Glucose Meter

We developed the embedded software for a very large scale consumer handheld glucose meter. The code was written in “C”, targeting an NEC K0 Microcontroller. This project incorporated a custom LCD display and a custom ASIC to measure the glucose in a drop of blood placed on a sensor which was inserted in the meter. … Read more

Omega 36 Grenade Launcher Simulator

Did we hit the target? When our military forces train, they need non-lethal ways to simulate actual battlefield conditions. The Omega 36 ignites pyrotechnic cartridges on command, providing visual and audible target recognition. We performed a detailed Software Safety Analysis on the Omega 36’s microcontroller software (firmware). We focused our efforts on the available system … Read more

Ground Based Operational Surveillance System

The GBOSS System helps protect our warfighters by giving them “eyes” on their surroundings. The tower-mounted cameras, radars and other sensors help them detect the enemy placing IEDs, assist in check point security, route reconnaissance, and personnel/vehicle identification, among other benefits. We were hired to oversee the Systems Safety program for the Marine Corps Systems … Read more

Software Safety Training

How does a team conduct an effective software systems safety analysis for a small embedded system? What is required to get safety board (SSSTRP and WSESRB) approval? We were hired to develop training for a Navy engineering team to teach them just that. The training enabled them to examine Safety-Critical software code and it’s associated … Read more

Explosive Ordnance Controls

Special Forces operatives often place explosives to destroy enemy assets. They must be a safe distance from the ordnance before it can detonate. Different devices can be used to trigger the detonation safely: Time Delayed Firing Devices Radio Frequency Detonators Infrared Firing Devices others We were hired to perform detailed System Safety Assessment on many … Read more

JCTI-G Project

We lead the System Safety team for the Joint Cooperative Target Identification – Ground (JCTI-G) project for the Navy. The JCTI-G uses millimeter waves (microwaves) to broadcast an interrogation signal before firing on a target. If the target is a Friendly (not a Hostile) it will have a companion transponder. The Friendly receives the interrogation … Read more

Remote Operated Small Arms Mount

MK-49 Remote Operated Small Arms Mount

This project began as a Software Systems Safety effort and culminated in developing a custom hardware/software Slew-to-Cue system. We initially performed a thorough safety analysis of a recent software revision of the ROSAM, (also known as the MK-49 MOD 0). We discovered a number of hazards. The system’s vendor corrected the issues and we proceeded … Read more

TLDHS Project

We performed Software Safety Analysis on a large C++ codebase for the Target Location, Designation, and Handoff System (TLDHS), fielded by the United States Marine Corp. The TLDHS is used by Forward Air Controllers (FACs) or Forward Observers (FO) to call in Close Air Support (planes) or Indirect Fires (artillery), respectively. The FAC or FO … Read more

10x Better Accuracy / Complete Flexibility

MK-49 Remote Operated Small Arms Mount

We developed a hardware and software solution 10x more accurate than they were expecting. They required that we just get the target somewhere on the ROSAM’s display screen. Using algorithms of our own design, we got the target in the center of the crosshairs!

Unit Tests, Functional Tests, Inspection – what works Best?

Software Test Coverage

The software tester can be inundated with numerous testing strategies … how do you choose? First – determine what types of defects are likely to lie in your code. Then, choose a strategy which is likely to uncover those types of defects. Functional testing is performed on all projects, to at least a minimum level. … Read more

Does Utilization Guarantee Schedulability?

In testing Real-time systems, we typically must answer the question “Will all my tasks complete their work on time … in the worst case?”. In other words, we must assure that all the hard timing deadlines are met. Utilization is the first test. It simply determines what percent of the processor’s capability is used to get all the work done. … Read more

How can an RTOS affect my Software Testing?

RTOS Image

A Real-Time Operating System (RTOS) is often used in Embedded Systems to organize and simplify the scheduling and coordination of the “work” the processor performs. There are many types of RTOSes, varying dramatically in complexity, cost, features, etc. Although a complete list of the ways an RTOS can affect the Testing and Analysis of critical … Read more

Premature Detonation Avoided

While performing a Software Safety Analysis for a Radio-Frequency-Initiated Detonator, we analyzed the hardware/software interface. We decided to go “outside the box” and analyze the circuitry which insured the microprocessor would come out of power-up reset correctly … turns out– it didn’t reset properly! The processor could therefore operate erratically, which could initiate an unexpected detonation!

Read more

Optimizing Safety Tests Saves $

The TLDHS Safety Tests had grown to over 100 pages of procedures. Understanding the software architecture led us to believe that some of these tests may be redundant.

We decided to thoroughly examine the code and uncovered many places in which different tests exercised the exact same code, using the same parameters and state information. We re-wrote the Safety Tests to remove all these redundancies.

Read more

Awarded “Best Contributor”

Glucose Meter
We were tasked with performing detailed Software testing and analysis of a safety-critical medical diagnostic device. As we investigated the code we discovered:
  • Unbounded recursion through 8 levels of calls in an error detection / reporting routine
  • Critical data which could be corrupted when Interrupt Service Routines (ISRs) ran at specific relative times
  • Execution times for critical ISRs which were much longer than the designers intended
  • Dozens of other potential problems of varying severity

Read more