Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GDL39 #75

Open
cyoung opened this issue Oct 7, 2015 · 96 comments
Open

GDL39 #75

cyoung opened this issue Oct 7, 2015 · 96 comments

Comments

@cyoung
Copy link
Owner

cyoung commented Oct 7, 2015

If anyone is interested in implementing GDL39 -

http://www.chartbundle.com/tech/gdl39/

Interesting paper: http://cseweb.ucsd.edu/~savage/papers/CCS14MobileCockpit.pdf

@bradanlane
Copy link
Contributor

I assume, in addition to the coding for encryption and handshake, this would also require Bluetooth support- yes?

@cyoung
Copy link
Owner Author

cyoung commented Oct 20, 2015

I think so - there are some avionics that take only GDL39 over serial also. In terms of using it for Garmin Pilot it's probably bluetooth only.

@skypuppy
Copy link

I'm told that Garmin encrypts their transmissions, at least over the
air. Haven't heard about direct wired.

Skypuppy7

On 10/20/2015 07:25 AM, cyoung wrote:

I think so - there are some avionics that take only GDL39 over serial
also. In terms of using it for Garmin Pilot it's probably bluetooth only.


Reply to this email directly or view it on GitHub
#75 (comment).

@cyoung
Copy link
Owner Author

cyoung commented Oct 20, 2015

It uses blowfish encryption with a key that is negotiated in the handshake, the above link describes it.

@skypuppy
Copy link

If they wanted to compress the data interchanges, that's one thing. But encrypting it is downright !!! Another good reason to never buy Garmin gear. Bah. /rant off

@monadical
Copy link

The GLD39 looks pretty straightforward and interesting. The paper is very interesting, and I agree that security between devices would be a great idea. Of course it requires agreement on the approach between the app and the device makers. BTW: the Garmin approach to security from looking at the GDL39 code is embarrassing. I'm starting to get the impression Garmin doesn't care. :)

@n980km
Copy link

n980km commented Feb 16, 2016

What I'd love to see would be GDL-39 serial output so I can use Stratux to display traffic and weather on my Garmiin 696, instead of having to buy a GDL-39 to do it. Anyone with a Garmin x96 GPS -- and there are a lot of them out there -- could benefit from it.

My coding skills are limited, otherwise I'd take a whack at it myself. It's one of those things that doesn't look terribly difficult, but is beyond my abilities.

@Snowflake6
Copy link

As with n980km, i'd like to see GDL-39 serial output so I could feed a Garmin handheld. In my case an Aera 660. I know many pilots with Aeras (500, 510, 550, 660, 760) and they have all been following the Stratux development and would all like to see this capability.

@jamez70
Copy link
Contributor

jamez70 commented Dec 20, 2016

I'm going to see if I can get it to work

@braice
Copy link

braice commented May 6, 2017

Hello,
Did you succeed to write something ?
It can be a great feature and I will be happy to provide help testing/debugging.
Thank you

@lukepalmer
Copy link
Contributor

Does anyone own a GDL 39 (preferably 3D) who would be willing to provide a few minutes of a bluetooth packet capture?

Here's a reference on how to collect the traffic:
https://www.nowsecure.com/blog/2014/02/07/bluetooth-packet-capture-on-android-4-4/

@FlyingSikh
Copy link

I don't own a GDL39 but have an Area 796 with old Zaon connected to it via serial connection. Let me know if I can help in any way.

@monadical
Copy link

monadical commented Jun 13, 2017

The flight schools planes I rent now have GTX 345's which can all talk to ForeFlight (and Pilot) via the built in Connext link. I assume that's the same protocol data as the GDL 393D. I can work on capturing steams from that, probably just via a laptop, because laptops. I'll just use Wireshark unless someone has a better suggestion.

@Snowflake6
Copy link

@lukepalmer, the bluetooth protocol has been documented previously... See the link in the FP. Implementing Connext would only help people who are buying new Garmin hardware. The goal with supporting GDL39 would be to support all of the existing Garmins in the field that can receive GDL39 data. If you can afford new Garmin hardware that talks Connext, you probably don't need a Stratux.

@monadical
Copy link

If all of the GDL39 (or Connext otherwise) is fully documented, then our job is done. It's just implementation work. If not, let me know, happy to capture streams to aid in full understanding the protocols. Of course we're borrowing GDL39s (or Connext setups) to get this data so the Stratux can act as a GDL39 (just like emulating Stratus). Obviously if we have either of those devices we don't need Stratux. :)

@lukepalmer
Copy link
Contributor

@Snowflake6 I'm not aware of any work on the 3D variant (with AHRS). Would be great if you know something I don't though! The thing that makes this interesting would be using Stratux with Garmin Pilot.

However: I think I've managed to get my hands on one. I'll work on getting a dump to post here.

@Snowflake6
Copy link

@lukepalmer Personally I would consider the AHRS to be a bonus... I'm more interested in getting traffic and weather onto my Aera 660 without buying a GDL39 or an XM subscription.

@jamez70
Copy link
Contributor

jamez70 commented Jun 13, 2017 via email

@kdknigga
Copy link
Contributor

I just ordered a GDL39. I'll try getting a capture.

@0x74-0x62
Copy link

I am also very interested in getting the GDL39 protocol to work (to feed Garmin Pilot). Unfortunately, I do not have access to a GDL39 source device. Please let me know if there is any way to support the development activities either by coding or testing.

@jamez70
Copy link
Contributor

jamez70 commented Jun 16, 2017 via email

@kdknigga
Copy link
Contributor

kdknigga commented Jun 16, 2017 via email

@kdknigga
Copy link
Contributor

Got my GDL39 today. Here's a bluetooth capture from my living room. As such, it's just GPS and air-to-air traffic (mostly 1090 traffic out of Midway and Ohare).

https://drive.google.com/file/d/0B5KKdvTfqQ4vN2VmbHhmOHk0SXc/view?usp=sharing

@kdknigga
Copy link
Contributor

Here's a trip I took over the weekend. It should have everything: all forms of traffic, weather, GPS, and a couple of Garmin Pilot/GDL39 handshakes.

https://drive.google.com/file/d/0B5KKdvTfqQ4vWENjSmNMZGJIZ1U/view?usp=sharing

@jamez70
Copy link
Contributor

jamez70 commented Jun 30, 2017

What did you use to capture?

@kdknigga
Copy link
Contributor

kdknigga commented Jun 30, 2017 via email

@jamez70
Copy link
Contributor

jamez70 commented Jun 30, 2017

@kdknigga From your coordinates, it appears you live about 5 miles from me. Maybe we should just get together sometime?

@kdknigga
Copy link
Contributor

kdknigga commented Jun 30, 2017 via email

@hobiseven
Copy link

@jamez70 I did send you an email . Hope you will reply in any way.

Thank you.

@hobiseven
Copy link

hobiseven commented Nov 8, 2021

Folks,

Working on it with Jamez70. At least we have virtual FIS-B stations flying along the plane in Europe now.

Question @cyoung
For EU, There is no FIS-B mandate at all, and no obligation to get an ADSB out in the small planes. Last week, I almost got an other plane crashing into mine as I was flying, and no ADSB warning. I think is makes sense to add Flarm, as it enhances the coverage, still far from being a 100% coverage, but it is what is it. I hope FLarm and ADSB 1090 can have a simultaneous operation.

About FIS-B, do you have any plan to have internet weather? I plan to get this in, and I have now a good source for METAR, TAF, NOTAM ( including domestic one ) for EU. I have also a source for NEXRAD like precipitation.

I will put all that in an ESP32 board, then , based on the raw interface, stitch all to StratuX, hopefully running on the PI. 5G comms are getting there, and mobile data link is improving at every generation.

@constantinwest
Copy link

Hi guys, unfortunately I understand only a small portion of how and what you do. However, I want to let you know that I really appreciate your efforts. I am using a Stratux I. Europe and I'd love connecting it to the Aera 660 to get traffic information to it. So far, I am using it in combination with the Skydemon and it works well, but tieing it directly to the system would be a huge step forward! Keep up the good work!

@mpcathey
Copy link

Is this still actively being worked on?

@hobiseven
Copy link

I paused a bit due to too many issue at work but still in the makings thanks to jamez

@N662FF
Copy link

N662FF commented Nov 7, 2022

Hi all, I am wondering if I could get a copy of the code you all have written. I have a GDL-39 which does link to FltPln Go via bluetooth on a ONN Android 11 7" tablet via bluetooth. I have the Android Studio up and running, and have gotten the Bluetooth HCL log captures and can look at them via Wireshark. I have the Chartbundle code/doco, but the packets I'm seeing with FltPln Go (it is free) connecting to the GDL-39 do not seem to match up with the Chartbundle doco. Plus I'm not a big Perl coder.
If someone has something that works and is in C that would help alot, as it will be easier for me to understand things than with Perl.
Whatever I make I will share back here, or maybe start a GitHub project (I have not done that before, but neither programmed Android - so might as well do both)

@N662FF
Copy link

N662FF commented Nov 11, 2022

Is it possible for you all to contact me at: jcoolio5150@gmail.com ???

@jwbruce
Copy link

jwbruce commented May 31, 2023

I have volunteered to help on this issue a couple of times before, but no one has ever responded. I will offer up again.

If someone (@jamez70 @hobiseven @N662FF ) could share the current state of GDL39 serial out -- code, simulators, datastreams, etc.) I would give it a go.

@jamez70
Copy link
Contributor

jamez70 commented May 31, 2023

Well I have someone working on things in France. I'll see where he is at and see if I can get some sample code.
Its pretty complex and involved to implement, and I just do not have the time to do so.

@monadical
Copy link

monadical commented May 31, 2023 via email

@jamez70
Copy link
Contributor

jamez70 commented May 31, 2023

@monadical looking at your github, looks like you are a software engineer. If you have time and the desire to get things done I'll get you coding very soon.

@monadical
Copy link

monadical commented May 31, 2023 via email

@jamez70
Copy link
Contributor

jamez70 commented Jun 1, 2023 via email

@celobusana
Copy link

Hello, can anyone include me in this project? I would like to contribute.

@rohozhnikoff
Copy link

@jamez70 could you add me to the project ? We are deeply interested in having ability to send objects to garmin devices

@jamez70
Copy link
Contributor

jamez70 commented Jul 24, 2023

@jamez70 could you add me to the project ? We are deeply interested in having ability to send objects to garmin devices

For what purpose?

@rohozhnikoff
Copy link

rohozhnikoff commented Jul 24, 2023

@jamez70 sorry for my english if i am not correctly describe it in my first message
we want to setup cheap diy solution for our training fleet and garmins on boards, so i found this thread

@celobusana
Copy link

@jamez70 I would like to assist with the GDL39 integration as well; I am a software engineer.

@najak3d
Copy link

najak3d commented Aug 10, 2023

We have a significant business interest in Garmin-integration.

We can contribute to the coding effort as well as help fund this effort. I appreciate open-source concepts, but those contributing to Open-Source still need to eat and get paid. I would bet there are others who would also be interested in funding this -- getting money to those making this world a better place. We will make money off of this integration, and so it's appropriate to share this back to the geniuses behind it all.

"Open-Collective" comes to mind as an easy way for people to contribute to this work, and even set "Bounties" on specific features/requirements.

For us, we are iFlyEFB (iflyefb.com) -- and would love to have integration with Garmin. We need the following integration to be complete:

  1. Read ADSB output - as mentioned above. (GDL39 stuff)
  2. Send and/or Receive Flight Plans. <== Has any work been done on this yet?

If you are unfamiliar with "Open Collective", here's an example project where I have donated in the past (for personal project):
https://opencollective.com/stride3d

@N129BZ
Copy link

N129BZ commented Aug 10, 2023 via email

@Snowflake6
Copy link

@najak3d I'm happy to hear this offer as i'm sure the project could make use of the support. As you can see earlier in the thread there has been progress on getting this working, but the people involved also have day jobs and this isn't a major priority. I think getting the GDL39 connection working would benefit a lot of Stratux and Garmin owners though.

I think Flight Plans, however, are beyond the scope of a Stratux device... I don't see how sending/receiving a flight plan to a Stratux device would be of use. There's already mechanisms for transferring flight plans from tablets to Garmin devices, both wired and wireless, i'm not sure what that functionality would add. Did you have something else in mind?

@jamez70
Copy link
Contributor

jamez70 commented Aug 10, 2023

We are actively developing the GDL-39 code, and integration into Stratux will occur in the near future. It is a major undertaking and very complex so it takes some time. We are able to do METARS, TAFS, NEXRAD, PIREPS, Winds Aloft, and Traffic but its not perfect yet. Traffic alone is most of the effort because it is much more involved compared to how Stratux handles traffic. Basically, GDL-39 also does some trigonometry to check for collision potential and has its own barometric sensor for this purpose as well.

One huge drawback is GDL-39 only works if its directly connected to the GPS via serial. I researched Bluetooth for a few weeks, but any Bluetooth GPS transactions use Connext, and Connext has a much more sophisticated key exchange than GDL-39 uses.

@Snowflake6 Snowflake6 mentioned this issue Aug 10, 2023
6 tasks
@najak3d
Copy link

najak3d commented Aug 10, 2023

We are actively developing the GDL-39 code, and integration into Stratux will occur in the near future. It is a major undertaking and very complex so it takes some time. We are able to do METARS, TAFS, NEXRAD, PIREPS, Winds Aloft, and Traffic but its not perfect yet. Traffic alone is most of the effort because it is much more involved compared to how Stratux handles traffic. Basically, GDL-39 also does some trigonometry to check for collision potential and has its own barometric sensor for this purpose as well.

One huge drawback is GDL-39 only works if its directly connected to the GPS via serial. I researched Bluetooth for a few weeks, but any Bluetooth GPS transactions use Connext, and Connext has a much more sophisticated key exchange than GDL-39 uses.

I think this all has potential then for good success. If Stratux gets it's info from Garmin, I'm guessing they will do a pass through to EFB's via Wifi/UDP, so that iFlyEFB will be able to process the same ADSB data stream, correct?

Mostly, at the air shows we're seeing a big interest in "working with Garmin" - and if we can say, "yes, we support Garmin's GDL390/ADSB output via the Stratux", that will be of big benefit to both us and Stratux.

A major need remains to have Flight Plan sharing so that both Garmin and iFlyEFB will be navigating/advising for the same Route.

@Snowflake6
Copy link

We are actively developing the GDL-39 code, and integration into Stratux will occur in the near future. It is a major undertaking and very complex so it takes some time. We are able to do METARS, TAFS, NEXRAD, PIREPS, Winds Aloft, and Traffic but its not perfect yet. Traffic alone is most of the effort because it is much more involved compared to how Stratux handles traffic. Basically, GDL-39 also does some trigonometry to check for collision potential and has its own barometric sensor for this purpose as well.

This is excellent news, thanks for the update!

One huge drawback is GDL-39 only works if its directly connected to the GPS via serial. I researched Bluetooth for a few weeks, but any Bluetooth GPS transactions use Connext, and Connext has a much more sophisticated key exchange than GDL-39 uses.

I suppose that was to be expected. In any case, serial connections are certainly possible, I know I have a bare wire interface for my 660 and have the output wired both to my Garmin COM and my Dynon D10A. Wiring the Stratux to the input should be easy, and will certainly be worth looking into if I can see traffic on the 660 display.

@najak3d
Copy link

najak3d commented Aug 10, 2023

@najak3d I'm happy to hear this offer as i'm sure the project could make use of the support. As you can see earlier in the thread there has been progress on getting this working, but the people involved also have day jobs and this isn't a major priority. I think getting the GDL39 connection working would benefit a lot of Stratux and Garmin owners though.

I think Flight Plans, however, are beyond the scope of a Stratux device... I don't see how sending/receiving a flight plan to a Stratux device would be of use. There's already mechanisms for transferring flight plans from tablets to Garmin devices, both wired and wireless, i'm not sure what that functionality would add. Did you have something else in mind?

What are the current mechanisms for sending Flight Plans to/from Garmin via a tablet. Perhaps we can tap into this mechanism. We already employ the Garmin "Deep Link Format" (i.e. to deep link a flight plan into iFlyEFB is the same as it is for garmin, but you just replace the "garminpilot:" prefix with "iflygps:", and it works for us. If the mechanism is "Deep Link" format, that would be a big bonus, as much of that work has already been done by us.

The main use case is this -- use iFlyEFB at home to plan and file your flight plan. Then when it's time to depart, go to your plane, and upload the flight plan to the Garmin from your tablet. Normally we do this directly from within the App, via Wifi UDP or TCP/IP. (we do this now for Dynon and Avidyne)

@Snowflake6
Copy link

I think this all has potential then for good success. If Stratux gets it's info from Garmin, I'm guessing they will do a pass through to EFB's via Wifi/UDP, so that iFlyEFB will be able to process the same ADSB data stream, correct?

The Stratux gets it's info from it's antennas, picking up ADS-B signals from ground stations and other aircraft directly. The Stratux receives no data from Garmin. The purpose of this GDL39 connectivity was to implement the GDL39 protocol to allow the Stratux to inject ADS-B data into a Garmin GPS for display.

A major need remains to have Flight Plan sharing so that both Garmin and iFlyEFB will be navigating/advising for the same Route.

As mentioned, this is beyond the scope of connecting a Stratux to a Garmin GPS.

@Snowflake6
Copy link

What are the current mechanisms for sending Flight Plans to/from Garmin via a tablet. Perhaps we can tap into this mechanism. We already employ the Garmin "Deep Link Format" (i.e. to deep link a flight plan into iFlyEFB is the same as it is for garmin, but you just replace the "garminpilot:" prefix with "iflygps:", and it works for us. If the mechanism is "Deep Link" format, that would be a big bonus, as much of that work has already been done by us.

Garmin has a protocol called "Connext" that works over Bluetooth to connect to a tablet running a compatible EFB. I have used this with an Android tablet running FltPlanGo to transfer a flight plan back and forth. Personally I don't find this very effective, I find it almost as easy to just enter the flight plan manually on the Garmin GPS... The touchscreen makes it quick enough that it's easier in my mind than setting up a Bluetooth connection and then figuring out the transfer.

The main use case is this -- use iFlyEFB at home to plan and file your flight plan. Then when it's time to depart, go to your plane, and upload the flight plan to the Garmin from your tablet. Normally we do this directly from within the App, via Wifi UDP or TCP/IP. (we do this now for Dynon and Avidyne)

That's the way. The Stratux doesn't get involved in that process at all, it just supplies ADS-B data to the GDL39 stream going to the Garmin GPS.

@hobiseven
Copy link

We can push stratux adsb data into gdl39, with traffic and if fis-b is there we can push quite a few things too. I currently push internet/5G data as I have no fis-b in my airspace

@hobiseven
Copy link

To the ones that asked the question about EFB, flight plans, etc.. No this is not the target of this piece of code. Only following is pushed through : Traffic coming from any data source, METAR, TAF, NOTAM, SIGMET, PIREPS, winds aloft, temps and Nexrad.
Remember that this is designed to run on devices as old as a 496, for Traffic.
And this is only a wired protocol on a serial RS232 thing. Hope it clarifies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests