SRX_INS00_DEV#
The SRX-INS00-DEV is a small size, low power and high performance Inertial Measurements Unit board that intends to be used for robotic applications development and prototyping. Coupled with the included c++ library, it allows a 360° drift free attitude measurements, and precise altitude measurements.
Included components are:
accelerometer/gyrometer: ICM-42688p
magnetometer: MMC5983MA
barometer: LPS22HB
TCXO high precision 32 kHz clock to reduce gyrometer drift
![Texte alternatif de l'image](_images/SRX_INS00_DEV_illustration.png)
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:
![I sell on Tindie](https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-mediums.png)
Do not hesitate to leave a review or an evaluation on these platforms if you already bought the product! 👍
Introduction#
SRX-INS00-DEV is a high performance 10 DOF sensors 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_INS00_DEV Brochure
Hardware#
Mechanical#
![_images/dimension_srx_ins00_dev.png](_images/dimension_srx_ins00_dev.png)
Board width: 1.2 mm
Boards PCB footprints are available as library for EasyEda tool:
Electrical#
Voltage: 3.3V (IO and power, non 5V tolerant)
- Communication
SPI (included by provided software)
I2C (non included in provided software)
How to wire board
Inputs mapping#
To feed the sensors fusion algorithm, inputs can be mapped like this
Inputs mapping
Components#
Included components are:
accelerometer/gyrometer: ICM-42688p
magnetometer: MMC5983MA
barometer: LPS22HB
TCXO high precision 32 kHz clock
Cover#
Barometer is highly sensible to dynamic pressures deltas and the measures it returns can be disturbed by air displacement around the part. Covers are proposed for both parts to reduce this effect.
Covers can be also useful to protect exposed parts in case of use in harsh environment.
Software#
Inputs mapping#
To be able to use fusion correctly, algorithm has to be fed by inputs (accelerations, magnetic field, altitude, angular rates) given respecting certain convention. Example is given here:
How to map inputs
You can adapt the inputs order if you want another orientation but it is the first step to consider if you want to use the sensors fusion
Out of the box systems#
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
![_images/Windows_flash.png](_images/Windows_flash.png)
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 3 sensors of the board
ICM42688-p gyrometer and accelerometer
LPS22HB barometer
MMC5983MA magnetometer
… 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
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
Calibrations tools#
Several tools are available to help archieving the best performances from your device! This includes:
Magnetometer calibration
Accelerometer calibration
…