RPi to Pixhawk MAVProxy Connection Issue

Good evening. I am in the process of building a small ROV from scratch for a senior design project at Pennsylvania State University. I am using QGroundControl on my surface PC, a Raspberry Pi 3 for my companion computer flashed with the latest ArduSub firmware (3.5.1 I believe). I am able to ping my RPi from the surface PC, and ping my surface PC from my RPi. However, I believe there is an issue with MAVProxy due to QGC saying that my vehicle is not connected. I will walk you all through step by step what I have done up to this point and perhaps you can spot my problem. THANK YOU in advance for your time and effort!

I have based all of my procedures on the ArduSub documentation found at :Installation | ardusub-gitbook.

Step 1) I downloaded and installed QGroundControl (QGC). This includes the FTDI CDM Driver Package (VCP Driver and Bus/D2XX Driver), 3D Robotics (usbser) Ports (04/11/2013 2.0.0.4), and the Arduino LLC (usbser) Ports. These all installed completely and without issue.

Step 2) I then opened QGC and plugged my Pixhawk (PX4 FMU V2) into a USB port on my computer. My Pixhawk was recognized QGC and I flashed the ArduSub firmware onto the Pixhawk. Screen shot available.

Step 3) I purchased the preloaded SD card from the Blue Robotics store and plugged it into my RPi 3 Micro SD card port. I did not connect or turn on my RPi 3 yet.

Step 4) I configured my network settings and firewall as per the ArduSub installation instructions. Surface PC IP address 192.168.2.1, subnet mask 255.255.255.0. QGC was allowed access through the firewall on public and private domain. Screen shots available.

Step 5) I now connected the hardware in this exact order:
1> Ethernet cable between surface computer and RPi 3
2> Pixhawk Safety Switch to Safety Switch port
3> Pixhawk MicroUSB to RPi 3 USB
4> RPi 3 Power adapter (5V 3A wall adapter) to RPi 3 MicroUSB port

The RPi 3 now powers up and the Pixhawk LED’s come on shortly after.

The LED’s on the Pixhawk are lighting as follows:
FMU PWR - Solid Green
FMU B/E - No Light
IO PWR - Solid Green
IO B/E - Solid Red
IO ACI - Flashing Blue
Safety Switch - Fast Flashing Red

Step 6) I now open the command prompt on my surface PC and ping the RPi 3. Which is successful, no packet loss.

Step 7) I now launch PUTTY and login to the RPi 3. I then successfully ping my surface computer from the RPi 3.

Step 8) I go into QGC and add two comm links. The first is a UDP on port 14550. The second is a UDP on port 5600. I then connect to both of these comm links. These two links are based on the software schematic at: https://www.ardusub.com/software/components.html.

On the general application settings I have auto connect check boxed for all hardware and my video stream to come in on UDP port 5600.

QGC still tells me that it is “Waiting for vehicle connection”. To me this means that the surface PC and the RPi 3 are communicating fine and there is some problem with the Pixhawk or between the Pixhawk and RPi 3.

To further explore this I use the “sudo screen -r mavproxy” command to see if MAVProxy is running and this is the response I get:

I’m really not sure where to go from here. Any help on resolving this issue would be AMAZING! THANK YOU ALL SO MUCH for taking the time out of your day and to offer any assistance.

This is not necessary, you should delete these links. QGC is already listening on 5600 for the video where you set that up on the General Settings page. QGC will also automatically listen on 14550 if you select ‘UDP’ for autoconnect on the general settings page.

It sounds like your firewall is blocking incoming connections, try turning off your firewall, or allowing incoming connections. Also make sure that QGC is allowed access through your firewall.

Do you have a camera connected to the Pi and do you see video?

Can you also reboot the pi and do the ‘sudo screen -r mavproxy’ command again? Make sure the pixhawk is plugged into the pi before you boot. Please let me know the output after rebooting.

Thank you so much for the prompt response. You guys are the best!

I have removed the manually inserted comm links on UDP 14550 and 5600. I have completely shut off my firewall on all domains. I do have the camera connected through the CSI-2 port and I have the video feed showing on the QGC screen.

I have just ran the requested command in CLI and here is the result:

It turns out that John’s Pixhawk did not have an SD card in it. An SD card is required in the Pixhawk in order for it to operate.

https://github.com/bluerobotics/ardusub/issues/112

I’m not very familiar with GitHub. Is this a forum page for the SD card
situation?

Github is where the software development lives. I made an issue on github as a sort of note of something that needs to be fixed. I linked the issue here so that anyone else that lands on this forum post can see the status of the issue and if the issue has been resolved.

I’m having this same issue now after trying multiple times to update the ardusub firmware both through the Pi and directly through QGC (each time the update failed for various reasons). ls /dev/serial/by-id shows the pixhawk is connected, but mavproxy waits and never connects to autopilot…

I definitely have an SD card in the pixhawk. Is there anyway it could have gotten corrupted?

If the update failed, then the firmware is not running on the pixhawk. The SD card shouldn’t matter here.

Please try to update again with QGC, and if it fails let me know what the output says.

Thanks for the suggestion. QGC isn’t recognizing the pixhawk when plugged in directly through usb

Are you on the firmware tab? You won’t get any indication of a connection anywhere else because there is no firmware on the pixhawk.

Now all of the sudden, the pixhawk won’t boot up all the way. Power light on left and right green, B/E on right red, ACT flashing blue…

The important one is B/E on the left, what does that do immediately after you plug it in?

Holds red for a few seconds then turns off…

Edit: red light happens when powered through pi,

No light on B/E on the left when plugged directly into computer USB Port

Stephanie, can you take a video of the lights on the board when the pixhawk boots up, I think there is some misunderstanding. I am interested only in the behavior of the ‘FMU’ ‘B/E’ light on the left, where there are two lights, PWR and B/E. I do not need to know what the ‘IO’ B/E light on the right is doing.

I can’t take a video in the lab, I’m sorry.

I see two FMU lights on left, power and B/E.

I’ve tried getting the pixhawk to boot both through powering the ROV on with the pixhawk plugged into Pi USB and by plugging the pixhawk directly into a topside computer USB port. I observe two different behaviors of the FMU B/E light using these two methods:

  1. When pixhawk is plugged into Pi and I power on the ROV with battery, the FMU B/E light is red for about 3 seconds, then turns off. I don’t see any further activity with this light.
  2. When the pixhawk is plugged into the usb port on my computer, the FMU B/E light does not light up at all. I’ve tried a couple different USB cables and different usb ports on the computer.

When it is on for about 3 seconds, is it solid or blinking? Do you have a usb wall charger for a phone that you can try?

Solid red.

I tried powering with a usb wall charger, B/E does not light up just like when connected to computer USB. Only activity I see on this light is when powered through the pi

Ok Stephanie, it sounds like the pixhawk may have given up completely. If you want to send it back to us, we can take a look.

If you have a multimeter, can you check the voltage on the end of the cable that plugs into the ‘Power’ port on the pixhawk? Please measure between the wires marked (-) and 5V here.