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!

    Software Development

  • 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

  • IMU Frame off
    IgorI Igor

    @Alex-Kushleyev Hi Alex,

    Thank you for the clear and concise explanation.

    Ask your questions right here!

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

    Ask your questions right here!

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

  • Don't have an account? Register

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