phase 1-5

This commit is contained in:
Jason Wen
2026-03-11 15:19:36 -04:00
parent 2e82908c07
commit 27dfd5cbf0
51 changed files with 2535 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
---
title: Auto Lane Change
---
# Auto Lane Change
## What It Does
Automatically executes lane changes when you activate the turn signal. You can choose between nudge-based confirmation, nudgeless (immediate), or timed delays before the lane change begins.
## How It Works
1. Activate your turn signal in the desired direction
2. Depending on your setting:
- **Nudge:** Give a light steering nudge to confirm the lane change
- **Nudgeless:** The lane change begins immediately
- **Timed (0.5s3s):** The lane change begins after the configured delay
3. If BSM Delay is enabled and a vehicle is detected in your blind spot, the lane change waits until the path is clear
## Requirements
!!! info "Requirements"
- Lateral control must be active (sunnypilot must be engaged)
- Vehicle must be traveling above a minimum speed threshold
## How to Enable
**Settings****sunnypilot****Steering****Lane Change Settings**
## Modes
| Mode | Behavior |
|------|----------|
| **Off** | Auto lane change is disabled |
| **Nudge** | Requires a light steering nudge to confirm |
| **Nudgeless** | Lane change begins as soon as you signal |
| **0.5s 3s** | Lane change begins after a set delay |
## Blind Spot Monitoring Integration
If your vehicle supports BSM and the BSM Delay option is enabled, the system checks for vehicles in your blind spot before executing the lane change. The lane change is delayed until the adjacent lane is clear.
!!! info "BSM Requirements"
- Vehicle must support Blind Spot Monitoring
- Auto Lane Change Timer must be set beyond Nudge mode
## Settings Reference
See [Lane Change Settings](../settings/lane-change.md) for all options.
!!! warning "Safety"
Always check your mirrors and blind spots before initiating a lane change. The system assists but does not replace driver awareness.
+28
View File
@@ -0,0 +1,28 @@
---
title: Custom ACC Increments
---
# Custom ACC Increments
## What It Does
Customize the speed increments when you press the cruise control buttons. Instead of the default step sizes, set your own preferred values for both short and long button presses.
## How It Works
- **Short press:** Changes speed by your configured short press increment (110 km/h or mph)
- **Long press:** Changes speed by your configured long press increment (1, 5, or 10 km/h or mph)
## Requirements
!!! info "Requirements"
- Longitudinal control must be available, **or** [ICBM](icbm.md) must be enabled
- PCM Cruise must not be active (factory cruise control must not override)
## How to Enable
**Settings****sunnypilot****Cruise Control****Custom ACC Increments**
## Settings Reference
See [Cruise Control Settings](../settings/cruise.md) for all increment options.
@@ -0,0 +1,39 @@
---
title: Dynamic Experimental Control
---
# Dynamic Experimental Control (DEC)
## What It Does
DEC automatically switches between openpilot's standard and experimental driving modes based on real-time road conditions. Instead of manually toggling between modes, the system chooses the most appropriate mode for the current situation.
## How It Works
DEC monitors multiple driving signals and conditions:
- **Current speed** — Lower speeds suggest city driving
- **Turn detection** — Upcoming turns may need experimental mode
- **Stop signs and traffic lights** — Intersections benefit from experimental mode
- **Road type** — Highway vs. urban driving
Based on these signals, DEC switches between:
| Mode | Best For |
|------|----------|
| **Standard Mode** | Highway driving with steady speeds and clear lanes |
| **Experimental Mode** | City driving with stops, turns, and complex intersections |
## Requirements
!!! info "Requirements"
- Longitudinal control must be available
- Device must be offroad to enable/disable
## How to Enable
**Settings****sunnypilot****Cruise Control****Dynamic Experimental Control**
## Settings Reference
See [Cruise Control Settings](../settings/cruise.md) for configuration details.
+32
View File
@@ -0,0 +1,32 @@
---
title: HUD & Visuals
---
# HUD & Visuals
## What It Does
Customize the heads-up display (HUD) elements and visual overlays shown on the driving screen. Toggle individual elements on or off to create your preferred driving view.
## Available HUD Elements
| Element | Description |
|---------|-------------|
| **Blind Spot Indicator** | Visual warning when a vehicle is in your blind spot |
| **Torque Bar** | Shows current steering torque |
| **Standstill Timer** | Shows how long you've been stopped |
| **Road Name** | Displays the current road name |
| **Green Light Alert** | Alerts when a traffic light turns green |
| **Lead Depart Alert** | Alerts when the car ahead starts moving |
| **True Vehicle Speed** | CAN bus speed (may differ from GPS) |
| **Turn Signals** | Shows turn signal status on the HUD |
| **Chevron Info** | Distance, speed, or time gap to lead vehicle |
| **Developer UI** | Debug information for diagnostics |
## How to Configure
**Settings****sunnypilot****Visuals & HUD**
## Settings Reference
See [Visuals & HUD Settings](../settings/visuals.md) for all toggle options and multi-button selectors.
+43
View File
@@ -0,0 +1,43 @@
---
title: Intelligent Cruise Button Management
---
# Intelligent Cruise Button Management (ICBM)
## What It Does
ICBM allows sunnypilot to intercept and dynamically manage your vehicle's cruise control button presses. Instead of directly changing the set speed, button presses are routed through sunnypilot's logic, enabling features like Speed Limit Control and Smart Cruise Control on vehicles that don't natively support sunnypilot longitudinal control.
This is particularly useful for vehicles where sunnypilot cannot directly control the gas and brakes — ICBM gives you many of the same benefits by intelligently managing the cruise buttons.
## How It Works
1. You press the cruise speed button on your steering wheel
2. ICBM intercepts the button press
3. sunnypilot applies its logic (speed limits, map curves, etc.) to determine the appropriate speed change
4. The adjusted command is sent to the vehicle's cruise system
This happens transparently — from your perspective, the buttons work normally but with smarter behavior.
## Requirements
!!! info "Requirements"
- Your vehicle must support ICBM — not all vehicles are compatible
- If the ICBM toggle does not appear in settings, your vehicle is not supported
## How to Enable
**Settings****sunnypilot****Cruise Control****Intelligent Cruise Button Management**
## Features Unlocked by ICBM
When ICBM is enabled, the following features become available even on vehicles without native longitudinal control:
- **[Smart Cruise Control — Vision](scc-v.md)** — Vision-based adaptive speed adjustments
- **[Smart Cruise Control — Map](scc-m.md)** — Map-aware speed adjustments
- **[Custom ACC Increments](custom-acc-increments.md)** — Custom button press speed steps
- **[Speed Limit Control](speed-limit.md)** — Automatic speed limit matching
## Settings Reference
See [Cruise Control Settings](../settings/cruise.md) for all available options.
+60
View File
@@ -0,0 +1,60 @@
---
title: Modular Assistive Driving System
---
# Modular Assistive Driving System (MADS)
## What It Does
MADS decouples lateral (steering) and longitudinal (speed) controls. In standard openpilot, engaging cruise control activates both steering and speed control together, and disengaging turns both off. With MADS, steering assistance can remain active independently — even when cruise control is off.
This means you can have lane-keeping assistance while controlling the gas and brakes yourself.
## How It Works
With MADS enabled:
- **Steering stays active** even when you cancel cruise control
- You can engage steering assistance independently of cruise
- You choose what happens to steering when cruise disengages (remain active, pause, or fully disengage)
- You can configure whether the main cruise button also activates steering
## Requirements
!!! info "Requirements"
- Supported on most vehicles with sunnypilot lateral control
## How to Enable
**Settings****sunnypilot****Steering** → enable **M.A.D.S.**
Then configure the sub-settings in **MADS Settings**.
## Key Settings
| Setting | What It Controls |
|---------|-----------------|
| **Main Cruise Allowed** | Whether the cruise on/off button can activate MADS |
| **Unified Engagement Mode** | Whether engaging cruise also engages MADS automatically |
| **Steering Mode on Disengage** | What happens to steering when cruise disengages |
## Vehicle-Specific Behavior
Some vehicles operate in **limited MADS mode** where certain settings are locked:
=== "Tesla (without vehicle bus)"
- Main Cruise Allowed: forced OFF
- Unified Engagement Mode: forced ON
- Steering Mode: forced to Disengage
=== "Rivian"
- Main Cruise Allowed: forced OFF
- Unified Engagement Mode: forced ON
- Steering Mode: forced to Disengage
## Settings Reference
See [MADS Settings](../settings/mads.md) for all configuration options.
!!! warning "Safety"
Always be ready to take full manual control. MADS allows more flexible use of driver assistance, but you remain responsible for safe driving at all times.
+30
View File
@@ -0,0 +1,30 @@
---
title: Models & AI
---
# Models & AI
## What It Does
Select and configure the driving model used by sunnypilot. Different models offer different driving characteristics — some may be smoother, others more responsive. Advanced parameters let you fine-tune model behavior.
## Key Features
- **Model Selection** — Choose from available driving models (offroad only)
- **Lane Turn Desire** — Enhance lane positioning during turns
- **LAGD (Look-Ahead Generative Driving)** — Anticipate road conditions ahead using generative AI
## Advanced Parameters
Advanced parameters are only visible when **Show Advanced Controls** is enabled in [Developer Settings](../settings/developer.md):
- **Lane Turn Value** — Intensity of lane turn desire (5002000)
- **LAGD Delay** — Look-ahead distance configuration (550)
## How to Configure
**Settings****sunnypilot****Models & AI**
## Settings Reference
See [Models & AI Settings](../settings/models.md) for all configuration options.
+41
View File
@@ -0,0 +1,41 @@
---
title: Neural Network Lateral Control
---
# Neural Network Lateral Control (NNLC)
## What It Does
NNLC replaces the traditional PID or torque-based steering controller with a neural network trained on real driving data. This can provide smoother, more natural-feeling lane keeping that adapts to your vehicle's steering characteristics.
## How It Works
Instead of using fixed mathematical formulas (PID controller), NNLC uses a machine learning model to calculate steering commands. The neural network has been trained on real-world driving data and can handle a wider variety of driving scenarios with smoother output.
## Requirements
!!! info "Requirements"
- Vehicle must not use angle-based steering (`steerControlType` must not be `angle`)
- Mutually exclusive with [Torque Control](torque-control.md) — only one can be active at a time
- Device must be offroad to enable/disable
## How to Enable
**Settings****sunnypilot****Steering****Neural Network Lateral Control**
!!! tip
Not all vehicles have NNLC models available. If the toggle does not appear, your vehicle may use angle-based steering which is not compatible with NNLC.
## NNLC vs. Torque Control
| Feature | NNLC | Torque Control |
|---------|------|---------------|
| **Approach** | Neural network (learned) | Mathematical formula (tuned) |
| **Customization** | Automatic | Manual tuning available |
| **Best for** | Smooth, adaptive steering | Precise, configurable steering |
These two features are mutually exclusive — enabling one automatically disables the other.
## Settings Reference
See [Steering Settings](../settings/steering.md) for configuration details.
+23
View File
@@ -0,0 +1,23 @@
---
title: Onroad Display
---
# Onroad Display
## What It Does
Control the screen brightness, timeout behavior, and touch interactivity while driving. These settings help reduce distraction and manage power consumption.
## Key Features
- **Screen brightness control** — Choose from Auto, Auto Dark, Screen Off, or a fixed percentage (5%100%)
- **Brightness delay** — Set how long the screen stays bright before dimming
- **Interactivity timeout** — Make the screen non-interactive after a set period to prevent accidental touches
## How to Configure
**Settings****sunnypilot****Display**
## Settings Reference
See [Display Settings](../settings/display.md) for all configuration options.
+45
View File
@@ -0,0 +1,45 @@
---
title: OSM Maps
---
# OSM Maps
## What It Does
Integrates OpenStreetMap (OSM) data to provide speed limit information, road geometry, and other map attributes. This data powers features like Speed Limit Control and Smart Cruise Control — Map.
## How It Works
1. Select your country (and state, if in the US)
2. Download the map data to your device
3. The map daemon processes the data and makes it available to driving features
4. Periodically check for updates to keep your map data current
## Requirements
!!! info "Requirements"
- Internet connection for initial download and updates
- Storage space on the device for map data
## How to Set Up
**Settings****sunnypilot****OSM Maps**
1. Select your **Country**
2. If in the US, select your **State**
3. Tap **Database Update** to download
4. Wait for the download to complete
## Features That Use OSM Data
- **[Speed Limit Control](speed-limit.md)** — Reads speed limits from map data
- **[Smart Cruise Control — Map](scc-m.md)** — Uses road geometry for proactive speed adjustment
## Managing Map Data
- **Update:** Tap "Database Update" to check for newer map data
- **Delete:** Tap "Delete Maps" to remove downloaded data and free storage
## Settings Reference
See [OSM Maps Settings](../settings/osm.md) for all options and status information.
+30
View File
@@ -0,0 +1,30 @@
---
title: Smart Cruise Control - Map
---
# Smart Cruise Control — Map (SCC-M)
## What It Does
SCC-M uses downloaded OpenStreetMap data to anticipate road changes — curves, speed limits, and intersections — and adjusts cruise speed proactively through [ICBM](icbm.md).
## How It Works
1. OSM map data provides information about upcoming road geometry
2. SCC-M calculates appropriate speeds for curves, speed zones, and intersections
3. Speed commands are sent through ICBM to adjust cruise before reaching these road features
## Requirements
!!! info "Requirements"
- [ICBM](icbm.md) must be enabled
- Vehicle must support ICBM
- [OSM Maps](osm-maps.md) must be configured and downloaded
## How to Enable
**Settings****sunnypilot****Cruise Control****Smart Cruise Control — Map**
## Settings Reference
See [Cruise Control Settings](../settings/cruise.md) for configuration details.
+28
View File
@@ -0,0 +1,28 @@
---
title: Smart Cruise Control - Vision
---
# Smart Cruise Control — Vision (SCC-V)
## What It Does
SCC-V uses the device's camera to detect lead vehicles and make smarter cruise control decisions. It provides vision-based adaptive speed adjustments for vehicles that rely on ICBM for cruise management.
## How It Works
The camera continuously monitors the road ahead. When a lead vehicle is detected, SCC-V adjusts cruise speed commands through [ICBM](icbm.md) to maintain safe following distances and react to speed changes of the vehicle ahead.
## Requirements
!!! info "Requirements"
- [ICBM](icbm.md) must be enabled
- Vehicle must support ICBM
- Camera must have a clear view of the road ahead
## How to Enable
**Settings****sunnypilot****Cruise Control****Smart Cruise Control — Vision**
## Settings Reference
See [Cruise Control Settings](../settings/cruise.md) for configuration details.
+51
View File
@@ -0,0 +1,51 @@
---
title: Speed Limit Control
---
# Speed Limit Control
## What It Does
Speed Limit Control detects the current speed limit using map data and can automatically adjust your cruise speed to match. It offers four operating modes ranging from passive information display to active speed management.
## How It Works
1. sunnypilot reads speed limit data from downloaded OSM maps
2. Based on your chosen mode, it displays, warns, or actively adjusts your set speed
3. An optional offset (fixed or percentage) lets you cruise slightly above or below the limit
## Requirements
!!! info "Requirements"
- Longitudinal control must be available, **or** [ICBM](icbm.md) must be enabled
- For map-based limits: [OSM Maps](osm-maps.md) must be configured and downloaded
## How to Enable
**Settings****sunnypilot****Cruise Control****Speed Limit Control**
## Operating Modes
| Mode | Behavior |
|------|----------|
| **Off** | Speed limit data is not used |
| **Info** | Shows the current speed limit on the driving display |
| **Warning** | Shows the speed limit and alerts you when you're exceeding it |
| **Assist** | Automatically adjusts cruise speed to match the speed limit |
## Speed Offset
You can set an offset so your cruise speed differs from the exact limit:
- **Fixed offset:** Add or subtract a set number of km/h or mph (range: -30 to +30)
- **Percentage offset:** Apply a percentage above or below the limit
## Vehicle Restrictions
!!! warning "Vehicle Restrictions"
- **Tesla:** Assist mode is disabled on release branches (Info and Warning still work)
- **Rivian:** Assist mode is always disabled
## Settings Reference
See [Speed Limit Settings](../settings/speed-limit.md) for all configuration options.
+48
View File
@@ -0,0 +1,48 @@
---
title: Torque Control
---
# Torque Control
## What It Does
Torque Control lets you fine-tune how aggressively or gently sunnypilot steers your vehicle. It provides advanced parameters for lateral acceleration, friction compensation, and self-tuning options.
## How It Works
Torque-based lateral control applies steering commands as torque (rotational force) to the steering motor. The key parameters are:
- **Lateral Acceleration Factor** — How strongly the system turns the wheel (higher = more aggressive)
- **Friction** — How much the system compensates for steering resistance
- **Self-Tune** — Automatically adjusts these values based on your driving
## Requirements
!!! info "Requirements"
- Vehicle must not use angle-based steering
- **Enforce Torque Control** must be enabled in [Steering Settings](../settings/steering.md)
- Mutually exclusive with [NNLC](nnlc.md) — only one can be active at a time
- Device must be offroad to change settings
## How to Enable
1. Go to **Settings****sunnypilot****Steering**
2. Enable **Enforce Torque Control**
3. Open the **Torque Settings** sub-panel to fine-tune
## Tuning Options
| Option | Description |
|--------|-------------|
| **Self-Tune** | Automatic real-time parameter adjustment |
| **Relaxed Self-Tune** | Less aggressive auto-tuning for smoother feel |
| **Custom Tune** | Manual parameter override |
| **Lat Accel Factor** | 0.015.00 (steering aggressiveness) |
| **Friction** | 0.011.00 (friction compensation) |
!!! tip
Start with Self-Tune enabled. Only switch to Custom Tune if you want precise control over steering feel and are willing to experiment.
## Settings Reference
See [Torque Settings](../settings/torque.md) for all tuning parameters.