Flight Core V2 - VOXL ESC 4in1 Integration
-
If you connect the VOXL ESC to Flight Core (V2), then VOXL2 cannot communicate with the ESC using
voxl-esc
python tools because that would require direct UART connection between VOXL2 and the ESC.Since your PX4 instance is running on Flight Core V2, you should check your Flight Core debug console, which will print information about ESC initialization. Also, if the ESC is initialized correctly, the blue LEDs on the ESC should be blinking (which means commands are received by ESC from Flight Core, even if the vehicle is not armed).
If you look at your PX4 debug console on Flight Core V2 (using a separate UART to USB cable probably) and you see that the ESC fails to initialize, there are a few things to double check:
- px4 is configured to use the correct UART port for voxl-esc driver
- correct baud rate is used
- recently we discovered that since we added ESC version query into the
voxl esc
px4 driver, there was the following issue : Flight Core V2 boots very fast, faster than 1s, however all of ModalAI ESCs spend 1 second in bootloader mode right after you apply power. this results in FC not being able to detect the ESC. Previously (in older version of the voxl esc driver in px4), we did not perform the ESC query upon PX4 start and this was not a problem. Also it is not an issue on VOXL2 because it takes longer than 1 second to boot up. Please check the following change to add a delay to FC2 boot up : https://github.com/modalai/px4-firmware/pull/70/commits/55742d298bf9241a2af5aa2c7ba3a26788073356
Hopefully this resolves your issue.
Alex
-
@Alex-Kushleyev Thank you for reverting. I tested it out and the ESC is powered. The
TELEM1 port
is connected to VOXL2 board andTELEM2 port
to the Flight Core FCv2 board. I used the PX4 firmware modalai_fc-v2_1.14.0-8.93.1.px4 from the ModalAI build and setup the necessary parameters following documentation. The VOXL ESC is recognising the data from FC autopilot and the LED blinking sequence starts.I have few more queries,
In the coming days I'll be upgrading to VOXL-FPV ESC. Can I follow the same wiring setup for this as well?I had an additional query link, you had mentioned not able to run any python tool files, but since
voxl-send-neopixel-cmd
is in C/C++, it should be working.Also, will this setup affect the turtle mode implementation.
-
@Jetson-Nano , yes the FPV ESC can be connected in exactly the same way, but your cable between the ESC and FC2 will be different, since the FPV ESC uses a 4-pin JST GH instead of 6-pin Hirose DF-13, so please pay attention to the connections.
Regarding the
voxl-esc
python tools not working, the reason is not because the tools are written in python. The reason is that thevoxl-esc
tools require a direct serial connection to the Linux OS that is running the tools (either voxl2 or a linux PC). However, when you connect the ESC to FC V2, then there is no direct UART connection that thevoxl-esc
tools can use.voxl-send-neopixel-cmd
does not work the same way - this test tool generates the binary packet with LED information and this packet is forwarded to PX4 ESC driver and that driver sends the LED packet to the ESC. Since you would be running thevoxl-send-neopixel-cmd
on voxl2 but ESC is connected to FC V2, in order for this to work, the LED message has to be transmitted from voxl2 to FC V2 using the mavlink protocol.I will find out how what this message type is and how to check if it is being transmitted in your case.
Alex
-
@Alex-Kushleyev thanks again. can you check this out.
As mentioned the messages needs to be converted to mavlink message. Will mavlink message be handled byVOXL-ESC
and will it trigger thevoxl-send-neopixel-cmd
and turn on the LEDs? I guess multiple conversion of message types might be required.Also there is
voxl-io
driver link running in theVOXL FCV2
. It should helpvoxl FCV2
to handle the data fromVOXL2
and pass it to theVOXL FPV ESC
.There are 2 PWM outputs link that are independent, can we send a trigger message from
VOXL2 Board
to theVOXL FCV2
and FC will send the message toVOXL FPV ESC
and givePWM output
. Using thevoxl-send-pwm-cmd
command. -
I checked with my colleague and they said that the current way will not work for forwarding the Neopixel LED packet to the FC V2. Here is roughly how the LED packet is created and sent to the ESC:
voxl-send-neopixle-cmd
creates a data packet (using the specific format for ESC) and sends it to a special processmodal-io-bridge
via mpa pipe that is also calledmodal-io-bridge
.- The
modal-io-bridge
is a PX4 module that is specific to VOXL2 and it runs on the CPU (not DSP). It receives the data from the mpa pipe and sends out the data usingORB_ID(modal_io_data)
using data typemodal_io_data_s
. - then
voxl_esc
driver that runs on the DSP gets this data and forwards it to the ESC directly, as shown here: https://github.com/modalai/px4-firmware/blob/70d986f08acbf90e3752ef832151d8f993e18697/src/drivers/actuators/voxl_esc/voxl_esc.cpp#L1346 - this approach has no option to forward the message to external FC.
However, actually this week we are making changes to use mavlink tunnel messages instead of this custom io bridge. I will find out how to get this to work for FC V2.
Alex
-
@Alex-Kushleyev ,
Thanks for the clarity, I also went through the same process and was not able to find any way to forward the message to ESC through external FC.
If you could help with a work around this approach it will be really helpful. I can test it out and get back to you. -
@Alex-Kushleyev
just a thought, the data from Voxl2 is transfered to FC. so you can convert them to specific msg type and forward it to external FC and External FC already hasmodal-io-bridge
, it can forward the data to ESC. There will be need of conversion of msg types multiple places, for handling and forwarding.
the External Fc has turtle mode running on it, will it setup affect it. -
@Jetson-Nano , there is probably more than one way of getting this to work, but I have been told that with the new approach that we have just implemented (being tested now), the mavlink tunnel should take care of routing the LED data from VOXL2 to FC V2 to ESC.
I asked my colleague to help describing how to test this.
Alex
-
@Alex-Kushleyev Thanks for the help. I will also test it out and get back with the results as soon as the approach is shared.
Can you also help me with finding clarity whether turtle mode will be affected by this setup. -
@Jetson-Nano , As far as I know, turtle mode should work the same when running PX4 on VOXL2 and FC V2. Have you tested it? The LED command should not interfere with the turtle mode.
I have not actually tested the turtle mode on FC myself, but the code that is running in voxl-esc px4 driver is the same, so as long as you are entering the turtle mode correctly, it should work.
Alex
-
@Alex-Kushleyev I have not tested turtle mode with Voxl2 - FCV2 setup. I have tested with the Voxl2, internal PX4 server.
I will test it out and get back to you. -
@Alex-Kushleyev , I tested the turtle mode out and it is working fine.
Once the approach for LEDs are shared, I will test it out .
I had an additional query, while we are using Telem for FCV2 and ESC communication. Will the PWM output (8 pinout) still be transmission and can we access the data.
-
@Jetson-Nano The updated voxl-io-server version is here: http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/voxl-io-server_0.0.5-202502191136_arm64.deb. The updated FC v2 image is here: http://voxl-packages.modalai.com/dists/fc-v2/dev/modalai_fc-v2_1.14.0-2.0.95.px4. I have only tested with PX4 running on VOXL 2 but it should also work with external FC v2.
-
@Eric-Katzfey thank you for sharing the data.
I tried flashing the voxl-io-server you mentioned, but I got the following error.t@t-MS-7B29:~/git/voxl-io-server-master$ ./deploy_to_voxl.sh searching for ADB device checking VOXL for dpkg/opkg dpkg detected voxl-io-server_0.0.5-202502191136_arm64.deb: 1 file pushed. 2.1 MB/s (25928 bytes in 0.012s) dpkg: considering removing voxl-neopixel-manager in favour of voxl-io-server ... dpkg: warning: ignoring dependency problem with removal of voxl-neopixel-manager: voxl-suite depends on voxl-neopixel-manager (>= 0.0.3) voxl-neopixel-manager is to be removed. dpkg: yes, will remove voxl-neopixel-manager in favour of voxl-io-server dpkg: regarding .../voxl-io-server_0.0.5-202502191136_arm64.deb containing voxl-io-server: voxl-io-server conflicts with voxl-mpa-tools (<= 1.2.3) voxl-mpa-tools (version 1.2.3) is present and installed. dpkg: error processing archive /data/voxl-io-server_0.0.5-202502191136_arm64.deb (--install): conflicting packages - not installing voxl-io-server Errors were encountered while processing: /data/voxl-io-server_0.0.5-202502191136_arm64.deb DONE