Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

12 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

19,442 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to the last Honda torque mod you'll ever need

Come join us on Discord!

Overview

This fork supports the Proper Torque Mod (PTM) available for select Honda platforms.

Check your car's torque-mod status and files. The sheet is the source of truth for supported cars, rack firmware, and the file intended for each EPS.

PTM combines modified EPS firmware with software that knows how that firmware behaves. The firmware and the software tune are a pair: using one without the other can produce the wrong steering response.

Getting started

Flashing an EPS writes a real steering ECU. Confirm the exact car, rack, and firmware in the status sheet; keep the vehicle on stable power; do not interrupt a flash; and ask in Discord before guessing. A wrong or interrupted flash can leave the EPS unusable.

  1. Check the status sheet for your exact car and EPS firmware.
  2. Factory-reset the device before changing branches. This is required when moving between NRDR, clean, bare, or another fork.
  3. From the openpilot root, run python3 flash.py, choose the latest PTM firmware listed for your exact rack, and follow every prompt. Read the EPS flashing guide before starting.
  4. Install the branch that matches how much experimentation you want.
  5. Start with the branch defaults. Change one setting at a time and keep notes.

These branches are tuned for the current PTM firmware. Legacy 2X and other older torque mods have a different, non-linear response and are not the tuning target.

What works

Validated PTM files are designed to provide more usable steering authority than the older legacy torque-mod files. The fork adds a static Honda PID base, rack-aware steering geometry, steering filters, driver-override handling, and optional vehicle-specific tuning tools.

On the seven PTM Honda platform fingerprints in the current code, the base is static at every speed: kp = 0.03, ki = 0.01, and kf = 0.000012. Optional Low, Standard, and Highway P/I/F controls scale that base; 100% means no change.

This is research software, not a safety certification and not a self-driving system. The driver must supervise it at all times.

What doesn't yet

Some steering racks can develop stutter: a low-frequency feedback loop that may make noise or rock the wheel back and forth like a ratchet. Stutter is usually more of a control-quality problem than an EPS-hardware problem, but it can push the torque sensor past the driver-override threshold. NRDR may then mistake it for you taking the wheel and instantly drop NRDR's steering assist torque—even mid-turn.

If this happens, take over and disengage safely. Once parked, go to Settings → nrdr → Lateral Tuning → Override Tuning and raise Driver Override Threshold one 100-point step at a time; use the lowest value that stops false overrides. For drops near center, raise Override Threshold Center Boost too, or set it equal to the main threshold so the lower near-center threshold is not used. The normal editable defaults are 1400 for the main threshold and 1000 near center. Both controls run from 100 to 5000, and 1200 represents the car's stock threshold even when its raw sensor value is different.

The handcrafted profile never locks or restores these controls; after applying it, you can immediately adjust either threshold by hand. Do not max either control: higher thresholds make NRDR slower to yield to real driver input. This is only a false-detection workaround, not a cure. If stutter is strong, repeatable, or affects control, stop testing that firmware, return to a known-good configuration, and report the exact rack/firmware plus logs in Discord.

Many Hondas also have a non-linear variable steering ratio inside the rack. A single wrong ratio can make the car track too far inside or outside a curve even when higher P/I/F gains do not help. NRDR now makes the geometry source an explicit choice; the driving model can never silently replace it.

Branches to install

You MUST factory-reset before switching branches. Development branches are source/QC lanes, not promised end-user releases.

  • nrdr-clean — compliance build intended to retain the rules needed for standing with comma and its services. Uses connect.comma.ai.
  • nrdr-nightly — newest precompiled NRDR build. Experimental or incomplete safety-related work may be present. Use at your own risk. Uses stable.konik.ai.
  • nrdr-staging-<DATE> — precompiled snapshot cut from development, normally named nrdr-staging-MM.DD.YYYY. Use one to pin a known-good build or identify when a regression appeared. Uses stable.konik.ai.

Bare branches

  • nrdr-bare — stock openpilot plus the hardcoded PTM tune and the minimal dynamic steer-ratio/controller integration needed for it. It omits the larger NRDR feature set. Uses connect.comma.ai.
  • nrdr-bare-only-tune — stock openpilot with only the hardcoded PTM tuning dependency. It lacks dynamic steer-ratio tuning and the wider lateral enhancements, so it may not track as well on non-linear racks, but it is the smallest and most upstreamable branch. Uses connect.comma.ai.
Source and QC branches
  • nrdr-architecture-development isolates NRDR-owned code under openpilot/nrdr for review and future integration.
  • nrdr-development-new carries the same active behavior in the older layout while the architecture rewrite is validated.
  • nrdr-development remains the existing development branch during that transition.

Settings in plain English

Settings appear only when they apply to the detected car and hardware. A control may be gray because the car is engaged, another steer-ratio mode is selected, or an exact data source is unavailable. Applying a handcrafted profile does not lock anything. Start from defaults, change one thing at a time, and never use a slider to hide a firmware mismatch.

Handcrafted lateral profile and vehicle learning
  • Apply Handcrafted Lateral Profile is an opt-in, one-shot action, not a mode. The v18 preset comes from the saved September 12, 2026 Civic tune and applies only settings supported by the detected car and controller. Common lane-centering and live-delay settings are available across supported cars; Honda-specific controller, filter, override, and interpolated torque/P-I-F groups apply only where compatible. Steer ratio, vehicle-learning choices, and stored calibration are preserved. A fresh request is bound to the vehicle and preset version; old pending requests cannot silently apply the expanded preset. Values are written and verified before the request turns OFF. Existing customizations are not automatically overwritten, and later manual edits survive reports, restarts, and future drives until you deliberately press Apply again. The source tune was recorded on a Civic; it is not a claim of validation on every supported car.
  • Loaded Vehicle & Tune shows the detected fingerprint, EPS firmware, controller, geometry, and the actual gains in use. Check this before assuming a setting loaded.
  • Learned Steer Ratio remains here as a read-only diagnostic. Choose whether to use it inside Controller Tuning Dungeon → Steer Ratio Tuning.
  • Learn Tire Stiffness (Auto) lets openpilot learn how strongly the tires respond. OFF pins the factor to 1.0.
  • Learn Angle Offset (Auto) learns which sensor angle means straight ahead. Turn it OFF temporarily if a bad learned offset is pulling the car sideways.
  • Run Tune Report Scan reads saved drive logs and summarizes tracking by speed. It is a diagnosis helper, not an automatic permission to change gains.
Controller Tuning Dungeon
  • Interpolated Torque/PIF Blend is an experimental modified-EPS Honda option. OFF keeps today's controller unchanged. ON mixes two complete steering controllers: the older torque controller and today's P/I/F controller. Torque Share shows both sides together, such as Torque 60% / P/I/F 40%; they always total 100%.
    • P/I/F keeps using steering-wheel angle feedback. The torque side uses the generic f13de17 yaw-feedback branch: steering angle through 2 m/s, an exact angle-to-calibrated-yaw transition from 2–5 m/s, and calibrated yaw response at 5 m/s and above. This historical generic branch was not road-proven on Honda. If required yaw is unavailable, invalid, stale, or non-finite, the torque side does not reuse angle or update its controller state; the final request temporarily returns to 100% P/I/F.
    • Spoofed Lateral Acceleration Factor tells the torque side how many m/s² count as full steering torque. Higher values make that side ask for less torque for the same curve. It scales the torque side's feedback error and non-friction feedforward, but never its direct friction term.
    • Low-Speed / Standard-Speed / Highway Torque Friction set direct normalized torque below 25 mph, from 25-50 mph, and above 50 mph. Fresh defaults are 0.12 / 0.10 / 0.06. The controller crossfades smoothly over 24-26 mph and 49-51 mph instead of stepping at a boundary. These values are independent of the lateral-acceleration factor, so high values can reach the steering limit quickly.
    • These six settings can be saved while driving and are held as one snapshot for the entire engagement. Edits made while engaged apply together after the next disengage and re-engage. If already disengaged, wait up to 10 seconds for settings to sync before engaging. Existing single-friction tunes are still copied into missing bands during upgrade, preserving their behavior until a band is deliberately changed. The legacy torque state resets when you disengage. NNLC is a separate controller; on the Clarity, this mode bypasses and resets it so a hidden third controller cannot change the selected percentages.
  • P / I / F scales are split into Low (below 25 mph), Standard (25–50 mph), and Highway (50 mph and above). P reacts now, I corrects an error that will not go away, and F prepares for the curve the model already requested. 100% keeps the tuned base.
  • Steer Ratio Tuning has four mutually exclusive modes:
    • Manual is represented by all three switches being OFF. On supported Hondas it blends the global On-Center and Final values (15.38 and 10.93 defaults) using hidden car-specific outer-angle information. On every other car the sliders stay disabled and the stock ratio remains untouched.
    • Use Comma Steer Ratio Learner uses Comma's valid live learned ratio as one number at every steering angle. It uses the car's stock ratio until the first valid sample, then holds the last valid value through brief message dropouts so geometry cannot jump mid-turn.
    • Use nrdr Steer Ratio Learner uses NRDR's fixed curve made from real steering-angle logs. Despite the historical name, it does not keep learning while you drive. It is currently available only for the exact Honda Clarity fingerprint.
    • Use Firmware Steer Ratio follows the curve read from an exactly recognized steering-rack firmware and keeps the car's stock straight-ahead ratio as its starting point.
  • Selecting unsupported NRDR-raw or firmware mode does not borrow data from a related car. The whole controller uses the stock car ratio and reports the fallback. The mode and both manual endpoints can be saved while driving. Edits made while engaged apply together after the next disengage and re-engage; if already disengaged, wait up to 10 seconds for settings to sync before engaging. Geometry changes are latched so measured curvature and desired angle cannot switch separately mid-turn.

Developers and reviewers can find the exact raw-data provenance and math in the steer-ratio mode reference.

  • StarPilot PID Additions enables borrowed turn-in, unwind, and left/right scaling that was not built for Honda. Leave it OFF unless you are deliberately comparing it.
  • Rate Damping (D) Strength / Fade-Out Speed resists fast wheel movement to calm low-speed ringing, then fades away with speed. Too much makes steering heavy.
  • Center Boost / Threshold / Minimum Speed adds extra P correction only near center and only above the chosen speed. It does not multiply I, F, or damping.
  • Predictive Lateral Stiction tapers and holds torque as the wheel reaches a stable target, then releases immediately for driver input, lane changes, faults, or steering limits.
  • NNLC is the optional Clarity neural lateral controller. Activation speed chooses the PID-to-NNLC handoff; KP, KI, and KF scale its three terms. Lane changes remain on PID; explicit Firmware Steer Ratio mode or an active Interpolated Torque/PIF Blend disables NNLC.
Lane centering and the LCTR status

The C4's LCTR readout (shown as LANE CTR in the larger developer display) reports what the lane-centering correction is doing, not just whether its setting is enabled. Green ON means it is requesting a nonzero correction. The final steering limits still apply; this is not proof that the car is physically centered or that every requested correction reaches the steering rack.

Lane centering adds a bounded correction to the model's steering request. Even at 100% strength, it does not replace the model with an unrestricted lane-only planner. Confidence checks, correction limits, driver override, lane-change handling, and the selected Model Break-In setting still apply.

Status Meaning
ON Actively requesting a lane-centering correction; green.
CTR The computed lane-centering correction is effectively zero; this does not confirm the car is physically centered.
SPD Below the configured activation speed, or waiting to reach it again after slowing down.
TIME Timing inside the model's steering action is missing, invalid, or outside the supported timing range.
SHORT Not enough usable lane/model preview remains after the expected steering-action time.
CONF Lane-boundary confidence is insufficient.
GEOM Lane width or corridor geometry failed validation.
DATA Required lane/path data is missing or malformed.
E2E Model Break-In is yielding fully to the model's path.
OVR Suspended because the driver is overriding steering.
LCHG Suspended for a lane change.
SIG Fading the correction out because a turn signal is active and Fade on Turn Signal is enabled.
LAT Lateral control is inactive.
OFF The lane-centering setting is disabled; gray.
ZERO Lane-centering strength is zero: model-only steering.
MOD The model input is not valid for lane centering.
BAD A required input or setting is invalid.
-- Status is unavailable, stale, invalid, or unrecognized.

OVR, LCHG, and SIG are amber; the remaining inactive statuses are white except gray OFF. Some transitions fade an existing correction toward zero, so leaving green ON does not always mean the residual correction vanishes instantly. Only the first applicable reason is displayed: for example, speeding up can change SPD to TIME without introducing a new timing problem.

TIME does not itself block or disengage openpilot. It fades out only the lane-centering correction and leaves the model-based steering path available. Timing now travels inside the model's steering action, so lane centering does not depend on receiving or matching a separate timing message. No additional timing setting is required. The controller looks farther ahead as delay increases and requires enough actual lane/model coverage for that preview; it never invents missing road geometry. The current development range extends through 0.875 seconds of total model-action timing, including model smoothing and timing offsets—not just EPS delay. This includes the recorded approximately 0.545-second combination, but numerical tests are not proof of on-road steering quality. Older model publishers without the new action field remain unavailable instead of guessing a delay. See the integration changes and validation limits.

Driver override and steering filters
  • Driver Override Threshold decides how much driver torque means “the human is steering.” Override Threshold Center Boost can use a lower value near center. Raising either value delays the handoff to the driver.
  • Increase Driver Override Hysteresis makes brief torque spikes less likely to cause a false handoff.
  • Pass-through assist torque on override, Fade Down, Fade Up, and Torque Retain control how assist leaves and returns when you take the wheel. These directly affect driver handoff; adjust cautiously.
  • Low Pass Filter (tau) smooths fast steering commands. Its three speed-band tau values trade chatter for delay: larger is smoother but laggier.
  • Legacy Steer Delta Rate Limiter / Delta Up / Delta Down caps how quickly torque may change. It is an older alternative; values that are too restrictive add lag.
Longitudinal tuning
  • Live Learning Gas learns gas response and wind compensation. While it is ON, the four personality PID scales stay at 100%.
  • Reset Live Learning Gas clears the Honda gas and wind learning stored on this device. If you move the device between Hondas, they share those values; there is no separate per-car profile to reset.
    • The reset clears six gas-response factors, six gas-learning confidence values (including legacy and speed-band values), wind compensation, and the metadata used to validate the saved values. Wind compensation returns to baseline, so braking may start at a different point on the next drive. The reset does not erase brake tuning or change the learning switch, PID scales, launch, speed, or lateral tuning.
    • Park the confirmed Honda and turn the ignition off. Use Device on C4, nrdr → Longitudinal Tuning on C3X, or Steering → nrdr → Longitudinal Tuning on Sunnylink. On Sunnylink, wait for the switch to turn back off and check Live Gas Reset Status for the outcome.
  • Distance 1–4 PID Scales change feedback for Aggressive, Standard, Relaxed, and Econ. They apply only with a gas-pedal interceptor and Live Learning Gas OFF.
  • Keep Feedforward Static lets a personality scale change P and I without multiplying the tuned feedforward.
  • Nidec ECU-Matched Long, Full Nidec Brake Authority, and Roen Nidec Acceleration Limits change Nidec gas/brake shaping and authority. They are vehicle-specific; do not copy another car's result blindly.
  • Honda Bosch-A Radar is experimental. With Alpha Long, its reverse-engineered tracks feed braking and acceleration decisions, while factory Honda AEB/CMBS is unavailable. Disable it if objects look wrong.
  • Set-Speed Overshoot Allowance permits a small target above the selected speed. Cruise Mismatch Correction fixes a repeatable displayed-versus-actual cruising error.
  • Stopping Decel Rate, Stop Accel, Planner Stopping Rate, and vEgo Stopping/Starting shape the final approach to zero and the move-off transition.
  • Honda Dashboard Variant B is currently a placeholder and has no effect.
Special, device, and remote tools
  • Injection Test multiplies lateral PID output by about ten. It is a stress test, not a driving mode; leave it OFF unless you understand the test and have a controlled environment.
  • Alternative Dashboard Speed/Distance repurposes cluster graphics for lead speed, device speed, radar distance, or acceleration. It requires openpilot longitudinal control.
  • Clear Dashboard Fault Codes hides selected camera/FCM indicators and suppresses the stock FCW chime; it does not repair a fault. Spoof Camera Messages is only for a dead or absent stock camera.
  • Cruise Button Sub-Mode / Visibility Time makes the first button press open a blinking preview; presses inside that window perform the change.
  • Show Footage / File Server creates local, offroad-only QR links to recorded drive files.
  • Re-register with konik is only for a Konik build that cannot come online after switching backends. Clean builds remove this action.
  • Prevent Automatic Shutdown bypasses normal offroad shutdown timing and can drain the vehicle battery. Manual Power Off still works.
  • Force Update requests the updater while the car is off. Remote Action Status reports progress.

Special thanks to

Disclaimer

Use only firmware confirmed for your exact EPS. Keep both hands ready, stay attentive, and obey local laws. You are responsible for the vehicle, the flash, and every setting you change.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

12 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages