ArduPilot on Voxl2
-
@TomP said in ArduPilot on Voxl2:
When could the support for this be added?
Unfortunately, we don't have a fixed date for that support yet. We are striving to support ArduPilot on VOXL 2 by end of this year and that would include support for the IO board. Otherwise I would say keep your eye on the commits going in to AP to see if something comes in sooner.
@Eric-Katzfey Is there an update on the timeline yet?
Best regards
Tom -
Support for ArduPilot on QURT (the RTOS used on Voxl-2) is now merged in ArduPilot master
Basic instructions on building and installing are here:ardupilot/libraries/AP_HAL_QURT/ap_host/service at master · ArduPilot/ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source. Contribute to ArduPilot/ardupilot development by creating an account on GitHub.
GitHub (github.com)
Pre-built binaries are available here:
- https://firmware.ardupilot.org/Copter/latest/QURT/
- https://firmware.ardupilot.org/Plane/latest/QURT/
- https://firmware.ardupilot.org/Rover/latest/QURT/
This should still be considered experimemtal, with active development happening with @Eric-Katzfey and myself.
Flight video here on an autonomy dev kit copter:
https://www.youtube.com/watch?v=l6c65-E-lzgEnjoy!
@Andrew-Tridgell @Eric-Katzfey I wanted to ask again about the current roadmap regarding Arduplane and the IO board for PWM.
Best regards
Tom -
@Andrew-Tridgell @Eric-Katzfey I wanted to ask again about the current roadmap regarding Arduplane and the IO board for PWM.
Best regards
Tom@TomP We are still shooting for the end of this year. I would like to know what external peripherals you would like to support though. I'm guessing GPS, magnetometer, RC, a PWM based motor ESC, and some servos for flight surface control? Also an airspeed sensor? A distance sensor? What kind of RC are you expecting to use? There are some I/O limitations with VOXL 2 so want to make sure that what you want to build can be supported by what we are putting together.
-
@TomP We are still shooting for the end of this year. I would like to know what external peripherals you would like to support though. I'm guessing GPS, magnetometer, RC, a PWM based motor ESC, and some servos for flight surface control? Also an airspeed sensor? A distance sensor? What kind of RC are you expecting to use? There are some I/O limitations with VOXL 2 so want to make sure that what you want to build can be supported by what we are putting together.
@Eric-Katzfey We use GPS, compass and the IO board for a PWM-controlled ESC and two servos. We also need two more PWM channels for gimbal control. That's it.
We do not use an RC. The control is purely via MAVLink. Joystick inputs are made via the MAVLink command MANUAL_CONTROL. Data is transmitted via the mobile network.
-
@Eric-Katzfey We use GPS, compass and the IO board for a PWM-controlled ESC and two servos. We also need two more PWM channels for gimbal control. That's it.
We do not use an RC. The control is purely via MAVLink. Joystick inputs are made via the MAVLink command MANUAL_CONTROL. Data is transmitted via the mobile network.
@TomP I have updated the documentation at https://docs.modalai.com/voxl-ardupilot/. The VOXL 2 IO board with up to 4 PWM outputs is now supported and has been tested on a quadcopter with 4 PWM ESCs. You should be able to use this for arduplane now. We are putting together our own fixed wing test platform and hope to begin testing soon.
-
@TomP I have updated the documentation at https://docs.modalai.com/voxl-ardupilot/. The VOXL 2 IO board with up to 4 PWM outputs is now supported and has been tested on a quadcopter with 4 PWM ESCs. You should be able to use this for arduplane now. We are putting together our own fixed wing test platform and hope to begin testing soon.
@Eric-Katzfey I will need to add the support for up to 8 PWM outputs on VOXL 2 IO board. Right now it only supports 4. You should be able to do test flights without the gimbal with 4 PWM outputs.
-
@Eric-Katzfey We use GPS, compass and the IO board for a PWM-controlled ESC and two servos. We also need two more PWM channels for gimbal control. That's it.
We do not use an RC. The control is purely via MAVLink. Joystick inputs are made via the MAVLink command MANUAL_CONTROL. Data is transmitted via the mobile network.
@TomP The update to support all 8 PWM outputs from the IO board is now in mainline. You can get it in the latest build posted here: https://firmware.ardupilot.org/Copter/latest/QURT/
-
Hi,
How can I configure the battery monitor for ArduPlane on the VOXL2-Mini?
Which value do I have to enter for BATT_MONITOR and which values for BATT_I2C_ADDR and BAT_I2C_BUS?The "VOXL 2 Mini Power" transmits the current and voltage measurement data via I2C.
Best regards,
Tom -
Hi,
How can I configure the battery monitor for ArduPlane on the VOXL2-Mini?
Which value do I have to enter for BATT_MONITOR and which values for BATT_I2C_ADDR and BAT_I2C_BUS?The "VOXL 2 Mini Power" transmits the current and voltage measurement data via I2C.
Best regards,
Tom@TomP It should just scan the available I2C ports and automatically detect the VOXL 2 mini power module if it has been connected. Is it not detecting it?
-
@TomP It should just scan the available I2C ports and automatically detect the VOXL 2 mini power module if it has been connected. Is it not detecting it?
@Eric-Katzfey No, this is not detected. The configuration does not seem to be correct either. The parameter list mentions "Analog Voltage and Current" and corresponding pins.
Here is a screenshot:

-
Hi,
There is another problem. The PWM board does not output PWMs. I have also measured this with an oscilloscope. According to SERVO_OUTPUT_RAW, however, the FC should output PWM values.
Do I have to set another parameter in Arduplane so that the VOXL 2 I/O Expander Board is controlled correctly?
I use the VOXL2-Mini J19 connector: GND, pin 7, pin 8 and VREG_3P3V_RC for the power supply.
Here is my setup:

-
Hi,
There is another problem. The PWM board does not output PWMs. I have also measured this with an oscilloscope. According to SERVO_OUTPUT_RAW, however, the FC should output PWM values.
Do I have to set another parameter in Arduplane so that the VOXL 2 I/O Expander Board is controlled correctly?
I use the VOXL2-Mini J19 connector: GND, pin 7, pin 8 and VREG_3P3V_RC for the power supply.
Here is my setup:

@TomP Okay, yes, sorry, you need to set BATT_MONITOR to 21 for INA2xx and need to set BATT_I2C_BUS to 1 for that power monitor to come up. I'll investigate the PWM issue.
-
@TomP Okay, yes, sorry, you need to set BATT_MONITOR to 21 for INA2xx and need to set BATT_I2C_BUS to 1 for that power monitor to come up. I'll investigate the PWM issue.
@Eric-Katzfey The battery monitor works. Thank you very much! I'm sure the PWM will also work and then it's off to the test flight.

-
@Eric-Katzfey The battery monitor works. Thank you very much! I'm sure the PWM will also work and then it's off to the test flight.

@TomP What are the settings of all the SERVO(x)_ params?
-
@Eric-Katzfey The battery monitor works. Thank you very much! I'm sure the PWM will also work and then it's off to the test flight.

@TomP If you set the SERVO(x)_FUNCTION parameters according to this: https://ardupilot.org/plane/docs/servo-functions.html#overview do you get any PWM output?
-
@TomP If you set the SERVO(x)_FUNCTION parameters according to this: https://ardupilot.org/plane/docs/servo-functions.html#overview do you get any PWM output?
@Eric-Katzfey Here are my settings (no PWM output):
SERVO1_FUNCTION,4
SERVO1_MAX,1900
SERVO1_MIN,1100
SERVO1_REVERSED,0
SERVO1_TRIM,1500
SERVO2_FUNCTION,19
SERVO2_MAX,1900
SERVO2_MIN,1100
SERVO2_REVERSED,0
SERVO2_TRIM,1500
SERVO3_FUNCTION,70
SERVO3_MAX,1900
SERVO3_MIN,1100
SERVO3_REVERSED,0
SERVO3_TRIM,1100
SERVO4_FUNCTION,21
SERVO4_MAX,1900
SERVO4_MIN,1100
SERVO4_REVERSED,0
SERVO4_TRIM,1500
SERVO5_FUNCTION,0
SERVO5_MAX,1900
SERVO5_MIN,1100
SERVO5_REVERSED,0
SERVO5_TRIM,1500
SERVO6_FUNCTION,0
SERVO6_MAX,1900
SERVO6_MIN,1100
SERVO6_REVERSED,0
SERVO6_TRIM,1500
SERVO7_FUNCTION,0
SERVO7_MAX,1900
SERVO7_MIN,1100
SERVO7_REVERSED,0
SERVO7_TRIM,1500
SERVO8_FUNCTION,0
SERVO8_MAX,1900
SERVO8_MIN,1100
SERVO8_REVERSED,0
SERVO8_TRIM,1500 -
@Eric-Katzfey Here are my settings (no PWM output):
SERVO1_FUNCTION,4
SERVO1_MAX,1900
SERVO1_MIN,1100
SERVO1_REVERSED,0
SERVO1_TRIM,1500
SERVO2_FUNCTION,19
SERVO2_MAX,1900
SERVO2_MIN,1100
SERVO2_REVERSED,0
SERVO2_TRIM,1500
SERVO3_FUNCTION,70
SERVO3_MAX,1900
SERVO3_MIN,1100
SERVO3_REVERSED,0
SERVO3_TRIM,1100
SERVO4_FUNCTION,21
SERVO4_MAX,1900
SERVO4_MIN,1100
SERVO4_REVERSED,0
SERVO4_TRIM,1500
SERVO5_FUNCTION,0
SERVO5_MAX,1900
SERVO5_MIN,1100
SERVO5_REVERSED,0
SERVO5_TRIM,1500
SERVO6_FUNCTION,0
SERVO6_MAX,1900
SERVO6_MIN,1100
SERVO6_REVERSED,0
SERVO6_TRIM,1500
SERVO7_FUNCTION,0
SERVO7_MAX,1900
SERVO7_MIN,1100
SERVO7_REVERSED,0
SERVO7_TRIM,1500
SERVO8_FUNCTION,0
SERVO8_MAX,1900
SERVO8_MIN,1100
SERVO8_REVERSED,0
SERVO8_TRIM,1500@TomP Hmm, that looks correct. On my test setup running ArduPlane with those values I see output values being sent to the M0065 board. I'm wondering if there is a connectivity issue between the VOXL 2 mini and the IO board.
-
@Eric-Katzfey Here are my settings (no PWM output):
SERVO1_FUNCTION,4
SERVO1_MAX,1900
SERVO1_MIN,1100
SERVO1_REVERSED,0
SERVO1_TRIM,1500
SERVO2_FUNCTION,19
SERVO2_MAX,1900
SERVO2_MIN,1100
SERVO2_REVERSED,0
SERVO2_TRIM,1500
SERVO3_FUNCTION,70
SERVO3_MAX,1900
SERVO3_MIN,1100
SERVO3_REVERSED,0
SERVO3_TRIM,1100
SERVO4_FUNCTION,21
SERVO4_MAX,1900
SERVO4_MIN,1100
SERVO4_REVERSED,0
SERVO4_TRIM,1500
SERVO5_FUNCTION,0
SERVO5_MAX,1900
SERVO5_MIN,1100
SERVO5_REVERSED,0
SERVO5_TRIM,1500
SERVO6_FUNCTION,0
SERVO6_MAX,1900
SERVO6_MIN,1100
SERVO6_REVERSED,0
SERVO6_TRIM,1500
SERVO7_FUNCTION,0
SERVO7_MAX,1900
SERVO7_MIN,1100
SERVO7_REVERSED,0
SERVO7_TRIM,1500
SERVO8_FUNCTION,0
SERVO8_MAX,1900
SERVO8_MIN,1100
SERVO8_REVERSED,0
SERVO8_TRIM,1500@TomP Can you tell me how you have connected the UART pins on M0065 to the UART pins on VOXL 2 mini? Like the actual pin numbers that are connected?
-
@TomP Hmm, that looks correct. On my test setup running ArduPlane with those values I see output values being sent to the M0065 board. I'm wondering if there is a connectivity issue between the VOXL 2 mini and the IO board.
@Eric-Katzfey I can rule out connection problems. I checked the contacts on the VOXL2-Mini and the IO board with a continuity tester. Everything is well connected.
I know that with ardupilot you can at least control the servos without arming. Is this perhaps implemented differently here? Then I would have to calibrate the sensors etc. to test this.

-
@TomP Can you tell me how you have connected the UART pins on M0065 to the UART pins on VOXL 2 mini? Like the actual pin numbers that are connected?
@Eric-Katzfey Here is the pin configuration (J19 on VOXL2-Mini to J4 on IO Board):
VOXL2-Mini-----IO Board
9-----------------1
8-----------------3
7-----------------2
6-----------------4(I mistyped the table at the beginning. I have corrected the typo.)
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login