Hi everybody, I want to explain my problem with my bad english.
I connect from windows computer with UDP and telemetry. No problem. But Raspberry PI also gives an error connect(’/dev/ttyAMA0’,wait_ready = True,baud=57600)
Hi Kadir,
Welcome to the community forum!
Could you please share the command that outputs these messages?
hİ liudmila,
-> Raspberry PI 4 8GB
-> Navio2
-> Python
connection method
connect(’/dev/ttyAMA0’,wait_ready = True,baud=57600)
All Code…
#coding=utf-8
from dronekit import connect,VehicleMode
import time
from enum import Enum
#region araç bağlantı işlemleri
class c_dynamic_vehicle:
def __init__(self):
self.copter = object
self.connected = False
self.customMessage =''
pass
pass
class enum_connectType(Enum):
ethernet = 0,
telemetry = 1,
RPI = 3
pass
‘’’ Connection type : Bağlıntı şeklini seç ‘’’
connectType = enum_connectType.RPI
vehicleObject = c_dynamic_vehicle()
try:
if (connectType == enum_connectType.telemetry):
vehicleObject.copter = connect('COM4',wait_ready = True,baud = 57600)
elif (connectType == enum_connectType.ethernet):
vehicleObject.copter = connect('127.0.0.1:14550',wait_ready = True)
elif (connectType == enum_connectType.RPI):
vehicleObject.copter = connect('/dev/ttyAMA0',wait_ready = True,baud=57600)
vehicleObject.connected = True
vehicleObject.customMessage = 'Connection successful'
except Exception as e:
vehicleObject.connected = False
vehicleObject.customMessage = 'Not Connected, Error Message = ' + str(e)
pass
#endregion
#region yardımcı metotlar. copter yönetimi haricinde kullanılacak olanlar
class c_global_methods:
def outputMessage(self,message):
print message
pass
#endregion
globalMethods = c_global_methods()
#region copter için metotlar
class c_smart_copter_run:
def takeOff(self,aTargetAltitude):
print "Basic pre-arm checks"
while not vehicleObject.copter.is_armable:
print " Waiting for vehicle to initialise..."
time.sleep(1)
pass
print "Arming motors"
vehicleObject.copter.mode = VehicleMode("GUIDED")
vehicleObject.copter.armed = True
while not vehicleObject.copter.armed:
print " Waiting for arming..."
time.sleep(1)
pass
print "Taking off!"
vehicleObject.copter.simple_takeoff(aTargetAltitude)
while True:
print " Altitude: ", vehicleObject.copter.location.global_relative_frame.alt
if vehicleObject.copter.location.global_relative_frame.alt>=aTargetAltitude*0.95:
print "Reached target altitude"
break
time.sleep(1)
pass
pass
#endregion
smartCopter = c_smart_copter_run()
if name == “main”:
if(vehicleObject.connected):
print 'Connection : Successfull!'
pass
else:
print 'Connection : Error! -> ' + str(vehicleObject.customMessage)
Raspberry PI connect error,
ERROR:dronekit.mavlink:Exception in MAVLink input loop Traceback (most recent call last):
Help me please…
connect(’/dev/ttyAMA0’,wait_ready = True,baud=57600)
Hi Kadir,
As far as I know, this issue might appear because the telemetry is set up at a baud rate of 57600. It takes approximately 2 minutes to download the parameters, and Dronekit times out after 30 seconds.
You may modify _ _ init _ _.py
file from Dronekit by changing the timeout parameter to 180 seconds or more.
Hi liudmila,
I did what you said. But this time I got an error like the following. After about 150 seconds
Important! When I connect with UDP connection or telemetry connection in windows and run the same codes, there is no problem. Only on raspberry pi something like this happens
Please help. I have to solve this problem
Hi Kadir,
It’s essential to make sure that you’ve declared the correct port for telemetry modems in the script. If you’re using UART port, it’s /dev/ttyAMA0
. With USB, it’s usually /dev/ttyUSB0
but it might change in regards to what exact USB port you’re using.
We’re always glad to be of help with Navio2. However, the Dronekit configuration isn’t the easiest one and requires some programming skills. That’s why we recommend using pre-installed tools like ArduPilot autopilot to control a drone.
Please note that Dronekit is an open-source project mostly made up with the help of contributors. It’s possible some changes in the scripts interfere with the standard configurations. I suggest checking out this workaround that helps to bypass the timeout limitation.
This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.