Embedded Software Development
Spark Product Innovation develops embedded software for demanding industrial and scientific applications. Our UK engineering team combines firmware and electronics expertise to deliver reliable, deterministic and fully integrated embedded systems.
Our Capabilities
Embedded software often sits at the point where electronics, physics and real-world machinery come together.
A successful solution requires more than writing code. The software must interact correctly with sensors, actuators, power electronics, communications interfaces and custom hardware, often while meeting tight timing, safety, environmental and reliability constraints.
Our embedded software engineers work closely with our electronics, FPGA, mechanical and test teams to develop complete solutions rather than treating hardware and software as separate activities.
We can support a complete product development or work alongside your existing engineering team on a defined part of the system
UK Hardware and Software Developed Together
One of Spark’s key strengths is our ability to develop electronics and embedded software within the same UK-based engineering team.
Our software engineers work directly with the engineers designing the circuits, allowing the complete embedded system to be developed, integrated and tested as one. This helps ensure that processor selection, software architecture, interfaces, diagnostics and test features are considered alongside the electronics from the beginning of the project.
Developing the hardware and software together provides several practical advantages:
- • Faster prototype board bring-up
- • Earlier identification of hardware and software risks
- • Easier investigation of timing, interface and signal-integrity issues
- • Better integration of sensors, actuators and communications
- • Test and diagnostic features designed into the product
- • Clear responsibility for the performance of the complete system
Our engineering laboratory at the Bristol & Bath Science Park allows software to be tested against real electronics, sensors, loads and communications interfaces rather than relying solely on simulation.
Depending on the project, our facilities can support:
- • Prototype board bring-up
- • Oscilloscope and logic-analyser testing
- • Precision electrical measurements
- • Communications analysis
- • Power-supply and load testing
- • Motor and actuator testing
- • Hardware-in-the-loop testing
- • Automated test development
- • Environmental and high-temperature testing
- • Fault investigation and production-test support
This combined hardware, software and laboratory capability is particularly valuable for technically demanding industrial and scientific applications where performance depends on the interaction between the code, electronics and physical system.
Where Science Meets Engineering
Many of our projects involve converting a scientific principle, measurement technique or physical process into a reliable engineered product.
We are particularly well suited to projects where the embedded software must interact with specialist electronics, sensors or machinery and where there is not an off-the-shelf solution.
Typical application areas include:
- • Scientific instruments
- • Industrial sensing and monitoring
- • High-temperature electronics
- • Subsea and offshore equipment
- • Test and measurement systems
- • Non-destructive testing
- • Precision data acquisition
- • Motor drives and power electronics
- • Industrial automation
- • Environmental monitoring
- • Radar, lidar and optical sensing
- • High-speed timing systems
- • Specialist communications equipment
These projects often require an understanding of the underlying physics as well as the electronics and software needed to implement it.
Bare-Metal Firmware
For systems requiring close control of hardware, low overheads and predictable execution, we develop bare-metal firmware directly around the target microcontroller.
Typical work includes:
- • Peripheral configuration and low-level drivers
- • Interrupt-driven software
- • State-machine development
- • Startup and boot code
- • Timing-critical control
- • Low-power operation
- • Fault handling and diagnostics
- • Hardware abstraction layers
- • Board support software
Real-Time Operating Systems
For more complex embedded systems, we develop software using real-time operating systems to manage multiple tasks, communications channels and control functions.
Our RTOS development experience includes:
- • Real-time software architecture
- • Task and priority design
- • Inter-task communications
- • Interrupt handling
- • Resource and memory management
- • Watchdogs and fault recovery
- • Timing and latency analysis
- • Deterministic system behaviour
- • Driver and middleware integration
We take care to ensure that the use of an RTOS improves the structure and maintainability of the system without compromising its real-time performance.
Deterministic and Real-Time Control
Embedded software often sits at the point where electronics, physics and real-world machinery come together.
Many industrial and scientific systems depend on events occurring within clearly defined time limits.
We develop deterministic embedded software for applications involving:
- • Precision timing
- • High-speed measurement
- • Closed-loop control
- • Sensor acquisition
- • Industrial machinery
- • Power conversion
- • Motor drives
- • Synchronised communications
- • Automated test equipment
Our combined hardware and software capability allows timing performance to be assessed across the complete system, including processor loading, interrupts, peripherals, communications and external electronics.
Motor-Control Firmware
Spark develops embedded software for brushed DC, brushless DC and other electrically driven systems.
Our motor-control capabilities include:
- • BLDC commutation
- • PWM generation
- • Current and voltage measurement
- • Hall-effect and encoder feedback
- • Speed and position control
- • PID control loops
- • Motor protection
- • Startup and shutdown sequencing
- • Power-stage monitoring
- • Fault detection and recovery
- • Communications and diagnostics
Because our team also designs motor-drive electronics and power-conversion systems, we can develop and commission the complete control system rather than the firmware in isolation.
We have experience developing embedded software for a broad range of 32-bit microcontrollers and digital signal controllers.
We also support other processor families where they offer the best technical or commercial solution for the product.
Processor selection is based on the complete system requirement, including:
- • Processing performance
- • Deterministic timing
- • Peripheral availability
- • Analogue capability
- • Power consumption
- • Safety features
- • Environmental rating
- • Component lifecycle
- • Development tools
- • Cost and availability
STMicroelectronics
- • STM32 microcontrollers
- • ARM Cortex-M platforms
- • STM32Cube development tools
- • Bare-metal and RTOS applications
- • Communications, control and data-acquisition systems
Microchip
- • PIC and dsPIC devices
- • SAM ARM microcontrollers
- • Motor-control and power-conversion applications
- • Real-time control
- • Communications and mixed-signal systems
Texas Instruments
- • C2000 real-time microcontrollers
- • MSP430 and ARM-based devices
- • Motor control
- • Digital power
- • Precision measurement
- • Industrial control systems
Discuss Your Embedded Software Requirements
Whether you require complete embedded-system development, specialist firmware expertise or help solving a difficult hardware/software problem, our engineers can review your requirements and advise on a practical development approach.
Speak to an Embedded Software Engineer