Fatal Error on boot and Unable to connect to APM (with huge failure)

There are quite a few errors and failures that I’m experiencing with my initial setup of my RPi2&NAVIO+ configuration.

ISSUE 1: I installed the real-time linux. When I boot the RPi2, I get this “FATAL” error every time:

“FATAL: Module spi-dev not found.”

I downloaded the APM to the RPi with:

wget http://emlid.com/files/APM/apm.deb
sudo dpkg -i apm.deb

I downloaded the APM software to my laptop (which I am using as the GCS) but did not configure the initial setup on my laptop yet because it cannot find the device I am trying to control.

ISSUE 2: On the RPi, I have been trying to do the next step for setting up the APM, and all of these 4 attempts have failed:

Try 1: sudo ArduCopter-quad -A udp:

Try 2: sudo ArduCopter-quad -A udp: -C /dev/ttyAMA0

Try 1 and Try 2 just hang.
"Raspberry Pi 2 with BCM2709!
then I need to CTRL-C to be able to do anything else.

Try 3: sudo ArduCopter-quad -C udp:

Try 4: sudo ArduCopter-quad -C /dev/ttyAMA0

For Try 3 and Try 4, as the program was displaying text in the terminal, instead of typing characters exclusively from left to right, it would type a few characters, and jump back to the left a few places and rewrite characters there. It was also spamming Q’s, box characters, and the phrase “RC not calibrated”. It started writing characters that were definitely not English-language characters. Once it started doing this, the characters that were supposed to be in English were actually random characters. Even when I would type, it would look like these arrows and foreign characters. I typed the shutdown command and it worked and went back to normal when I rebooted, but it still appeared in the wrong characters on the screen.

If there is any way for me to show you guys pictures I took of the screen, please let me know. I understand that the -A option is likely just the wrong baud rate, but if there is any explanation for why the -C options (Try 3&4) are such disasters, please let me know. Perhaps issue 1 is related?

I appreciate any help!

Issue 1: it is not actually fatal as the message suggests, just ignore it.

Issue 2: Try 1 and Try 2 don’t hang - they run without output to the console. If you want to continue working in the same session add & symbol to the end of the command. As Try 3 and Try 4 lack -A option APM outputs binary MAVLink messages to the console, that’s why you see Qs and stuff. Also, udp connection is not affected by the baud rate.

So, you run APM Planner on a machine with address, but don’t see that autopilot is connected?

Thank you for replying and helping!

When I open the APM planner on my laptop, and try to do the beginning setup, including the “Install Firmware” step, I try to select the quadcopter (the first quad shown as an option) and the program says “No valid device found. Check to be sure your APM2.5+ or Pixhawk/PX4 device is plugged in, and drivers are installed.”

Navio+ is a little bit different on that step. It does not use APM “Firmware” as microcontroller boards like APM2.5 or Pixhawk do. APM is run as a software like any other programs on the RPi. When you ran “sudo dpkg -i apm.deb” you already installed the APM software, so just skip this step.

Do you see the telemetry in the APM Planner? Does the HUD move and values change?

How do I know if the command to set up the APM has worked properly or finished if there is no output into the terminal?

In the APM Planner, if I go to FLIGHT DATA, there are values, but currently there is no UAV attached to the RPi. I am still configuring everything and going to use this as a testbed for software development before attaching it to my UAV and trying it.

It doesn’t finish when you execute that command, it keeps running (it’s not just a command, it’s a program) until you manually kill it. Also, if there is something wrong during the start it should exit with an error.
To confirm that APM is running you should see that it is “Connected” in the right upper corner and get telemetry updates - values like roll, pitch, yaw, alt etc. changing.

Thank you. I was thinking that it was supposed to show that there was a program running or that there was a connection made or something.