SRX_IMU00_DEV#
The SRX-IMU00-DEV is a small size, low power and high performance Inertial Measurements Unit board that intends to be integrated in robotic applications development. Its extreme compactness allows easy prototyping on breadboard and integration on host board with direct soldering of back side pads.
Coupled with the included c++ library, it allows a 360° drift free attitude measurements.
Included components are:
accelerometer/gyrometer: ICM-42688p
Attention
The board includes only the sensors and no microcontroller that has to be provided by the user.
Tip
You can buy the board from:
Do not hesitate to leave a review or an evaluation on the platform if you already bought the product! 👍
Introduction#
SRX-IMU00-DEV is a high performance 6 DOF sensor nano development board with a form factor allowing easy use on breadboard (2.54mm pins header). Software for parsing sensors and high performance fusion is provided.
Brochure#
Technical brochure can be accessed here:
SRX_IMU00_DEV Brochure
Hardware#
Mechanical#
Board width: 1.6 mm
Electrical#
Voltage: 3.3V (IO and power, non 5V tolerant)
- Communication
SPI (included by provided software)
I2C (non included in provided software, pull up resistors not included)
Sensors INT pads are available but their connexion is not mandatory for the boards to work. Proposed sensors parsing libraries does not use these features but the user can implement them if needed.
See also
In the examples provided for esp32-s3 (app ESP32), the board is wired with the following pins:
icm_cs = 10
mosi = 12
miso = 13
clk = 14
Inputs mapping#
The sensors measures follow the following convention:
To feed the sensors fusion algorithm, inputs can be mapped like this
SRX-INS00-DEV mapping:
SRX_MODEL_INS_10_DOF::modelInputs insInputs = SRX_MODEL_INS_10_DOF::modelInputs();
GYROMETER:
insInputs.gyroDpsRate[0] = imuGyroX;
insInputs.gyroDpsRate[1] = -imuGyroY;
insInputs.gyroDpsRate[2] = -imuGyroZ;
ACCELEROMETER:
insInputs.acceleroG[0] = imuAccX;
insInputs.acceleroG[1] = -imuAccY;
insInputs.acceleroG[2] = -imuAccZ;
Software#
Tip
A dashboard is available to build and flash code, with prebuilt versions to help you test your device!
The dashboard can be accessed at: Sysrox dashboard
Libraries#
Sensors reading#
These libraries can be used to build your project. More available at All libraries
Name |
Description |
Link |
Doc |
Compatibility |
---|---|---|---|---|
libDM_icm42688 |
Sysrox library which implements ICM-42688p imu sensor SPI driver |
|
||
libDM_no_dep_icm42688 |
Sysrox library which implements ICM-42688p imu sensor SPI driver without cross dependencies |
|
||
libDM_abstract_sensors |
Sysrox library which implements base (parent) classes for sensors operations and corrections |
|
||
libDM_no_dep_abstract_sensors |
Sysrox library which implements base (parent) classes for sensors operations and corrections without cross dependencies |
|
Fusion library#
To extract high precision attitude and altitude from sensors, Sysrox proposes high performance fusion library using custom Extended Kalman Filter. It is composed of a header and a static .a libary provided for the following platforms:
Linux
Windows
MacOs apple silicon
Esp32s3
Teensy4.X
How to use
Complete projects#
Complete projects can be used as examples and are ready to use for arduino platforms. The projects manifests and releases are available at Projects Manifests
Recommended projects are:
Sensors Parsing: compatible all arduino, reading of sensors
INS Minimal: compatible all arduino, sensors fusion available (if shared library exists)
INS ESP32-S3: compatible esp32-s3, all functionalities available (logging, communication…)
Sensors parsing#
If you do not want to use esp32s3, or just want sensors parsing, a reduced functionalities software is proposed. It includes parsing for the sensors of the board
ICM42688-p gyrometer and accelerometer
… and an example main.cpp file with a loop implementation.
The software is compatible with all microcontrollers with using the arduino framework:
How to use
Caution
A package compatible with Arduino IDE is provided for this project, and documented HERE: Arduino IDE packaged code
INS minimal#
If you do not want to use esp32s3, or just want sensors parsing and fusion, a reduced functionalities software is proposed. It includes parsing for the 3 sensors of the board and the fusion running at 500Hz
ICM42688-p gyrometer and accelerometer
LPS22HB barometer
MMC5983MA magnetometer
… and an example main.cpp file with a loop implementation.
Attention
The software will work if the fusion library has been precompiled for your microcontroller, as the fusion is included through a .a static libary. If you need a precompiled version for another platform, please contact us at CONTACT . We will be happy to provide it in the next release!
The software is compatible with all microcontrollers with using the arduino framework:
How to use
INS ESP32-S3#
Complete embedded ready to use code with
Sensors parsing (onboards sensors + ublox GPS)
Sensors fusion
Communication (CAN, mavlink, protobuf)
Fast logging (binary datas, mavlink, protobuf)
…
is available for:
ESP32-S3 (arduino framework)
How to use
Releases
If you do not want to build system or use repo , code releases are available for direct use with code archive and precompiled flashable files.
ESP32-S3 |
The release archive contains a folder called flashable_files and a unix flashing script. The compiled code can be flashed directly for testing purpose for example (sensors detected will be printed in serial monitor).
Attention
Releases The binaries are generated for esp32-s3 N16R8, for a different chip, flashing only firmware.bin is recommended.
Unix users : use terminal to place inside an extracted flashable_files folder. Execute ./flash_esp_files.sh if you have N16R8 chip. If you do not, delete first “–flash_size 16MB 0x0000 bootloader.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000” inside .sh script before executing it.
- Windows usersyou can use ESP Flash tool . Extract the archive and execute the program for esp32-s3 chip. Select 80mHz Spi speed, DIO mode. Set the correct port and communication speed (921600 is OK but you can use smaller values if you encounter some errors). Using the boxes, you can select bin files for flash
firmware.bin @ 0x10000
boot_app0.bin @ 0xe000 (optional)
bootloader.bin @ 0x0000 (optional)
partitions.bin @ 0x8000 (optional)
Hit start to start flashing
Calibrations tools#
Several tools are available to help archieving the best performances from your device! This includes:
Accelerometer calibration