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

ModalAI Forum

Kerry SnyderK

Kerry Snyder

@Kerry Snyder
Unfollow Follow
About
Posts
5
Topics
2
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Boson 640 MIPI M0153: 16-bit Pre-AGC
    Kerry SnyderK Kerry Snyder

    @Alex-Kushleyev Thank you! For the moment we have decided to stick with USB since we can fit that into the current electrical architecture, but I appreciate the offer and may take you up on it at some point in the future if our design changes.

    Thanks,
    Kerry

    Video and Image Sensors

  • Boson 640 MIPI M0153: 16-bit Pre-AGC
    Kerry SnyderK Kerry Snyder

    I'm wondering if there is a way to use the 16-bit Pre-AGC output through the M0153 Boson MIPI interface - I imagine that would require at least a different '.bin' file on the VOXL2 side?

    Video and Image Sensors

  • VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod
    Kerry SnyderK Kerry Snyder

    I can confirm that multi-camera triggering works with a very minor patch:

    diff --git a/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c b/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c
    index 837dd21..730e374 100644
    --- a/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c
    +++ b/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c
    @@ -24,7 +24,10 @@
      * /sys/module/voxl_fsync_mod/parameters/pulse_width_us
      *  - uint - the length of pulse to use in microseconds, default 10, 10us
      * 
    - * /sys/module/voxl_fsync_mod/parameters/gpio_num
    + * /sys/module/voxl_fsync_mod/parameters/gpio1_num
    + *  - uint - the GPIO number to use
    + * 
    + * /sys/module/voxl_fsync_mod/parameters/gpio2_num
      *  - uint - the GPIO number to use
      */
     #define GPIO_OFFSET 1100
    @@ -38,8 +41,10 @@ static uint pulse_width_us = 10; //
     module_param(pulse_width_us, uint, 0644);
     
     /* GPIO number */
    -static uint gpio_num = 109;
    -module_param(gpio_num, uint, 0644);
    +static uint gpio1_num = 41;
    +module_param(gpio1_num, uint, 0644);
    +static uint gpio2_num = 114;
    +module_param(gpio2_num, uint, 0644);
     
     /* enable/disable the GPIO output and timestamps */
     static int enabled = 0;
    @@ -143,8 +148,10 @@ static enum hrtimer_restart fsync_hrtimer_tick_cb(struct hrtimer *timer)
     {
     	/* initialize on being enabled */
     	if (!initialized && enabled) {
    -		gpio_direction_output((gpio_num + GPIO_OFFSET), 0);
    -		gpio_export((gpio_num + GPIO_OFFSET), true);
    +		gpio_direction_output((gpio1_num + GPIO_OFFSET), 0);
    +		gpio_export((gpio1_num + GPIO_OFFSET), true);
    +		gpio_direction_output((gpio2_num + GPIO_OFFSET), 0);
    +		gpio_export((gpio2_num + GPIO_OFFSET), true);
     		initialized = true;
     		pr_info("voxl-fsync: initialized\n");
     	}
    @@ -153,7 +160,8 @@ static enum hrtimer_restart fsync_hrtimer_tick_cb(struct hrtimer *timer)
     	hrtimer_forward_now(&fsync_hrtimer, ns_to_ktime(sampling_period_ns));
     	
     	if (enabled) {
    -		gpio_set_value((gpio_num + GPIO_OFFSET), 1);
    +		gpio_set_value((gpio1_num + GPIO_OFFSET), 1);
    +		gpio_set_value((gpio2_num + GPIO_OFFSET), 1);
     
     		/* TIMESTAMP TIMESTAMP TIMESTAMP*/
     		mutex_lock(&fysnc_mutex);
    @@ -163,7 +171,8 @@ static enum hrtimer_restart fsync_hrtimer_tick_cb(struct hrtimer *timer)
     		if(pulse_width_us > 0)
     			udelay(pulse_width_us);
     
    -		gpio_set_value((gpio_num + GPIO_OFFSET), 0);
    +		gpio_set_value((gpio1_num + GPIO_OFFSET), 0);
    +		gpio_set_value((gpio2_num + GPIO_OFFSET), 0);
     
     		/* signal clients */
     		fsync_update_pending = 1;
    
    
    VOXL 2 Mini

  • VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod
    Kerry SnyderK Kerry Snyder

    Thanks! I was able to grab and flash SDK 1.3.0 yesterday and it's been working well.

    com.qti.sensormodule.ar0144_fsin_2.bin does seem to work - I'm able to configure gpio_num to 114 and control the ar0144 rate with voxl_fsync_mod.

    The max frame rate I saw indoors was 43.5hz with sampling_period_ns set to 23000000, and outdoors was 52.6hz with sampling_period_ns set to 19000000. I suspect this is somehow related to exposure time (or an exposure cap) although I see a solid 60hz indoors and outdoors when I manually configure the frame rate. For reference, this is all measured with gstreamer qtiqmmfsrc into OpenCV and then ROS2, which could definitely impact performance and exposure control.

    I'll try out a multi-gpio kernel module modification! Thanks again!

    VOXL 2 Mini

  • VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod
    Kerry SnyderK Kerry Snyder

    I have been able to successfully compile and run voxl-fsync-mod on the VOXL2 Mini to generate trigger pulses on GPO 41 (on connector J10) for an external USB camera. Next, I would like to trigger our AR0144 (MSU-M0149-1) module, which is connected to J7 Group 1 (sensor3) through MDK-M0076-1-00. If I'm parsing this page correctly, I will want to trigger on pin 114. I think I will also need 'com.qti.sensormodule.ar0144_fsin_3.bin' from Modal to enable sync input for the image sensor.

    Is this understanding correct? And would I be able to get that 'bin' file to support this configuration?

    Other minor related questions:

    1. Is VOXL2 Mini 1.7.X still due to be released soon (so that we can have voxl-fsync-mod built in)?
    2. If we want to trigger multiple cameras on different GPIO, is our best bet to modify voxl-fsync-mod to toggle multiple pins within fsync_hrtimer_tick_cb?
    VOXL 2 Mini
  • Login

  • Don't have an account? Register

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