Skip to content

JPI Engine Monitors

JP Instruments (JPI) makes a popular line of engine analyzers — EDM 700, EDM 800, EDM 830, EDM 900, EDM 930. AZSuite parses their proprietary binary data dump format and renders per-flight charts.

Supported models

Model Status
EDM 700 / 711
EDM 730 / 740
EDM 760 / 790
EDM 800 / 830
EDM 900 / 930 ✅ (the 930 is the most-tested)
EDM 960 / 960C
EDM 1000 (panel-mount certified)

If you have a JPI not listed, try uploading anyway — most use the same underlying file format, just with different sensor counts.

How to get the data off the unit

JPI units expose their flight data via a serial / USB connection. The official tool is EzTrends (Windows) — JPI's free download from jpinstruments.com.

Process:

  1. Connect EDM to laptop via the JPI USB adapter (or whatever your model uses)
  2. Open EzTrends
  3. Download All Flights (or pick specific flights)
  4. EzTrends saves a binary file — typically named JPI_NNNNNN.dat or *.JPI
  5. Upload that file to AZSuite

Uploading to AZSuite

  1. Engine Monitor tile (web)
  2. Pick the aircraft
  3. Drop the JPI file onto the upload zone
  4. AZSuite parses each flight in the file (a single dump may contain dozens)
  5. Each parsed flight becomes a row in the engine_monitor_data table

You can also upload via the mobile app's mechanic-time-tracking flow if you're at the aircraft.

What gets parsed

The parser extracts:

  • Per-cylinder CHT (cylinder head temperature)
  • Per-cylinder EGT (exhaust gas temperature)
  • Fuel flow (gallons per hour) — when the FF instrumentation is installed
  • Oil temperature
  • Oil pressure
  • RPM
  • Manifold pressure (turbo-supercharged engines)
  • TIT (turbine inlet temperature) — turbo engines
  • OAT (outside air temperature) — when sensor installed
  • Voltage
  • Fuel quantity — when fuel-level senders are wired in
  • Carb temp / induction temp — when sensor installed

Sample rate is 1 / second on most flights, 6 / second when the EDM is in high-speed mode (typically active during runup and immediately after takeoff).

Per-flight detection

A single JPI dump file can hold many flights. The parser auto-segments by:

  • Engine on / off transitions (RPM crosses ~600 from below)
  • Long idle periods (engine running but stationary > 60 sec)
  • The unit's own per-flight markers (if present)

Each segment becomes a separate row in adsb_flights (despite the name — that table holds all track sources, not just ADS-B) with track_source = 'engine_monitor_gps'.

Linking to the pilot logbook

If you've logged a pilot logbook entry for the same flight, AZSuite tries to auto-match by date / aircraft / time. When it matches, the engine data becomes accessible from the logbook entry's detail page.

To manually link:

  1. Open the pilot logbook entry
  2. Engine data section
  3. Pick from the dropdown of unmatched engine flights for this aircraft

What the charts show

For each flight you'll see:

  • Time series of every parsed metric, on a shared X axis
  • Multi-cylinder traces stacked or overlaid (toggle in UI)
  • Anomaly markers — places where the parser flagged something (lean misfire, stuck cylinder, fuel-flow drop, etc.)
  • Peak / minimum tags — useful for runup and takeoff analysis
  • Climb / cruise / descent segmentation — derived from altitude and airspeed if a track is also attached

Anomaly detection

The parser flags:

  • Lean misfire — large EGT drop on one cylinder while others stay stable, often during leaning
  • Stuck cylinder — CHT or EGT trace flat-lines while engine RPM is changing (typically a failed thermocouple, not a real engine problem)
  • Fuel-flow anomaly — sudden drop or spike not explained by throttle position
  • Oil pressure trend — gradual decline over multiple flights
  • CHT exceedance — any cylinder exceeding the configured per-engine limit

Anomalies surface in the aircraft squawks list as "detected" entries — you can promote them to real squawks or dismiss them.

Per-engine thresholds

The thresholds for "exceedance" alerts are configurable per engine model in the admin UI (admin_oil_analysis_thresholds.php is the related screen — same idea applies to engine monitor thresholds).

Common configurations ship out of the box:

  • Lycoming O-360: max CHT 460°F (Lycoming spec is 500°F but most operators set lower)
  • Continental O-470: max CHT 460°F
  • Rotax 912: max CHT 135°C / 275°F

Reparsing after a parser fix

Same pattern as ForeFlight tracks — the original JPI dump file is preserved in object storage. If the parser improves, run reparse_track.php to re-process without re-uploading.