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

    awagner

    @awagner

    0
    Reputation
    2
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    awagner Unfollow Follow

    Latest posts made by awagner

    • RE: M0084 with VOXL2 Mini Unable to detecto camera on Upper Slot

      @Alex-Kushleyev Thank you that fixed it for J6. Is there a reason the same config doesn't work on J7? Ideally was hoping to use J7 since it works better for our layout purposes.

      I can get J6U-ar0144 and J6L-imx412 to work but not J7U-ar0144 and J7L-imx412 or J7U-imx412 and J7L-ar0144. For both it cannot find the lower sensor.

      Also is there a reason the imx412 driver does not exist for J6 upper?

      posted in Image Sensors
      A
      awagner
    • M0084 with VOXL2 Mini Unable to detecto camera on Upper Slot

      I have a VOXL 2 Mini and am trying to use an ar0144 and a imx412 on the M0084 cable on J6. I was unable to get whatever camera I put on JU to be detected when I ran voxl-camera-server. I reverted to testing with two ar0144 cameras to reduce variables. I also tested with another M0084 cable I had and the issue persisted. I also tested on J7 and had the same issue. Let me know if there is something I am missing to fix this or more information is needed.

      VOXL2 Mini Info:

      system-image: 1.8.06-M0104-14.1a-perf
      kernel:       #1 SMP PREEMPT Wed Oct 22 05:43:49 UTC 2025 4.19.125
      ────────────────────────────────────────────────────────────────────────────────
      hw platform:  M0104
      mach.var:     2.0.2
      SKU:          TF-M0104-6-V1-C6
      ────────────────────────────────────────────────────────────────────────────────
      voxl-suite:   1.6.0
      

      Current /data/modalai/custom_camera_config.txt:

      J6_LOWER_SENSOR="ar0144"
      J6_LOWER_NAME="tracking1"
      J6_LOWER_ROTATE="false"
      
      
      J6_UPPER_SENSOR="ar0144"
      J6_UPPER_NAME="tracking2"
      J6_UPPER_ROTATE="false"
      
      

      Current /etc/modalai/voxl-camera-server.conf from running voxl-configure-cameras:

      {
      	"version":	0.1,
      	"fsync_en":	false,
      	"fsync_gpio":	109,
      	"cameras":	[{
      			"type":	"ar0144",
      			"name":	"tracking1",
      			"enabled":	true,
      			"camera_id":	0,
      			"fps":	30,
      			"en_rotate":	false,
      			"en_preview":	true,
      			"preview_width":	1280,
      			"preview_height":	800,
      			"en_raw_preview":	true,
      			"en_misp":	true,
      			"misp_width":	1280,
      			"misp_height":	800,
      			"misp_venc_enable":	true,
      			"misp_venc_mode":	"h265",
      			"misp_venc_br_ctrl":	"cbr",
      			"misp_venc_Qfixed":	38,
      			"misp_venc_Qmin":	15,
      			"misp_venc_Qmax":	50,
      			"misp_venc_nPframes":	9,
      			"misp_venc_mbps":	1.2,
      			"misp_venc_osd":	false,
      			"misp_awb":	"auto",
      			"misp_gamma":	1,
      			"misp_zoom":	1,
      			"ae_mode":	"lme_msv",
      			"gain_min":	54,
      			"gain_max":	8000,
      			"ae_desired_msv":	60,
      			"exposure_min_us":	20,
      			"exposure_max_us":	12000,
      			"exposure_soft_min_us":	5000,
      			"ae_filter_alpha":	0.600000023841858,
      			"ae_ignore_fraction":	0.20000000298023224,
      			"ae_slope":	0.05000000074505806,
      			"ae_exposure_period":	1,
      			"ae_gain_period":	1
      		}, {
      			"type":	"ar0144",
      			"name":	"tracking2",
      			"enabled":	true,
      			"camera_id":	1,
      			"fps":	30,
      			"en_rotate":	false,
      			"en_preview":	true,
      			"preview_width":	1280,
      			"preview_height":	800,
      			"en_raw_preview":	true,
      			"en_misp":	true,
      			"misp_width":	1280,
      			"misp_height":	800,
      			"misp_venc_enable":	true,
      			"misp_venc_mode":	"h265",
      			"misp_venc_br_ctrl":	"cbr",
      			"misp_venc_Qfixed":	38,
      			"misp_venc_Qmin":	15,
      			"misp_venc_Qmax":	50,
      			"misp_venc_nPframes":	9,
      			"misp_venc_mbps":	1.2,
      			"misp_venc_osd":	false,
      			"misp_awb":	"auto",
      			"misp_gamma":	1,
      			"misp_zoom":	1,
      			"ae_mode":	"lme_msv",
      			"gain_min":	54,
      			"gain_max":	8000,
      			"ae_desired_msv":	60,
      			"exposure_min_us":	20,
      			"exposure_max_us":	12000,
      			"exposure_soft_min_us":	5000,
      			"ae_filter_alpha":	0.600000023841858,
      			"ae_ignore_fraction":	0.20000000298023224,
      			"ae_slope":	0.05000000074505806,
      			"ae_exposure_period":	1,
      			"ae_gain_period":	1
      		}]
      }
      
      

      Output of dmesg -w when I run voxl-camera-server -l

      [   42.046949] CAM_ERR: CAM-MEM: cam_mem_mgr_create_debug_fs: 126 failed to create dentry
      [   42.059621] CAM_INFO: CAM-HFI: cam_hfi_init: 878 Init IO1 : [0x10c00000 0xcf300000] IO2 [0xe0200000 0x1ed00000]
      [   42.069812] CAM_INFO: CAM-ICP: cam_icp_mgr_hw_open: 3879 FW download done successfully
      [   42.069836] CAM_INFO: CAM-ICP: cam_icp_mgr_process_dbg_buf: 2572 FW_DBG:CICP_FW_E : HFI  :QC_IMAGE_VERSION_STRING=CICP.FW.1.0-00079,OEM_IMAGE_VERSION_STRING=CRM,BUILD_TIME: Oct 17 2019 05:49:19,CACHE_ENABLED at icphostinterface.c:636 QC_IMAGE_VERSION_STRING=CICP.FW.1.0-00079 OEM_IMAGE_VERSION_STRING=CRM
      [   42.069855] CAM_INFO: CAM-ICP: cam_icp_mgr_process_dbg_buf: 2572 FW_DBG:CICP_FW_E : HFI  :ELF variant: CACHE-ENABLED:T480:API_V2:USE_CDM_1_1: , API version: 0x2000049 at icphostinterface.c:637 QC_IMAGE_VERSION_STRING=CICP.FW.1.0-00079 OEM_IMAGE_VERSION_STRING=CRM
      [   42.096646] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.58
      [   42.098798] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.56
      [   42.100172] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.60
      [   42.100223] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Linked as a consumer to regulator.79
      [   42.123534] CAM_INFO: CAM-SENSOR: cam_sensor_driver_cmd: 918 Probe success,slot:0,slave_addr:0x30,sensor_id:0x356
      [   42.123597] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.79
      [   42.127655] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.60
      [   42.127690] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.56
      [   42.127719] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor0: Dropping the link to regulator.58
      [   42.137439] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.58
      [   42.139590] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.56
      [   42.141850] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.60
      [   42.141938] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Linked as a consumer to regulator.79
      [   42.167191] CAM_ERR: CAM-CCI: cam_cci_irq: 264 Base:        pK-error, M1_Q1 NACK ERROR: 0x40000000
      [   42.167345] CAM_ERR: CAM-CCI: cam_cci_read: 1329 ERROR with Slave 0x30:
      [   42.167361] CAM_ERR: CAM-CCI: cam_cci_read_bytes: 1613 failed to read rc:-22
      [   42.167374] CAM_ERR: CAM-SENSOR: cam_cci_i2c_read: 35 rc = -22
      [   42.167389] CAM_WARN: CAM-SENSOR: cam_sensor_match_id: 707 read id: 0x0 expected id 0x356:
      [   42.167602] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.79
      [   42.172372] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.60
      [   42.172686] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.56
      [   42.172868] qcom,camera ac4f000.qcom,cci:qcom,cam-sensor1: Dropping the link to regulator.58
      [   42.242714] CAM_WARN: CAM-CRM: cam_req_mgr_close: 160 release invoked associated userspace process has died
      

      Photo of setup: voxl-cam-setup-smaller.jpg

      posted in Image Sensors
      A
      awagner
    • RE: VOXL ESC 4 in 1 Fire

      Thank you Alex. We started with this param file: Seeker_V1_tmotor_f2203_1500kv_Param_Rev_A.xml from the voxl-esc params repo and I made a few tweaks like the vbat_nominal_mv and motor_kv and I verified the num_cycles_per_rev was correct for the new motor.

      Also for my improving my knowledge so I don't make a mistake like this again how do you come to the conclusion it is too large? I knew it was on the edge based on the 750g number you provide but when I look at our ecalc numbers for this drone it says 3.75A per motor in a hover and 17A at full throttle per motor which seems well within the current specs listed.

      I will do the RMA and get the FPV esc. Are you able to provide the updated param file in the meantime? Let me know if you need more info before you can generate that.

      Anthony

      posted in ESCs
      A
      awagner
    • VOXL ESC 4 in 1 Fire

      We had the voxl 4 in 1 mini esc catch on fire immediately after arming the vehicle. Initial default px4 params had max rpm at 7000 which was not enough to fly. I upped it to 12000 which was less than the 14300 max determined from the calibration procedure. It seems like maybe the idle RPM was kinda high and the ESC very aggressively ramps up to that speed.

      • Motor and propeller used. Did you calibrate with propeller mounted? Brother Hobby Avenger 2806.5-1300kv and 7x4.5 2 blade prop
      • Which esc you are using (Mxxxx number) - M0129-63-01
      • which esc firmware was installed? - Can't find out now. Whatever it shipped with.
      • Input voltage. Battery or power supply - Charged 4S lipo
      • What test was actually run? Do you have exact command? - I armed the vehicle. All other pre tests for the calibration worked without issue.
      • Do you have output of the calibration script? - pwm_vs_rpm_curve_a0 = -227.46924724435763, pwm_vs_rpm_curve_a1 = 0.9427038691914541, pwm_vs_rpm_curve_a2 = 5.562406707957121e-06
      • did you load any params on the esc before the test? loaded param file below
      • Can you describe the behavior in more detail. - Specifically at which point of the test the ESC started misbehaving - beginning of the test, middle, or end. What was the current drae reported by the test script - Immediately on arm sparks and flames. The ramp up to idle RPM seemed extremely aggressive. Previously had flown without fire but the initial arming still didn't sound great. One time arming caused vehicle to brown out.PXL_20251217_124424170 1.jpg
      • Can you send a picture of the esc with damage? Attached. Pretty sure board had huge inrush starting motors, got too hot and positive lead desoldered itself and then shorted with gnd. Hard to tell what damage is from initial problem and being next to battery shorting.

      Param file:

      <EscParameters>
      
        <IdParams>
          <param name="id"              value="127"/>  <!-- 0-7 .. 127 means use hardware ID pins to read ID-->
          <param name="dir"             value="2"/>    <!-- 0=fwd, 1=rev, 2=fwd id-based, 3=rev id-based -->
        </IdParams>
      
        <UartParams>
          <param name="protocol_version" value="2"/>          <!-- reserved for future use -->
          <param name="input_mode"       value="0"/>          <!-- reserved for future use -->
          <param name="baud_rate"        value="2000000"/>     <!-- SLOW for old SDK for now -->
          <param name="char_timeout_ns"  value="0"/>          <!-- not used -->
          <param name="cmd_timeout_ns"   value="100000000"/>  <!-- timeout for incoming commands before ESC will stop the motor -->
        </UartParams>
      
        <TuneParams>
          <param name="pwm_frequency"       value="48000"/>  <!-- switching freqency of PWM signal going to motors. 24Khz and 48Khz are only options for now -->
          <param name="vbat_nominal_mv"     value="14800"/>  <!-- used for sanity checking and limiting of voltage-dependent funcions -->
          <param name="num_cycles_per_rev"  value="7"/>      <!-- number of pole pairs in the motor. used for converting electrical frequency to mechanical rpm -->
          <param name="min_rpm"             value="1900"/>   <!-- minimum RPM that will be attempted, otherwise capped -->
          <param name="max_rpm"             value="14300"/>  <!-- maximum RPM that will be attempted, otherwise capped -->
          <param name="min_pwm"             value="50"/>     <!-- cap for minimum power to be ever applied. max is 999 -->
          <param name="max_pwm"             value="999"/>    <!-- cap for maximum power to be ever applied. max is 999 -->
          <param name="pwm_vs_rpm_curve_a0" value="-227.46924724435763"/>  <!-- this is actually motor_voltage vs rpm curve.. using legacy naming -->
          <param name="pwm_vs_rpm_curve_a1" value="0.9427038691914541"/> <!-- Emax RS1306 3300KV with tri-blade 3x3x3 -->
          <param name="pwm_vs_rpm_curve_a2" value="5.562406707957121e-06"/>
          <param name="kp"                  value="250"/>    <!-- RPM controller proportional gain -->
          <param name="ki"                  value="30"/>     <!-- RPM controller proportional gain -->
          <param name="max_kpe"             value="300"/>    <!-- maximum proportional erorr term (max is 999) -->
          <param name="max_kie"             value="100"/>    <!-- maximum integral error term (max is 999) -->
          <param name="max_rpm_delta"       value="3000"/>    <!-- cap for maximum rpm error used in RPM controller -->
          
          <param name="spinup_type"         value="0"/>      <!-- 0: traditional, 1: sinusoidal -->
          <param name="spinup_power"        value="70"/>     <!-- power used to during spin-up procedure -->
          <param name="latch_power"         value="80"/>     <!-- power used during latching stage of spin-up (out of 999)-->
          <param name="spinup_power_ramp"   value="8"/>      <!-- it will take ( 4096 / (spinup_power_ramp*10000) ) seconds to ramp sinusoidal start-up power from 0 to spinup_power -->
          <param name="spinup_rpm_target"   value="1000"/>   <!-- Desired RPM at the end of the sinusoidal spin-up procedure -->
          <param name="spinup_time_ms"      value="1000"/>   <!-- Duration of the sinusoidal spin-up procedure -->
          <param name="spinup_bemf_comp"    value="1"/>      <!-- 0: disable, 1:enable back-emf compensation in sinusoidal spin-up procedure -->
          <param name="motor_kv"            value="1300"/>    <!-- kV value of the motor. used in back-emf compensation during spin-up -->
      
          <param name="min_num_cross_for_closed_loop" value="50"/>  <!-- exit latching mode of fixed power after this number of zero crossings -->
          <param name="protection_stall_check_rpm" value="750"/> <!-- if motor spins below this RPM, stall check will trigger and stop / restart the motor -->
      
          <param name="brake_to_stop"       value="0"/>             <!-- apply brake when stopping motor (or not) -->
          <param name="stall_timeout_ns"    value="20000000"/>      <!-- after spin-up, if no zero crossing is not detected for this amount of time, motor is considered stalled -->
          <param name="require_reset_if_stalled"      value="0"/>   <!-- require sending an array of zero commands to reset before next spin-up, if motor stalled -->
      
          <param name="tone_freqs"          value="[200, 215, 225, 250, 0,0,0,0, 0,0,0,0]"/> <!-- 200 is 2000Hz, max 255 -->
          <param name="tone_durations"      value="[10,  10,  10,  10,  0,0,0,0, 0,0,0,0]"/> <!-- duration of each tone in units of 10 milli-seconds. Poor naming!!! -->
          <param name="tone_powers"         value="[60,  60,  60,  60,  0,0,0,0, 0,0,0,0]"/> <!-- max is 255 -->
      
          <param name="dt_threshold_ns"       value="150000"/>      <!-- during start up, ignore inter-commutation times less than this val, probably noise -->
          <param name="max_dt_ns"             value="2500000"/>     <!-- min and max values for time between two commutations. these are used as caps -->
          <param name="min_dt_ns"             value="10000"/>
          <param name="dt_bootstrap_ns"       value="2000000"/>     <!-- filter bootstrap value for commutation dt during start up -->
      
          <param name="spinup_stall_dt_ns"    value="6000000"/>     <!-- during spin-up, if no zero crossing is not detected for this amount of time, motor is considered stalled -->
          <param name="spinup_stall_check_ns" value="30000000"/>    <!-- time after beginning of spinup to start checking for spinup stall -->
      
          <param name="alignment_time_ns"     value="0"/>           <!-- alignment time before spin-up -->
          <param name="timing_advance"        value="0"/>
          <param name="sense_advance"         value="0"/>
      
          <param name="demag_timing"          value="0"/>    <!-- unused -->
      
        </TuneParams>
      </EscParameters>
      
      posted in ESCs
      A
      awagner
    • VOXL USB Expansion Board with Fastboot v2 compatibility with VOXL CAM

      Does the VOXL / VOXL 2 USB Expansion Board with Fastboot v2 work with the VOXL CAM w/ Flight controller? Does it require to remove any part of the housing? I don't see the connector exposed on the back of the housing. We are looking to add a USB to ethernet dongle as a permanent addition to the VOXL CAM so I want to understand if there is any considerations that I need to know about.

      posted in VOXL-CAM
      A
      awagner