Skip to content

VOXL 2 and VOXL 2 Mini

658 Topics 3.7k Posts

VOXL 2, VOXL 2 Mini and VOXL 2 IO: bring-up, connectors, power, cameras, system image and SDK installs on the current compute platform.

  • Camera Trigger Interface (Still Images)

    Unsolved voxl-2
    6
    0 Votes
    6 Posts
    1k Views
    Nathan Sullivan 0N
    @Alex-Kushleyev we needed three outputs and three inputs, so we ended up using an entirely different board (an AVR system) connected to the VOXL2 via ttyHS1 through the expansion board, and that seems to be doing what we need, with the added benefit of the pulldown resistors being built into that control board. There is certainly something odd about the PX4 build on this unit, both in terms of available camera controls and GPS options, which is the next thing we're trying to tackle. @restore unfotunately I'm under an NDA and can't say much about what we're doing with the Sony hardware, but I will say that their documented processes for the Raspberry Pi 4 also work on the Voxl2, as long as you have the USB3 available. Try not to use the SDK to trigger the camera though; the performance there isn't exactly consistent. The hardwired options (be it through the not-quite-USB port or the phsyical interface on something like an ILX-LR1) are rock solid, but as they're designed to be button-triggered, you'll need a resistor between your control board and some sort of transistor (2N222) and then control the actual interface with the transistor. Otherwise, the trigger input is looking for the output from its own source, which is an indeterminate voltage and will quite likely damage the VOXL. The transistor will take essentially whatever current you give it, so that resistor is also mandatory - 10kOhm works for me with the AVR 440 chip controlling it.
  • VOXL-ESC V2 : One of the ESC is not detected

    Unsolved voxl-2
    7
    0 Votes
    7 Posts
    1k Views
    wilkinsafW
    I found this by running ./voxl-esc-scan.py or voxl-esc and selecting detect...or scan I can not remember
  • IO board for PWM output using the 4in1 ESC M0138-1

    Unsolved voxl-2-io
    13
    0 Votes
    13 Posts
    4k Views
    Alex KushleyevA
    @restore , i don't think this module will work with VOXL2_IO because it seems the Seagull MAP2 interface expects direct connection to the I/O pins, which is not the case when using VOXL2_IO module. Alex
  • VOXL2 Unbricking Procedure not working "Waiting for EDL Device"

    Unsolved voxl-2
    7
    0 Votes
    7 Posts
    2k Views
    tomT
    @Chase-Riley Since you're getting no response from lsusb or dmesg I think the best path forward is an RMA: https://www.modalai.com/pages/rma
  • Attempt to improve odometry using Opticalflow(&rangefinder)

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    464 Views
    Jetson NanoJ
    @Chad-Sweet, @James-Strawson, @tom any updates?
  • VOXL2 RTSP decoding fails

    Unsolved voxl-2
    25
    0 Votes
    25 Posts
    7k Views
    Alex KushleyevA
    @Aaky, I see what you are asking. What is needed is the python binding to the C function int pipe_server_get_num_clients(int ch) , which is defined here pympa_create_pub already is set up to return the MPA channel number, so we would just need to use that channel number of checking the number of clients. I can implement this, but it will need to wait a few days. That is a good feature to have. If you would like to try implementing it yourself, you can add the bindings to : https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/pympa-experimental/tools/pympa.cpp (add call to pipe_server_get_num_clients) in a similar way how other functions are called. add the actual python wrapper to: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-mpa-tools/-/blob/pympa-experimental/tools/python/pympa.py then finally, when you call pympa_create_pub, save the pipe id and then pass it to check for clients. Alex
  • VOXL2 Mini / AR0144 J7 Group 1 / voxl-fsync-mod

    Unsolved voxl-2-mini
    4
    0 Votes
    4 Posts
    2k Views
    Kerry SnyderK
    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;
  • PX4 params missing

    Unsolved voxl-2
    8
    0 Votes
    8 Posts
    2k Views
    R
    @riteshsharma do the SDK installation with ./install.sh -w option. This will wipe the entire file system including the /data partition which is usually untouched.
  • VOXL portal not working

    Unsolved voxl-2
    13
    1
    0 Votes
    13 Posts
    2k Views
    R
    @tom the full wipe SDK install sorted it out. Thanks
  • Dual Tracking

    Unsolved voxl-2
    4
    2
    0 Votes
    4 Posts
    931 Views
    Jetson NanoJ
    @Eric-Katzfey Understood. Thank you.
  • External FC

    Unsolved voxl-2
    4
    0 Votes
    4 Posts
    586 Views
    Jetson NanoJ
    @Eric-Katzfey Understood. Thanks My line of questioning in another topic I posted - " Attempt to reduce drift with the help of stereo camera " is similar. So, I'll close this and take your advice from that. Thanks again
  • lis3mdl magnetometer

    Unsolved voxl-2-mini
    20
    0 Votes
    20 Posts
    4k Views
    M
    @Vinny Thanks for the help on this I really appreciate it. I'll take a look.
  • Offboard mode not working

    Unsolved voxl-2
    1
    2 Votes
    1 Posts
    569 Views
    No one has replied
  • Recent updates to m0054 variants camera power supply configs

    Unsolved voxl-2
    1
    0 Votes
    1 Posts
    420 Views
    No one has replied
  • SWARM Drones with Wifi with 2 VOXL Starling

    Unsolved voxl-2
    3
    0 Votes
    3 Posts
    960 Views
    Z
    @Moderator Please tell me that without modifications Just Like Vijay Kumar has developed the SWARM of MESH with your Drones, I want to buy VOXL 2 Starling Drones in order to develop the Mesh Networking with 2 drones? How I can do it easily? Is it feasible ? or We can develop that with XBEE 3 ? Please help me in this regard ? If I need to change the driver setting How I can do that in order to implement the SWARM of the drones MESH Networking ?
  • Getting compass to work from the Here 2 GPS

    Unsolved voxl-2
    2
    0 Votes
    2 Posts
    515 Views
    Alex KushleyevA
    @restore, it looks like PX4 does have a driver for this imu/compass. https://github.com/modalai/px4-firmware/blob/voxl-dev/src/drivers/imu/invensense/icm20948/ICM20948.cpp However, it is not clear whether you can read just compass data. Please take a look at this driver. If you want to use it, you will need to enable building of the driver in the voxl2 board config: https://github.com/modalai/px4-firmware/blob/voxl-dev/boards/modalai/voxl2-slpi/default.px4board : enable DRIVERS_IMU_INVENSENSE_ICM20948=y . Then, modify /usr/bin/voxl-px4-start to include: qshell icm20948 start We have not tested this driver, so we cannot really provide any guidance on using it for your application. However, with the above instructions, you should be able to compile it and run it. Please make sure that the IMU data from this module does not conflict with the main flight IMU. Alex
  • QRB5165M vs QSM8250

    Unsolved voxl-2
    3
    0 Votes
    3 Posts
    839 Views
    wilkinsafW
    Noting here that flashing the wrong kernel will brick the device (ie flashing the QRB on the QSM) make sure to select the correct option when upgrading the board.
  • VOXL2 flash error

    Unsolved voxl-2
    8
    0 Votes
    8 Posts
    2k Views
    tomT
    @Nathan-Sullivan-0 Great! Thanks for the update
  • Waiting for EDL device

    Unsolved voxl-2
    2
    1 Votes
    2 Posts
    1k Views
    N
    Hi @Jonathan-Davis, Our Starling v2 VOXL 2 board requires this flat build image (M0054-2 Starling QDL Image 1.7.4) which is available in our protected downloads as well as in the unbricking documentation here where you can proceed with the same step-by-step instructions. When finished, the qdl command should complete and the terminal should output "partition 1 is now bootable" indicating a successful QDL flash. Hope this helps!
  • VOXL2 - Cube Orange External Flight Controller Integration

    Unsolved voxl-2
    14
    0 Votes
    14 Posts
    4k Views
    Jetson NanoJ
    Thank you @Eric-Katzfey , it worked, I tested each port individually and made sure the individual ports are working, and then integrated the two and is working fine. Here is my solution if anyone needs. I used Telem 1 port of the cube and the UART pins on the J5 connector of USB2 Type A Breakout (M0141) . The parameters I set for MAV 1 is here [image: 1715330904479-214a9a31-6231-4a59-bb93-3048e5fc9c5b-image.png] [image: 1715330935684-33012de2-cc53-484e-99de-dc534345f369-image.png] After disabling the voxl-px4 services, Connect to VOXL wifi and check QGC, you'll get the FC data in which the cube is used as the flight controller. The VOXL ESC, I haven't tested it yet, I'll test and get back if any problems.