ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. Kerry Snyder
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 5
    • Best 0
    • Controversial 0
    • Groups 0

    Posts made by Kerry Snyder

    • RE: Boson 640 MIPI M0153: 16-bit Pre-AGC

      @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

      posted in Video and Image Sensors
      Kerry SnyderK
      Kerry Snyder
    • Boson 640 MIPI M0153: 16-bit Pre-AGC

      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?

      posted in Video and Image Sensors
      Kerry SnyderK
      Kerry Snyder
    • RE: VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod

      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;
      
      
      posted in VOXL 2 Mini
      Kerry SnyderK
      Kerry Snyder
    • RE: VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod

      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!

      posted in VOXL 2 Mini
      Kerry SnyderK
      Kerry Snyder
    • VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod

      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?
      posted in VOXL 2 Mini
      Kerry SnyderK
      Kerry Snyder