There is a new module under development that allows you to pipe VGA (640x480) video from the hires camera at 30fps via MPA so that it can be streamed with voxl-streamer using RTSP while simultaneously saving 4k HD video at 30fps encoded as h265 into a file, preferably on the SD card on voxl. This module is now available in beta and will be officially released in upcoming releases of the voxl SDK for voxl, rb5-flight, and voxl 2. The beta package is available using wget https://storage.googleapis.com/modalai_public/modal_packages/archive/voxl-hires-server_0.0.1.ipk
. It is meant for use on voxl only and is compatible with voxl platform release 3-3-0-0.5.0-a. In order to use it with voxl-camera-server, reconfigure voxl-camera-server to not use the hires camera. For example, call voxl-configure-cameras
and choose option 1 Tracking + Stereo
to allow voxl-camera-server to access the tracking and stereo cameras but not the hires camera. Then you can use voxl-hires-server for the hires camera. Use voxl-hires-server -h
to see the available options. More documentation will be available upon official release of this new package.

Eric Katzfey
@Eric Katzfey
Best posts made by Eric Katzfey
-
How to stream hires camera at VGA resolution and simultaneously capture 4k30 to a file
-
RE: Streaming 4K video from Qualcomm RB5 drone
@kitkatSG Yes, we have enabled most resolutions in that sensor now and are preparing a release to address this issue.
-
RE: having trouble using docker on the sdcard
@JoeC Seems like it is an SD card issue. I was able to recreate the problem when using a SanDisk Extreme 32GB card. But when using a SanDisk Ultra 16GB card everything works fine.
-
RE: voxl-tag-detector fails to start on V3.3 "Missing lens_cal_file"
@PawelJ Bear with us. Our subject matter experts are out on summer vacation this week.
-
RE: Instructions/documentation needed on how to add new code snippet on voxl-build
Voxl uses systemd for startup. You create a "service" file to implement your desired startup action and place it in the /etc/systemd/system directory. There are lots of guides and documentation on the Internet about how to create systemd service files. You can also look at the service files already on Voxl for some examples.
-
RE: voxl-streamer client repetitive connect/disconnect
An update to UVC camera support has been started. It will increase number of supported cameras by allowing MJPEG and will increase number of supported viewers including latest QGroundControl versions. Target availability is mid-December.
-
RE: Voxl Streamer implementation with rtmp or dash streaming protocol
@Hammas-Ali We have not tried either of those streaming protocols. Voxl is a Linux computer so it is likely that you can implement RTMP or DASH. voxl-streamer uses GStreamer so, if there are RTMP or DASH GStreamer elements available, it shouldn't be too hard to incorporate them.
-
RE: VOXL-Streamer 64bit
@stevet Yes, that is the case. But it may not be possible without full access to the complete system image build. And it is also possible that there are dependencies on Qualcomm provided libraries that are only available as 32 bit binaries.
-
RE: voxl-streamer client repetitive connect/disconnect
@wilkinsaf The configuration file for voxl-streamer is documented here: https://docs.modalai.com/voxl-streamer/#configuration-file-format
-
RE: Getting video streams from USB camera connected to Microhard Add-on module
There are a few steps you can take to bring up a new USB camera. First of all, the camera must be UVC compliant. The best thing to do is to test it out on a Linux PC first and verify that it works there. Some tips: 1. Use the 'lsusb' command before and after you plug the camera in to see if it is showing up. 2. If you see the device with 'lsusb', look in /dev to see if it shows up as a /dev/videox device. So, do 'ls /dev/video*' before plugging in the camera and after plugging in the camera to see if it appears. 3. If everything looks good you should be able to stream from it using voxl-streamer.
Latest posts made by Eric Katzfey
-
RE: vehicle did not respond to command: MAV_CMD_DO_MOTOR_TEST
@suvasis Can you explain a little bit about the products you are using? Is this on Flight Core or on VOXL2?
-
RE: Technical Questions on RB5
@adrianpang With regards to ArduPilot, VOXL2 is currently only able to run a version of PX4 on target. If you need ArduPilot you will have to use an external flight controller and connect it to VOXL2 with UART. We hope to have an implementation of ArduPilot that runs directly on VOXL2 in the future but there is no firm date on when this would be available.
-
RE: Fatal SLPI error causing system restart on Voxl 2
@viralp If you disable voxl-px4 does the error go away? (i.e.
systemctl disable voxl-px4
thensync
then reboot) -
RE: gst-interpipe not getting installed
@Vaibhav-Usapkar said in gst-interpipe not getting installed:
x86_64-linux-gnu
The only thing that jumps out at me is the
x86_64-linux-gnu
part. VOXL2 is aarch64, not x86, so maybe that is the issue? -
RE: VOXL 2 Spektrum RC Issue
@Taylor-Presley I have never seen the
Open failed on 8
before so we're going to have to do some troubleshooting here. One possibility is that the attempt to detect the px4io board using that same serial port is causing some sort of conflict. Can you modify that section of/etc/modalai/voxl-px4.config
the remove the check for the px4io board? For example, remove this whole section:qshell px4io detect PX4IO_STATUS=$? if [ $PX4IO_STATUS -eq 0 ]; then /bin/echo "Found M0065, starting px4io" # On M0054 we also support PWM output from M0065 (aka PX4IO) # If there are no pwm escs then that connector will be empty. qshell px4io start qshell px4io recovery qshell mixer load /dev/px4io quad_x_io.main.mix PWM_RATE=`param show -q PWM_MAIN_RATE` PWM_MAIN_DISARM=`param show -q PWM_MAIN_DISARM` PWM_MAIN_MIN=`param show -q PWM_MAIN_MIN` PWM_MAIN_MAX=`param show -q PWM_MAIN_MAX` /bin/echo " PWM_MAIN_RATE: ${PWM_RATE}" /bin/echo " PWM_MAIN_DISARM: ${PWM_MAIN_DISARM}" /bin/echo " PWM_MAIN_MIN: ${PWM_MAIN_MIN}" /bin/echo " PWM_MAIN_MAX: ${PWM_MAIN_MAX}" qshell pwm rate -c 1234 -r ${PWM_RATE} qshell pwm disarmed -c 1234 -p ${PWM_MAIN_DISARM} qshell pwm min -c 1234 -p ${PWM_MAIN_MIN} qshell pwm max -c 1234 -p ${PWM_MAIN_MAX} qshell pwm failsafe -c 1234 -p -1 -d /dev/px4io else /bin/echo "M0065 not detected, starting Spektrum RC driver" qshell spektrum_rc start -d 8 fi
and just replace it with:
qshell spektrum_rc start -d 8
-
RE: VOXL2 mavlink topic streaming modifications
@Eric-Katzfey Sounds like you have 2 issues here that are not related to the original post. Can you create 2 new forum posts for the Spektrum issue and the GPS issue? Then we can try to solve those independently. Thanks!
-
RE: VOXL2 mavlink topic streaming modifications
@Eric-Katzfey You can see in the script that if it fails to detect the px4io board (as you saw) then it will attempt to start the Spektum RC driver instead. However, your output shows that it fails to initialize uart 8. That doesn't look right.
-
RE: VOXL2 mavlink topic streaming modifications
@Taylor-Presley px4io will fail to read if you do not have a px4io board attached to VOXL2.
-
RE: VOXL2 mavlink topic streaming modifications
@Taylor-Presley How are you starting px4? Is it being started via systemd service or are you starting it from the command line? Are you using the
voxl-px4
script or callingpx4
directly? You need to make sure that the script is trying to start the spektrum_rc driver otherwise it will produce no output. Can you verify that the spektrum_rc driver is in fact starting and not some other RC driver? -
RE: Changing VOXL2 DSP PX4 Orientation
@msberk There are different ways to go about starting px4. What we do is use the voxl-px4 script to launch everything (In that same target directory). That can be be used in a systemd service file to launch px4 at board startup. That script has command line options that control certain features. Ultimately px4 is passed that voxl-px4.config script using the
-s
option. Both voxl-px4 and voxl-px4.config are bash scripts which makes them quite flexible. For a different perspective you can look at our voxl-px4 gitlab project which acts as a wrapper for px4 and creates a debian package that can be installed on target. The package will place all needed files in the correct places during installation and has a voxl-px4.service file example for systemd startup. (https://gitlab.com/voxl-public/voxl-sdk/services/voxl-px4/-/tree/dev)