Skip to content

Support Request Format for Best Results

164 Topics 751 Posts
  • Starling 2 payload

    1
    0 Votes
    1 Posts
    919 Views
    No one has replied
  • 0 Votes
    2 Posts
    1k Views
    A
    @shiva-rv Try heating up the IMU by stressing the CPU then shooting it with air to create a large thermal gradient between the silicon of the VOXL2 and the IMU die itself, I predict you'll see the Z bias jump like crazy, but X and Y not so much. You might also observe that the temperature gradient determines the bias, not the absolute temperature, hence using a temperature model for compensation is useless, and not applied by modal: https://gitlab.com/voxl-public/voxl-sdk/services/qrb5165-imu-server/-/blob/master/server/src/imu_interface.cpp?ref_type=heads#L168 If you're curious about the physics of why MEMs IMUs like ICM42688 act this way I'm sure your favorite AI chatbot could give you a nice explanation about the materials sciences at play here. Practically, thermally isolate the IMU component as much as possible.
  • Bluetooth integration on the VOXL2

    1
    0 Votes
    1 Posts
    783 Views
    No one has replied
  • 0 Votes
    3 Posts
    2k Views
    Q
    @Alex-Kushleyev, thank you for your answer. I confirm your assumption, when I set the decimator to 1, the fps is not divided. Here are the tests I did on SDK 1.5.0 and SDK 1.6.3 : test with SDK 1.5.0 ; fps = 10 | standy_enabled = false or true | decimator = 5 | Pipe Name | bytes | wide | hgt |exp(ms)| gain | frame id |latency(ms)| fps | mbps | format | tof_depth | 43200 | 180 | 240 | 2.90 | 0 | 1540 | 28.0 | 10.0 | 3.5 | RAW8 timestamp(ms)| w | h | Zmax | center point (m) (conf) 7170622 | 240 | 180 | 7.1 | -0.0 0.0 0.0 0 fps = 60 | standy_enabled = false or true | decimator = 5 | Pipe Name | bytes | wide | hgt |exp(ms)| gain | frame id |latency(ms)| fps | mbps | format | tof_depth | 43200 | 180 | 240 | 1.30 | 0 | 2155 | 9.3 | 59.9 | 20.7 | RAW8 timestamp(ms)| w | h | Zmax | center point (m) (conf) 10666991 | 240 | 180 | 3.1 | 0.0 0.0 0.0 0 fps = 60 | standy_enabled = false or true | decimator = 5 | Pipe Name | bytes | wide | hgt |exp(ms)| gain | frame id |latency(ms)| fps | mbps | format | tof_depth | 43200 | 180 | 240 | 1.18 | 0 | 869 | 9.4 | 59.9 | 20.7 | RAW8 timestamp(ms)| w | h | Zmax | center point (m) (conf) 10753813 | 240 | 180 | 3.1 | 0.0 0.0 0.0 0 test with SDK 1.6.3 fps = 10 | standy_enabled = true or false | decimator = 1 | Pipe Name | bytes | wide | hgt |exp(ms)| gain | frame id |latency(ms)| fps | mbps | format | tof_depth | 43200 | 180 | 240 | 3.02 | 0 | 260 | 29.7 | 10.0 | 3.5 | RAW8 timestamp(ms)| w | h | Zmax | center point (m) (conf) 2052194 | 240 | 180 | 7.1 | -0.0 0.0 0.0 0 fps = 60 | standy_enabled = true or false | decimator = 1 | Pipe Name | bytes | wide | hgt |exp(ms)| gain | frame id |latency(ms)| fps | mbps | format | tof_depth | 43200 | 180 | 240 | 1.18 | 0 | 7532 | 9.3 | 59.9 | 20.7 | RAW8 timestamp(ms)| w | h | Zmax | center point (m) (conf) 2190721 | 240 | 180 | 3.1 | 0.0 0.0 0.0 0 fps = 60 | standy_enabled = true or false | decimator = 10 | Pipe Name | bytes | wide | hgt |exp(ms)| gain | frame id |latency(ms)| fps | mbps | format | tof_depth | 43200 | 180 | 240 | 1.20 | 0 | 83 | 10.1 | 6.0 | 2.1 | RAW8 timestamp(ms)| w | h | Zmax | center point (m) (conf) 2469720 | 240 | 180 | 3.1 | 0.0 0.0 0.0 0 As you can see, for SDK 1.5.0, fhe fps is NEVER divided, regardless of the value of standby_enabled. For SDK 1.6.3, fhe fps is ALWAYS divided, regardless of the value of standby_enabled. So, my problem is solved but I think you have a bug on the management of the paramater 'standby_enabled'. I fastly investigate the code of voxl-camera-server and I can't find where you are using 'standby_enabled'. Here is the search result in all the project : # Query: standby_en # ContextLines: 2 6 results - 2 files include/common_defs.h: 370 modal_exposure_msv_config_t ae_msv_info; ///< ModalAI AE data (MSV) 371 372: int standby_enabled; ///< Standby enabled for lidar 373 int decimator; ///< Decimator to use for standby 374 src/config_file.cpp: 129 printf(" gain_min : %d\n", cams[i].ae_msv_info.gain_min); 130 printf(" gain_max : %d\n", cams[i].ae_msv_info.gain_max); 131: printf(" standby_enabled: %d\n", cams[i].standby_enabled); 132 printf(" decimator: %d\n", cams[i].decimator); 133 printf(" independent_exposure:%d\n", cams[i].ind_exp); 642 // standby settings for tof only 643 if(is_tof_sensor(cam->type)) { 644: json_fetch_bool_with_default(item, "standby_enabled", (int*)&cam->standby_enabled, cam->standby_enabled); 645 json_fetch_int_with_default (item, "decimator", &cam->decimator, cam->decimator); 646 } Maybe you should add a condition in your function PerCameraMgr::ProcessTOFPreviewFrame(): void PerCameraMgr::ProcessTOFPreviewFrame(mpa_ion_buf_t* buffer_info, camera_image_metadata_t meta) { tofFrameCounter++; if(grab_cpu_pitmode_active() && tofFrameCounter % (int)configInfo.decimator != 0){ return; } auto noStridePlaneSize = static_cast<size_t>(pre_width*pre_height*1.5); auto realWidth = static_cast<uint32_t>(pre_width*1.5); uint8_t* noStridePlane; if (buffer_info->stride != realWidth) { noStridePlane = new uint8_t[noStridePlaneSize]; removePlaneStride(buffer_info->stride, realWidth, buffer_info->height, (uint8_t*) buffer_info->vaddress, noStridePlane); } else { noStridePlane = static_cast<uint8_t*>(buffer_info->vaddress); } uint16_t srcPixel16[pre_width * pre_height] = {0}; // NOTE we don't actually puvblish tis particular metadata to the pipe // TOF data is published separately in a very different way to cameras meta.format = IMAGE_FORMAT_RAW8; meta.size_bytes = pre_width * pre_height; meta.stride = pre_width; Mipi12ToRaw16(meta.size_bytes, noStridePlane, srcPixel16); tof_interface->ProcessRAW16(srcPixel16, meta.timestamp_ns); if (buffer_info->stride != realWidth) { delete[] noStridePlane; } M_VERBOSE("Sent tof data to royale for processing\n"); return; } Best regards Quentin
  • Export Controls

    2
    0 Votes
    2 Posts
    1k Views
    Alex KushleyevA
    @Michael-Soul , it is EAR99
  • Unable to Bind VOXL 2 - Starling 2 to Commando 8 (915 v2) radio

    2
    0 Votes
    2 Posts
    1k Views
    tomT
    @MikeR Does your commando 8 have an orq ghost transmitter module connected to it? If it doesn't then it is likely using ELRS which is not compatible with a ghost receiver. You'd need a orqa transmitter like this one: https://shop.orqafpv.com/products/orqa-orqa-fpv-ctrl-radio-controller Maybe your other drone had an ELRS receiver on it?
  • I2C reading of 12S battery

    19
    0 Votes
    19 Posts
    5k Views
    Eric KatzfeyE
    @Nikos-Mavr You're welcome! And can you please start a new forum post for this new issue? Thanks!
  • 0 Votes
    2 Posts
    559 Views
    Alex KushleyevA
    @Shantanu-Gupta please check documentation and video for VOXL2: https://docs.modalai.com/voxl2-voxl2-mini-system-image/#force-voxl-2-into-fastboot https://docs.modalai.com/voxl2-connectors/#buttons https://www.youtube.com/watch?v=IM3PnW7cipQ Alex
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • M0181 Pin Out and Electrical Diagram

    flir
    23
    0 Votes
    23 Posts
    4k Views
    Alex KushleyevA
    @Dan-Jennings , M0181 can be used to enable a Boson and another hires or tracking camera (or Hadron combo), see diagram below. You would need to use the kernal variant 1.0.1 (same one used for M0173, which I am assuming you are already using). So basically, you can use any standard config C26-C29 + two more cameras connected to VOXL2 J8. Please note that VOXL2 J8 shares CCI (i2c) buses with J6 and J7, so you have to be a little careful about what cameras you connect to J8 to avoid i2c address conflicts. I am going to put together some more information on that soon. But if you are adding a Hadron or Boson + IMX412 to J8, there will be no conflict. Please let us know if you have any other questions. Alex [image: 1771605639258-voxl2_m0181_boson_hires.png]
  • 0 Votes
    3 Posts
    374 Views
    P
    Hi @DavidTorres, Thanks a lot for the detailed explanation — this is very helpful. Your comments about VIO drift, autonomy limitations, and the development effort required give us a much clearer picture. We’ll review the documentation and PX4 resources as suggested. Thanks again for taking the time to share your experience. Best regards
  • Uncontrollable Behavior and Missing Logs

    2
    0 Votes
    2 Posts
    238 Views
    Eric KatzfeyE
    @ggangmi What was the flight mode on takeoff and what did it unexpectedly change to? There should be logs in /data/px4/log. They may be incomplete or maybe even corrupted if the drone lost power in the crash but there should be something there. The logging starts when the drone is armed.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    45 Views
    No one has replied
  • Starling 2 max first flight

    3
    0 Votes
    3 Posts
    289 Views
    ModeratorM
    @Saleh-Ibrahim the drones come pre-configured for VIO and are flight tested in VIO mode prior to shipping. To troubleshoot VIO, please start here: https://docs.modalai.com/voxl-open-vins-server/#troubleshooting VOA does not ship enabled by default
  • This topic is deleted!

    1
    2
    0 Votes
    1 Posts
    34 Views
    No one has replied
  • about the power module v3

    2
    0 Votes
    2 Posts
    198 Views
    VinnyV
    Hi @Tormod-Axelsson-Hagen Our descriptions tell you all you might need to know to make your own power module: 2-6S tolerant (so VIN capable of up to ~25.2V+) 6A output at 5V Current monitoring if you do not use our ESCs (our ESCs provide a current reading to keep PX4 and other autopilots happy and for accurate remaining battery %) Connector format of your choosing but the Molex 4-pin MINI SPOX is the direct 1:1 for VOXL 2 https://www.digikey.com/en/products/detail/molex/0022057045/403343?s=N4IgTCBcDaIAxzGOBWA7HALCkBdAvkA If you want to make this flexible for VOXL 2 Mini, make it capable of generating 3.8V and use the MOLEX MICRO ONE family of connectors https://www.digikey.com/en/products/detail/molex/2059720041/13235081?s=N4IgTCBcDa4AwFYCcB2Mc4BYCMIC6AvkA) The rest is up to you based on your design intent and supply chain constraints and preferred vendors. Hope this helped!
  • Not listed for sale "MSU-M0014-1-01 OV7251 166° FOV"

    2
    2
    0 Votes
    2 Posts
    303 Views
    ModeratorM
    @zaimin78 We no longer sell that module. We do have some in stock though if you reach out at https://modalai.com/contact we should be able to get you a custom order.
  • Powering Servos from M0065/PWN Breakout

    11
    0 Votes
    11 Posts
    956 Views
    M
    @Alex-Kushleyev Thanks!
  • UK Operations Manual Info

    1
    0 Votes
    1 Posts
    163 Views
    No one has replied
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    1 Views
    No one has replied