Histograms
Time distribution capture across different ranges, updated every second.
Histogram Types
| Type | Ranges | Description |
|---|---|---|
| RPM | 21 | 0-8,000+ RPM |
| Speed | 16 | 0-150+ km/h |
| Throttle | 12 | 0-100% |
| Turbo | 11 | 0-400+ kPa |
| Engine Temperature | 9 | < 40°C to ≥ 110°C |
Query Formats
Each histogram has 2 formats:
- R (Raw): Time in seconds
- P (Percentage): Percentage of total time
QTP<COMMAND> // Complete histogram
QTP<COMMAND>,<idx> // Specific range onlyRRPM / PRPM - RPM Histogram
Ranges
| Idx | RPM Range |
|---|---|
| 0 | 0-599 |
| 1-7 | 600-1999 (200 increments) |
| 8-19 | 2000-7999 (500 increments) |
| 20 | ≥8000 |
Examples
>QTPRRPM<
>RTPRRPM,0:120,2:450,4:890,6:1200,8:720,10:200;ID=...<
>QTPPRPM<
>RTPPRPM,0:3,2:12,4:24,6:32,8:19,10:5;ID=...<
>QTPRRPM,6<
>RTPRRPM,6:1200;ID=...< # Range 6 onlyExample: RPM Distribution
RSPD / PSPD - Speed Histogram
Ranges
| Idx | Range km/h |
|---|---|
| 0 | 0-10 |
| 1-14 | 10-150 (10 increments) |
| 15 | >150 |
Examples
>QTPPSPD<
>RTPPSPD,0:5,3:12,5:28,7:35,9:15,11:5;ID=...<
// stopped=5%, 30-40=12%, 50-60=28%, etc.Example: Speed Distribution
RACC / PACC - Throttle Histogram
Ranges
| Idx | Range % |
|---|---|
| 0-8 | 0-89% (10% increments) |
| 9 | 90-98% |
| 10 | 99% |
| 11 | ≥100% (full throttle / kickdown) |
Examples
>QTPPACC<
>RTPPACC,0:15,2:25,4:30,6:20,8:8,10:2;ID=...<Example: Throttle Distribution
RTBO / PTBO - Turbo Histogram
Ranges
| Idx | Range kPa |
|---|---|
| 0 | 0-29 (no boost) |
| 1 | 30-49 |
| 2 | 50-79 |
| 3 | 80-99 |
| 4 | 100-129 |
| 5 | 130-149 |
| 6 | 150-199 |
| 7 | 200-249 |
| 8 | 250-299 |
| 9 | 300-399 |
| 10 | ≥400 |
Examples
>QTPPTBO<
>RTPPTBO,0:75,1:15,2:5,3:3,4:2;ID=...<
// atmospheric=75%, 30-49kPa=15%, etc.Example: Turbo Distribution
RTMP / PTMP - Engine Temperature Histogram
Ranges
Fixed bins in flash (temp_limits), 9 ranges. Negative values are clamped to range 0 (cold); outside the physical range (-40°C to 150°C) they are not accumulated (counted as no data).
| Idx | Range °C |
|---|---|
| 0 | < 40 |
| 1 | 40-69 |
| 2 | 70-79 |
| 3 | 80-89 |
| 4 | 90-94 |
| 5 | 95-99 |
| 6 | 100-104 |
| 7 | 105-109 |
| 8 | ≥ 110 |
Examples
>QTPPTMP<
>RTPPTMP,3:20,4:35,5:30,X:15;ID=...<
// 80-89°C=20%, 90-94°C=35%, 95-99°C=30%, no CAN data=15%
>QTPRTMP<
>RTPRTMP,3:180,4:320,X:140;ID=...< // seconds per rangeAlso available as trip reports R11 (PCT) and R12 (RAW). The equivalent per-bin signal is FTMnn (indexes 00-08).
Band signals (FRP / FVL / FAC / FTB / FTM)
Since 1.09.27 T18 every bin of the five histograms is a rules-engine signal, so events can fire per RPM or speed band without configuring UVs, with a fixed ~1.3 s latency.
| Signal | Histogram | Indexes | Source |
|---|---|---|---|
FRPnn | RPM | 00-20 | ECU00 |
FVLnn | speed | 00-15 | ECU05 → ECU15 → GPS |
FACnn | accelerator | 00-11 | ECU01 |
FTBnn | turbo | 00-10 | ECU28 |
FTMnn | engine temperature | 00-08 | ECU06 |
The index is the same bin number reported by QTPRRPM, QTPRSPD, etc. (see each histogram’s ranges above).
Behaviour:
- Level signal: 1 while the value is inside that bin. At most one bin on per histogram. Edges
+/-come from the engine. - 1 s dwell: the new bin must hold for 1 s before switching. A value oscillating on the border between two bands generates no events.
- Without valid data (5 s without a CAN frame) every bin of that histogram turns off immediately.
FVLnever lacks data: it falls back to GPS. - Without CAN only
FVLmoves. Units without the TRIP module still have the signals; they read 0.
Query:
>QSSFRP05<
# Reply: RSSFRP0511 (on) / RSSFRP0500 (off)Rule examples:
# Report on entering the 1400-1599 rpm band while moving (>=10 km/h)
>SRL20E;TRG=FRP05+;CND=FVL00-;ACC={GU020H;@IP0}<
# Report on leaving the 0-9 km/h band
>SRL21E;TRG=FVL00-;ACC={GU021H;@IP0}<
# Engine above 2000 rpm with the vehicle stopped
>SRL22E;TRG=FRP08+;CND=FVL00;ACC={GU022H;@IP0}<EVAL: FRP(n), FVL(n), FAC(n), FTB(n), FTM(n) return the same signal (0/1). In a user report: >SUC09 $FRJ:'FRP(5)'<.
When NOT to use them: if the threshold is not a bin border (e.g. “speed > 2 km/h”) you still need a UV or a VL.
X Index - Time Without CAN Data
For histograms that depend on CAN data (RPM, Throttle, Turbo, Engine Temperature), there’s a special X index that represents the percentage of time without valid CAN data. With X, the histogram percentages add up to exactly 100%: the time without a reading is no longer lost, it is accounted for in X.
>QTPR4<
>RTPR4,3:15,4:25,5:30,X:30;ID=...< // 15+25+30 (ranges) + 30 (X) = 100%
>QTPR6<
>RTPR6,X:100;ID=...< // 100% without throttle dataIn RAW format the X index also appears, expressed in seconds without valid data:
>QTPR5<
>RTPR5,4:180,6:720,X:90;ID=...< // 90 s without valid RPM dataThe X index only appears in CAN histograms. The speed histogram uses GPS as fallback and doesn’t show X. Available from firmware v1.09.17.
Histogram Reports (R2-R9, R11-R12)
Reports R2-R9 and R11-R12 are equivalent to histogram commands but include trip_id:
| Command | Equivalent | Format |
|---|---|---|
| QTPR2 | PSPD | Speed PCT |
| QTPR3 | RSPD | Speed RAW |
| QTPR4 | PRPM | RPM PCT |
| QTPR5 | RRPM | RPM RAW |
| QTPR6 | PACC | Throttle PCT |
| QTPR7 | RACC | Throttle RAW |
| QTPR8 | PTBO | Turbo PCT |
| QTPR9 | RTBO | Turbo RAW |
| QTPR11 | PTMP | Engine Temperature PCT |
| QTPR12 | RTMP | Engine Temperature RAW |
RAW formats may be truncated with ”…” if the trip is very long and all ranges have data.
Response Visualizer
Paste a device response to visualize it as a chart: