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 Packages (BSPs) accelerate software development for both application and device-driver projects. Our BSPs implement nearly all peripherals available on the target MCU, providing flexible configuration options and access to all peripheral channels. They support both RTOS-based and bare-metal applications, are compatible with C and C++, adhere to the C99 standard, and are developed in accordance with CERT, CWE, and a practical subset of MISRA guidelines.
Our BSP portfolio supports MIPS and ARM Cortex-M0+/M33/M4 architectures. While the number of supported MCUs may appear limited, our experience has shown that most projects require only a select range of microcontrollers rather than support for every available device. What matters most is a stable, fully tested, and highly configurable Hardware Abstraction Layer (HAL) interfaces that can be safely integrated into both RTOS-based and bare-metal applications.
Each BSP supports CMake build system with seamless integration for major toolchains such as GCC, Keil, and IAR. It includes detailed software design documentation, a comprehensive user manual, and sample applications validated on the manufacturer’s EVK board, enabling users to quickly evaluate and understand the BSP functionality.
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
- PIC32MK GP series
- PIC32MK MC series
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
- LPC54114
- LPC54113 / LPC54115 / LPC54116
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
- STM32G491
- STM32G4A1
- STM32G431 / STM32G441
- STM32G471 / STM32G473 / STM32G474
- STM32G483 / STM32G484
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
- LPC845
- LPC824 / LPC822 / LPC812
- LPC804 / LPC802
Support package available: LQFP48
ST STM32C0xx
The ST STM32C011 is a low-cost MCU based on an ARM Cortex-M0+ core running up to 48 MHz, offering up to 32 KB Flash and 6 KB SRAM. It features I2C, SPI, USART, multiple timers, DMA, and an MPU. Additional features include a 12-bit ADC, RTC, watchdog timers, and up to 18 configurable GPIO pins. The BSP is developed using STM32C0116-DK 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
- STM32C011
- STM32C031 / STM32C051 / STM32C071
Support package available: UFQFPN20
“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 is implemented on the basis of our generic and reusable Operating System Abstraction Layer (OSAL) interfaces. This architecture ensures high portability across operating systems while minimizing integration risks and reducing the effort required when transitioning between different OS variants. By abstracting OS-specific dependencies, the OSAL enables consistent behavior, easier maintenance, and faster adaptation to new operating systems, making it well-suited for scalable and portable embedded system development across diverse project requirements.
FreeRTOS
This RTOS variant is built on the FreeRTOS v11.0 kernel with a CMake-based, toolchain-agnostic build system. It is implemented on our OSAL, enabling portability across different RTOSs and reducing integration risk when migrating beyond FreeRTOS. Application and BSP configurations manage CPU and peripheral clock setup, while thread-safe, resource-locked BSP interfaces for FDCAN, DAC, I²C, NVM, PWM, SPI, and UART ensure consistent and secure multi-task access across the system – 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. All drivers are fully tested and thoroughly documented, covering performance metrics, code size, code coverage, and detailed engineering notes for edge cases and operational constraints. Built on our Hardware Abstraction Layer (HAL), the drivers are platform-independent and portable across systems, ensuring consistent integration across different targets. This architecture supports reuse and scalability in embedded applications. Custom sensor and device driver development is also available upon request.
GPS
The u-blox NEO-M8 module series is built on the high-performance u-blox M8 engine in the proven NEO form factor. It supports concurrent reception of up to three GNSS systems (GPS, Galileo with BeiDou or GLONASS), improving positioning accuracy and reliability in weak signal and urban environments. It also features message integrity protection, geofencing, and spoofing detection, with flexible interface options for easy integration into a wide range of applications – view details
The u-blox NEO-6 module series is a family of standalone GPS receivers based on the high-performance u-blox 6 positioning engine. These flexible and cost-effective modules provide reliable positioning with multiple connectivity options in a compact 16 × 12.2 × 2.4 mm package. Their small form factor, low power consumption, and configurable power and memory options make NEO-6 modules well suited for battery-operated devices with strict cost, size, and energy constraints – 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 Modbus RTU is an application-layer messaging protocol that operates at Layer 7 of the OSI model and enables client-server communication between devices connected to various types of buses or networks. This library implements Modbus RTU for client and server over UART (data link layer) and is compatible with RS-485 transceivers (e.g., MAX3485, SN65HVD1781) at the physical layer, enabling reliable embedded industrial communication – view details
The WIZnet W5500 is a hardwired TCP/IP Ethernet controller integrating a full TCP/IP stack, 10/100 MAC/PHY, and 32 kB internal buffer. It supports up to 8 independent hardware sockets over a high-speed SPI interface (up to 80 MHz), with protocol support for TCP, UDP, IPv4, ICMP, ARP, IGMP, and PPPoE — ideal for resource-constrained embedded systems. This driver implements full TCP/UDP socket communication across all 8 sockets, validated at both 10 and 100 Mbps operating modes – view details
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
