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.