Issue with Microhard IP configuration.
-
@tom Thank you for your suggestion. I am now able to connect QGC (192.168.168.100) to VOXL2 via MH and connect trip2 via Ethernet (ping 169.254.4.x). Next, I want to establish a MAVLink connection between VOXL2 and trip2 so that messages can be exchanged between VOXL2, trip2, the flight controller, and QGC. Currently, I am reviewing the code for voxl-mavlink-server on GitLab. Can you provide any suggestions or reference materials for this part?
-
@rogerli I think voxl-mavlink-server is probably the right code to be using. But you are doing something new here so not sure we'll be much help in guiding you.
-
@Eric-Katzfey I need to establish communication between Trip2 and QGC. However, due to wiring constraints, the message exchange between Trip2 and QGC will pass through VOXL2. However, VOXL2 only needs to pass messages. Do you have any suggestions?
Trip2 is connected to the VOXL2 via Ethernet(network domain is 169.254.4.x), and VOXL2 is connected to the QGC via Microhard(network domain is 192.168.168.x), would it be better to change the network domain of the Ethernet to match that of the Microhard? -
@rogerli There are a couple of options that come to mind. One it to use the VOXL2 as a router such that you can directly pass messages between the TRIP2 and QGC. That would require some messing with routing tables and such on VOXL2. If you are comfortable with networking then maybe this is the cleanest route to go. Otherwise you can just write a custom relay node that runs on VOXL2 and shuttles the messages between the two endpoints.
-
@Eric-Katzfey Thank you for your suggestion, I will try it out. However, I am not familiar with networking , so I plan to use a custom relay node. Is it possible to achieve this goal using MAVProxy?
-
@rogerli I don't have any experience with mavproxy but seems like it's possible. Worth a try at least.
-
@Eric-Katzfey I can use Mavproxy for message forwarding, but when I connect trip2 to the MH add-on board via Ethernet, the IP of MH keeps changing. How can I make the IP of MH fixed? (The IP of MH is fixed when not connected to trip2 via Ethernet.)
-
@rogerli What is the network interface that isn't using a fixed IP as you expect? eth0? usb0?
-
@tom It's usb0, eth0 is always 169.254.4.1
-
@rogerli Hmm okay I wonder if voxl-modem is getting confused. If you disable the voxl-modem service with
systemctl disable voxl-modem
and runvoxl-modem-start
manually from the command line it might give you a clue of what interface it's targeting. It's possible with this custom setup that some tweaking to the startup script needs to be made, whether it's a sleep to wait until the device fully boots or a change in network interface name somewhere. -
@tom I disabled the voxl-modem service and manually ran voxl-modem-start from the command line, but I didn't see any hints about the interface, so I'll try modifying the script directly.
Additionally, I'm currently writing a script to automatically execute mavproxy.py, but during the automatic execution, I encounter the issue "No module named 'xxx'". Even though I've included the Python path used by mavproxy.py in the script, it doesn't resolve the issue. Is there a way to fix this problem? (I can run mavproxy.py normally by manually entering commands.)
-
@rogerli Is the serial python3 library installed? If you run
python3
from the command line and runimport serial
do you get the same error? It might need to be installed withpip3
-
@tom I'll need to confirm tomorrow, but I believe I have it installed because I can manually run mavproxy.py from the command line. However, when executing it automatically with a script in the system, I encounter the aforementioned issue.
-
@rogerli When you run
/usr/bin/mavproxy-start.sh
from the command line does it work? -
@tom Yes, it can run normally
-
@rogerli Hmm that's interesting, I'm unsure why it would have issues seeing the serial library when running as a service but not when run manually.
I've never used a python venv or anaconda before on voxl2 so I'm guessing that's where the issue lies
-
@tom I had the same idea, so I directly installed Mavproxy and related packages on VOXL2, and successfully resolved the issue with the serial library. However, when running the service, I still couldn't import the Python files related to Mavproxy. Even adding the paths of those Python files to the environment variables didn't solve the problem.