Products
Our device drivers are modular, robust, platform-independent, and RTOS-aware, with clear architecture and design, ready for seamless integration into your embedded systems.
Board Support Package (BSP)
Board Support Package (BSP) help to speed up the development process, whether for application software or device drivers. The BSP implements all peripherals available on the MCU with highly dynamic configuration and makes all available peripheral channels accessible. It can be used in both worlds, RTOS and bare-metal, and is compatible between C and C++ programming. It was developed with the C99 standard.
Our list of available BSPs is limited by MCUs with different architectures. Currently, we support MIPS and ARM Cortex-M4/M0+. However, our experience shows that projects only need a specific selection of MCUs, but stable, well-tested, and highly configurable BSPs and HAL interfaces that can be used safely with RTOS. This is where our BSP and HAL excel and have proven itself in various projects and challenges.
Each BSP supports the CMake build system with GCC toolchain and includes a sample program, software design, and user manual that have been verified for evaluation purposes using a manufacturer-approved evaluation board.
Microchip PIC32MK
The Microchip PIC32MK 32-bit MCUs feature a 120 MHz CPU with FPU, advanced analog integration, and flexible connectivity (USB, CAN FD, SPI, I2C, UART). With 12-bit ADC/DAC, comparators, high-speed op-amps, PWM, QEI, and Flash ECC, they excel in motor control (BLDC 6-step, sensorless, sensored FOC). The BSP is developed using PIC32MK MCM Curiosity board based on our HAL, supports CMake build system and XC32 toolchain, allowing configuration of CPU frequency, RTOS, and project-level I/O settings – view details
Support package available: TQFP100
NXP LPC54xx
The NXP LPC54114 is an ARM Cortex-M4 MCU with a Cortex-M0+ coprocessor, up to 256 KB Flash, 192 KB SRAM, USB support, audio interfaces (DMIC/I2S), timers, watchdog, RTC, flexible serial ports (USART/SPI/I2C), a 12-bit ADC, and temperature sensor. The BSP is developed using LPCXpresso54114 board based on our HAL, supports CMake build system and GCC toolchain, allowing configuration of CPU frequency, RTOS, and project-level I/O settings – view details
Support package available: LQFP64
ST STM32G4xx
The ST STM32G491 is a high-performance Cortex-M4 MCU running up to 170 MHz with FPU, DSP instructions, and MPU security. It offers up to 512 KB Flash, 112 KB SRAM, Quad-SPI, CORDIC/FMAC acceleration, three 12-bit ADCs, four DACs, comparators, RTC, and PWM timers. The BSP is developed using Nucleo-G491RE board based on our HAL, supports CMake build system and GCC toolchain, allowing configuration of CPU frequency, RTOS, and project-level I/O settings – view details
Support package available: LQFP64 and UFQFPN32
NXP LPC84xx
The NXP LPC845 is a low-cost Cortex-M0+ MCU running up to 30 MHz with up to 64 KB Flash and 16 KB SRAM. It features I2C, USART, SPI, capacitive touch, multiple timers, DMA, 12-bit ADC, dual 10-bit DACs, analog comparator, CRC engine, flexible I/O, and up to 42 GPIOs. The BSP is developed using LPC845-BRK board based on our HAL, supports CMake build system and GCC toolchain, allowing configuration of CPU frequency, RTOS, and project-level I/O settings – view details
Support package available: LQFP48
“Our BSP implementation makes the initialization of peripherals such as system clock, GPIO, UART, SPI, I2C, etc. really easy. It has similarities with Arduino, but with full control over the functions and possibilities of the microcontroller.”
Real-Time Operating System (RTOS)
Each OS variant was implemented on the basis of our generic and reusable Operating System Abstraction Layer (OSAL). This architecture ensures the portability of the operating system and minimizes the integration risks and the effort required for the transition to another operating system variant.
FreeRTOS
This OS variant is based on the FreeRTOS v11.0 kernel with a CMake build system and GCC toolchains. It uses application and BSP configurations to set CPU and peripheral clocks and is implemented on a reusable OS Abstraction Layer (OSAL) for portability and reduced integration risk. Thread-safe, resource-locked BSP interfaces—including FDCAN, DAC, I2C, NVM, PWM, SPI, and UART—ensure consistent and secure access across tasks while leveraging the OSAL framework – view details
“Every OS implementation follows our standardized OSAL, which makes the adaptation and use of RTOS very easy. Switching to a different OS variant is trivial and minimizes integration risk and effort.”
Sensor and Device Drivers
The list of our device and sensor drivers grows over weeks. They are fully tested and have complete documentation on performance, code size, code coverage and, more importantly, their limitations and known issues. The sensor and device drivers are built on our hardware abstraction layer (HAL) and are therefore platform independent. Custom sensor and device drivers are welcome on request.
GPS
The u-blox NEO-6 series is a compact, stand-alone GPS receiver family built on the high-performance u-blox 6 positioning engine. Housed in a small 16 × 12.2 × 2.4 mm package, it offers flexible connectivity, low power consumption, and cost-effective design, making it ideal for battery-powered mobile devices with tight space constraints. The accompanying driver features structured NMEA parsing and a clean hardware abstraction layer, enabling deterministic behavior and reliable integration in commercial and industrial embedded systems – view details
Radio
The Nordic nRF24L01+ is a single-chip 2.4 GHz transceiver with an embedded Enhanced ShockBurst™ baseband engine, designed for ultra-low-power wireless applications. Operating in the global ISM band (2.400–2.4835 GHz) using GFSK modulation, it features configurable frequency channels, output power, and air data rates. It supports 250 kbps, 1 Mbps, and 2 Mbps data rates. Combined with dual power-saving modes and high data throughput, the nRF24L01+ is well suited for energy-efficient, battery-powered wireless systems – view details
Communication Protocol
The Microchip MCP25625 is a compact, cost-effective CAN controller with an integrated high-speed CAN transceiver, designed for easy integration via SPI. It directly interfaces with microcontrollers operating from 2.7V to 5.5V without requiring external level shifters. The device connects straight to the physical CAN bus and supports high-speed communication up to 1 Mb/s. It meets automotive standards for low quiescent current, electromagnetic compatibility (EMC), and electrostatic discharge (ESD) protection – view details
Filesystem and Storage
The FatFS is a generic FAT file system module designed for small embedded systems. It enables microcontrollers to read and write files on storage media such as SD cards and USB drives. FatFs supports FAT12, FAT16, and FAT32 file systems. It is written in standard C and is highly portable across different MCU platforms. The library is lightweight, configurable, and suitable for both RTOS and bare-metal environments – view details
The Secure Digital (SD) card is a flash memory solution designed to meet the security, capacity, performance, and environmental demands of modern audio and video consumer electronics. This driver supports FAT-formatted SD cards up to 32 GB and provides the necessary interface layer for seamless integration with the FatFS file system library, enabling reliable data storage and file management in embedded applications – view details
Power Monitor
Motion and Navigation
The TDK ICM-42688-P is a 6-axis MEMS motion sensor integrating a 3-axis gyroscope and 3-axis accelerometer. It supports flexible host interfaces including I3C, I2C, and SPI (default), and features a 2 kB FIFO with two programmable interrupts for efficient data handling. Designed for low-power operation, it includes wake-on-motion functionality to reduce system consumption. The ICM-42688-P variant supports an accurate external clock input to minimize sensitivity errors, improve orientation accuracy, and reduce ODR drift over temperature – view details
The TDK MPU-9250 is a compact 9-axis motion tracking device integrating a 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer, and a Digital Motion Processor (DMP) in a 3×3×1 mm package. It is pin-compatible with the MPU-6515 and features an internal I2C bus for full 9-axis MotionFusion output. The sensor provides programmable measurement ranges: gyroscope (±250 to ±2000°/s), accelerometer (±2g to ±16g), and magnetometer (±4800 μT) for precise motion tracking applications – view details
The AKM AK09919C is a high-sensitivity 3-axis magnetometer using advanced Hall sensor technology to measure Earth’s magnetic field with 0.15 μT resolution. It outputs independent digital magnetic field data for the X, Y, and Z axes, enabling accurate three-dimensional measurements. Its precision and sensitivity make it well suited for electronic compass applications, tilt-compensated heading calculations, and motion tracking systems when combined with accelerometers and gyroscopes – view details.
Real Time Clock & Calendar
The Analog Devices DS3231 is a low-cost, high-accuracy I2C real-time clock (RTC) featuring an integrated temperature-compensated crystal oscillator (TCXO) and crystal for improved long-term stability. It includes a backup battery input to maintain accurate timekeeping during main power loss. The device tracks seconds through years, automatically adjusts for varying month lengths and leap years, and supports 12- or 24-hour formats. It also provides two programmable alarms and a square-wave output via a bidirectional I2C interface – view details
Display
The Solomon Systech SSD1331 is a single-chip CMOS OLED/PLED driver supporting 96×64 RGB displays with 288 segments and 64 common cathode outputs. Designed for common-cathode OLED/PLED panels, it features embedded Graphic Display Data RAM (GDDRAM) with 256-level contrast and 65K color control. The chip includes graphics acceleration commands for horizontal, vertical, and diagonal scrolling. To support low-power applications, the driver provides sleep and low-power modes, reducing current consumption from 1.2 mA down to approximately 10 µA – view details
Motor Drives
The Toshiba TB6612FNG is a compact dual-channel DC motor driver with two H-bridges for independent control of motor speed and direction. Each channel supports up to 1.2 A continuous (3.2 A peak) and a maximum motor voltage of 15 V, with PWM control up to 100 kHz. The driver features standby and stop-drive modes that reduce current consumption from 2.2 mA to 1 µA while placing the motors in a high-impedance state, enabling efficient low-power motor control – view details
The Allegro A3967 is a complete microstepping driver with an integrated translator for bipolar stepper motors, supporting full, half, quarter, and eighth-step modes with 30 V and ±750 mA output. Microstepping improves motion smoothness, reduces vibration and noise, and enhances positional accuracy. Its compact design integrates current control and protection, minimizing external components, making it an efficient, cost-effective solution for robotics, CNC machines, 3D printers, and precision positioning systems – view details
Temperature, Humidity and Pressure
The Microchip MCP9843 is a temperature sensor that converts temperatures from –40 °C to +125 °C into a digital output. Compliant with JEDEC TSE3000B3 Mobile Platform Memory Module Thermal Sensor standards, it provides high accuracy, typically ±0.2 °C and up to ±1 °C between +75 °C and +95 °C, making it suitable for precise thermal monitoring in embedded and memory module applications – view details
The Bosch BMP581 is a high-performance, low-power absolute barometric pressure sensor in a compact form factor. It measures pressure from 30 to 125 kPa with ±0.3 Pa accuracy (±2.5 cm altitude) and temperature from –40 to 85 °C with ±0.5 °C accuracy. Its precision and small size make it ideal for applications such as GPS enhancement, indoor/outdoor navigation, weather monitoring, and vertical velocity or altitude control in drones – view details
Signal Conversion
The Microchip MCP4725 is a single-channel, 12-bit buffered DAC with voltage output and integrated non-volatile EEPROM. It supports loads up to 1000 pF in parallel with 5 kΩ, and can operate in normal or low-power modes via configurable register bits. Featuring a two-wire I2C interface and 2.7–5.5 V supply, the device stores 12-bit DAC data and 2-bit configuration in EEPROM, automatically loading these settings at power-up. The DAC and EEPROM can be reprogrammed at any time for flexible analog output control – view details
