voxl-microdds-agent for connection to external fcu over uart (J10)
-
Hi! Problem statement: want to connect external FCU to voxl and communicate over the microdds bridge for minimal latency. In the past, I have tried to compile the uxrce-dds agent from source https://docs.px4.io/main/en/middleware/uxrce_dds but never really dove into trying to fix all the issues. I assume this is a problem you guys fixed with voxl-microdds-agent; is it possible to modify that package to communicate with an external flight controller over UART?
Other option would be docker, which I've done before, but that incurs some overhead and we're kinda maxing out the voxl, so I would prefer a native implementation.
I guess I'm just asking if this is feasible within the design of voxl-microdds-agent or if it's tailored to communicating with voxl-px4 over shared memory.
-
@jon you can edit the dds via updating systemctl service file and point it towards the serial UART instead of a udp socket/port - the og looks like this:
[Unit]
Description=voxl-microdds-agent
SourcePath=/usr/bin/MicroXRCEAgent
After=network.target
After=multi-user.target[Service]
User=root
Type=simple
ExecStart=/usr/bin/MicroXRCEAgent udp4 -p 8888[Install]
WantedBy=multi-user.targetYou would replace the -p with whatever flag is used for serial and then put /dev/ttyHSX (X number depends on which uart you are plugged into) - you will most likely need to put in a baudrate as well. This file is stored in /etc/systemd/systemd/voxl-microdds-agent.service.
-
@Zachary-Lowell-0 Oh wow, thanks that's very simple
-
@jon And you can find a lot of detailed information about the agent, including the start options, here: https://docs.px4.io/main/en/middleware/uxrce_dds