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

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:

  • Amazon with clicking on: picamazondev

  • From Tindie :

I sell on Tindie

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
  • 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:

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.

SRX-INS00-DEV

_images/Cover_INS_00_DEV.png

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

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)

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

codearchive Releases

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

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

Releases

If you can not use repo, releases with zipped code are available at:

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

Releases

If you can not use repo, releases with zipped code are available at:

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: