This is a web-based editor for file formats used by modern EFIS avionics systems on aircraft.
Important
First, read the disclaimer below carefully. Then:
π Head over to https://rdamazio.github.io/efis-editor/. π
- Import/export from the formats above
- Multiple checklist files
- Checklist item editing, reordering, moving within a file
- Checklist renaming, reordering
- Checklist group renaming, reordering
- Checklist metadata editing, including Garmin's default group/checklist
- Keyboard shortcuts for navigation and editing
- Renders (fake) live data in place of GRT tokens like %1% (see GRT user manual for all tokens)
- (optional) Google Driveβ’ synchronization
You can try it out directly in the link above, but here's what it currently looks like:
- Checklists:
- Advanced Flight systems (AFS)
- Dynon Skyview
- Foreflight (.fmd file format) - thanks to zyv!
- Garmin G3X / G3X Touch / GTN (.ace file format)
- Grand Rapids (GRT)
- Printable (PDF) - export only, selectable page size
- Raw (JSON) - the editor's internal format (for lossless backup purposes)
Different checklist file formats support different subsets of all the features in the editor:
Feature | Garmin | AFS/Dynon | GRT | Foreflight | |
---|---|---|---|---|---|
Checklist groups | β | β ΒΉ | β ΒΉ | β | β |
Checklist group categories | β | β | β | β | β |
Item types | β | β Β² | β Β² | β | β |
Indentation | β | β | β | β | β |
Centering | β | β | β | β | β |
Default checklist/group | β | β | β | β | β |
Checklist metadata | β | β Β³ | β Β³ | β β΄ | β |
Live data | β | β | β | β | β |
ΒΉ Groups names after the first will become part of the exported checklist name
Β² Prefixes, suffixes and formatting used to differentiate types
Β³ Output as a separate checklist (last)
β΄ Only file name, aircraft information and make/model (not manufacturer or copyright info)
Internally, files are stored in our own format, so it is possible to import a
file in one format and then export it in another.
Unless cloud synchronization (described below) is enabled, this is a standalone web app that doesn't talk to any servers. To accomplish this, files are stored on your browser's local storage. This does mean that if you lose your device or clear your browser's data, they will be lost - so download your files and keep a copy safe.
Optionally, you may connect the web app to Google Drive to both safekeep your files automatically, and to be able to use this app across multiple devices (if you connect the app to Drive on each of them). This works by synchronizing the file storage described above to Google Drive.
To enable synchronization, click on the Cloud icon at the top-right of the app's page and follow instructions to authorize the connection.
Files synchronized this way are stored separately from your main Google Drive files, as application-specific data. This means that the app never sees or has access to any other files on your Google Drive. Files or their metadata are also never sent to any other servers - communication happens directly between your browser and Google Drive servers.
You can see the connection between the app and Google Drive, as well as delete contents synchronized to it, by going to Drive settings and selecting "Manage apps". Disconnecting from Google Drive, either within this app, or through that settings interface, does not automatically delete synchronized data. Google Drive does not support directly manipulating files stored in it this way.
The synchronization is simple and based purely on when a file was last modified. If the same file is modified on multiple instances of the app at the same time, changes are NOT merged, and instead the version that was saved most recently wins.
This works through the Google Drive API, and use of this feature is subject to the Google Drive API Terms of Service.
Important
This is not your usual disclaimer - read it carefully.
Caution
β οΈ Failure to follow proper procedures can result in serious injury or death. β οΈ
Use of files generated by this application on your avionics is at your own risk, and we make no guarantee that the output will be correct or safe to use. Approach using these files with the same care that you would any flight testing activity - we recommend thoroughly testing them before use during actual operations (including checking them with the manufacturer's recommended apps where available, thoroughly testing on the ground before flight, having paper copies of your checklists, and any other precautions you would take when using an avionics configuration that's not supported or documented by your avionics manufacturer). We take no responsibility if it makes your EFIS crash, melt and/or you crash and die while attempting to use these files. We obviously also take no responsibility for the actual contents of your checklists, or even guarantee that the contents you enter in this app will be accurately reflected in your EFIS. Likewise, we make no guarantee that generated printable files will be correct, complete or safe to use as paper backups.
Experimental aircraft use only - use for certificated aircraft is not authorized.
The authors of this app have no association or relationship with the manufacturers of the avionics with which these files may be used, and its use is not supported by or endorsed by any of those companies.
This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.
This project is available as Open Source Software, under the Apache 2.0 license. See LICENSE for details about copyright and redistribution.
Google Drive is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
We welcome outside contributions, and there's plenty of things to do, so don't be shy. Please ask if you want a pointer on something you can help with, and hopefully we can all figure something out.
We do have a few policies and suggestions for contributors. The broad TL;DR:
- Bug reports are very welcome!
- Every commit that lands in the
main
branch is code reviewed. - Please behave yourself, and obey the Community Guidelines.
- There is a mandatory CLA you must agree to. Importantly, it does not transfer copyright ownership to Google or anyone else; it simply gives us the right to safely redistribute and use your changes.
This is a short list of known areas where contributions would be helpful:
- UI refinement: As a backend developer (heck, nowadays I'm not even that, just a manager), my CSS-foo is quite limited. If you see something that looks odd, please send a PR!
- Format testing: I have not tested these files on anything but Garmin avionics and ForeFlight. Please test and send improvements.
- Configuration files: I'd like to support more than just checklists.
- Your favorite missing feature goes here.
The following steps can be followed to set up a development environment:
- If you haven't already, install Node
- Clone this project (we recommend using jj for that!)
npm install
(will install all dependencies intonode_modules/
)npm run genproto
(will generate protocol buffer files intogen/ts/
)npm run genkeys
(will populate a dummy dev-only client ID into src/environments/dev-keys.ts)- If you plan to use/change the Google Drive synchronization feature while running locally, edit src/environments/dev-keys.ts to set your own OAuth client ID that allows localhost connections. See the Drive API documentation for how to do obtain a client ID.
You can then develop as you normally would any Angular app (e.g. ng serve
).
To test your changes, you can use npm run prepush
(all checks) or just npm run test:headless
(only unit tests).
If you make changes to .proto
files, you'll need to run the genproto step again
(or you can use an IDE extension such as vscode-proto3 to
do that automatically when the file is saved).