Embedded Firmware Consulting
We offer an embedded firmware (software) design and development service targeted mainly for safety critical applications. Our company has about 10 years experience developing embedded firmware for safety applications as well as non critical commercial applications.
Our projects range covers:
- Load and inertia limiting devices for construction site equipment
- Vehicle rollover protection devices
- Ultrasound systems for safety
- HMI (Human Machine Interface) displays
- Hydraulic solenoid and valve control
- 802.15.4 radio / wireless e-stop systems
- Assorted commercial products (whitegoods)
- Gas and Environmental Sensors
- Biomedical devices
- EV Drive Control and power systems
- Automated press control systems
- Brushless DC (BLDC) motor drivers using TI InstaSPIN FOC Technology
- DC Power Line Communications
- Programmable Logic Controllers
- Hyperloop Pod Flight Control Software
- Embedded Bluetooth and WiFi devices
Please Contact Us if you require more information.
Capability matrix
The table below details our embedded firmware capabilities to various standards:
(C/C++) = C or C++ Languages
(C Only) = C Language only with restrictions
(External Consultant) = We only have the ability to act as a third party consultant for these safety levels.
Standard | SIL0 (Basic QMS) |
SIL1 | SIL2 | SIL3 |
---|---|---|---|---|
IEC61508 | Basic QMS (C/C++) |
SIL1 (C/C++) |
SIL2 (C Only) |
External Consultant |
IEC62061 | Basic QMS (C/C++) |
SIL1 (C/C++) |
SIL2 (C Only) |
External Consultant |
IEC60730 | Class A (C/C++)
|
Class B (C/C++) |
Class B (C Only) |
N/A |
ISO26262 | Basic QMS (C/C++) |
ASIL A (C/C++) |
N/A | N/A |
Specific Architectures
We have vast experience in the following microcontroller architectures which we have used in critical applications. We have access to a broad library of safety code for implementing common functionality in safety devices, including on-line diagnostic functionality, self test, etc.
- Microchip PIC18F microcontrollers used in IEC60730 applications to Class B.
- Microchip dsPIC33F digital signal controllers used in IEC61508, IEC62061 to SIL2 and IEC26262 to basic QMS.
- Microchip PIC32MX microcontrollers used in IEC61508 and IEC62061 to SIL1 for HMI devices.
- Texas Instruments RM46, RM48 and RM57 safety micrcontrollers used in IEC61508 and IEC62061 applications to SIL2.
- Texas Instruments AM35xx processors used in IEC61508 to basic QMS level.
- Texas Instruments MSP430 and MSP432
- Texas Instruments TMS320 (28027F, 28029F/M for InstaSPIN)
- Texas Instruments CC1310, CC1350, CC2650
In-House Middleware Libraries
We offer a huge range of middleware software libraries for safety and no safety applications. Customers who design products with us have access to our huge library of validated code for inclusion in their projects.
Our standard libraries include:
Name | Description | Name | Description |
---|---|---|---|
IEC60730_CLASS_B | IEC60730 Safety for Whitegoods | CAT4008Y | LED Driver |
SOFTWARE_SPI | Software SPI | SOFTWARE_CRC | Software CRC |
25LC010 | Memory Driver | MRF24J40 | 802.15.4 Radio |
DSP | Common DSP Functions | MMA7455 | Accelerometer Driver |
CAN_NETWORK | CAN Stack | AD7730 | AFE Bridge Driver |
PROPO_VALVE | Hydraulic Proportional Valve | FAT_FILE_SYSTEM | FAT16/32 |
TERMINAL_INTERFACE | TTY Interface | GFX_FORMAT | Graphics Formatting |
CFI_FLASH | CFI Parallel FLASH Driver | SDIO | SD Memory Card Driver |
NUMERICAL | Standard Numerical Library | MMA8450 | Accelerometer |
MCP23S17 | IO Expander | GRAPHICS_1D | 1D Graphics Primitives |
A4988 | Stepper Driver | MCP2030 | AFE |
SSD1332 | OLED Driver | PHASE_ANGLE | Mains Phase Angle Control |
IR_PROTOCOL | Various IR Protocols | BASIC_RFID | RFID Decoding |
IEEE802_15_4 | Zigbee | CSV | CSV Table IO |
HMC6343 | Compass | MRF24WB | WiFi Module |
WLM101 | WiFi Module | L3GD20 | Gyroscope |
HMC6352 | Compss | L3G4200D | Gyroscope |
BMP085 | Baro Sensor | ADXL345 | Accelerometer |
HMC5883L | Compass | NMEA_0183 | NMEA GPS Decoder |
DCM_AHRS | Descrete Cosine Matrix AHRS | DS2431 | EEPROM |
DS3234 | Time Clock | TC1046 | Temperature Sensor |
MCP3004 | ADC | MXD2020FL | Accelerometer |
KS0066 | LCD | RC_SERVO | RC Servo Subsystem |
EEPROM_PARAMS | Parameter Overlay Module | S1D13517 | LCD Controller |
TCN75 | Temperature Sensor | IMU | Inertial Measurement Unit |
SSD1289 | OLED Driver | ENC28J60 | 802.3 Ethernet |
MAX4896 | IO Device | ILI9341 | LCD Driver |
ADS7843 | Touchscreen Driver | MAX13826 | IO Driver |
MAX13036 | IO Device | 1WIRE | Dallas 1-Wire Software Implementation |
TMP401 | Temperature Sensor | PID | Standard PID Controller |
ILI9481 | LCD Controller | D51E5TA7601 | LCD Controller |
R61581 | LCD Controller | FAULT_TREE | Standard Embedded Fault Tree |
TFT_FONT | Fonts for TFT Displays | HTTP_SERVER | HTTP Service |
INTEL_CFI | Intel CFI FLASH Driver | 802_3 | Standard 802.3 Ethernet Services |
CANNET_SAFE | Safety CAN | 25LC1024 | Memory Driver |
SOFTWARE_FIFO | Standard Software FIFO's | USB_MSD | USB Mass Storage Driver |
SC18IS | UART Driver | SI1143 | Gesture Control |
MMA8451 | Accelerometer | 802_11 | WiFi Systems |
MTK3339 | GPS Driver | KALMAN | General Purpose KALMAN Filter |
MAX31855 | IO Driver | SSD1306 | OLED Driver |
OV5642 | Camera Driver | M88E1111 | PHY Driver |
STN1170 | IO Device | SC16IS741 | UART Driver |
AD9850 | DAC | BCM5461 | PHY Driver |
DP83640 | PHY Driver | WS2812 | LED Driver |
ISO15765 | ISO15765.4 Stack | ISO14230 | ISO14230.4 Stack |
ISO9141 | ISO9141.2 Stack | SAEJ1850 | SAEJ1850 Stack |
J1939 | J1939 Stack | SAFE_UDP | Safety Protocol over UDP |
OV7670 | Camera Driver | MPXV7002DP | Pressure Sensor |
DS2482S | 1-Wire Expander | DS18B20 | Temperature Sensor |
TSYS01 | Temperature Sensor | MS5607 | Pressure Sensor |
ATA6870 | Battery Management Device | AMC7812 | DAC + ADC |
MODBUS | ModBus Master and Slave Stack | DRV8711 | Stepper Driver |
LS013B4DN04 | E-Paper Display | OV2640 | Camera Driver |
|
Design Processes
We have implemented our own internal tool called SafeTool which assists our embedded firmware design process meet the requirements of IEC61508 and other related standards.
We can specifically assist with:
- Software and Software Safety Requirements Specifications
- Software and Hardware architecture
- Firmware module design and coding in C and C++
- Unit Testing including:
- Function call testing
- Branch coverage testing
- Boundary condition testing
- Modified Condition / Decision Coverage (MCDC) testing
- Integration testing including software and hardware / software and programmable logic (VHDL) integration planning and testing.
- System validation testing, test plans, etc.
- Coverage of the full software safety life cycle from customer concept to compiled and validated binaries
- Software configuration management, trace-ability and revision control
Please Contact Us if you require more information.