ArduPilot waypoint navigation with Inspire OSD waypoint display

Hi everybody. As said elsewhere, I'm new to DIYdrones and I hope I type my inputs at right places.
I'm currently in final stages of building my personal FPV/UAV platform (2m trainer Kadet Senior, outrunner driven).
If I am quite convinced by adding ArduPilot + FMA coPilot + 5Hz GPS for navigation, I still wonder what OSD would be most useful for my budget. When a looked at specs of the Inspire OSD, two questions came to my mind:
1) is there a way for both boards to share a single 5Hz GPS chip or is the ArduPilot able to communicate its position to the OSD (latter would be my preferred solution)
2) since the Inspire OSD is able to exploit waypoint routing from a Garmin Geko handheld GPS, would there be a chance for this OSD to read and display the current waypoint target from ArduPilot during navigation.
If anybody has experience with one or both boards, I would be glad to know. Thanks.

Views: 678

Reply to This

Replies to This Discussion

1) Possibly. See this thread.

2) Probably not. The serial port is being used to communicate with the GPS.
Chris, how is it working that in ArduPilot both GPS and TTL cable work over serial port, probably also at the same time? I see in the code that serial IN is from GPS and OUT is for debug log. Are the pins on both connectors somehow connected on the board?
I asked people at DPCAV, distributing the Inspire OSD, if they know of anybody who might have implemented both ArduPilot and Inspire OSD. Unfortunately, the answer is negative. But on the other hand, Mr Thomas Black of DPCAV gave me infos regarding the communication protocol used by the Inspire OSD in its relation to Garmin handheld GPS which can be coupled: "The Inspire OSD uses the Garmin $GPRMB sentence for determining the waypoint data to display. So, I suppose you could create a solution if you adapted the ArduPilot code to provide the $GPRMB, $GPGGA, and $GPRMC NMEA data to emulate the Garmin handheld GPS."

He transmitted following details to $GPRMB (waypoint sentence):

$GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*20
where:
RMB Recommended minimum navigation information
A Data status A = OK, V = Void (warning)
0.66,L Cross-track error (nautical miles, 9.99 max),
steer Left to correct (or R = right)
003 Origin waypoint ID
004 Destination waypoint ID
4917.24,N Destination waypoint latitude 49 deg. 17.24 min. N
12309.57,W Destination waypoint longitude 123 deg. 09.57 min. W
001.3 Range to destination, nautical miles (999.9 max)
052.5 True bearing to destination
000.5 Velocity towards destination, knots
V Arrival alarm A = arrived, V = not arrived
*20 checksum

For ArduPilot to work with Inspire OSD, a change in ArduPilot is thus necessary to emulate such Garmin sentences.
@Michal. Each is only one-way. GPS takes the RX pin and telemetry (via Xbee) takes the TX pin. We connect the Xbee to the FTDI's TX pin.
Well, I discovered this after seeing that both GPS and TTL are physically on same wires.

I found out one inconvenience in this connection - when GPS is connected, I can't upload new code to board via TTL at the same time. The reason is that GPS starts sending data to serial right after reset, so TTL cable is desynchronized. In order to upload code, I have to unplug GPS every time.

I fear about breaking the GPS connector soon. And it's disturbing to plug/unplug so often while testing.
What about plugging GPS by pins below LOCK led, and use 5V source from D6 out pin, thus switching on GPS programatically when code starts...?
pinMode(6, OUTPUT); digitalWrite(6, HIGH);
and GPS is ON. And being off after reset or possibly in manual flight (saving battery).
ArduPilot should have no problem to FORWARD received GPS data to serial. Maybe entire traffic, or selected commands.
You'd connect your GPS logger to serial out pin from ArduPilot.
Thanks Michael B. I backordered ArduPilot a few hours ago, hoping to be among the next batch, as well as ordered the LS20031 5Hz GPS, FMA CoPilot.
I hope to find some way to use the ArduPilot serial out to parse $GPRMB, $GPGGA, and $GPRMC NMEA sentences to the Inspire OSD. I You have any idea how I could achieve that, You're welcome.
Michal: That's a great idea. I'll run it by Jordi.
Michal: I just checked with Jordi and unfortunately it won't work. His answer:

"Impossible to feed a GPS with the I/O pins directly. Why? because a GPS needs more or less 250 mAh in order to work... The I/O pins are only signals without any current... if you do it, you will burn the Atmega168.."
Yes, I tested right now (before reading your post). It didn't burn CPU, but also didn't work - GPS LED light was very low.
It's very easy to create "sythetic" NMEA sentences like that, since we've got all the data. A few lines a code should do it. We don't have an Inspire OSD, so we won't do it, but that's the advantage of an open source autopilot: you can do it yourself (or find someone to do it for you).
Thanks Chris. I'll wait until the hardware gets in and I document myself in the meantime.

Reply to Discussion

RSS

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service