Electronic – arduino – Communications issues between Ardupilot and Computer

arduinoethernetpython

The Issue and Project:

I have been at a standstill with my autopilot because I cannot communicate with it using my high powered transmitter: the Ubiquity Rocket M5. But the whole communications issue is not as simple as breaking it down to just one component, it succeeds through various sections for various reasons as I will discuss in the section below. But before I go any further, this is the end goal and current setup for by project:

  1. Ardupilot with custom software (communications via serial)
  2. Arduino Ethernet to convert Serial to Ethernet [static: 192.168.2.30]
  3. On-Plane Switch
  4. Ubiquity Rocket, this is in the plane as the "router/access point" [static: 192.168.2.1]
  5. Ubiquity Rocket, this is on the ground ad the "bridge/station" [static: 192.168.2.21]
  6. Laptop with custom user interface [static: 192.168.2.10]

The packets are sent on port 8888 via UDP. The ground reads the packets via python piped as xml via CherryPy to a webpage on the same computer. The plane also contains a network camera attached to the on-board switch (3). It has an IP of 192.168.2.20.


My Trials:

What happens with everything plugged in appropriately:

  • The network camera provides a live stream
  • I can ping the arduino ethernet module
  • I send packets to the ardupilot, but no response

Ok, I then thought that I broke something somewhere. So I skipped the wireless link and plugged my laptop connection directly into the switch (skipping connections 4 & 5):

  • Everything works appropriately

I was baffled, I have never had anything bad happen between my ubiquity rockets. So after a while I figured out a way to test the connection. I disconnected my autopilot from the Arduino ethernet to hook up a FTDI cable to my computer and opened up serail monitor to verify the packets.

  • Packets get sent though and display serial monitor just fine
  • I opened up a testing program on my computer to read packets for port 8888. I sent some packets from the Arduino Ethernet to my computer and they worked just fine.

I am flush out of ideas at this point. If you have an idea you would like to test, let me know and I will post the results.

Best Answer

This sounds more like a networking issue than an electronics issue and may be better asked at that kind of forum.

My instinct is that your wifi bridge is corrupting the trunked serial stream, this could be a number of things, for example packet size.

The way forward would be to use something like wireshark to see what's happening at a network level.

Good luck with your project, it sounds fun!