Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

IgorI

Igor

@Igor
Unfollow Follow
About
Posts
6
Topics
3
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Unable to findQRB5165 emulator image
    IgorI Igor

    Hi everyone,

    I am following the VOXL Emulator documentation to set up my development environment for VOXL 2. However, I am unable to find the specific docker image file qrb5165-emulator_V1.5.tgz mentioned in the guide.

    If the documentation is outdated, could someone provide the direct link or the current naming convention for the QRB5165 emulator image?

    Thanks!

    VOXL SDK and Software

  • Multiple Critical Bugs in voxl-imu-server: Incorrect FIFO Latching and HiRes Indexing (ICM-42688)
    IgorI Igor

    @Alex-Kushleyev Hi Alex,

    Thank you for the clarification.

    That makes sense regarding the accel parsing—agreed that a 4 LSB discrepancy on a 20-bit value is negligible compared to in-flight noise, but it’s good to see it will be corrected.

    Appreciate you taking the time to investigate and confirm.
    Igor

    VOXL SDK and Software voxl-sdk

  • IMU Frame off
    IgorI Igor

    @Alex-Kushleyev Hi Alex,

    Thank you for the clear and concise explanation.

    General Questions

  • IMU Frame off
    IgorI Igor

    @dvz I have faced a similar issue on the VOXL2 Mini. The X and Y axes match the documentation, but the Z axis has the opposite direction to what is described.

    General Questions

  • Multiple Critical Bugs in voxl-imu-server: Incorrect FIFO Latching and HiRes Indexing (ICM-42688)
    IgorI Igor

    While auditing the IMU driver logic for the QRB5165 (icm42688.cpp), I identified two significant logical errors in how the ICM-42688-P FIFO data is retrieved and parsed. These bugs affect data integrity and 20-bit precision.
    Bug 1: Incorrect FIFO_COUNT Latching Sequence (Race Condition)
    Location: src/drivers/icm42688.c (inside read_imu_fifo)
    The current implementation reads fifo_count starting from FIFO_COUNTH (0x2E).

        // first read how many bytes are available using the fifo_count register
        ret = voxl_spi_read_reg_word(bus, count_address, &fifo_count);
    
    

    but acording to IMU document we must read FIFO_COUNTL to latch the data
    Screenshot 2026-04-01 211119.png

    Bug 2: Index Mismatch in 20-bit HiRes Packet Parsing
    Location: fifo_read function under #ifdef HIRES_FIFO

    Technical Detail:
    When parsing Packet 4 (20-byte), the code maps the extension bits (lower 4 bits) incorrectly for the accelerometer.

    		ax32 = ((int32_t)ax16 << 4) | ((base[11] & 0xF0) >> 4);
    		ay32 = ((int32_t)ay16 << 4) | ((base[12] & 0xF0) >> 4);
    		az32 = ((int32_t)az16 << 4) | ((base[13] & 0xF0) >> 4);
    
    

    It uses byte indices 11, 12, and 13, but these correspond to Gyro Z and Temperature data. The correct indices are 17, 18, and 19.
    Screenshot 2026-04-01 213534.png

    VOXL SDK and Software voxl-sdk
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups