Add LR4 commands - #5
Open
mwvolo wants to merge 63 commits into
Open
Conversation
Member
|
Heya! Was following along; did you need some help getting this one over the finish line? |
Author
|
Ha! Figured I was making a lot of noise, but I'll reopen for you to follow along! I am pretty excited by how much I've uncovered so far--big trip coming up and excited to use it! |
Tier 1 (7E0/7E8 1172/1670/168E/16C1) verified identical in Land-Rover-Defender, Land-Rover and Jaguar signalsets. 732.22D928 already responds per command_support.yaml. 751 retried with rax 759; 710 untried on this truck.
…obes Road test and 12.7M-row scan log agree: 1172/1670/168E/16C1 return NRC 0x31, 751 and 710 return NO DATA. Jaguar's D928 gear/parked layout is wrong here - the byte only ever holds 0-3. 220520 confirmed as charge air temp over 70,073 samples (raw-40 C). Remaining additions are DIDs the log shows answering but never decoded; shipped raw for road calibration.
D928 confirmed on the road: 0 Park, 1 Reverse, 2 Neutral, 3 Drive, 7 Sport. 033E reads 4000-12000 and tracks demand rather than rpm, which is the DI rail-pressure curve; naming it pending the key-off/crank check.
Old version used hdr 7DF; broadcast lets any ECU answer and the adapter picks inconsistently. Scan log shows 012F answered only by 7E8, 235734 good responses at 97.8 percent, steady values.
The app owns service-01 PIDs natively, so a signalset entry for 012F never surfaces. The F4xx alias block answers on this truck (F41F, F421, F430, F431, F40D all decode as their 01xx twins), so the same data arrives as custom DIDs instead. F42F is fuel level.
Every ECU-path raw probe returns NRC on the poll loop, so they only cost bus time. Adds coolant temp, rpm, speed and battery voltage via the F4xx aliases and tags the metric slots.
Scan log shows 223B03-223B07 requested at hdr 710 coming back from 7DB with plausible corner pressures near 40 psi. Without an explicit rax the adapter filtered the response out, which is why this looked dead.
Tonight's log shows 223B0x at hdr 710 returning NO DATA on every attempt. The 7DB frames carrying 623B03-623B07 are stray broadcasts captured during adapter desync, not replies to 710, so the request address was never established. 7D3 is the UDS convention for a responder at 7DB.
22DD01 answers at 7E8 and 7E9 and advanced 845 counts over 35 days, which reads as kilometers. D11A tracked battery voltage at 0.16V per count. Drops the 751 TPMS commands after 458 NO DATA per corner.
…d addressing for TPMS Reviewed Toyota-Tacoma, Jeep-Grand-Cherokee and Land-Rover-Defender. Both larger repos reach their tire modules through addressing this truck has never been asked with: Tacoma via ISO-TP extended address (eax/tst/fcm1), Jeep via a 29-bit header. Adds the eax variant here. nullmin follows their convention so an absent sensor reads as no data instead of zero.
Covers each module and signal, the pairs that read differently together (boost from MAP minus baro, heat-limited power, fueling health, sensor cross-checks), what is still undecoded, and terminal safety.
The schema supports synthetics with a ratio operation, so pairs that should hold a fixed value become single displayable numbers. Six of the eight read 1.0 when healthy. Subtraction is not available, so gauge boost stays a manual calculation and the pressure ratio carries it instead.
The Jaguar EAS block matched this module on the corner pressures, so its height and drive-mode DIDs are retried here at the correct header. Documents reading altitude from barometric pressure and what each signal does on sustained grades and on the trail.
Barometric ran 65-76 kPa on that trip, near 10,000 ft for most of it. Long term fuel trim tracks altitude across 76,000 samples, rising from +8.6% near sea level to +14.8% at 10,900 ft. The low-altitude baseline is itself above the healthy band.
Morning test: odometer reads 105,506 mi against the dash, ride height front and rear move with the suspension, module voltage tracks the battery at 14.6 V, and both balance ratios compute. 22F45E, the eax TPMS probe and nine block-sweep DIDs came back rejected or silent. Four more answered a single byte where the definition asked for two.
A spare does not rotate, so a low-spare warning cannot come from wheel-speed inference. Direct sensors are fitted and report somewhere. Probes the tire-pressure DID at the six modules that answer but have never been mined. Height sensors read inverted, confirmed by raising the truck: 115/115 normal, 93/101 raised. Mode 1 normal, 2 raised.
It answers two bytes, not one. Sits near 110 at rest and jumps past 1300 for the duration of a raise, tracking the height sensors as they move. Drops the six TPMS locator probes: every module answered 7F 22 31, so they are reachable but do not hold that DID. Raises trim polling, which only produced 71 samples over two days.
The schema has no logarithmic operator and synthetics only divide, so the barometric-to-altitude curve is baked in as a map from each kPa value to feet. Kept on its own command because the formatter rejects two signals reading the same bits, and LR4_BARO still feeds the boost ratio. 3B01 answers four data bytes.
Pelican documents freq as the maximum interval in seconds, so a smaller number polls harder. The odometer was set to 0.2, the tightest ceiling in the file on the least urgent signal. Fast values now every half second, temperatures every five, odometer every five minutes, undecoded probes every minute. 0134 returns four bytes and only two were read; the second pair is the sensor voltage. 3B02 answers four single-byte values that look like one per corner.
The formatter drops a second command sharing a header and cmd, so the separate altitude command disappeared at format time and the commit landed as an unrelated one-line change. Both signals now sit on the barometric command. The formatter warns that they overlap, which is true and intended: one presents the byte as kilopascals for the boost ratio, the other as a lookup into feet. Schema validation, which is what CI enforces, passes.
Thirteen DIDs returned a positive response on every read and the identical value every time, across the whole log. They are configuration or identity values, not sensors. The six that do vary stay and now get looked at twice as often. 2A36 is worth watching: it advanced 602 while the odometer advanced 722 km, so it counts distance on some condition.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partially working on 2016 LR4
Adds (additional to core - confirmed working):
LANDROVER_PARKED(yes/no, reversed on main LR repo)LANDROVER_ENGINE_LOAD(0-100%)LANDROVER_IAT- Intake Air Temp (ºC)LANDROVER_MAF- Mass Air Flow (g/Sec)LANDROVER_ENGINE_OIL_TEMP(ªC)LANDROVER_BOOST(1-5)Other commands are [WIP]