mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-06-08 20:44:21 +08:00
Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bae722215 | ||
|
|
32bbcfa975 | ||
|
|
738b361a25 | ||
|
|
b61ccf2bee | ||
|
|
c8d543a8fe | ||
|
|
801c107aa1 | ||
|
|
7e79d5424f | ||
|
|
6dde8560fe | ||
|
|
2655a2e138 | ||
|
|
06cc8af9bf | ||
|
|
c918e5bbdc | ||
|
|
922ad64d13 | ||
|
|
31b3776150 | ||
|
|
1e5ad42e7a | ||
|
|
58c72df0be | ||
|
|
b2667cac32 | ||
|
|
fd07e80c34 | ||
|
|
bf628bd042 | ||
|
|
5043f5e7a4 | ||
|
|
83a84ba4bc | ||
|
|
7d225a1e33 | ||
|
|
450d5a4458 | ||
|
|
d06a404bd9 | ||
|
|
27dfd5cbf0 |
@@ -34,10 +34,10 @@ jobs:
|
||||
echo "tinygrad_ref=$ref" >> $GITHUB_OUTPUT
|
||||
echo "tinygrad_ref is $ref"
|
||||
|
||||
- name: Checkout docs repo (sunnypilot-models, gh-pages)
|
||||
- name: Checkout docs repo (sunnypilot-docs, gh-pages)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: sunnypilot/sunnypilot-models
|
||||
repository: sunnypilot/sunnypilot-docs
|
||||
ref: gh-pages
|
||||
path: docs
|
||||
ssh-key: ${{ secrets.CI_SUNNYPILOT_DOCS_PRIVATE_KEY }}
|
||||
@@ -202,7 +202,7 @@ jobs:
|
||||
- name: Checkout docs repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: sunnypilot/sunnypilot-models
|
||||
repository: sunnypilot/sunnypilot-docs
|
||||
ref: gh-pages
|
||||
path: docs
|
||||
ssh-key: ${{ secrets.CI_SUNNYPILOT_DOCS_PRIVATE_KEY }}
|
||||
|
||||
@@ -119,7 +119,7 @@ jobs:
|
||||
- name: Checkout docs repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: sunnypilot/sunnypilot-models
|
||||
repository: sunnypilot/sunnypilot-docs
|
||||
ref: gh-pages
|
||||
path: docs
|
||||
ssh-key: ${{ secrets.CI_SUNNYPILOT_DOCS_PRIVATE_KEY }}
|
||||
|
||||
45
.github/workflows/diff_report.yaml
vendored
45
.github/workflows/diff_report.yaml
vendored
@@ -1,45 +0,0 @@
|
||||
name: diff report
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
name: comment
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
actions: read
|
||||
steps:
|
||||
- name: Wait for process replay
|
||||
id: wait
|
||||
continue-on-error: true
|
||||
uses: lewagon/wait-on-check-action@v1.3.4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
check-name: process replay
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
allowed-conclusions: success,failure
|
||||
wait-interval: 20
|
||||
- name: Download diff
|
||||
if: steps.wait.outcome == 'success'
|
||||
uses: dawidd6/action-download-artifact@v6
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
workflow: tests.yaml
|
||||
workflow_conclusion: ''
|
||||
pr: ${{ github.event.number }}
|
||||
name: diff_report_${{ github.event.number }}
|
||||
path: .
|
||||
allow_forks: true
|
||||
- name: Comment on PR
|
||||
if: steps.wait.outcome == 'success'
|
||||
uses: thollander/actions-comment-pull-request@v2
|
||||
with:
|
||||
filePath: diff_report.txt
|
||||
comment_tag: diff_report
|
||||
pr_number: ${{ github.event.number }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
66
.github/workflows/docs-sp.yaml
vendored
Normal file
66
.github/workflows/docs-sp.yaml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: sunnypilot docs
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- docs
|
||||
paths:
|
||||
- 'docs_sp/**'
|
||||
- 'zensical.toml'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'docs_sp/**'
|
||||
- 'zensical.toml'
|
||||
|
||||
concurrency:
|
||||
group: docs-sp-${{ github.event_name == 'push' && github.ref == 'refs/heads/docs' && github.run_id || github.head_ref || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build sunnypilot docs
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install uv
|
||||
uv pip install --system zensical
|
||||
|
||||
- name: Build docs
|
||||
run: zensical build
|
||||
|
||||
# Push to docs.sunnypilot.ai
|
||||
- uses: actions/checkout@v6
|
||||
if: github.ref == 'refs/heads/docs' && github.repository == 'sunnypilot/sunnypilot'
|
||||
with:
|
||||
path: sunnypilot-docs
|
||||
ssh-key: ${{ secrets.OPENPILOT_DOCS_KEY }}
|
||||
repository: sunnypilot/sunnypilot-docs
|
||||
|
||||
- name: Push to GitHub Pages
|
||||
if: github.ref == 'refs/heads/docs' && github.repository == 'sunnypilot/sunnypilot'
|
||||
run: |
|
||||
set -x
|
||||
|
||||
source release/identity.sh
|
||||
|
||||
cd sunnypilot-docs
|
||||
git checkout --orphan tmp
|
||||
git rm -rf .
|
||||
|
||||
cp -r ../docs_site_sp/ docs/
|
||||
|
||||
touch docs/.nojekyll
|
||||
echo -n docs.sunnypilot.ai > docs/CNAME
|
||||
|
||||
git add -f .
|
||||
git commit -m "build sunnypilot docs"
|
||||
|
||||
git push -f origin tmp:gh-pages
|
||||
47
.github/workflows/forum-docs.yaml
vendored
Normal file
47
.github/workflows/forum-docs.yaml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Sync docs to Discourse
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["sunnypilot docs"]
|
||||
types:
|
||||
- completed
|
||||
branches:
|
||||
- docs
|
||||
|
||||
concurrency:
|
||||
group: forum-docs-sync
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
name: sync docs to Discourse
|
||||
runs-on: ubuntu-24.04
|
||||
if: >
|
||||
github.event.workflow_run.conclusion == 'success' &&
|
||||
github.repository == 'sunnypilot/sunnypilot'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: docs
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.3'
|
||||
|
||||
- name: Restore sync cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: .discourse_sync_cache
|
||||
key: discourse-sync-${{ hashFiles('docs_sp/**/*.md') }}
|
||||
restore-keys: |
|
||||
discourse-sync-
|
||||
|
||||
- name: Sync to Discourse
|
||||
env:
|
||||
DISCOURSE_URL: ${{ secrets.DISCOURSE_URL }}
|
||||
DISCOURSE_API_KEY: ${{ secrets.DISCOURSE_API_KEY }}
|
||||
DISCOURSE_API_USER: ${{ secrets.DISCOURSE_API_USER }}
|
||||
DISCOURSE_CATEGORY: ${{ vars.DISCOURSE_DOCS_CATEGORY || 'documentation' }}
|
||||
DOCS_BASE_URL: https://docs.sunnypilot.ai
|
||||
run: ruby docs_sp/tools/sync_docs_discourse.rb --verbose
|
||||
105
.github/workflows/post-to-discourse/action.yml
vendored
105
.github/workflows/post-to-discourse/action.yml
vendored
@@ -1,105 +0,0 @@
|
||||
name: 'Post to Discourse'
|
||||
description: 'Posts a message to a Discourse topic (existing or new)'
|
||||
|
||||
inputs:
|
||||
discourse-url:
|
||||
description: 'Discourse instance URL (e.g., https://discourse.example.com)'
|
||||
required: true
|
||||
api-key:
|
||||
description: 'Discourse API key'
|
||||
required: true
|
||||
api-username:
|
||||
description: 'Discourse API username'
|
||||
required: true
|
||||
topic-id:
|
||||
description: 'Discourse topic ID to post to (use this OR category-id + title)'
|
||||
required: false
|
||||
category-id:
|
||||
description: 'Category ID for new topic (required if topic-id not provided)'
|
||||
required: false
|
||||
title:
|
||||
description: 'Title for new topic (required if topic-id not provided)'
|
||||
required: false
|
||||
message:
|
||||
description: 'Message content (markdown supported)'
|
||||
required: true
|
||||
|
||||
outputs:
|
||||
post-number:
|
||||
description: 'The post number in the topic'
|
||||
value: ${{ steps.post.outputs.post_number }}
|
||||
post-url:
|
||||
description: 'Direct URL to the post'
|
||||
value: ${{ steps.post.outputs.post_url }}
|
||||
topic-id:
|
||||
description: 'The topic ID (useful when creating a new topic)'
|
||||
value: ${{ steps.post.outputs.topic_id }}
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Post to Discourse
|
||||
id: post
|
||||
shell: bash
|
||||
run: |
|
||||
# Validate inputs
|
||||
if [ -z "${{ inputs.topic-id }}" ] && ([ -z "${{ inputs.category-id }}" ] || [ -z "${{ inputs.title }}" ]); then
|
||||
echo "❌ Error: Must provide either topic-id OR both category-id and title"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "${{ inputs.topic-id }}" ] && ([ -n "${{ inputs.category-id }}" ] || [ -n "${{ inputs.title }}" ]); then
|
||||
echo "⚠️ Warning: Both topic-id and category-id/title provided. Will post to existing topic."
|
||||
fi
|
||||
|
||||
# Determine if creating new topic or posting to existing
|
||||
if [ -n "${{ inputs.topic-id }}" ]; then
|
||||
echo "📝 Posting to existing topic ID: ${{ inputs.topic-id }}"
|
||||
|
||||
# Create JSON payload for posting to existing topic
|
||||
PAYLOAD=$(jq -n \
|
||||
--arg content '${{ inputs.message }}' \
|
||||
--arg topic_id "${{ inputs.topic-id }}" \
|
||||
'{topic_id: $topic_id, raw: $content}')
|
||||
else
|
||||
echo "✨ Creating new topic: ${{ inputs.title }}"
|
||||
|
||||
# Create JSON payload for new topic
|
||||
PAYLOAD=$(jq -n \
|
||||
--arg content '${{ inputs.message }}' \
|
||||
--arg title "${{ inputs.title }}" \
|
||||
--arg category "${{ inputs.category-id }}" \
|
||||
'{title: $title, category: ($category | tonumber), raw: $content}')
|
||||
fi
|
||||
|
||||
# Post to Discourse
|
||||
RESPONSE=$(curl -s -w "\n%{http_code}" \
|
||||
-X POST "${{ inputs.discourse-url }}/posts.json" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Api-Key: ${{ inputs.api-key }}" \
|
||||
-H "Api-Username: ${{ inputs.api-username }}" \
|
||||
-d "$PAYLOAD")
|
||||
|
||||
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
|
||||
BODY=$(echo "$RESPONSE" | sed '$d')
|
||||
|
||||
if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ]; then
|
||||
echo "✅ Successfully posted to Discourse!"
|
||||
|
||||
POST_NUMBER=$(echo "$BODY" | jq -r '.post_number // "unknown"')
|
||||
TOPIC_ID=$(echo "$BODY" | jq -r '.topic_id // "${{ inputs.topic-id }}"')
|
||||
POST_URL="${{ inputs.discourse-url }}/t/${TOPIC_ID}/${POST_NUMBER}"
|
||||
|
||||
echo "post_number=${POST_NUMBER}" >> $GITHUB_OUTPUT
|
||||
echo "post_url=${POST_URL}" >> $GITHUB_OUTPUT
|
||||
echo "topic_id=${TOPIC_ID}" >> $GITHUB_OUTPUT
|
||||
|
||||
echo "Topic ID: ${TOPIC_ID}"
|
||||
echo "Post number: ${POST_NUMBER}"
|
||||
echo "URL: ${POST_URL}"
|
||||
else
|
||||
echo "❌ Failed to post to Discourse"
|
||||
echo "HTTP Code: ${HTTP_CODE}"
|
||||
echo "Response: ${BODY}"
|
||||
exit 1
|
||||
fi
|
||||
23
.github/workflows/repo-maintenance.yaml
vendored
23
.github/workflows/repo-maintenance.yaml
vendored
@@ -9,6 +9,28 @@ env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
|
||||
jobs:
|
||||
update_translations:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'sunnypilot/sunnypilot'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
- run: ./tools/op.sh setup
|
||||
- name: Update translations
|
||||
run: python3 selfdrive/ui/update_translations.py --vanish
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0
|
||||
with:
|
||||
author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
||||
commit-message: "Update translations"
|
||||
title: "[bot] Update translations"
|
||||
body: "Automatic PR from repo-maintenance -> update_translations"
|
||||
branch: "update-translations"
|
||||
base: "master"
|
||||
delete-branch: true
|
||||
labels: bot
|
||||
|
||||
package_updates:
|
||||
name: package_updates
|
||||
runs-on: ubuntu-latest
|
||||
@@ -50,6 +72,7 @@ jobs:
|
||||
git add .
|
||||
- name: update car docs
|
||||
run: |
|
||||
scons -j$(nproc) --minimal opendbc_repo
|
||||
python selfdrive/car/docs.py
|
||||
git add docs/CARS.md
|
||||
- name: Create Pull Request
|
||||
|
||||
@@ -185,7 +185,7 @@ jobs:
|
||||
echo "Building sunnypilot's locationd..."
|
||||
scons -j2 cache_dir=${{env.SCONS_CACHE_DIR}} --minimal sunnypilot/selfdrive/locationd
|
||||
echo "Building openpilot's locationd..."
|
||||
scons -j1 cache_dir=${{env.SCONS_CACHE_DIR}} --minimal selfdrive/locationd
|
||||
scons -j$(nproc) cache_dir=${{env.SCONS_CACHE_DIR}} --minimal selfdrive/locationd
|
||||
echo "Building rest of sunnypilot"
|
||||
scons -j$(nproc) cache_dir=${{env.SCONS_CACHE_DIR}} --minimal
|
||||
touch ${BUILD_DIR}/prebuilt
|
||||
|
||||
93
.github/workflows/sync-docs-discourse.yml
vendored
Normal file
93
.github/workflows/sync-docs-discourse.yml
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
# Discourse Docs Sync — one-way push from docs_sp/ Markdown to Discourse API.
|
||||
#
|
||||
# WARNING: This workflow is strictly for Discourse API syncing.
|
||||
# Do NOT add Zensical build steps, GitHub Pages deployment, or any
|
||||
# static-site generation to this file. Those belong in docs.yaml.
|
||||
|
||||
name: Sync Docs to Discourse
|
||||
|
||||
on:
|
||||
push:
|
||||
# paths:
|
||||
# - "docs_sp/**"
|
||||
# - "zensical.toml"
|
||||
pull_request:
|
||||
# paths:
|
||||
# - "docs_sp/**"
|
||||
# - "zensical.toml"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
smoke-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup environment
|
||||
run: ./tools/op.sh setup
|
||||
|
||||
- name: Smoke test - post one doc to Discourse
|
||||
env:
|
||||
DISCOURSE_URL: ${{ secrets.DISCOURSE_URL }}
|
||||
DISCOURSE_API_KEY: ${{ secrets.DISCOURSE_API_KEY }}
|
||||
DISCOURSE_API_USER: ${{ secrets.DISCOURSE_API_USER }}
|
||||
DISCOURSE_CATEGORY_MAP: '{"getting-started": 133}'
|
||||
run: |
|
||||
uv run --python 3.12 python -c "
|
||||
import os, sys
|
||||
sys.path.insert(0, 'docs_sp/tools')
|
||||
from pathlib import Path
|
||||
from converter import convert
|
||||
from discourse_client import DiscourseClient, DiscourseConfig
|
||||
|
||||
DOC_PATH = 'getting-started/what-is-sunnypilot.md'
|
||||
GITHUB_BRANCH = os.environ.get('GITHUB_REF_NAME', 'master')
|
||||
|
||||
raw = (Path('docs_sp') / DOC_PATH).read_text()
|
||||
body = convert(raw, file_path=DOC_PATH)
|
||||
|
||||
# Append sync footer
|
||||
gh_url = f'https://github.com/sunnypilot/sunnypilot/blob/{GITHUB_BRANCH}/docs_sp/{DOC_PATH}'
|
||||
body = body.rstrip('\n') + f'\n\n---\n<small>This document is version-controlled. Suggest changes [on GitHub]({gh_url}).</small>\n\n[^docs-sync]: docs-sync-id: {DOC_PATH}\n'
|
||||
|
||||
# Extract title from front matter or first heading
|
||||
title = None
|
||||
for line in raw.splitlines():
|
||||
s = line.strip()
|
||||
if s.startswith('title:'):
|
||||
title = s[len('title:'):].strip().strip('\"').strip(\"'\")
|
||||
break
|
||||
if s.startswith('# '):
|
||||
title = s[2:].strip()
|
||||
break
|
||||
title = f'{title or \"What is sunnypilot?\"} - sunnypilot Docs'
|
||||
|
||||
print(f'Title: {title}')
|
||||
print(f'Body: {len(body)} chars')
|
||||
|
||||
config = DiscourseConfig.from_env()
|
||||
client = DiscourseClient(config)
|
||||
category_id = config.category_id_for(DOC_PATH)
|
||||
print(f'Category ID: {category_id}')
|
||||
|
||||
existing = client.find_topic_by_sync_id(DOC_PATH)
|
||||
if existing is not None:
|
||||
topic_id = existing['id']
|
||||
post_id = client.first_post_id(topic_id)
|
||||
if post_id is None:
|
||||
print(f'ERROR: No first post for topic {topic_id}')
|
||||
sys.exit(1)
|
||||
result = client.update_post(post_id, body, edit_reason='CI smoke test')
|
||||
if result is None:
|
||||
print('ERROR: Failed to update post')
|
||||
sys.exit(1)
|
||||
print(f'Updated: {config.base_url}/t/{topic_id}')
|
||||
else:
|
||||
result = client.create_topic(title=title, raw=body, category_id=category_id, tags=['docs-auto-sync'])
|
||||
if result is None:
|
||||
print('ERROR: Failed to create topic')
|
||||
sys.exit(1)
|
||||
print(f'Created: {config.base_url}/t/{result.get(\"topic_id\", \"?\")}')
|
||||
|
||||
print('Smoke test passed!')
|
||||
"
|
||||
78
.github/workflows/test-discourse.yaml.yml
vendored
78
.github/workflows/test-discourse.yaml.yml
vendored
@@ -1,78 +0,0 @@
|
||||
name: Debug Discourse Posting
|
||||
|
||||
on:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
test-discourse-post:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Post test message to Discourse
|
||||
uses: ./.github/workflows/post-to-discourse
|
||||
with:
|
||||
discourse-url: ${{ vars.DISCOURSE_URL }}
|
||||
api-key: ${{ secrets.DISCOURSE_API_KEY }}
|
||||
api-username: ${{ secrets.DISCOURSE_API_USERNAME }}
|
||||
topic-id: ${{ vars.DISCOURSE_UPDATES_TOPIC_ID }}
|
||||
message: |
|
||||
## 🧪 Test Post from GitHub Actions
|
||||
|
||||
**This is a test post to verify Discourse integration**
|
||||
|
||||
- **Workflow**: ${{ github.workflow }}
|
||||
- **Run Number**: #${{ github.run_number }}
|
||||
- **Branch**: `${{ github.ref_name }}`
|
||||
- **Commit**: ${{ github.sha }}
|
||||
- **Actor**: @${{ github.actor }}
|
||||
- **Timestamp**: ${{ github.event.head_commit.timestamp }}
|
||||
|
||||
---
|
||||
|
||||
### Fake Build Info (for testing)
|
||||
- **Version**: 0.9.8-test
|
||||
- **Build**: #42
|
||||
- **Branch**: release-test
|
||||
|
||||
[View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
||||
|
||||
*This is an automated test message. Drive safe! 🚗💨*
|
||||
|
||||
|
||||
- name: Create topic on Discourse
|
||||
uses: ./.github/workflows/post-to-discourse
|
||||
with:
|
||||
discourse-url: ${{ vars.DISCOURSE_URL }}
|
||||
api-key: ${{ secrets.DISCOURSE_API_KEY }}
|
||||
api-username: ${{ secrets.DISCOURSE_API_USERNAME }}
|
||||
#topic-id: ${{ vars.DISCOURSE_UPDATES_TOPIC_ID }}
|
||||
category-id: 4
|
||||
title: "This is a test of a new topic instead of a reply"
|
||||
message: |
|
||||
## 🧪 Test Post from GitHub Actions
|
||||
|
||||
**This is a test post to verify Discourse integration**
|
||||
|
||||
- **Workflow**: ${{ github.workflow }}
|
||||
- **Run Number**: #${{ github.run_number }}
|
||||
- **Branch**: `${{ github.ref_name }}`
|
||||
- **Commit**: ${{ github.sha }}
|
||||
- **Actor**: @${{ github.actor }}
|
||||
- **Timestamp**: ${{ github.event.head_commit.timestamp }}
|
||||
|
||||
---
|
||||
|
||||
### Fake Build Info (for testing)
|
||||
- **Version**: 0.9.8-test
|
||||
- **Build**: #42
|
||||
- **Branch**: release-test
|
||||
|
||||
[View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
||||
|
||||
*This is an automated test message. Drive safe! 🚗💨*
|
||||
- name: Display results
|
||||
if: always()
|
||||
run: |
|
||||
echo "::notice::Discourse post test completed"
|
||||
echo "Check your Discourse topic to verify the post appeared correctly"
|
||||
12
.github/workflows/tests.yaml
vendored
12
.github/workflows/tests.yaml
vendored
@@ -156,22 +156,12 @@ jobs:
|
||||
id: print-diff
|
||||
if: always()
|
||||
run: cat selfdrive/test/process_replay/diff.txt
|
||||
- name: Print diff report
|
||||
if: always()
|
||||
run: cat selfdrive/test/process_replay/diff_report.txt
|
||||
- uses: actions/upload-artifact@v6
|
||||
if: always()
|
||||
continue-on-error: true
|
||||
with:
|
||||
name: process_replay_diff.txt
|
||||
path: selfdrive/test/process_replay/diff.txt
|
||||
- name: Upload diff report
|
||||
uses: actions/upload-artifact@v6
|
||||
if: always() && github.event_name == 'pull_request'
|
||||
continue-on-error: true
|
||||
with:
|
||||
name: diff_report_${{ github.event.number }}
|
||||
path: selfdrive/test/process_replay/diff_report.txt
|
||||
- name: Checkout ci-artifacts
|
||||
if: github.repository == 'commaai/openpilot' && github.ref == 'refs/heads/master'
|
||||
uses: actions/checkout@v4
|
||||
@@ -191,7 +181,7 @@ jobs:
|
||||
echo "${{ github.sha }}" > ref_commit
|
||||
git add .
|
||||
git commit -m "process-replay refs for ${{ github.repository }}@${{ github.sha }}" || echo "No changes to commit"
|
||||
git push origin process-replay --force
|
||||
git push origin process-replay
|
||||
- name: Run regen
|
||||
if: false
|
||||
timeout-minutes: 4
|
||||
|
||||
41
.gitignore
vendored
41
.gitignore
vendored
@@ -13,13 +13,15 @@ venv/
|
||||
a.out
|
||||
.hypothesis
|
||||
.cache/
|
||||
bin/
|
||||
|
||||
/docs_site/
|
||||
/docs_site_sp/
|
||||
/.discourse_sync_cache/
|
||||
|
||||
*.mp4
|
||||
*.dylib
|
||||
*.DSYM
|
||||
*.d
|
||||
*.pem
|
||||
*.pyc
|
||||
*.pyo
|
||||
.*.swp
|
||||
@@ -39,13 +41,11 @@ bin/
|
||||
*.mo
|
||||
*_pyx.cpp
|
||||
*.stats
|
||||
*.pkl
|
||||
*.pkl*
|
||||
config.json
|
||||
clcache
|
||||
compile_commands.json
|
||||
compare_runtime*.html
|
||||
|
||||
# build artifacts
|
||||
selfdrive/pandad/pandad
|
||||
cereal/services.h
|
||||
cereal/gen
|
||||
@@ -58,36 +58,51 @@ system/camerad/test/ae_gray_test
|
||||
.coverage*
|
||||
coverage.xml
|
||||
htmlcov
|
||||
pandaextra
|
||||
|
||||
.mypy_cache/
|
||||
flycheck_*
|
||||
|
||||
cppcheck_report.txt
|
||||
comma*.sh
|
||||
|
||||
selfdrive/modeld/models/*.pkl*
|
||||
sunnypilot/modeld*/models/*.pkl
|
||||
|
||||
# openpilot log files
|
||||
*.bz2
|
||||
*.zst
|
||||
*.rlog
|
||||
|
||||
build/
|
||||
|
||||
!**/.gitkeep
|
||||
|
||||
poetry.toml
|
||||
Pipfile
|
||||
|
||||
### VisualStudioCode ###
|
||||
*.vsix
|
||||
.history
|
||||
.ionide
|
||||
.vscode/*
|
||||
.history/
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
!.vscode/*.code-snippets
|
||||
|
||||
# agents
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
|
||||
### VisualStudioCode Patch ###
|
||||
# Ignore all local history of files
|
||||
.history
|
||||
.ionide
|
||||
|
||||
.claude/
|
||||
.context/
|
||||
PLAN.md
|
||||
TASK.md
|
||||
CLAUDE.md
|
||||
SKILL.md
|
||||
|
||||
### JetBrains ###
|
||||
!.idea/customTargets.xml
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
3.12.13
|
||||
3
.vscode/launch.json
vendored
3
.vscode/launch.json
vendored
@@ -52,9 +52,6 @@
|
||||
"type": "lldb",
|
||||
"request": "attach",
|
||||
"pid": "${command:pickMyProcess}",
|
||||
"sourceMap": {
|
||||
".": "${workspaceFolder}/opendbc/safety"
|
||||
},
|
||||
"initCommands": [
|
||||
"script import time; time.sleep(3)"
|
||||
]
|
||||
|
||||
8
Jenkinsfile
vendored
8
Jenkinsfile
vendored
@@ -167,7 +167,7 @@ node {
|
||||
env.GIT_COMMIT = checkout(scm).GIT_COMMIT
|
||||
|
||||
def excludeBranches = ['__nightly', 'devel', 'devel-staging', 'release3', 'release3-staging',
|
||||
'release-tici', 'release-tizi', 'release-tizi-staging', 'release-mici-staging', 'testing-closet*', 'hotfix-*']
|
||||
'release-tici', 'release-tizi', 'release-tizi-staging', 'testing-closet*', 'hotfix-*']
|
||||
def excludeRegex = excludeBranches.join('|').replaceAll('\\*', '.*')
|
||||
|
||||
if (env.BRANCH_NAME != 'master' && !env.BRANCH_NAME.contains('__jenkins_loop_')) {
|
||||
@@ -179,7 +179,7 @@ node {
|
||||
try {
|
||||
if (env.BRANCH_NAME == 'devel-staging') {
|
||||
deviceStage("build release-tizi-staging", "tizi-needs-can", [], [
|
||||
step("build release-tizi-staging", "RELEASE_BRANCH=release-tizi-staging $SOURCE_DIR/release/build_release.sh && git push -f origin release-tizi-staging:release-mici-staging"),
|
||||
step("build release-tizi-staging", "RELEASE_BRANCH=release-tizi-staging $SOURCE_DIR/release/build_release.sh"),
|
||||
])
|
||||
}
|
||||
|
||||
@@ -218,14 +218,14 @@ node {
|
||||
'camerad OX03C10': {
|
||||
deviceStage("OX03C10", "tizi-ox03c10", ["UNSAFE=1"], [
|
||||
step("build", "cd system/manager && ./build.py"),
|
||||
step("test pandad", "pytest selfdrive/pandad/tests/test_pandad.py"),
|
||||
step("test pandad", "pytest selfdrive/pandad/tests/test_pandad.py", [diffPaths: ["panda", "selfdrive/pandad/"]]),
|
||||
step("test camerad", "pytest system/camerad/test/test_camerad.py", [timeout: 90]),
|
||||
])
|
||||
},
|
||||
'camerad OS04C10': {
|
||||
deviceStage("OS04C10", "tici-os04c10", ["UNSAFE=1"], [
|
||||
step("build", "cd system/manager && ./build.py"),
|
||||
step("test pandad", "pytest selfdrive/pandad/tests/test_pandad.py"),
|
||||
step("test pandad", "pytest selfdrive/pandad/tests/test_pandad.py", [diffPaths: ["panda", "selfdrive/pandad/"]]),
|
||||
step("test camerad", "pytest system/camerad/test/test_camerad.py", [timeout: 90]),
|
||||
])
|
||||
},
|
||||
|
||||
13
RELEASES.md
13
RELEASES.md
@@ -1,17 +1,8 @@
|
||||
Version 0.11.1 (2026-04-22)
|
||||
Version 0.10.4 (2026-02-17)
|
||||
========================
|
||||
* New driver monitoring model
|
||||
* Improved image processing pipeline for driver camera
|
||||
* Rivian R1S and R1T 2025 support thanks to lukasloetkolben!
|
||||
|
||||
Version 0.11.0 (2026-03-17)
|
||||
========================
|
||||
* New driving model #36798
|
||||
* Fully trained using a learned simulator
|
||||
* Improved longitudinal performance in Experimental mode
|
||||
* Reduce comma four standby power usage by 77% to 52 mW
|
||||
* Kia K7 2017 support thanks to royjr!
|
||||
* Lexus LS 2018 support thanks to Hacheoy!
|
||||
* Reduce comma four standby power usage by 77% to 52 mW
|
||||
|
||||
Version 0.10.3 (2025-12-17)
|
||||
========================
|
||||
|
||||
102
SConstruct
102
SConstruct
@@ -4,11 +4,9 @@ import sys
|
||||
import sysconfig
|
||||
import platform
|
||||
import shlex
|
||||
import importlib
|
||||
import numpy as np
|
||||
|
||||
import SCons.Errors
|
||||
from SCons.Defaults import _stripixes
|
||||
|
||||
SCons.Warnings.warningAsException(True)
|
||||
|
||||
@@ -16,6 +14,9 @@ Decider('MD5-timestamp')
|
||||
|
||||
SetOption('num_jobs', max(1, int(os.cpu_count()/2)))
|
||||
|
||||
AddOption('--asan', action='store_true', help='turn on ASAN')
|
||||
AddOption('--ubsan', action='store_true', help='turn on UBSan')
|
||||
AddOption('--mutation', action='store_true', help='generate mutation-ready code')
|
||||
AddOption('--ccflags', action='store', type='string', default='', help='pass arbitrary flags over the command line')
|
||||
AddOption('--verbose', action='store_true', default=False, help='show full build commands')
|
||||
AddOption('--minimal',
|
||||
@@ -37,47 +38,23 @@ assert arch in [
|
||||
"Darwin", # macOS arm64 (x86 not supported)
|
||||
]
|
||||
|
||||
pkg_names = ['bzip2', 'capnproto', 'eigen', 'ffmpeg', 'libjpeg', 'libyuv', 'ncurses', 'zeromq', 'zstd']
|
||||
pkgs = [importlib.import_module(name) for name in pkg_names]
|
||||
|
||||
|
||||
# ***** enforce a whitelist of system libraries *****
|
||||
# this prevents silently relying on a 3rd party package,
|
||||
# e.g. apt-installed libusb. all libraries should either
|
||||
# be distributed with all Linux distros and macOS, or
|
||||
# vendored in commaai/dependencies.
|
||||
allowed_system_libs = {
|
||||
"EGL", "GLESv2", "GL",
|
||||
"Qt5Charts", "Qt5Core", "Qt5Gui", "Qt5Widgets",
|
||||
"dl", "drm", "gbm", "m", "pthread",
|
||||
}
|
||||
|
||||
def _resolve_lib(env, name):
|
||||
for d in env.Flatten(env.get('LIBPATH', [])):
|
||||
p = Dir(str(d)).abspath
|
||||
for ext in ('.a', '.so', '.dylib'):
|
||||
f = File(os.path.join(p, f'lib{name}{ext}'))
|
||||
if f.exists() or f.has_builder():
|
||||
return name
|
||||
if name in allowed_system_libs:
|
||||
return name
|
||||
raise SCons.Errors.UserError(f"Unexpected non-vendored library '{name}'")
|
||||
|
||||
def _libflags(target, source, env, for_signature):
|
||||
libs = []
|
||||
lp = env.subst('$LIBLITERALPREFIX')
|
||||
for lib in env.Flatten(env.get('LIBS', [])):
|
||||
if isinstance(lib, str):
|
||||
if os.sep in lib or lib.startswith('#'):
|
||||
libs.append(File(lib))
|
||||
elif lib.startswith('-') or (lp and lib.startswith(lp)):
|
||||
libs.append(lib)
|
||||
else:
|
||||
libs.append(_resolve_lib(env, lib))
|
||||
else:
|
||||
libs.append(lib)
|
||||
return _stripixes(env['LIBLINKPREFIX'], libs, env['LIBLINKSUFFIX'],
|
||||
env['LIBPREFIXES'], env['LIBSUFFIXES'], env, env['LIBLITERALPREFIX'])
|
||||
if arch != "larch64":
|
||||
import bzip2
|
||||
import capnproto
|
||||
import eigen
|
||||
import ffmpeg as ffmpeg_pkg
|
||||
import libjpeg
|
||||
import libyuv
|
||||
import ncurses
|
||||
import python3_dev
|
||||
import zeromq
|
||||
import zstd
|
||||
pkgs = [bzip2, capnproto, eigen, ffmpeg_pkg, libjpeg, libyuv, ncurses, zeromq, zstd]
|
||||
py_include = python3_dev.INCLUDE_DIR
|
||||
else:
|
||||
# TODO: remove when AGNOS has our new vendor pkgs
|
||||
pkgs = []
|
||||
py_include = sysconfig.get_paths()['include']
|
||||
|
||||
env = Environment(
|
||||
ENV={
|
||||
@@ -130,14 +107,14 @@ env = Environment(
|
||||
tools=["default", "cython", "compilation_db", "rednose_filter"],
|
||||
toolpath=["#site_scons/site_tools", "#rednose_repo/site_scons/site_tools"],
|
||||
)
|
||||
if arch != "larch64":
|
||||
env['_LIBFLAGS'] = _libflags
|
||||
|
||||
# Arch-specific flags and paths
|
||||
if arch == "larch64":
|
||||
env["CC"] = "clang"
|
||||
env["CXX"] = "clang++"
|
||||
env.Append(LIBPATH=[
|
||||
"/usr/local/lib",
|
||||
"/system/vendor/lib64",
|
||||
"/usr/lib/aarch64-linux-gnu",
|
||||
])
|
||||
arch_flags = ["-D__TICI__", "-mcpu=cortex-a57", "-DQCOM2"]
|
||||
@@ -149,6 +126,19 @@ elif arch == "Darwin":
|
||||
])
|
||||
env.Append(CCFLAGS=["-DGL_SILENCE_DEPRECATION"])
|
||||
env.Append(CXXFLAGS=["-DGL_SILENCE_DEPRECATION"])
|
||||
else:
|
||||
env.Append(LIBPATH=[
|
||||
"/usr/lib",
|
||||
"/usr/local/lib",
|
||||
])
|
||||
|
||||
# Sanitizers and extra CCFLAGS from CLI
|
||||
if GetOption('asan'):
|
||||
env.Append(CCFLAGS=["-fsanitize=address", "-fno-omit-frame-pointer"])
|
||||
env.Append(LINKFLAGS=["-fsanitize=address"])
|
||||
elif GetOption('ubsan'):
|
||||
env.Append(CCFLAGS=["-fsanitize=undefined"])
|
||||
env.Append(LINKFLAGS=["-fsanitize=undefined"])
|
||||
|
||||
_extra_cc = shlex.split(GetOption('ccflags') or '')
|
||||
if _extra_cc:
|
||||
@@ -186,7 +176,7 @@ if os.environ.get('SCONS_PROGRESS'):
|
||||
|
||||
# ********** Cython build environment **********
|
||||
envCython = env.Clone()
|
||||
envCython["CPPPATH"] += [sysconfig.get_paths()['include'], np.get_include()]
|
||||
envCython["CPPPATH"] += [py_include, np.get_include()]
|
||||
envCython["CCFLAGS"] += ["-Wno-#warnings", "-Wno-cpp", "-Wno-shadow", "-Wno-deprecated-declarations"]
|
||||
envCython["CCFLAGS"].remove("-Werror")
|
||||
|
||||
@@ -220,6 +210,7 @@ Export('common')
|
||||
env_swaglog = env.Clone()
|
||||
env_swaglog['CXXFLAGS'].append('-DSWAGLOG="\\"common/swaglog.h\\""')
|
||||
SConscript(['msgq_repo/SConscript'], exports={'env': env_swaglog})
|
||||
SConscript(['opendbc_repo/SConscript'], exports={'env': env_swaglog})
|
||||
|
||||
SConscript(['cereal/SConscript'])
|
||||
|
||||
@@ -245,25 +236,12 @@ if arch == "larch64":
|
||||
# Build openpilot
|
||||
SConscript(['third_party/SConscript'])
|
||||
|
||||
# Build selfdrive
|
||||
SConscript([
|
||||
'selfdrive/pandad/SConscript',
|
||||
'selfdrive/controls/lib/lateral_mpc_lib/SConscript',
|
||||
'selfdrive/controls/lib/longitudinal_mpc_lib/SConscript',
|
||||
'selfdrive/locationd/SConscript',
|
||||
'selfdrive/modeld/SConscript',
|
||||
'selfdrive/ui/SConscript',
|
||||
])
|
||||
SConscript(['selfdrive/SConscript'])
|
||||
|
||||
SConscript(['sunnypilot/SConscript'])
|
||||
|
||||
# Build tools
|
||||
if arch != "larch64":
|
||||
SConscript([
|
||||
'tools/replay/SConscript',
|
||||
'tools/cabana/SConscript',
|
||||
'tools/jotpluggler/SConscript',
|
||||
])
|
||||
if Dir('#tools/cabana/').exists() and arch != "larch64":
|
||||
SConscript(['tools/cabana/SConscript'])
|
||||
|
||||
|
||||
env.CompilationDatabase('compile_commands.json')
|
||||
|
||||
@@ -4,7 +4,7 @@ cereal_dir = Dir('.')
|
||||
gen_dir = Dir('gen')
|
||||
|
||||
# Build cereal
|
||||
schema_files = ['log.capnp', 'car.capnp', 'deprecated.capnp', 'custom.capnp']
|
||||
schema_files = ['log.capnp', 'car.capnp', 'legacy.capnp', 'custom.capnp']
|
||||
env.Command([f'gen/cpp/{s}.c++' for s in schema_files] + [f'gen/cpp/{s}.h' for s in schema_files],
|
||||
schema_files,
|
||||
f"capnpc --src-prefix={cereal_dir.path} $SOURCES -o c++:{gen_dir.path}/cpp/")
|
||||
|
||||
@@ -154,7 +154,6 @@ struct ModelManagerSP @0xaedffd8f31e7b55d {
|
||||
vision @2;
|
||||
policy @3;
|
||||
offPolicy @4;
|
||||
onPolicy @5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,9 +266,6 @@ struct LongitudinalPlanSP @0xf35cc4560bbf6ec2 {
|
||||
active @2 :Bool;
|
||||
vTarget @3 :Float32;
|
||||
aTarget @4 :Float32;
|
||||
capDelta @5 :Float32; # Difference between cluster set-speed and cap (m/s), positive = driver above cap
|
||||
targetCap @6 :Float32; # Speed limit cap being enforced (m/s)
|
||||
disableReason @7 :AssistDisableReason;
|
||||
}
|
||||
|
||||
enum Source {
|
||||
@@ -285,19 +281,6 @@ struct LongitudinalPlanSP @0xf35cc4560bbf6ec2 {
|
||||
pending @3; # Awaiting new speed limit.
|
||||
adapting @4; # Reducing speed to match new speed limit.
|
||||
active @5; # Cruising at speed limit.
|
||||
capping @6; # Silently capping speed based on limit.
|
||||
tempPaused @7; # Temporarily paused by user.
|
||||
}
|
||||
|
||||
enum AssistDisableReason {
|
||||
none @0;
|
||||
userCancel @1;
|
||||
userTempPause @2;
|
||||
longOverride @3;
|
||||
belowFloor @4;
|
||||
autoResume @5;
|
||||
mapGap @6;
|
||||
gateDisabled @7;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -358,7 +341,6 @@ struct OnroadEventSP @0xda96579883444c35 {
|
||||
speedLimitChanged @21;
|
||||
speedLimitPending @22;
|
||||
e2eChime @23;
|
||||
speedLimitCapActive @24;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ $Cxx.namespace("cereal");
|
||||
|
||||
@0x80ef1ec4889c2a63;
|
||||
|
||||
# deprecated.capnp: a home for deprecated structs
|
||||
# legacy.capnp: a home for deprecated structs
|
||||
|
||||
struct LogRotate @0x9811e1f38f62f2d1 {
|
||||
segmentNum @0 :Int32;
|
||||
@@ -571,219 +571,4 @@ struct LidarPts @0xe3d6685d4e9d8f7a {
|
||||
pkt @4 :Data;
|
||||
}
|
||||
|
||||
struct LiveTracksDEPRECATED @0xb16f60103159415a {
|
||||
trackId @0 :Int32;
|
||||
dRel @1 :Float32;
|
||||
yRel @2 :Float32;
|
||||
vRel @3 :Float32;
|
||||
aRel @4 :Float32;
|
||||
timeStamp @5 :Float32;
|
||||
status @6 :Float32;
|
||||
currentTime @7 :Float32;
|
||||
stationary @8 :Bool;
|
||||
oncoming @9 :Bool;
|
||||
}
|
||||
|
||||
struct LiveMpcData @0x92a5e332a85f32a0 {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
psi @2 :List(Float32);
|
||||
curvature @3 :List(Float32);
|
||||
qpIterations @4 :UInt32;
|
||||
calculationTime @5 :UInt64;
|
||||
cost @6 :Float64;
|
||||
}
|
||||
|
||||
struct LiveLongitudinalMpcData @0xe7e17c434f865ae2 {
|
||||
xEgo @0 :List(Float32);
|
||||
vEgo @1 :List(Float32);
|
||||
aEgo @2 :List(Float32);
|
||||
xLead @3 :List(Float32);
|
||||
vLead @4 :List(Float32);
|
||||
aLead @5 :List(Float32);
|
||||
aLeadTau @6 :Float32; # lead accel time constant
|
||||
qpIterations @7 :UInt32;
|
||||
mpcId @8 :UInt32;
|
||||
calculationTime @9 :UInt64;
|
||||
cost @10 :Float64;
|
||||
}
|
||||
|
||||
struct DriverStateDEPRECATED @0xb83c6cc593ed0a00 {
|
||||
frameId @0 :UInt32;
|
||||
modelExecutionTime @14 :Float32;
|
||||
dspExecutionTime @16 :Float32;
|
||||
rawPredictions @15 :Data;
|
||||
|
||||
faceOrientation @3 :List(Float32);
|
||||
facePosition @4 :List(Float32);
|
||||
faceProb @5 :Float32;
|
||||
leftEyeProb @6 :Float32;
|
||||
rightEyeProb @7 :Float32;
|
||||
leftBlinkProb @8 :Float32;
|
||||
rightBlinkProb @9 :Float32;
|
||||
faceOrientationStd @11 :List(Float32);
|
||||
facePositionStd @12 :List(Float32);
|
||||
sunglassesProb @13 :Float32;
|
||||
poorVision @17 :Float32;
|
||||
partialFace @18 :Float32;
|
||||
distractedPose @19 :Float32;
|
||||
distractedEyes @20 :Float32;
|
||||
eyesOnRoad @21 :Float32;
|
||||
phoneUse @22 :Float32;
|
||||
occludedProb @23 :Float32;
|
||||
|
||||
readyProb @24 :List(Float32);
|
||||
notReadyProb @25 :List(Float32);
|
||||
|
||||
irPwrDEPRECATED @10 :Float32;
|
||||
descriptorDEPRECATED @1 :List(Float32);
|
||||
stdDEPRECATED @2 :Float32;
|
||||
}
|
||||
|
||||
struct NavModelData @0xac3de5c437be057a {
|
||||
frameId @0 :UInt32;
|
||||
locationMonoTime @6 :UInt64;
|
||||
modelExecutionTime @1 :Float32;
|
||||
dspExecutionTime @2 :Float32;
|
||||
features @3 :List(Float32);
|
||||
# predicted future position
|
||||
position @4 :XYData;
|
||||
desirePrediction @5 :List(Float32);
|
||||
|
||||
# All SI units and in device frame
|
||||
struct XYData @0xbe09e615b2507e26 {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
xStd @2 :List(Float32);
|
||||
yStd @3 :List(Float32);
|
||||
}
|
||||
}
|
||||
|
||||
struct AndroidBuildInfo @0xfe2919d5c21f426c {
|
||||
board @0 :Text;
|
||||
bootloader @1 :Text;
|
||||
brand @2 :Text;
|
||||
device @3 :Text;
|
||||
display @4 :Text;
|
||||
fingerprint @5 :Text;
|
||||
hardware @6 :Text;
|
||||
host @7 :Text;
|
||||
id @8 :Text;
|
||||
manufacturer @9 :Text;
|
||||
model @10 :Text;
|
||||
product @11 :Text;
|
||||
radioVersion @12 :Text;
|
||||
serial @13 :Text;
|
||||
supportedAbis @14 :List(Text);
|
||||
tags @15 :Text;
|
||||
time @16 :Int64;
|
||||
type @17 :Text;
|
||||
user @18 :Text;
|
||||
|
||||
versionCodename @19 :Text;
|
||||
versionRelease @20 :Text;
|
||||
versionSdk @21 :Int32;
|
||||
versionSecurityPatch @22 :Text;
|
||||
}
|
||||
|
||||
struct AndroidSensor @0x9b513b93a887dbcd {
|
||||
id @0 :Int32;
|
||||
name @1 :Text;
|
||||
vendor @2 :Text;
|
||||
version @3 :Int32;
|
||||
handle @4 :Int32;
|
||||
type @5 :Int32;
|
||||
maxRange @6 :Float32;
|
||||
resolution @7 :Float32;
|
||||
power @8 :Float32;
|
||||
minDelay @9 :Int32;
|
||||
fifoReservedEventCount @10 :UInt32;
|
||||
fifoMaxEventCount @11 :UInt32;
|
||||
stringType @12 :Text;
|
||||
maxDelay @13 :Int32;
|
||||
}
|
||||
|
||||
struct IosBuildInfo @0xd97e3b28239f5580 {
|
||||
appVersion @0 :Text;
|
||||
appBuild @1 :UInt32;
|
||||
osVersion @2 :Text;
|
||||
deviceModel @3 :Text;
|
||||
}
|
||||
|
||||
enum FrameTypeDEPRECATED @0xa37f0d8558e193fd {
|
||||
unknown @0;
|
||||
neo @1;
|
||||
chffrAndroid @2;
|
||||
front @3;
|
||||
}
|
||||
|
||||
struct AndroidCaptureResult @0xbcc3efbac41d2048 {
|
||||
sensitivity @0 :Int32;
|
||||
frameDuration @1 :Int64;
|
||||
exposureTime @2 :Int64;
|
||||
rollingShutterSkew @3 :UInt64;
|
||||
colorCorrectionTransform @4 :List(Int32);
|
||||
colorCorrectionGains @5 :List(Float32);
|
||||
displayRotation @6 :Int8;
|
||||
}
|
||||
|
||||
enum UsbPowerModeDEPRECATED @0xa8883583b32c9877 {
|
||||
none @0;
|
||||
client @1;
|
||||
cdp @2;
|
||||
dcp @3;
|
||||
}
|
||||
|
||||
struct LateralINDIState @0x939463348632375e {
|
||||
active @0 :Bool;
|
||||
steeringAngleDeg @1 :Float32;
|
||||
steeringRateDeg @2 :Float32;
|
||||
steeringAccelDeg @3 :Float32;
|
||||
rateSetPoint @4 :Float32;
|
||||
accelSetPoint @5 :Float32;
|
||||
accelError @6 :Float32;
|
||||
delayedOutput @7 :Float32;
|
||||
delta @8 :Float32;
|
||||
output @9 :Float32;
|
||||
saturated @10 :Bool;
|
||||
steeringAngleDesiredDeg @11 :Float32;
|
||||
steeringRateDesiredDeg @12 :Float32;
|
||||
}
|
||||
|
||||
struct LateralLQRState @0x9024e2d790c82ade {
|
||||
active @0 :Bool;
|
||||
steeringAngleDeg @1 :Float32;
|
||||
i @2 :Float32;
|
||||
output @3 :Float32;
|
||||
lqrOutput @4 :Float32;
|
||||
saturated @5 :Bool;
|
||||
steeringAngleDesiredDeg @6 :Float32;
|
||||
}
|
||||
|
||||
struct LateralCurvatureState @0xad9d8095c06f7c61 {
|
||||
active @0 :Bool;
|
||||
actualCurvature @1 :Float32;
|
||||
desiredCurvature @2 :Float32;
|
||||
error @3 :Float32;
|
||||
p @4 :Float32;
|
||||
i @5 :Float32;
|
||||
f @6 :Float32;
|
||||
output @7 :Float32;
|
||||
saturated @8 :Bool;
|
||||
}
|
||||
|
||||
struct LateralPlannerSolution @0x84caeca5a6b4acfe {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
yaw @2 :List(Float32);
|
||||
yawRate @3 :List(Float32);
|
||||
xStd @4 :List(Float32);
|
||||
yStd @5 :List(Float32);
|
||||
yawStd @6 :List(Float32);
|
||||
yawRateStd @7 :List(Float32);
|
||||
}
|
||||
|
||||
struct GpsTrajectory @0x8cfeb072f5301000 {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
}
|
||||
770
cereal/log.capnp
770
cereal/log.capnp
File diff suppressed because it is too large
Load Diff
@@ -39,8 +39,8 @@ _services: dict[str, tuple] = {
|
||||
"roadEncodeIdx": (False, 20., 1),
|
||||
"liveTracks": (True, 20.),
|
||||
"sendcan": (True, 100., 139, QueueSize.MEDIUM),
|
||||
"logMessage": (True, 0., None, QueueSize.BIG),
|
||||
"errorLogMessage": (True, 0., 1, QueueSize.BIG),
|
||||
"logMessage": (True, 0.),
|
||||
"errorLogMessage": (True, 0., 1),
|
||||
"liveCalibration": (True, 4., 4),
|
||||
"liveTorqueParameters": (True, 4., 1),
|
||||
"liveDelay": (True, 4., 1),
|
||||
@@ -49,7 +49,6 @@ _services: dict[str, tuple] = {
|
||||
"carControl": (True, 100., 10),
|
||||
"carOutput": (True, 100., 10),
|
||||
"longitudinalPlan": (True, 20., 10),
|
||||
"lateralManeuverPlan": (True, 20.),
|
||||
"driverAssistance": (True, 20., 20),
|
||||
"procLog": (True, 0.5, 15, QueueSize.BIG),
|
||||
"gpsLocationExternal": (True, 10., 10),
|
||||
|
||||
1
common/.gitignore
vendored
Normal file
1
common/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.cpp
|
||||
@@ -1,4 +1,4 @@
|
||||
Import('env', 'envCython')
|
||||
Import('env', 'envCython', 'arch')
|
||||
|
||||
common_libs = [
|
||||
'params.cc',
|
||||
|
||||
@@ -28,7 +28,7 @@ class BounceFilter(FirstOrderFilter):
|
||||
scale = self.dt / (1.0 / 60.0) # tuned at 60 fps
|
||||
self.velocity.x += (x - self.x) * self.bounce * scale * self.dt
|
||||
self.velocity.update(0.0)
|
||||
if abs(self.velocity.x) < 1e-3:
|
||||
if abs(self.velocity.x) < 1e-5:
|
||||
self.velocity.x = 0.0
|
||||
self.x += self.velocity.x
|
||||
return self.x
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define DEFAULT_MODEL "POP model (Default)"
|
||||
#define DEFAULT_MODEL "CD210 (Default)"
|
||||
|
||||
@@ -82,7 +82,6 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||
{"LiveParametersV2", {PERSISTENT, BYTES}},
|
||||
{"LiveTorqueParameters", {PERSISTENT | DONT_LOG, BYTES}},
|
||||
{"LocationFilterInitialState", {PERSISTENT, BYTES}},
|
||||
{"LateralManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
|
||||
{"LongitudinalPersonality", {PERSISTENT | BACKUP, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}},
|
||||
{"NetworkMetered", {PERSISTENT | BACKUP, BOOL}},
|
||||
@@ -261,9 +260,6 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||
{"SpeedLimitOffsetType", {PERSISTENT | BACKUP, INT, "0"}},
|
||||
{"SpeedLimitPolicy", {PERSISTENT | BACKUP, INT, "3"}},
|
||||
{"SpeedLimitValueOffset", {PERSISTENT | BACKUP, INT, "0"}},
|
||||
{"SpeedLimitUpshiftAccept", {PERSISTENT | BACKUP, INT, "0"}},
|
||||
{"SpeedLimitMinCapFloor", {PERSISTENT | BACKUP, INT, "25"}},
|
||||
{"SpeedLimitCapAudioCue", {PERSISTENT | BACKUP, INT, "1"}},
|
||||
|
||||
// Smart Cruise Control
|
||||
{"MapTargetVelocities", {CLEAR_ON_ONROAD_TRANSITION, STRING}},
|
||||
@@ -275,7 +271,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||
{"EnforceTorqueControl", {PERSISTENT | BACKUP, BOOL}},
|
||||
{"LiveTorqueParamsToggle", {PERSISTENT | BACKUP , BOOL}},
|
||||
{"LiveTorqueParamsRelaxedToggle", {PERSISTENT | BACKUP , BOOL}},
|
||||
{"TorqueControlTune", {PERSISTENT | BACKUP, FLOAT, "0.0"}},
|
||||
{"TorqueControlTune", {PERSISTENT | BACKUP, FLOAT}},
|
||||
{"TorqueParamsOverrideEnabled", {PERSISTENT | BACKUP, BOOL, "0"}},
|
||||
{"TorqueParamsOverrideFriction", {PERSISTENT | BACKUP, FLOAT, "0.1"}},
|
||||
{"TorqueParamsOverrideLatAccelFactor", {PERSISTENT | BACKUP, FLOAT, "2.5"}},
|
||||
|
||||
@@ -2,7 +2,6 @@ import datetime
|
||||
from pathlib import Path
|
||||
|
||||
MIN_DATE = datetime.datetime(year=2025, month=2, day=21)
|
||||
MAX_DATE = datetime.datetime(year=2035, month=1, day=1)
|
||||
|
||||
def min_date():
|
||||
# on systemd systems, the default time is the systemd build time
|
||||
@@ -13,4 +12,4 @@ def min_date():
|
||||
return MIN_DATE
|
||||
|
||||
def system_time_valid():
|
||||
return min_date() < datetime.datetime.now() < MAX_DATE
|
||||
return datetime.datetime.now() > min_date()
|
||||
|
||||
2
common/transformations/.gitignore
vendored
Normal file
2
common/transformations/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
transformations
|
||||
transformations.cpp
|
||||
@@ -131,11 +131,11 @@ def get_upload_stream(filepath: str, should_compress: bool) -> tuple[io.Buffered
|
||||
return compressed_stream, compressed_size
|
||||
|
||||
|
||||
# remove all keys that end in DEPRECATED, plus any "deprecated" group
|
||||
# remove all keys that end in DEPRECATED
|
||||
def strip_deprecated_keys(d):
|
||||
for k in list(d.keys()):
|
||||
if isinstance(k, str):
|
||||
if k.endswith('DEPRECATED') or k == 'deprecated':
|
||||
if k.endswith('DEPRECATED'):
|
||||
d.pop(k)
|
||||
elif isinstance(d[k], dict):
|
||||
strip_deprecated_keys(d[k])
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define COMMA_VERSION "0.11.1"
|
||||
#define COMMA_VERSION "0.10.4"
|
||||
|
||||
@@ -10,6 +10,7 @@ from openpilot.system.hardware import TICI, HARDWARE
|
||||
# TODO: pytest-cpp doesn't support FAIL, and we need to create test translations in sessionstart
|
||||
# pending https://github.com/pytest-dev/pytest-cpp/pull/147
|
||||
collect_ignore = [
|
||||
"selfdrive/ui/tests/test_translations",
|
||||
"selfdrive/test/process_replay/test_processes.py",
|
||||
"selfdrive/test/process_replay/test_regen.py",
|
||||
]
|
||||
|
||||
135
docs/CARS.md
135
docs/CARS.md
@@ -4,24 +4,23 @@
|
||||
|
||||
A supported vehicle is one that just works when you install a comma device. All supported cars provide a better experience than any stock system. Supported vehicles reference the US market unless otherwise specified.
|
||||
|
||||
# 340 Supported Cars
|
||||
# 336 Supported Cars
|
||||
|
||||
|Make|Model|Supported Package|ACC|No ACC accel below|No ALC below|Steering Torque|Resume from stop|<a href="##"><img width=2000></a>Hardware Needed<br> |Video|Setup Video|
|
||||
|---|---|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||
|Acura|ILX 2016-18|Technology Plus Package or AcuraWatch Plus|openpilot|26 mph|25 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura ILX 2016-18">Buy Here</a></sub></details>|||
|
||||
|Acura|ILX 2019|All|openpilot|26 mph|25 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura ILX 2019">Buy Here</a></sub></details>|||
|
||||
|Acura|MDX 2022-24|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|43 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura MDX 2022-24">Buy Here</a></sub></details>|||
|
||||
|Acura|MDX 2025-26|All except Type S|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch C connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura MDX 2025-26">Buy Here</a></sub></details>|||
|
||||
|Acura|RDX 2016-18|AcuraWatch Plus or Advance Package|openpilot|26 mph|12 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura RDX 2016-18">Buy Here</a></sub></details>|||
|
||||
|Acura|RDX 2019-21|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura RDX 2019-21">Buy Here</a></sub></details>|||
|
||||
|Acura|TLX 2021-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura TLX 2021-22">Buy Here</a></sub></details>|||
|
||||
|Acura|TLX 2021|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura TLX 2021">Buy Here</a></sub></details>|||
|
||||
|Acura|TLX 2025|All|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch C connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Acura TLX 2025">Buy Here</a></sub></details>|||
|
||||
|Audi[<sup>11</sup>](#footnotes)|A3 2014-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi A3 2014-19">Buy Here</a></sub></details>|||
|
||||
|Audi[<sup>11</sup>](#footnotes)|A3 Sportback e-tron 2017-18|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi A3 Sportback e-tron 2017-18">Buy Here</a></sub></details>|||
|
||||
|Audi[<sup>11</sup>](#footnotes)|Q2 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi Q2 2018">Buy Here</a></sub></details>|||
|
||||
|Audi[<sup>11</sup>](#footnotes)|Q3 2019-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi Q3 2019-24">Buy Here</a></sub></details>|||
|
||||
|Audi[<sup>11</sup>](#footnotes)|RS3 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi RS3 2018">Buy Here</a></sub></details>|||
|
||||
|Audi[<sup>11</sup>](#footnotes)|S3 2015-17|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi S3 2015-17">Buy Here</a></sub></details>|||
|
||||
|Audi|A3 2014-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi A3 2014-19">Buy Here</a></sub></details>|||
|
||||
|Audi|A3 Sportback e-tron 2017-18|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi A3 Sportback e-tron 2017-18">Buy Here</a></sub></details>|||
|
||||
|Audi|Q2 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi Q2 2018">Buy Here</a></sub></details>|||
|
||||
|Audi|Q3 2019-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi Q3 2019-24">Buy Here</a></sub></details>|||
|
||||
|Audi|RS3 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi RS3 2018">Buy Here</a></sub></details>|||
|
||||
|Audi|S3 2015-17|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Audi S3 2015-17">Buy Here</a></sub></details>|||
|
||||
|Chevrolet|Bolt EUV 2022-23|Premier or Premier Redline Trim, without Super Cruise Package|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 GM connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Chevrolet Bolt EUV 2022-23">Buy Here</a></sub></details>|<a href="https://youtu.be/xvwzGMUA210" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Chevrolet|Bolt EV 2022-23|2LT Trim with Adaptive Cruise Control Package|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 GM connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Chevrolet Bolt EV 2022-23">Buy Here</a></sub></details>|||
|
||||
|Chevrolet|Equinox 2019-22|Adaptive Cruise Control (ACC)|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 GM connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Chevrolet Equinox 2019-22">Buy Here</a></sub></details>|||
|
||||
@@ -33,7 +32,7 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Chrysler|Pacifica Hybrid 2017-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 FCA connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Chrysler Pacifica Hybrid 2017-18">Buy Here</a></sub></details>|||
|
||||
|Chrysler|Pacifica Hybrid 2019-25|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 FCA connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Chrysler Pacifica Hybrid 2019-25">Buy Here</a></sub></details>|||
|
||||
|comma|body|All|openpilot|0 mph|0 mph|[](##)|[](##)|None|<a href="https://youtu.be/VT-i3yRsX2s?t=2736" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|CUPRA[<sup>11</sup>](#footnotes)|Ateca 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=CUPRA Ateca 2018-23">Buy Here</a></sub></details>|||
|
||||
|CUPRA|Ateca 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=CUPRA Ateca 2018-23">Buy Here</a></sub></details>|||
|
||||
|Dodge|Durango 2020-21|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 FCA connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Dodge Durango 2020-21">Buy Here</a></sub></details>|||
|
||||
|Ford|Bronco Sport 2021-24|Co-Pilot360 Assist+|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Ford Q3 connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Ford Bronco Sport 2021-24">Buy Here</a></sub></details>|||
|
||||
|Ford|Escape 2020-22|Co-Pilot360 Assist+|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Ford Q3 connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Ford Escape 2020-22">Buy Here</a></sub></details>|||
|
||||
@@ -104,7 +103,6 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Honda|N-Box 2018|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|11 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda N-Box 2018">Buy Here</a></sub></details>|||
|
||||
|Honda|Odyssey 2018-20|Honda Sensing|openpilot|26 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Odyssey 2018-20">Buy Here</a></sub></details>|||
|
||||
|Honda|Odyssey 2021-26|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|43 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Odyssey 2021-26">Buy Here</a></sub></details>|||
|
||||
|Honda|Odyssey (Singapore) 2021|Honda Sensing|openpilot|19 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Odyssey (Singapore) 2021">Buy Here</a></sub></details>|||
|
||||
|Honda|Odyssey (Taiwan) 2018-19|Honda Sensing|openpilot|19 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Odyssey (Taiwan) 2018-19">Buy Here</a></sub></details>|||
|
||||
|Honda|Passport 2019-25|All|openpilot|26 mph|12 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Passport 2019-25">Buy Here</a></sub></details>|||
|
||||
|Honda|Passport 2026|All|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch C connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Passport 2026">Buy Here</a></sub></details>|||
|
||||
@@ -174,12 +172,12 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Kia|Niro EV 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai F connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro EV 2020">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Kia|Niro EV 2021|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai C connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro EV 2021">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Kia|Niro EV 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai H connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro EV 2022">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Kia|Niro EV (with HDA II) 2024-25|Highway Driving Assist II|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai R connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro EV (with HDA II) 2024-25">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro EV (with HDA II) 2025|Highway Driving Assist II|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai R connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro EV (with HDA II) 2025">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro EV (without HDA II) 2023-25|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro EV (without HDA II) 2023-25">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Hybrid 2018|Smart Cruise Control (SCC)|Stock|10 mph|32 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai C connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Hybrid 2018">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Hybrid 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai D connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Hybrid 2021">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Hybrid 2022|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai F connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Hybrid 2022">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Hybrid 2023-24|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Hybrid 2023-24">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Hybrid 2023|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai A connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Hybrid 2023">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Plug-in Hybrid 2018-19|All|Stock|10 mph|32 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai C connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Plug-in Hybrid 2018-19">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Plug-in Hybrid 2020|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai D connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Plug-in Hybrid 2020">Buy Here</a></sub></details>|||
|
||||
|Kia|Niro Plug-in Hybrid 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Hyundai D connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Niro Plug-in Hybrid 2021">Buy Here</a></sub></details>|||
|
||||
@@ -223,8 +221,8 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Lexus|UX Hybrid 2019-24|All|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Toyota A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Lexus UX Hybrid 2019-24">Buy Here</a></sub></details>|||
|
||||
|Lincoln|Aviator 2020-24|Co-Pilot360 Plus|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Ford Q3 connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Lincoln Aviator 2020-24">Buy Here</a></sub></details>|||
|
||||
|Lincoln|Aviator Plug-in Hybrid 2020-24|Co-Pilot360 Plus|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Ford Q3 connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Lincoln Aviator Plug-in Hybrid 2020-24">Buy Here</a></sub></details>|||
|
||||
|MAN[<sup>11</sup>](#footnotes)|eTGE 2020-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=MAN eTGE 2020-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|MAN[<sup>11</sup>](#footnotes)|TGE 2017-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=MAN TGE 2017-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|MAN|eTGE 2020-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=MAN eTGE 2020-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|MAN|TGE 2017-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=MAN TGE 2017-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Mazda|CX-5 2022-25|All|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Mazda connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Mazda CX-5 2022-25">Buy Here</a></sub></details>|||
|
||||
|Mazda|CX-9 2021-23|All|Stock|0 mph|28 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Mazda connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Mazda CX-9 2021-23">Buy Here</a></sub></details>|<a href="https://youtu.be/dA3duO4a0O4" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Nissan[<sup>5</sup>](#footnotes)|Altima 2019-20, 2024|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 Nissan B connector<br>- 1 OBD-C cable (2 ft)<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Nissan Altima 2019-20, 2024">Buy Here</a></sub></details>|||
|
||||
@@ -235,11 +233,9 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Ram|2500 2020-24|Adaptive Cruise Control (ACC)|Stock|0 mph|36 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Ram connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Ram 2500 2020-24">Buy Here</a></sub></details>|||
|
||||
|Ram|3500 2019-22|Adaptive Cruise Control (ACC)|Stock|0 mph|36 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Ram connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Ram 3500 2019-22">Buy Here</a></sub></details>|||
|
||||
|Rivian|R1S 2022-24|All|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Rivian A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Rivian R1S 2022-24">Buy Here</a></sub></details>||<a href="https://youtu.be/uaISd1j7Z4U" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Rivian|R1S 2025|All|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Rivian B connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Rivian R1S 2025">Buy Here</a></sub></details>|||
|
||||
|Rivian|R1T 2022-24|All|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Rivian A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Rivian R1T 2022-24">Buy Here</a></sub></details>||<a href="https://youtu.be/uaISd1j7Z4U" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Rivian|R1T 2025|All|openpilot|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Rivian B connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Rivian R1T 2025">Buy Here</a></sub></details>|||
|
||||
|SEAT[<sup>11</sup>](#footnotes)|Ateca 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=SEAT Ateca 2016-23">Buy Here</a></sub></details>|||
|
||||
|SEAT[<sup>11</sup>](#footnotes)|Leon 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=SEAT Leon 2014-20">Buy Here</a></sub></details>|||
|
||||
|SEAT|Ateca 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=SEAT Ateca 2016-23">Buy Here</a></sub></details>|||
|
||||
|SEAT|Leon 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=SEAT Leon 2014-20">Buy Here</a></sub></details>|||
|
||||
|Subaru|Ascent 2019-21|All[<sup>6</sup>](#footnotes)|openpilot available[<sup>1,7</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Subaru A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Subaru Ascent 2019-21">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|
||||
|Subaru|Crosstrek 2018-19|EyeSight Driver Assistance[<sup>6</sup>](#footnotes)|openpilot available[<sup>1,7</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Subaru A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Subaru Crosstrek 2018-19">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|<a href="https://youtu.be/Agww7oE1k-s?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Subaru|Crosstrek 2020-23|EyeSight Driver Assistance[<sup>6</sup>](#footnotes)|openpilot available[<sup>1,7</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Subaru A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Subaru Crosstrek 2020-23">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|
||||
@@ -254,15 +250,15 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Subaru|Outback 2020-22|All[<sup>6</sup>](#footnotes)|Stock|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Subaru B connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Subaru Outback 2020-22">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|
||||
|Subaru|XV 2018-19|EyeSight Driver Assistance[<sup>6</sup>](#footnotes)|openpilot available[<sup>1,7</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Subaru A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Subaru XV 2018-19">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|<a href="https://youtu.be/Agww7oE1k-s?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Subaru|XV 2020-21|EyeSight Driver Assistance[<sup>6</sup>](#footnotes)|openpilot available[<sup>1,7</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Subaru A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Subaru XV 2020-21">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|
||||
|Škoda|Fabia 2022-23[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Fabia 2022-23">Buy Here</a></sub></details>[<sup>16</sup>](#footnotes)|||
|
||||
|Škoda|Kamiq 2021-23[<sup>12,14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Kamiq 2021-23">Buy Here</a></sub></details>[<sup>16</sup>](#footnotes)|||
|
||||
|Škoda[<sup>11</sup>](#footnotes)|Karoq 2019-23[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Karoq 2019-23">Buy Here</a></sub></details>|||
|
||||
|Škoda[<sup>11</sup>](#footnotes)|Kodiaq 2017-23[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Kodiaq 2017-23">Buy Here</a></sub></details>|||
|
||||
|Škoda[<sup>11</sup>](#footnotes)|Octavia 2015-19[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Octavia 2015-19">Buy Here</a></sub></details>|||
|
||||
|Škoda[<sup>11</sup>](#footnotes)|Octavia RS 2016[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Octavia RS 2016">Buy Here</a></sub></details>|||
|
||||
|Škoda[<sup>11</sup>](#footnotes)|Octavia Scout 2017-19[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Octavia Scout 2017-19">Buy Here</a></sub></details>|||
|
||||
|Škoda|Scala 2020-23[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Scala 2020-23">Buy Here</a></sub></details>[<sup>16</sup>](#footnotes)|||
|
||||
|Škoda[<sup>11</sup>](#footnotes)|Superb 2015-22[<sup>14</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Superb 2015-22">Buy Here</a></sub></details>|||
|
||||
|Škoda|Fabia 2022-23[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Fabia 2022-23">Buy Here</a></sub></details>[<sup>15</sup>](#footnotes)|||
|
||||
|Škoda|Kamiq 2021-23[<sup>11,13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Kamiq 2021-23">Buy Here</a></sub></details>[<sup>15</sup>](#footnotes)|||
|
||||
|Škoda|Karoq 2019-23[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Karoq 2019-23">Buy Here</a></sub></details>|||
|
||||
|Škoda|Kodiaq 2017-23[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Kodiaq 2017-23">Buy Here</a></sub></details>|||
|
||||
|Škoda|Octavia 2015-19[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Octavia 2015-19">Buy Here</a></sub></details>|||
|
||||
|Škoda|Octavia RS 2016[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Octavia RS 2016">Buy Here</a></sub></details>|||
|
||||
|Škoda|Octavia Scout 2017-19[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Octavia Scout 2017-19">Buy Here</a></sub></details>|||
|
||||
|Škoda|Scala 2020-23[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Scala 2020-23">Buy Here</a></sub></details>[<sup>15</sup>](#footnotes)|||
|
||||
|Škoda|Superb 2015-22[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Škoda Superb 2015-22">Buy Here</a></sub></details>|||
|
||||
|Tesla[<sup>9</sup>](#footnotes)|Model 3 (with HW3) 2019-23[<sup>8</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Tesla A connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model 3 (with HW3) 2019-23">Buy Here</a></sub></details>|||
|
||||
|Tesla[<sup>9</sup>](#footnotes)|Model 3 (with HW4) 2024-25[<sup>8</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Tesla B connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model 3 (with HW4) 2024-25">Buy Here</a></sub></details>|||
|
||||
|Tesla[<sup>9</sup>](#footnotes)|Model Y (with HW3) 2020-23[<sup>8</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Tesla A connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model Y (with HW3) 2020-23">Buy Here</a></sub></details>|||
|
||||
@@ -312,42 +308,42 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
|Toyota|RAV4 Hybrid 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Toyota A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Toyota RAV4 Hybrid 2022">Buy Here</a></sub></details>|<a href="https://youtu.be/U0nH9cnrFB0" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Toyota|RAV4 Hybrid 2023-25|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Toyota A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Toyota RAV4 Hybrid 2023-25">Buy Here</a></sub></details>|<a href="https://youtu.be/4eIsEq4L4Ng" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Toyota|Sienna 2018-20|All|Stock|19 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 Toyota A connector<br>- 1 comma four<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Toyota Sienna 2018-20">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=q1UPOo4Sh68" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Arteon 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon 2018-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Arteon eHybrid 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon eHybrid 2020-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Arteon R 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon R 2020-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Arteon Shooting Brake 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon Shooting Brake 2020-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Atlas 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Atlas 2018-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Atlas Cross Sport 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Atlas Cross Sport 2020-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|California 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen California 2021-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Caravelle 2020|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Caravelle 2020">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|CC 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen CC 2018-22">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Crafter 2017-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Crafter 2017-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|e-Crafter 2018-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen e-Crafter 2018-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|e-Golf 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen e-Golf 2014-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf Alltrack 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf Alltrack 2015-19">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf GTD 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf GTD 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf GTE 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf GTE 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf GTI 2015-21|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf GTI 2015-21">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf R 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf R 2015-19">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Golf SportsVan 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf SportsVan 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Grand California 2019-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Grand California 2019-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Jetta 2019-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Jetta 2019-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Jetta GLI 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Jetta GLI 2021-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Passat 2015-22[<sup>13</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Passat 2015-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Passat Alltrack 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Passat Alltrack 2015-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Passat GTE 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Passat GTE 2015-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Polo 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Polo 2018-23">Buy Here</a></sub></details>[<sup>16</sup>](#footnotes)|||
|
||||
|Volkswagen|Polo GTI 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Polo GTI 2018-23">Buy Here</a></sub></details>[<sup>16</sup>](#footnotes)|||
|
||||
|Volkswagen|T-Cross 2021|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen T-Cross 2021">Buy Here</a></sub></details>[<sup>16</sup>](#footnotes)|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|T-Roc 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen T-Roc 2018-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Taos 2022-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Taos 2022-24">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Teramont 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Teramont 2018-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Teramont Cross Sport 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Teramont Cross Sport 2021-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Teramont X 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Teramont X 2021-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Tiguan 2018-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Tiguan 2018-24">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Tiguan eHybrid 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Tiguan eHybrid 2021-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen[<sup>11</sup>](#footnotes)|Touran 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,15</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Touran 2016-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Arteon 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon 2018-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|Arteon eHybrid 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon eHybrid 2020-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|Arteon R 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon R 2020-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|Arteon Shooting Brake 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Arteon Shooting Brake 2020-23">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|Atlas 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Atlas 2018-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Atlas Cross Sport 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Atlas Cross Sport 2020-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|California 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen California 2021-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Caravelle 2020|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Caravelle 2020">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|CC 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen CC 2018-22">Buy Here</a></sub></details>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|Crafter 2017-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Crafter 2017-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|e-Crafter 2018-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen e-Crafter 2018-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|e-Golf 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen e-Golf 2014-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf Alltrack 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf Alltrack 2015-19">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf GTD 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf GTD 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf GTE 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf GTE 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf GTI 2015-21|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf GTI 2015-21">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf R 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf R 2015-19">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Golf SportsVan 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Golf SportsVan 2015-20">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Grand California 2019-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Grand California 2019-24">Buy Here</a></sub></details>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|
||||
|Volkswagen|Jetta 2019-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Jetta 2019-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Jetta GLI 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Jetta GLI 2021-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Passat 2015-22[<sup>12</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Passat 2015-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Passat Alltrack 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Passat Alltrack 2015-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Passat GTE 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Passat GTE 2015-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Polo 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Polo 2018-23">Buy Here</a></sub></details>[<sup>15</sup>](#footnotes)|||
|
||||
|Volkswagen|Polo GTI 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Polo GTI 2018-23">Buy Here</a></sub></details>[<sup>15</sup>](#footnotes)|||
|
||||
|Volkswagen|T-Cross 2021|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen T-Cross 2021">Buy Here</a></sub></details>[<sup>15</sup>](#footnotes)|||
|
||||
|Volkswagen|T-Roc 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen T-Roc 2018-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Taos 2022-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Taos 2022-24">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Teramont 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Teramont 2018-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Teramont Cross Sport 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Teramont Cross Sport 2021-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Teramont X 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Teramont X 2021-22">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Tiguan 2018-24|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Tiguan 2018-24">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Tiguan eHybrid 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Tiguan eHybrid 2021-23">Buy Here</a></sub></details>|||
|
||||
|Volkswagen|Touran 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,14</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<details><summary>Parts</summary><sub>- 1 OBD-C cable (2 ft)<br>- 1 VW J533 connector<br>- 1 comma four<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br><a href="https://comma.ai/shop/comma-3x?harness=Volkswagen Touran 2016-23">Buy Here</a></sub></details>|||
|
||||
|
||||
### Footnotes
|
||||
<sup>1</sup>openpilot Longitudinal Control (Alpha) is available behind a toggle; the toggle is only available in non-release branches such as `nightly-dev`. <br />
|
||||
@@ -360,12 +356,11 @@ A supported vehicle is one that just works when you install a comma device. All
|
||||
<sup>8</sup>Some 2023 model years have HW4. To check which hardware type your vehicle has, look for <b>Autopilot computer</b> under <b>Software -> Additional Vehicle Information</b> on your vehicle's touchscreen. See <a href="https://www.notateslaapp.com/news/2173/how-to-check-if-your-tesla-has-hardware-4-ai4-or-hardware-3">this page</a> for more information. <br />
|
||||
<sup>9</sup>See more setup details for <a href="https://github.com/commaai/openpilot/wiki/tesla" target="_blank">Tesla</a>. <br />
|
||||
<sup>10</sup>openpilot operates above 28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
|
||||
<sup>11</sup>The J533 harness plugs in at the CAN gateway under the dashboard, just above the steering column. More information can be found at <a href="https://docs.howtocomma.com/docs/j533-harness-install" target="_blank">this guide</a>. <br />
|
||||
<sup>12</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
|
||||
<sup>13</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
|
||||
<sup>14</sup>Some Škoda vehicles are equipped with heated windshields, which are known to block GPS signal needed for some comma four functionality. <br />
|
||||
<sup>15</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
|
||||
<sup>16</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
|
||||
<sup>11</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
|
||||
<sup>12</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
|
||||
<sup>13</sup>Some Škoda vehicles are equipped with heated windshields, which are known to block GPS signal needed for some comma four functionality. <br />
|
||||
<sup>14</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
|
||||
<sup>15</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
|
||||
|
||||
## Community Maintained Cars
|
||||
Although they're not upstream, the community has openpilot running on other makes and models. See the 'Community Supported Models' section of each make [on our wiki](https://wiki.comma.ai/).
|
||||
|
||||
@@ -39,7 +39,7 @@ All of these are examples of good PRs:
|
||||
### First contribution
|
||||
|
||||
[Projects / openpilot bounties](https://github.com/orgs/commaai/projects/26/views/1?pane=info) is the best place to get started and goes in-depth on what's expected when working on a bounty.
|
||||
There are a lot of bounties that don't require a comma four or a car.
|
||||
There are a lot of bounties that don't require a comma 3X or a car.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
* **segment**: routes are split into one minute chunks called segments.
|
||||
* **comma connect**: the web viewer for all your routes; check it out at [connect.comma.ai](https://connect.comma.ai).
|
||||
* **panda**: this is the secondary processor on the device that implements the functional safety and directly talks to the car over CAN. See the [panda repo](https://github.com/commaai/panda).
|
||||
* **comma four**: the latest hardware by comma.ai for running openpilot. more info at [comma.ai/shop/comma-four](https://www.comma.ai/shop/comma-four).
|
||||
* **comma 3X**: the latest hardware by comma.ai for running openpilot. more info at [comma.ai/shop](https://comma.ai/shop).
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
## How do I use it?
|
||||
|
||||
openpilot is designed to be used on the comma four.
|
||||
openpilot is designed to be used on the comma 3X.
|
||||
|
||||
## How does it work?
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# connect to a comma four
|
||||
# connect to a comma 3X
|
||||
|
||||
A comma four is a normal [Linux](https://github.com/commaai/agnos-builder) computer that exposes [SSH](https://wiki.archlinux.org/title/Secure_Shell) and a [serial console](https://wiki.archlinux.org/title/Working_with_the_serial_console).
|
||||
A comma 3X is a normal [Linux](https://github.com/commaai/agnos-builder) computer that exposes [SSH](https://wiki.archlinux.org/title/Secure_Shell) and a [serial console](https://wiki.archlinux.org/title/Working_with_the_serial_console).
|
||||
|
||||
## Serial Console
|
||||
|
||||
On both the comma three and comma four, the serial console is accessible from the main OBD-C port.
|
||||
Connect the comma four to your computer with a normal USB C cable, or use a [comma serial](https://comma.ai/shop/comma-serial) for steady 12V power.
|
||||
On both the comma three and 3X, the serial console is accessible from the main OBD-C port.
|
||||
Connect the comma 3X to your computer with a normal USB C cable, or use a [comma serial](https://comma.ai/shop/comma-serial) for steady 12V power.
|
||||
|
||||
On the comma three, the serial console is exposed through a UART-to-USB chip, and `tools/scripts/serial.sh` can be used to connect.
|
||||
|
||||
On the comma four, the serial console is accessible through the [panda](https://github.com/commaai/panda) using the `panda/tests/som_debug.sh` script.
|
||||
On the comma 3X, the serial console is accessible through the [panda](https://github.com/commaai/panda) using the `panda/tests/som_debug.sh` script.
|
||||
|
||||
* Username: `comma`
|
||||
* Password: `comma`
|
||||
@@ -45,7 +45,7 @@ In order to use ADB on your device, you'll need to perform the following steps u
|
||||
* Here's an example command for connecting to your device using its tethered connection: `adb connect 192.168.43.1:5555`
|
||||
|
||||
> [!NOTE]
|
||||
> The default port for ADB is 5555 on the comma four.
|
||||
> The default port for ADB is 5555 on the comma 3X.
|
||||
|
||||
For more info on ADB, see the [Android Debug Bridge (ADB) documentation](https://developer.android.com/tools/adb).
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ Replaying is a critical tool for openpilot development and debugging.
|
||||
Just run `tools/replay/replay --demo`.
|
||||
|
||||
## Replaying CAN data
|
||||
*Hardware required: jungle and comma four*
|
||||
*Hardware required: jungle and comma 3X*
|
||||
|
||||
1. Connect your PC to a jungle.
|
||||
2.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
In 30 minutes, we'll get an openpilot development environment set up on your computer and make some changes to openpilot's UI.
|
||||
|
||||
And if you have a comma four, we'll deploy the change to your device for testing.
|
||||
And if you have a comma 3X, we'll deploy the change to your device for testing.
|
||||
|
||||
## 1. Set up your development environment
|
||||
|
||||
|
||||
3
docs_sp/assets/favicon.png
Normal file
3
docs_sp/assets/favicon.png
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f64cd24ccac9a73100f206909639424421db1fce74dc77c386cdeefa9d16df9c
|
||||
size 1959
|
||||
BIN
docs_sp/assets/logo.png
LFS
Normal file
BIN
docs_sp/assets/logo.png
LFS
Normal file
Binary file not shown.
27
docs_sp/community/contributing.md
Normal file
27
docs_sp/community/contributing.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Contributing
|
||||
---
|
||||
|
||||
# Contributing to sunnypilot
|
||||
|
||||
We welcome contributions from the community! Here's how you can help.
|
||||
|
||||
## Ways to Contribute
|
||||
|
||||
- **Report bugs** — See [Reporting a Bug](reporting-a-bug.md)
|
||||
- **Submit code** — Follow the [Workflow](workflow.md) guide
|
||||
- **Improve documentation** — Submit PRs to the `docs` branch
|
||||
- **Help others** — Join the [sunnypilot community forum](https://community.sunnypilot.ai)
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
Be respectful, constructive, and helpful. We're all here to make driving safer and more enjoyable.
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. Fork the [sunnypilot repository](https://github.com/sunnypilot/sunnypilot)
|
||||
2. Create a feature branch
|
||||
3. Make your changes
|
||||
4. Submit a pull request
|
||||
|
||||
See [Workflow](workflow.md) for detailed steps.
|
||||
12
docs_sp/community/index.md
Normal file
12
docs_sp/community/index.md
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Community
|
||||
---
|
||||
|
||||
# Community
|
||||
|
||||
Get involved with sunnypilot development and connect with other users.
|
||||
|
||||
- **[Contributing](contributing.md)** - How to contribute code, documentation, and translations
|
||||
- **[Workflow](workflow.md)** - Development workflow and branch strategy
|
||||
- **[Reporting a Bug](reporting-a-bug.md)** - How to file an effective bug report
|
||||
- **[Community Forum](https://community.sunnypilot.ai)** - Join the discussion
|
||||
69
docs_sp/community/reporting-a-bug.md
Normal file
69
docs_sp/community/reporting-a-bug.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: Reporting a Bug
|
||||
---
|
||||
|
||||
# Reporting a Bug
|
||||
|
||||
Help us improve sunnypilot by reporting issues you encounter.
|
||||
|
||||
## Before Reporting
|
||||
|
||||
!!! warning "Remove Customizations First"
|
||||
If you have any custom modifications (forks, patches, config tweaks), **remove them and reproduce the issue on an official sunnypilot branch** before reporting. This rules out your modifications as the cause and helps maintainers focus on real bugs.
|
||||
|
||||
1. **Upgrade** to the latest version — the bug may already be fixed
|
||||
2. **Remove customizations** — reproduce on a stock official branch
|
||||
3. **Search** [GitHub Issues](https://github.com/sunnypilot/sunnypilot/issues) and the [sunnypilot community forum](https://community.sunnypilot.ai) for known reports
|
||||
4. **Preserve the route** — upload raw logs via [Comma Connect](https://connect.comma.ai) and keep the route available
|
||||
|
||||
## What to Include
|
||||
|
||||
### Required Information
|
||||
|
||||
- **Dongle ID** — Your comma Dongle ID (found in **Settings** → **Device** or in Comma Connect)
|
||||
- **Route ID** — The route ID from Comma Connect for the drive where the issue occurred
|
||||
- **Device info** — Hardware model (C3, C3X, C4), software version, branch
|
||||
- **Vehicle info** — Make, model, year
|
||||
|
||||
### Bug Report Template
|
||||
|
||||
Use the following structure when filing your report:
|
||||
|
||||
!!! example "Bug Report Format"
|
||||
|
||||
**Title:** One-sentence summary of the issue
|
||||
|
||||
**Description:** 1-2 sentences providing additional context about the problem.
|
||||
|
||||
**Steps to Reproduce:**
|
||||
|
||||
1. Step one
|
||||
2. Step two
|
||||
3. Step three
|
||||
|
||||
**Expected behavior:** What should have happened
|
||||
|
||||
**Actual behavior:** What actually happened
|
||||
|
||||
**Related Links:** Route link, log files, screenshots, or references to related issues
|
||||
|
||||
## Pre-Submission Checklist
|
||||
|
||||
Before submitting, confirm the following:
|
||||
|
||||
- [ ] I am running the latest version of sunnypilot
|
||||
- [ ] I have removed all custom modifications and reproduced the issue on an official branch
|
||||
- [ ] I have searched existing issues and community channels for duplicates
|
||||
- [ ] I have preserved the route and uploaded raw logs via Comma Connect
|
||||
- [ ] I have included my comma Dongle ID
|
||||
- [ ] I have included the Route ID for the affected drive
|
||||
|
||||
## How to Report
|
||||
|
||||
1. Go to [GitHub Issues](https://github.com/sunnypilot/sunnypilot/issues/new)
|
||||
2. Use the bug report template
|
||||
3. Fill in all requested information using the format above
|
||||
4. Submit the issue
|
||||
|
||||
!!! tip
|
||||
The more detail you provide, the faster we can diagnose and fix the issue. Incomplete reports without Dongle IDs or route information may be closed.
|
||||
37
docs_sp/community/workflow.md
Normal file
37
docs_sp/community/workflow.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Workflow
|
||||
---
|
||||
|
||||
# Development Workflow
|
||||
|
||||
How to contribute code to sunnypilot.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Git installed
|
||||
- Python 3.12+
|
||||
- A GitHub account
|
||||
|
||||
## Steps
|
||||
|
||||
1. **Fork** the repository on GitHub
|
||||
2. **Clone** your fork locally
|
||||
3. **Create a branch** from the appropriate base branch
|
||||
4. **Make changes** and test locally
|
||||
5. **Push** your branch to your fork
|
||||
6. **Open a pull request** against the main repository
|
||||
|
||||
## Branch Naming
|
||||
|
||||
Use descriptive branch names:
|
||||
|
||||
- `feat/feature-name` — New features
|
||||
- `fix/bug-description` — Bug fixes
|
||||
- `docs/topic` — Documentation changes
|
||||
|
||||
## Pull Request Guidelines
|
||||
|
||||
- Keep PRs focused on a single change
|
||||
- Include a clear description of what and why
|
||||
- Reference any related issues
|
||||
- Ensure tests pass
|
||||
10
docs_sp/features/connected/index.md
Normal file
10
docs_sp/features/connected/index.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Connected Services
|
||||
---
|
||||
|
||||
# Connected Services
|
||||
|
||||
Cloud and map integrations that extend sunnypilot beyond the vehicle.
|
||||
|
||||
- [sunnylink](sunnylink.md) - settings backup/restore, sponsor tiers, GitHub account pairing, and remote device management
|
||||
- [OSM Maps](osm-maps.md) - OpenStreetMap data for speed limits, road names, and map-based driving features
|
||||
45
docs_sp/features/connected/osm-maps.md
Normal file
45
docs_sp/features/connected/osm-maps.md
Normal 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 Assist 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** → **OSM**
|
||||
|
||||
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 Assist](../cruise/speed-limit.md)** — Reads speed limits from map data
|
||||
- **[Smart Cruise Control — Map](../cruise/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 Settings](../../settings/osm.md) for all options and status information.
|
||||
67
docs_sp/features/connected/sunnylink.md
Normal file
67
docs_sp/features/connected/sunnylink.md
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: sunnylink
|
||||
---
|
||||
|
||||
# sunnylink
|
||||
|
||||
## What It Does
|
||||
|
||||
sunnylink is sunnypilot's cloud backend integration system. It connects your device to the sunnypilot cloud infrastructure, enabling settings backup and restore, sponsor benefits, remote device management, and optional driving data uploads.
|
||||
|
||||
## Key Features
|
||||
|
||||
### Settings Backup & Restore
|
||||
|
||||
Securely back up your device configuration to the cloud and restore it on the same or a different device.
|
||||
|
||||
- **Backup** compresses and encrypts all your sunnypilot settings using AES-256-CBC encryption derived from your device's unique RSA key
|
||||
- **Restore** downloads and decrypts your backup, applying only recognized sunnypilot parameters
|
||||
- Progress is displayed in real-time (0-100%) during both operations
|
||||
- Backups include all sunnypilot-specific parameters (toggles, tuning values, preferences)
|
||||
|
||||
!!! note
|
||||
Backups are device-key encrypted. A backup created on one device can only be restored to the same device or by using the same device keys.
|
||||
|
||||
### Sponsor Tiers
|
||||
|
||||
sunnylink has a sponsorship system with multiple tiers:
|
||||
|
||||
| Tier | Color |
|
||||
|------|-------|
|
||||
| Guardian | Gold |
|
||||
| Benefactor | Green |
|
||||
| Contributor | Steel Blue |
|
||||
| Supporter | Purple |
|
||||
| Free / Novice | Default |
|
||||
|
||||
Sponsor status is displayed in the sunnylink settings panel. Higher tiers may unlock additional features (such as the infrastructure uploader).
|
||||
|
||||
### GitHub Account Pairing
|
||||
|
||||
Link your GitHub account to your device for sponsor verification and identity management. The pairing status is displayed in the sunnylink settings panel as "Paired" or "Not Paired".
|
||||
|
||||
### Data Upload (Infrastructure Test)
|
||||
|
||||
When enabled, sunnylink can upload driving logs and camera data to sunnypilot's cloud infrastructure. This feature prioritizes crash and boot logs, respects metered connections (skips video on cellular), and uses signed S3 URLs for secure uploads.
|
||||
|
||||
!!! warning
|
||||
The uploader is currently an infrastructure test feature available to high-tier sponsors only. It provides no direct user benefit at this time.
|
||||
|
||||
### Remote Device Management
|
||||
|
||||
sunnylink maintains a persistent WebSocket connection to the backend, enabling:
|
||||
|
||||
- Remote parameter viewing and modification
|
||||
- Log upload control
|
||||
- Local port proxying for SSH-like access
|
||||
- Queued message processing
|
||||
|
||||
## How to Configure
|
||||
|
||||
**Settings** → **sunnylink**
|
||||
|
||||
sunnylink requires explicit user consent before activation. On first enable, a consent dialog explains what data is collected and how it is used.
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [sunnylink Settings](../../settings/sunnylink.md) for all configuration options.
|
||||
53
docs_sp/features/cruise/alpha-longitudinal.md
Normal file
53
docs_sp/features/cruise/alpha-longitudinal.md
Normal file
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: Alpha Longitudinal
|
||||
---
|
||||
|
||||
# Alpha Longitudinal
|
||||
|
||||
## What It Does
|
||||
|
||||
Alpha Longitudinal provides experimental longitudinal (speed and acceleration) control for vehicles that are openpilot-compatible but do not have official sunnypilot longitudinal support. This enables throttle and brake control on cars that would otherwise be limited to lateral (steering) assistance only.
|
||||
|
||||
For officially supported vehicles, sunnypilot provides refined longitudinal tuning tailored to each platform. Alpha Longitudinal extends this capability to additional vehicles using a more generalized approach, allowing drivers of these cars to experience full ACC-like functionality through sunnypilot.
|
||||
|
||||
## How It Works
|
||||
|
||||
Alpha Longitudinal uses the vehicle's existing communication interfaces to send throttle and brake commands, bypassing the need for the vehicle's stock cruise control system. The system:
|
||||
|
||||
- Reads vehicle speed, pedal position, and other sensor data through the car's CAN bus
|
||||
- Calculates desired acceleration based on the driving model's output
|
||||
- Sends throttle and brake commands directly to the vehicle's powertrain controllers
|
||||
- Sets `pcmCruise=False`, meaning sunnypilot takes full control of longitudinal behavior instead of relying on the vehicle's built-in cruise control module
|
||||
|
||||
Because this operates outside the vehicle manufacturer's intended cruise control pathway, the tuning is less refined than on officially supported platforms.
|
||||
|
||||
!!! danger "AEB Is Disabled"
|
||||
Enabling Alpha Longitudinal **disables your vehicle's Automatic Emergency Braking (AEB)**. This is a significant safety trade-off. Without AEB, the vehicle will not automatically apply emergency braking in imminent collision scenarios. Drive with extra caution and maintain safe following distances at all times.
|
||||
|
||||
## Requirements
|
||||
|
||||
!!! info "Requirements"
|
||||
- Vehicle must be openpilot-compatible (listed on the [comma.ai vehicle compatibility list](https://comma.ai/vehicles))
|
||||
- Vehicle does not have official sunnypilot longitudinal support
|
||||
- Vehicle must report `CP.alphaLongitudinalAvailable = True` — availability is determined per vehicle in the car interface code
|
||||
- Feature is experimental and under active development
|
||||
|
||||
!!! warning "Development Branches Only"
|
||||
Alpha Longitudinal is flagged as `DEVELOPMENT_ONLY`. It is **only available on development and staging branches**, not on release branches. This is intentional — the feature is not considered stable enough for general release.
|
||||
|
||||
!!! warning "Mutually Exclusive with ICBM"
|
||||
Alpha Longitudinal and [ICBM](icbm.md) cannot be active at the same time. Enabling Alpha Longitudinal disables ICBM, and vice versa. Alpha Longitudinal provides direct throttle/brake control, while ICBM works through the stock cruise control system — these two approaches are fundamentally incompatible.
|
||||
|
||||
!!! warning "Alpha Quality Software"
|
||||
This feature is **alpha quality**. Expect rough edges, less smooth acceleration and braking behavior, and less refined stop-and-go performance compared to officially supported vehicles. Longitudinal behavior may vary significantly between vehicle models and driving conditions.
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Developer** → **sunnypilot Longitudinal Control (Alpha)**
|
||||
|
||||
!!! note
|
||||
This toggle only appears on development branches and only for vehicles where `alphaLongitudinalAvailable` is `True`.
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Cruise Control Settings](../../settings/cruise/index.md) for configuration details.
|
||||
28
docs_sp/features/cruise/custom-acc-increments.md
Normal file
28
docs_sp/features/cruise/custom-acc-increments.md
Normal 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 (1–10 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** → **Cruise** → **Custom ACC Increments**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Cruise Control Settings](../../settings/cruise/index.md) for all increment options.
|
||||
61
docs_sp/features/cruise/dynamic-experimental-control.md
Normal file
61
docs_sp/features/cruise/dynamic-experimental-control.md
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
title: Dynamic Experimental Control
|
||||
---
|
||||
|
||||
# Dynamic Experimental Control (DEC)
|
||||
|
||||
## What It Does
|
||||
|
||||
DEC automatically switches between openpilot's two longitudinal modes based on real-time road conditions. Instead of manually toggling between modes, the system dynamically selects the most appropriate mode for the current situation.
|
||||
|
||||
To understand DEC, it helps to know the two driving modes it switches between:
|
||||
|
||||
| Mode | Internal Name | Description |
|
||||
|------|---------------|-------------|
|
||||
| **Chill / Standard** | `acc` | The default openpilot driving mode. Follows the lead car and stays in lane at a steady speed. Best suited for highway and open-road driving where stops and complex maneuvers are rare. |
|
||||
| **Experimental** | `blended` | An enhanced mode that uses the end-to-end (E2E) driving model. Can handle stops at traffic lights and stop signs, navigate turns, and respond to more complex urban scenarios. Designed for city driving. |
|
||||
|
||||
!!! note "DEC is a switcher, not a mode"
|
||||
DEC is not a third driving mode — it is a dynamic switcher that automatically selects between `acc` (Chill/Standard) and `blended` (Experimental) in real time based on road conditions.
|
||||
|
||||
## How It Works
|
||||
|
||||
DEC uses a confidence-based switching system with specific probability thresholds and hysteresis to prevent rapid mode toggling:
|
||||
|
||||
### Detection Signals
|
||||
|
||||
| Signal | Threshold | Effect |
|
||||
|--------|-----------|--------|
|
||||
| **Lead vehicle probability** | ≥ 0.45 | Favors `acc` mode (standard following) |
|
||||
| **Slow-down probability** | ≥ 0.3 | Favors `blended` mode (E2E for stops/turns) |
|
||||
| **Stop sign / traffic light** | Detected by vision model | Triggers switch to `blended` mode |
|
||||
| **Turn detection** | Upcoming turns | Triggers switch to `blended` mode |
|
||||
| **Current speed** | Speed-dependent | Lower speeds favor `blended` mode |
|
||||
|
||||
### Switching Logic
|
||||
|
||||
- DEC uses **Kalman filters** to smooth probability signals and reduce noise
|
||||
- A **minimum hold time of 10 frames** prevents rapid oscillation between modes
|
||||
- A **confidence threshold of 0.6** must be met before switching to a new mode
|
||||
- The system continuously evaluates conditions and transitions seamlessly without driver input
|
||||
|
||||
Based on these signals, DEC switches between:
|
||||
|
||||
| Mode | When DEC Activates It |
|
||||
|------|----------|
|
||||
| **Chill / Standard** (`acc`) | Highway driving with steady speeds, lead vehicle following, clear lanes, and no upcoming stops or complex intersections |
|
||||
| **Experimental** (`blended`) | City driving with stops, turns, traffic lights, and complex intersections where the vehicle needs to slow down or stop |
|
||||
|
||||
## Requirements
|
||||
|
||||
!!! info "Requirements"
|
||||
- Longitudinal control must be available
|
||||
- Device must be offroad to enable/disable
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Cruise** → **Dynamic Experimental Control**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Cruise Control Settings](../../settings/cruise/index.md) for configuration details.
|
||||
77
docs_sp/features/cruise/icbm.md
Normal file
77
docs_sp/features/cruise/icbm.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
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 Assist 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.
|
||||
|
||||
## When to Use
|
||||
|
||||
ICBM is designed specifically for vehicles where sunnypilot cannot directly control the throttle and brakes (i.e., no native longitudinal control). On these vehicles, the stock cruise control system still handles all actual acceleration and deceleration. ICBM bridges the gap by intelligently managing cruise button commands so you can still benefit from sunnypilot's speed planning features.
|
||||
|
||||
## 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. ICBM simulates the corresponding cruise button presses over the CAN bus, sending the adjusted command to the vehicle's stock cruise control system
|
||||
|
||||
This happens transparently — from your perspective, the buttons work normally but with smarter behavior. Under the hood, ICBM is communicating with the vehicle's cruise control module by simulating physical button presses on the CAN bus, which is why it works even on vehicles without direct throttle/brake control.
|
||||
|
||||
### State Machine
|
||||
|
||||
ICBM operates through a 5-state machine:
|
||||
|
||||
| State | Description |
|
||||
|-------|-------------|
|
||||
| **Inactive** | ICBM is idle — no button simulation is in progress |
|
||||
| **Pre-Active** | A speed change has been requested; ICBM is preparing to simulate button presses |
|
||||
| **Increasing** | ICBM is sending "speed up" button presses to reach the target speed |
|
||||
| **Decreasing** | ICBM is sending "speed down" button presses to reach the target speed |
|
||||
| **Holding** | Target speed has been reached; ICBM is holding the current setting |
|
||||
|
||||
!!! tip "Safety"
|
||||
ICBM preserves all of your vehicle's stock safety systems. Forward Collision Avoidance (FCA), Automatic Emergency Braking (AEB), and other factory safety features remain fully active and unaffected, since the vehicle's own cruise control system is still performing the actual speed control. ICBM operates purely at the CAN bus button simulation level and does not interact with FCA or AEB message pathways.
|
||||
|
||||
## Supported Vehicles
|
||||
|
||||
ICBM support varies by vehicle brand. The feature toggle only appears in settings if your vehicle is supported.
|
||||
|
||||
| Brand | Notes |
|
||||
|-------|-------|
|
||||
| **Hyundai / Kia / Genesis** | Supported on most models with stock cruise control |
|
||||
| **Honda / Acura** | Supported on compatible models |
|
||||
| **Chrysler / Dodge / Jeep / RAM** | Supported on compatible models |
|
||||
| **Mazda** | Supported on compatible models |
|
||||
|
||||
!!! info "Not Listed?"
|
||||
If your brand or model is not listed above and the ICBM toggle does not appear in your settings, your vehicle is not currently supported. Support depends on the vehicle's CAN bus protocol and button command structure.
|
||||
|
||||
## 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
|
||||
- **Mutually exclusive with [Alpha Longitudinal](alpha-longitudinal.md)** — only one can be active at a time
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Cruise** → **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 Assist](speed-limit.md)** — Automatic speed limit matching
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Cruise Control Settings](../../settings/cruise/index.md) for all available options.
|
||||
15
docs_sp/features/cruise/index.md
Normal file
15
docs_sp/features/cruise/index.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Cruise Control
|
||||
---
|
||||
|
||||
# Cruise Control
|
||||
|
||||
Enhancements to adaptive cruise control that give you finer control over speed management, turn handling, and speed limit compliance.
|
||||
|
||||
- [Intelligent Cruise Button Management](icbm.md) - intercepts steering wheel button presses for smarter speed adjustments
|
||||
- [Smart Cruise Control - Vision](scc-v.md) - uses vision predictions to slow for curves
|
||||
- [Smart Cruise Control - Map](scc-m.md) - uses map data to anticipate speed changes
|
||||
- [Custom ACC Increments](custom-acc-increments.md) - set custom speed change amounts for short and long button presses
|
||||
- [Dynamic Experimental Control](dynamic-experimental-control.md) - automatically switches between driving modes based on conditions
|
||||
- [Speed Limit Assist](speed-limit.md) - adjusts cruise speed to match posted limits
|
||||
- [Alpha Longitudinal](alpha-longitudinal.md) - experimental longitudinal control for select vehicles
|
||||
30
docs_sp/features/cruise/scc-m.md
Normal file
30
docs_sp/features/cruise/scc-m.md
Normal 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](../connected/osm-maps.md) must be configured and downloaded
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Cruise** → **Smart Cruise Control — Map**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Cruise Control Settings](../../settings/cruise/index.md) for configuration details.
|
||||
28
docs_sp/features/cruise/scc-v.md
Normal file
28
docs_sp/features/cruise/scc-v.md
Normal 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** → **Cruise** → **Smart Cruise Control — Vision**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Cruise Control Settings](../../settings/cruise/index.md) for configuration details.
|
||||
90
docs_sp/features/cruise/speed-limit.md
Normal file
90
docs_sp/features/cruise/speed-limit.md
Normal file
@@ -0,0 +1,90 @@
|
||||
---
|
||||
title: Speed Limit Assist
|
||||
---
|
||||
|
||||
# Speed Limit Assist
|
||||
|
||||
## What It Does
|
||||
|
||||
Speed Limit Assist detects the current speed limit 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 two sources (see below)
|
||||
2. A configurable **Speed Limit Policy** determines how the sources are combined when both are available
|
||||
3. Based on your chosen mode, the system displays, warns, or actively adjusts your set speed
|
||||
4. An optional offset (fixed or percentage) lets you cruise slightly above or below the limit
|
||||
|
||||
## Speed Limit Sources
|
||||
|
||||
Speed Limit Assist pulls speed limit data from **two sources**:
|
||||
|
||||
| Source | Description |
|
||||
|--------|-------------|
|
||||
| **Car State** | Speed limit information provided by the vehicle's built-in sensors (e.g., Traffic Sign Recognition cameras). Availability depends on the vehicle. |
|
||||
| **Map Data** | Speed limits from downloaded OpenStreetMap data. Requires [OSM Maps](../connected/osm-maps.md) to be configured and downloaded. |
|
||||
|
||||
### Speed Limit Policy
|
||||
|
||||
When both sources are available and report different values, the **Speed Limit Policy** setting determines which source is used:
|
||||
|
||||
| Policy | Behavior |
|
||||
|--------|----------|
|
||||
| **Car State Only** | Uses only the vehicle's built-in speed limit data; ignores map data |
|
||||
| **Map Data Only** | Uses only OSM map speed limit data; ignores car state |
|
||||
| **Car State Priority** | Uses car state data when available; falls back to map data |
|
||||
| **Map Data Priority** | Uses map data when available; falls back to car state |
|
||||
| **Combined** | Uses the highest-confidence value from either source |
|
||||
|
||||
## Operating Modes
|
||||
|
||||
| Mode | Behavior |
|
||||
|------|----------|
|
||||
| **Off** | Speed limit data is not used |
|
||||
| **Information** | 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
|
||||
|
||||
## Confirmation Modes
|
||||
|
||||
When the detected speed limit changes, you can choose how the system responds:
|
||||
|
||||
| Mode | Behavior |
|
||||
|------|----------|
|
||||
| **Auto** | The cruise set speed adjusts automatically when a new speed limit is detected — no driver input required |
|
||||
| **User Confirm** | The system displays the new speed limit and waits for the driver to confirm before adjusting the set speed |
|
||||
|
||||
## Driver Notifications
|
||||
|
||||
Speed Limit Assist provides visual indicators on the driving HUD:
|
||||
|
||||
- The currently detected speed limit is shown on the display
|
||||
- When a speed limit change is detected, a notification appears showing the new limit
|
||||
- In Warning and Assist modes, alerts notify you when you are exceeding the posted limit
|
||||
|
||||
## Requirements
|
||||
|
||||
!!! info "Requirements"
|
||||
- Longitudinal control must be available, **or** [ICBM](icbm.md) must be enabled
|
||||
- For map-based limits: [OSM Maps](../connected/osm-maps.md) must be configured and downloaded
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Cruise** → **Speed Limit Assist**
|
||||
|
||||
## Vehicle Restrictions
|
||||
|
||||
!!! warning "Vehicle Restrictions"
|
||||
- **Tesla:** Assist mode is disabled on release branches (Information and Warning still work)
|
||||
- **Rivian:** Assist mode is always disabled
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Speed Limit Settings](../../settings/cruise/speed-limit/index.md) for all configuration options.
|
||||
34
docs_sp/features/display/hud-visuals.md
Normal file
34
docs_sp/features/display/hud-visuals.md
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
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 |
|
||||
| **Rocket Fuel** | Real-time acceleration/deceleration bar on the left side of the screen |
|
||||
| **Rainbow Mode** | Animated rainbow-gradient overlay on the model driving path |
|
||||
| **Chevron Info** | Distance, speed, or time gap to lead vehicle |
|
||||
| **Developer UI** | Debug information for diagnostics |
|
||||
|
||||
## How to Configure
|
||||
|
||||
**Settings** → **Visuals**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Visuals Settings](../../settings/visuals.md) for all toggle options and multi-button selectors.
|
||||
10
docs_sp/features/display/index.md
Normal file
10
docs_sp/features/display/index.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Display & Visuals
|
||||
---
|
||||
|
||||
# Display & Visuals
|
||||
|
||||
Customizations for the onroad driving screen, HUD overlays, and visual indicators.
|
||||
|
||||
- [Onroad Display](onroad-display.md) - screen brightness, timeout, and layout controls
|
||||
- [HUD & Visuals](hud-visuals.md) - toggles for visual indicators like blind spot warnings, road names, and traffic light alerts
|
||||
23
docs_sp/features/display/onroad-display.md
Normal file
23
docs_sp/features/display/onroad-display.md
Normal 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** → **Display**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Display Settings](../../settings/display.md) for all configuration options.
|
||||
27
docs_sp/features/index.md
Normal file
27
docs_sp/features/index.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Features
|
||||
---
|
||||
|
||||
# Features
|
||||
|
||||
sunnypilot extends openpilot with a comprehensive set of driving assist features organized into the following categories.
|
||||
|
||||
## Cruise Control
|
||||
|
||||
Adaptive cruise control enhancements including intelligent button management, vision and map-based smart cruise, custom ACC increments, dynamic experimental control, speed limit assist, and alpha longitudinal control.
|
||||
|
||||
## Steering
|
||||
|
||||
Lateral control features including the Modular Assistive Driving System (MADS), neural network lateral control (NNLC), automatic lane changes, torque-based steering control, and blinker pause lateral for temporarily pausing steering during turn signal activation.
|
||||
|
||||
## Display & Visuals
|
||||
|
||||
Onroad display customizations and HUD visual enhancements for real-time driving information.
|
||||
|
||||
## Models & AI
|
||||
|
||||
Driving model selection and AI-related configuration options.
|
||||
|
||||
## Connected Services
|
||||
|
||||
Cloud and map integrations including sunnylink (settings backup/restore, sponsor tiers, GitHub account pairing, remote device management) and OpenStreetMap (speed limit data and map-based features).
|
||||
30
docs_sp/features/models.md
Normal file
30
docs_sp/features/models.md
Normal 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 (Live Lateral Delay Compensation)** — Dynamically measures and compensates for steering actuator delay using real-time signal correlation
|
||||
|
||||
## 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 (500–2000)
|
||||
- **LAGD Delay** — Fixed steering delay offset in milliseconds when LAGD is disabled (5–50)
|
||||
|
||||
## How to Configure
|
||||
|
||||
**Settings** → **Models**
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Models Settings](../settings/models.md) for all configuration options.
|
||||
59
docs_sp/features/steering/auto-lane-change.md
Normal file
59
docs_sp/features/steering/auto-lane-change.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
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. The system verifies that clear lane markings are detected by the vision system in the target lane — a lane change will not execute without visible lane lines
|
||||
3. The driver monitoring system checks that the driver is attentive before proceeding
|
||||
4. Depending on your setting:
|
||||
- **Nudge:** Give a light steering nudge to confirm the lane change
|
||||
- **Nudgeless:** The lane change begins immediately
|
||||
- **Timed (0.5s–3s):** The lane change begins after the configured delay
|
||||
5. If BSM Delay is enabled and a vehicle is detected in your blind spot, the lane change is delayed by an additional 1 second beyond the configured timer
|
||||
|
||||
## Requirements
|
||||
|
||||
!!! info "Requirements"
|
||||
- Lateral control must be active (sunnypilot must be engaged)
|
||||
- Vehicle must be traveling above a minimum speed threshold
|
||||
- Clear lane markings must be visible to the vision system
|
||||
- Driver must be attentive (monitored by the driver monitoring system)
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Steering** → **Customize Lane Change**
|
||||
|
||||
## Modes
|
||||
|
||||
| Mode | Value | Behavior |
|
||||
|------|-------|----------|
|
||||
| **Off** | -1 | Auto lane change is disabled |
|
||||
| **Nudge** | 0 | Requires a light steering nudge to confirm the lane change |
|
||||
| **Nudgeless** | 1 | Lane change begins as soon as you signal |
|
||||
| **0.5 second** | 2 | Lane change begins after 0.5s delay |
|
||||
| **1 second** | 3 | Lane change begins after 1s delay |
|
||||
| **2 seconds** | 4 | Lane change begins after 2s delay |
|
||||
| **3 seconds** | 5 | Lane change begins after 3s 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. When a vehicle is detected in the blind spot, the lane change is delayed by an additional **1 second** on top of the configured timer 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/steering/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.
|
||||
36
docs_sp/features/steering/blinker-pause.md
Normal file
36
docs_sp/features/steering/blinker-pause.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: Blinker Pause Lateral Control
|
||||
---
|
||||
|
||||
# Blinker Pause Lateral Control
|
||||
|
||||
## What It Does
|
||||
|
||||
Temporarily pauses lateral (steering) control when you activate a turn signal. This gives you full manual steering control during the blinker activation, useful for situations where you want to make a manual lane adjustment or turn without the system fighting your steering input.
|
||||
|
||||
## How It Works
|
||||
|
||||
1. You activate a turn signal (left or right blinker)
|
||||
2. If your speed is **below** the configured speed threshold, sunnypilot pauses lateral control
|
||||
3. Lateral control stays paused while the blinker is active
|
||||
4. After the blinker is deactivated, lateral control re-engages after the configured delay
|
||||
|
||||
## Configuration Options
|
||||
|
||||
### Speed Threshold
|
||||
|
||||
The maximum speed at which Blinker Pause activates. Above this speed, lateral control remains active even with the blinker on (this allows Auto Lane Change to work at highway speeds).
|
||||
|
||||
### Re-Engage Delay
|
||||
|
||||
How long after the blinker is deactivated before lateral control re-engages. A short delay prevents abrupt steering corrections immediately after turning off the signal.
|
||||
|
||||
## How to Configure
|
||||
|
||||
**Settings** → **Steering**
|
||||
|
||||
Look for the Blinker Pause Lateral Control toggle and its sub-settings.
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [Steering Settings](../../settings/steering/index.md) for all configuration options.
|
||||
13
docs_sp/features/steering/index.md
Normal file
13
docs_sp/features/steering/index.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Steering
|
||||
---
|
||||
|
||||
# Steering
|
||||
|
||||
Lateral control features that govern how sunnypilot handles steering assistance, lane changes, and manual override behavior.
|
||||
|
||||
- [Modular Assistive Driving System (MADS)](mads.md) - decouples steering from cruise control for independent lateral assist
|
||||
- [Neural Network Lateral Control (NNLC)](nnlc.md) - uses a neural network for smoother steering
|
||||
- [Auto Lane Change](auto-lane-change.md) - automated lane changes triggered by the turn signal
|
||||
- [Torque Control](torque-control.md) - torque-based steering with tunable parameters
|
||||
- [Blinker Pause Lateral](blinker-pause.md) - temporarily pauses steering assist when the turn signal is active
|
||||
86
docs_sp/features/steering/mads.md
Normal file
86
docs_sp/features/steering/mads.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
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, Automatic Lane Centering (ALC) and Adaptive Cruise Control (ACC) can be engaged and disengaged independently. This is the core difference from standard openpilot, where both are always linked together.
|
||||
|
||||
- **Steering stays active** even when you cancel cruise control — ALC continues to provide lane centering while you control speed manually
|
||||
- **Independent engagement** — you can activate ALC without ACC, or both together, giving you flexible control over which assists are active
|
||||
- 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
|
||||
|
||||
### Engagement States
|
||||
|
||||
MADS has five internal states:
|
||||
|
||||
| State | Description |
|
||||
|-------|-------------|
|
||||
| **Disabled** | MADS is off — no steering assistance is provided |
|
||||
| **Enabled** | Steering assistance is fully engaged and actively providing lane centering |
|
||||
| **Paused** | Steering assistance is temporarily paused (e.g., due to braking, depending on your Steering Mode on Brake setting) but can resume without re-engaging |
|
||||
| **Soft Disabling** | The system is transitioning from enabled to disabled due to a safety condition (e.g., driver inattention alert escalation) |
|
||||
| **Overriding** | The driver is actively steering, temporarily overriding the system's lateral input. Steering assistance resumes when the driver releases the wheel |
|
||||
|
||||
### Steering Mode on Brake
|
||||
|
||||
This setting controls what happens to steering assistance when the brake pedal is pressed:
|
||||
|
||||
| Option | Value | Behavior |
|
||||
|--------|-------|----------|
|
||||
| **Remain Active** | 0 | Steering stays fully active while braking |
|
||||
| **Pause** | 1 | Steering pauses while braking, resumes on release |
|
||||
| **Disengage** | 2 | Steering fully disengages on brake — must re-engage manually |
|
||||
|
||||
## Requirements
|
||||
|
||||
!!! info "Requirements"
|
||||
- Supported on most vehicles with sunnypilot lateral control
|
||||
|
||||
## How to Enable
|
||||
|
||||
**Settings** → **Steering** → enable **MADS**
|
||||
|
||||
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 Brake** | What happens to steering when the brake is pressed (Remain Active / Pause / Disengage) |
|
||||
| **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 due to platform constraints (e.g., no vehicle bus access):
|
||||
|
||||
=== "Tesla (without vehicle bus)"
|
||||
- Main Cruise Allowed: forced OFF
|
||||
- Unified Engagement Mode: forced ON
|
||||
- Steering Mode on Brake: forced to **Disengage**
|
||||
|
||||
=== "Rivian"
|
||||
- Main Cruise Allowed: forced OFF
|
||||
- Unified Engagement Mode: forced ON
|
||||
- Steering Mode on Brake: forced to **Disengage**
|
||||
|
||||
!!! note "Why these restrictions?"
|
||||
Vehicles without a full vehicle bus connection (like Tesla without the vehicle bus harness and Rivian) cannot reliably detect certain driver inputs. To maintain safety, MADS defaults to the most conservative behavior on these platforms.
|
||||
|
||||
## Settings Reference
|
||||
|
||||
See [MADS Settings](../../settings/steering/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.
|
||||
58
docs_sp/features/steering/nnlc.md
Normal file
58
docs_sp/features/steering/nnlc.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
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.
|
||||
|
||||
!!! note "Evolution from NNFF"
|
||||
NNLC evolved from **Neural Network FeedForward (NNFF)**, an earlier approach that used a neural network as a feedforward component alongside traditional controllers. NNLC builds on this foundation by giving the neural network full lateral control authority, resulting in improved steering smoothness and adaptability.
|
||||
|
||||
!!! info "Vehicle-Specific Training Data"
|
||||
The neural network models are trained on real driving data collected from specific vehicles. Because each vehicle has unique steering characteristics, a dedicated model must be trained for each supported make/model. Over **70 vehicle models** currently have trained NNLC models available. If no model exists for your vehicle, the NNLC toggle will not appear in settings.
|
||||
|
||||
### Model Matching
|
||||
|
||||
When NNLC is enabled, the system matches your vehicle to the best available model using a 3-tier fallback:
|
||||
|
||||
| Tier | Match Criteria | Confidence | Description |
|
||||
|------|---------------|------------|-------------|
|
||||
| **1. Exact** | Fingerprint + firmware version | ≥ 0.99 | Best match — a model trained on your exact vehicle and firmware combination |
|
||||
| **2. Valid** | Fingerprint only | ≥ 0.9 | Good match — a model trained on your vehicle platform, regardless of firmware version |
|
||||
| **3. Substitute** | Substitute table lookup | Fallback | A model from a similar vehicle platform is used as a substitute (configured in `substitute.toml`) |
|
||||
|
||||
## Requirements
|
||||
|
||||
!!! info "Requirements"
|
||||
- Vehicle must not use angle-based steering (`steerControlType` must not be `angle`)
|
||||
- A trained NNLC model must be available for your specific vehicle
|
||||
- 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** → **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, or a trained model may not yet exist for your vehicle.
|
||||
|
||||
## 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/index.md) for configuration details.
|
||||
48
docs_sp/features/steering/torque-control.md
Normal file
48
docs_sp/features/steering/torque-control.md
Normal 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/index.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** → **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.01–5.00 (steering aggressiveness) |
|
||||
| **Friction** | 0.01–1.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/steering/torque.md) for all tuning parameters.
|
||||
10
docs_sp/getting-started/index.md
Normal file
10
docs_sp/getting-started/index.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Getting Started
|
||||
---
|
||||
|
||||
# Getting Started
|
||||
|
||||
New to sunnypilot? Start here to understand what sunnypilot is and whether it works with your vehicle.
|
||||
|
||||
- **[What is sunnypilot?](what-is-sunnypilot.md)** - Overview of the system, supported vehicles, and key capabilities
|
||||
- **[Use sunnypilot in a car](use-sunnypilot-in-a-car.md)** - Requirements and what to expect on your first drive
|
||||
42
docs_sp/getting-started/use-sunnypilot-in-a-car.md
Normal file
42
docs_sp/getting-started/use-sunnypilot-in-a-car.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: Use sunnypilot in a car
|
||||
---
|
||||
|
||||
# Use sunnypilot in a car
|
||||
|
||||
## What You Need
|
||||
|
||||
1. **A supported vehicle** — Check the compatibility list for your car's make, model, and year
|
||||
2. **A comma device** — comma 3X or compatible hardware
|
||||
3. **A vehicle harness** — Connects the device to your car's systems
|
||||
4. **An internet connection** — For initial setup and software updates
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. Mount the device on your windshield
|
||||
2. Connect the harness to your car
|
||||
3. Install sunnypilot using one of the setup methods:
|
||||
- [URL Method](../setup/url-method.md) — Easiest, recommended for most users
|
||||
- [SSH Method](../setup/ssh-method.md) — For advanced users
|
||||
|
||||
## First Drive
|
||||
|
||||
After installation:
|
||||
|
||||
1. Power on the device
|
||||
2. Wait for the system to calibrate (drive straight for a few minutes)
|
||||
3. Enable cruise control as you normally would
|
||||
4. The system will begin assisting with steering and speed control
|
||||
|
||||
!!! tip
|
||||
Give the system time to calibrate. Steering assistance improves after the first few minutes of straight driving.
|
||||
|
||||
## Configuring Settings
|
||||
|
||||
sunnypilot offers many configurable options. Access settings through the on-device interface:
|
||||
|
||||
- **Cruise Control** — Speed management, gap settings, and cruise behavior
|
||||
- **Steering** — Lane keeping, MADS, and steering tuning
|
||||
- **Display & Visuals** — Customize the on-screen display
|
||||
|
||||
See the [Settings Reference](../settings/cruise/index.md) for a complete guide to all options.
|
||||
31
docs_sp/getting-started/what-is-sunnypilot.md
Normal file
31
docs_sp/getting-started/what-is-sunnypilot.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: What is sunnypilot?
|
||||
---
|
||||
|
||||
# What is sunnypilot?
|
||||
|
||||
sunnypilot is an open-source driver assistance system that enhances your car's existing features. It provides adaptive cruise control, lane centering, and many additional driving assists — all configurable to your preferences.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Adaptive Cruise Control** — Automatically adjusts speed to maintain distance from the car ahead
|
||||
- **Lane Centering** — Keeps your car centered in the lane on highways and well-marked roads
|
||||
- **Modular Assistive Driving System (MADS)** — Decouple lateral and longitudinal controls for flexible driving
|
||||
- **Speed Limit Assist** — Automatically adjust speed based on map and sign data
|
||||
- **Neural Network Lateral Control** — AI-based steering for smoother lane keeping
|
||||
|
||||
## How It Works
|
||||
|
||||
sunnypilot runs on a compatible device mounted in your car. It connects to your vehicle through a supported harness and uses cameras, radar, and other sensors to assist with driving.
|
||||
|
||||
!!! warning "Safety First"
|
||||
sunnypilot is a **driver assistance** system, not a self-driving system. You must keep your hands on the wheel and eyes on the road at all times. See [Safety Information](../safety/safety.md) for details.
|
||||
|
||||
## Supported Vehicles
|
||||
|
||||
sunnypilot supports a wide range of vehicles. Check the [openpilot vehicle compatibility list](https://github.com/commaai/openpilot/blob/master/docs/CARS.md) for base compatibility, plus additional sunnypilot-specific enhancements for select brands.
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Use sunnypilot in a car](use-sunnypilot-in-a-car.md) — Overview of what you need
|
||||
- [Read before installing](../setup/read-before-installing.md) — Important pre-installation info
|
||||
10
docs_sp/how-to/index.md
Normal file
10
docs_sp/how-to/index.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: How-To Guides
|
||||
---
|
||||
|
||||
# How-To Guides
|
||||
|
||||
Step-by-step guides for common tasks.
|
||||
|
||||
- **[Share a Route](share-a-route.md)** - How to share driving routes with others for debugging or review
|
||||
- **[Preserve Local File Changes](preserve-local-changes.md)** - Keep your local modifications across software updates
|
||||
49
docs_sp/how-to/preserve-local-changes.md
Normal file
49
docs_sp/how-to/preserve-local-changes.md
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
title: Preserve Local Changes
|
||||
---
|
||||
|
||||
# Preserve Local File Changes on Your comma Device
|
||||
|
||||
## Overview
|
||||
|
||||
By default, the comma device automatically updates sunnypilot, which overwrites any local file modifications you have made. To keep your local changes across reboots, you must disable automatic updates **before** making modifications.
|
||||
|
||||
!!! warning "Complete These Steps First"
|
||||
Local modifications applied **before** completing the steps below will **not** be retained. The automatic update process will overwrite them on the next reboot. Complete all steps first, then make your changes.
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Enable Advanced Controls
|
||||
|
||||
Navigate to **Settings** → **Developer** → **Show Advanced Controls** and toggle it **ON**.
|
||||
|
||||
This reveals additional settings options that are hidden by default, including the update toggle.
|
||||
|
||||
### 2. Disable Updates
|
||||
|
||||
Navigate to **Settings** → **Software** → **Disable Updates** and toggle it **ON**.
|
||||
|
||||
This prevents the device from automatically pulling and applying updates from the remote branch.
|
||||
|
||||
!!! note "Offroad Only"
|
||||
The Disable Updates toggle can only be changed while the device is **offroad** (not actively driving). If you are in a drive, complete the drive first and return to the home screen before changing this setting.
|
||||
|
||||
### 3. Reboot the Device
|
||||
|
||||
Navigate to **Settings** → **Device** → **Reboot** to restart the device.
|
||||
|
||||
The reboot applies the settings change and ensures the update service is fully stopped. A confirmation dialog will appear before the reboot proceeds.
|
||||
|
||||
### 4. Verify
|
||||
|
||||
After the device restarts:
|
||||
|
||||
1. Confirm that your settings from steps 1 and 2 are still active
|
||||
2. Make your desired local file changes (via SSH or other methods)
|
||||
3. Reboot again to confirm your changes persist
|
||||
|
||||
!!! info "Automatic Updates Are Paused"
|
||||
With updates disabled, your device will **not** receive new sunnypilot releases automatically. You will need to re-enable updates manually when you want to update to a newer version. To re-enable, reverse step 2: **Settings** → **Software** → **Disable Updates** → **OFF**.
|
||||
|
||||
!!! tip "When to Use This"
|
||||
This is useful for testing custom parameter values, experimental configurations, or developer modifications that you want to persist across device reboots without being overwritten by the update system.
|
||||
58
docs_sp/how-to/share-a-route.md
Normal file
58
docs_sp/how-to/share-a-route.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: How to Share a Route
|
||||
---
|
||||
|
||||
# How to Share a Route
|
||||
|
||||
## Overview
|
||||
|
||||
Sharing driving routes is essential for debugging issues, getting support, and helping developers improve sunnypilot. Routes are shared through [comma Connect](https://connect.comma.ai), comma's web-based route management tool.
|
||||
|
||||
## Step 1: Prepare the Route
|
||||
|
||||
Before sharing, ensure the route data is fully uploaded and preserved.
|
||||
|
||||
### Upload Raw Logs
|
||||
|
||||
1. Go to [connect.comma.ai](https://connect.comma.ai)
|
||||
2. Select the route you want to share
|
||||
3. Open the **Files** tab
|
||||
4. Upload the raw logs for the route
|
||||
|
||||
!!! warning "Upload Before Sharing"
|
||||
Raw logs must be **fully uploaded** before they can be reviewed by others. If the logs are not uploaded, reviewers will not have access to the detailed data needed for debugging.
|
||||
|
||||
### Preserve the Route
|
||||
|
||||
Routes are automatically deleted after a retention period. To prevent this:
|
||||
|
||||
1. Select the route in comma Connect
|
||||
2. Click **More info**
|
||||
3. Toggle **Preserved** to **ON**
|
||||
|
||||
This ensures the route remains available for as long as you need it.
|
||||
|
||||
## Step 2: Choose Sharing Method
|
||||
|
||||
### Option A: Public Route (Recommended)
|
||||
|
||||
The simplest way to share a single route for support or debugging.
|
||||
|
||||
1. Select the route in comma Connect
|
||||
2. Toggle **Public access** to **ON**
|
||||
3. Copy the **Route ID** from the route details
|
||||
4. Share the Route ID in the support channel or forum thread
|
||||
|
||||
!!! info "Privacy"
|
||||
Making a route public means **anyone with the Route ID can access it**. Route data includes GPS coordinates and video footage. For privacy, start and end your recorded drives at public places such as parking lots or gas stations. Avoid starting or ending at your home, workplace, or other private locations.
|
||||
|
||||
### Option B: Device Sharing
|
||||
|
||||
Grants another user access to **all routes** on your device. Use this when ongoing collaboration is needed.
|
||||
|
||||
1. Rename your device with your vehicle's **Year/Make/Model** and your **username** (e.g., "2023 Hyundai Ioniq 6 - jasonwen")
|
||||
2. Go to device settings in comma Connect
|
||||
3. Share the device via the other user's email address
|
||||
|
||||
!!! tip "When to Use Device Sharing"
|
||||
Device sharing is best for long-term collaboration with a developer or when multiple routes need to be reviewed. For one-off support requests, prefer Option A (Public Route) to limit access to only the relevant route.
|
||||
37
docs_sp/index.md
Normal file
37
docs_sp/index.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Home
|
||||
---
|
||||
|
||||
# sunnypilot Documentation
|
||||
|
||||
Welcome to the official sunnypilot documentation. Find everything you need to get started, configure your system, and get the most out of your driving experience.
|
||||
|
||||
## Quick Links
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-rocket-launch: **[Getting Started](getting-started/index.md)**
|
||||
|
||||
Learn what sunnypilot is and how to get set up
|
||||
|
||||
- :material-download: **[Installation](setup/index.md)**
|
||||
|
||||
Install sunnypilot on your comma device
|
||||
|
||||
- :material-car: **[Features](features/index.md)**
|
||||
|
||||
Explore all features and how they work
|
||||
|
||||
- :material-cog: **[Settings](settings/index.md)**
|
||||
|
||||
Complete guide to every configurable option
|
||||
|
||||
- :material-shield: **[Safety](safety/index.md)**
|
||||
|
||||
Important safety information for all users
|
||||
|
||||
- :material-account-group: **[Community](community/index.md)**
|
||||
|
||||
Get involved and connect with other users
|
||||
|
||||
</div>
|
||||
76
docs_sp/references/branch-definitions.md
Normal file
76
docs_sp/references/branch-definitions.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Branch Definitions
|
||||
---
|
||||
|
||||
# Branch Definitions
|
||||
|
||||
Understanding sunnypilot's branching strategy and device compatibility.
|
||||
|
||||
!!! tip "Calling All Testers"
|
||||
Testers, even without software development experience, are encouraged to run **staging** or **dev** branches and report issues. Your feedback is invaluable for improving sunnypilot before each release.
|
||||
|
||||
---
|
||||
|
||||
## Release Branches
|
||||
|
||||
### release-tizi (C3X)
|
||||
|
||||
- **Stability:** :material-check-circle: Highly stable
|
||||
- **Target devices:** Comma 3X (TIZI)
|
||||
- **Description:** The recommended branch for most Comma 3X users. This branch contains thoroughly tested features and fixes that have passed through staging and dev. Use this for daily driving.
|
||||
|
||||
### release-tici (C3)
|
||||
|
||||
- **Stability:** Not yet available
|
||||
- **Target devices:** Comma Three (TICI)
|
||||
- **Description:** A dedicated release branch for Comma Three is not yet available. C3 users should use `staging-tici` in the meantime.
|
||||
|
||||
---
|
||||
|
||||
## Pre-Release Branches
|
||||
|
||||
### staging (C4 / C3X)
|
||||
|
||||
- **Stability:** :material-alert-circle: Generally stable
|
||||
- **Target devices:** Comma Four (MICI), Comma 3X (TIZI)
|
||||
- **Description:** Pre-release testing branch. Features here are being validated before promotion to a release branch. Suitable for users who want early access to upcoming features and are willing to report issues.
|
||||
|
||||
### staging-tici (C3)
|
||||
|
||||
- **Stability:** :material-alert-circle: Generally stable
|
||||
- **Target devices:** Comma Three (TICI)
|
||||
- **Description:** Pre-release testing branch for Comma Three. Provides the most stable experience currently available for C3 devices.
|
||||
|
||||
---
|
||||
|
||||
## Development Branches
|
||||
|
||||
### dev (C4 / C3X)
|
||||
|
||||
- **Stability:** :material-close-circle: Least stable
|
||||
- **Target devices:** Comma Four (MICI), Comma 3X (TIZI)
|
||||
- **Description:** Active development branch with the latest features and fixes. Intended for testers and developers who want to try the newest changes and provide feedback. Expect occasional issues.
|
||||
|
||||
### master (C4 / C3X)
|
||||
|
||||
- **Stability:** :material-close-circle: Unstable
|
||||
- **Target devices:** Comma Four (MICI), Comma 3X (TIZI)
|
||||
- **Description:** The primary development branch where pull requests are merged. Not recommended for daily driving. Use this branch if you are contributing code to sunnypilot.
|
||||
|
||||
### master-dev (C4 / C3X)
|
||||
|
||||
- **Stability:** :material-close-circle: Unstable
|
||||
- **Target devices:** Comma Four (MICI), Comma 3X (TIZI)
|
||||
- **Description:** CI branch used to build prebuilt artifacts for the `dev` branch. Not intended for direct installation.
|
||||
|
||||
---
|
||||
|
||||
## Which Branch Should I Use?
|
||||
|
||||
| Use Case | Recommended Branch |
|
||||
|----------|--------------------|
|
||||
| Daily driving (C3X) | `release-tizi` |
|
||||
| Daily driving (C3) | `staging-tici` |
|
||||
| Early access to features (C4/C3X) | `staging` |
|
||||
| Testing and feedback (C4/C3X) | `dev` |
|
||||
| Contributing code | `master` |
|
||||
46
docs_sp/references/recommended-branches.md
Normal file
46
docs_sp/references/recommended-branches.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: Recommended Branches
|
||||
---
|
||||
|
||||
# Recommended Branches
|
||||
|
||||
!!! warning
|
||||
Please only install the branches listed below. All other branches are experimental development branches and are not intended for general use.
|
||||
|
||||
See [Branch Definitions](branch-definitions.md) for detailed descriptions of each branch type.
|
||||
|
||||
---
|
||||
|
||||
## Comma Four (C4 / MICI)
|
||||
|
||||
| Branch | Install URL | Stability |
|
||||
|--------|------------|-----------|
|
||||
| staging | `staging.sunnypilot.ai` | Generally stable, pre-release testing |
|
||||
| dev | `dev.sunnypilot.ai` | Least stable, for testers and developers |
|
||||
|
||||
---
|
||||
|
||||
## Comma 3X (C3X / TIZI)
|
||||
|
||||
| Branch | Install URL | Stability |
|
||||
|--------|------------|-----------|
|
||||
| release-tizi | `release.sunnypilot.ai` | Highly stable, recommended for most users |
|
||||
| staging | `staging.sunnypilot.ai` | Generally stable, pre-release testing |
|
||||
| dev | `dev.sunnypilot.ai` | Least stable, for testers and developers |
|
||||
|
||||
---
|
||||
|
||||
## Comma Three (C3 / TICI)
|
||||
|
||||
| Branch | Install URL | Stability |
|
||||
|--------|------------|-----------|
|
||||
| staging-tici | `staging.sunnypilot.ai` | Pre-release testing for C3 |
|
||||
|
||||
!!! note
|
||||
A dedicated release branch for Comma Three (`release-tici`) is not yet available. Use `staging-tici` for the most stable C3 experience.
|
||||
|
||||
---
|
||||
|
||||
## Changelogs
|
||||
|
||||
For detailed changelogs of each release, see the [sunnypilot GitHub Releases](https://github.com/sunnypilot/sunnypilot/releases) page.
|
||||
56
docs_sp/safety/driver-responsibility.md
Normal file
56
docs_sp/safety/driver-responsibility.md
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: Driver Responsibility & Level 2 ADAS
|
||||
---
|
||||
|
||||
# Driver Responsibility & Level 2 ADAS
|
||||
|
||||
!!! danger "You Are Always Responsible"
|
||||
sunnypilot is **NOT** a self-driving system. You are legally and morally responsible for the vehicle at all times. No feature in sunnypilot removes or reduces your obligation to drive safely.
|
||||
|
||||
## What is Level 2 ADAS
|
||||
|
||||
sunnypilot is classified as a **Level 2 Advanced Driver Assistance System (ADAS)** per the SAE J3016 standard for driving automation. The SAE levels define increasing degrees of automation:
|
||||
|
||||
| SAE Level | Name | Driver Role |
|
||||
|-----------|------|-------------|
|
||||
| 0 | No Automation | Driver performs all tasks |
|
||||
| 1 | Driver Assistance | System controls steering OR speed, not both |
|
||||
| **2** | **Partial Automation** | **System controls steering AND speed; driver must supervise** |
|
||||
| 3 | Conditional Automation | System handles driving in limited scenarios; driver must be ready |
|
||||
| 4–5 | High/Full Automation | System handles all driving tasks in defined conditions |
|
||||
|
||||
sunnypilot operates at **Level 2** only. It can control steering and speed simultaneously, but the human driver must remain fully engaged at all times.
|
||||
|
||||
## What This Means
|
||||
|
||||
At Level 2, the system provides assistance — not autonomy. Specifically:
|
||||
|
||||
- The system **can** control steering, acceleration, and braking simultaneously
|
||||
- The system **cannot** handle unexpected situations, edge cases, or complex scenarios reliably
|
||||
- The **driver** is the fallback for every situation the system cannot handle
|
||||
- The **driver** bears full legal responsibility for the vehicle's operation
|
||||
|
||||
## Driver Obligations
|
||||
|
||||
As the operator of a Level 2 ADAS vehicle, you must:
|
||||
|
||||
- **Keep your hands on the steering wheel** at all times
|
||||
- **Keep your eyes on the road** and maintain situational awareness
|
||||
- **Be ready to intervene immediately** — the system can disengage or behave unexpectedly without warning
|
||||
- **Follow all traffic laws** — the system does not replace your judgment or legal obligations
|
||||
- **Never rely on the system** as a substitute for attentive driving
|
||||
|
||||
## NHTSA Guidance
|
||||
|
||||
The National Highway Traffic Safety Administration (NHTSA) classifies Level 2 systems as requiring **full driver engagement**. NHTSA's position is clear:
|
||||
|
||||
- Level 2 systems are **driver support features**, not automated driving systems
|
||||
- The driver must be able to perform the complete driving task at all times
|
||||
- Manufacturers and operators share responsibility for safe use of these systems
|
||||
|
||||
For more information, see [NHTSA's guidance on automated vehicles](https://www.nhtsa.gov/technology-innovation/automated-vehicles-safety).
|
||||
|
||||
## Related Pages
|
||||
|
||||
- [Safety Information](safety.md) — General safety guidelines and system limitations
|
||||
- [Prohibited Modifications](prohibited-modifications.md) — Modifications and uses that are not allowed
|
||||
11
docs_sp/safety/index.md
Normal file
11
docs_sp/safety/index.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Safety
|
||||
---
|
||||
|
||||
# Safety
|
||||
|
||||
Read these pages before using sunnypilot. Understanding the safety model and your responsibilities as a driver is essential.
|
||||
|
||||
- **[Safety Information](safety.md)** - Core safety principles and system limitations
|
||||
- **[Driver Responsibility & L2 ADAS](driver-responsibility.md)** - What Level 2 driving assistance means for you
|
||||
- **[Prohibited Modifications](prohibited-modifications.md)** - Modifications that compromise safety and are not supported
|
||||
61
docs_sp/safety/prohibited-modifications.md
Normal file
61
docs_sp/safety/prohibited-modifications.md
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
title: Prohibited Modifications
|
||||
---
|
||||
|
||||
# Prohibited Modifications
|
||||
|
||||
Certain modifications to sunnypilot are prohibited for safety reasons.
|
||||
|
||||
!!! danger "Zero Tolerance Policy"
|
||||
All official sunnypilot branches strictly adhere to [comma.ai's safety policy](https://github.com/commaai/openpilot/blob/master/docs/SAFETY.md). Any changes against this policy will result in your fork and your device being **banned from both comma.ai and sunnypilot channels**.
|
||||
|
||||
## Panda Safety Violations
|
||||
|
||||
The following modifications to panda safety logic are strictly prohibited:
|
||||
|
||||
- **Preventing longitudinal disengagement on brake** — The system must disengage longitudinal control when the brake pedal is pressed. Overriding this behavior is prohibited.
|
||||
- **Automatic re-engagement after braking** — Automatically re-engaging longitudinal control upon brake release without explicit driver input is prohibited.
|
||||
- **Operating with cruise main off** — The system must disengage when cruise control main is in the off state. Bypassing this check is prohibited.
|
||||
- **Removing steering torque limits** — Modifying or removing the safety-enforced steering torque limits is prohibited.
|
||||
- **Bypassing vehicle safety interlocks** — Disabling or circumventing any vehicle-level safety interlock is prohibited.
|
||||
|
||||
### Panda Safety Limits (Example: Hyundai/Kia/Genesis)
|
||||
|
||||
The panda enforces hard acceleration limits that cannot be overridden by software:
|
||||
|
||||
| Parameter | Limit |
|
||||
|-----------|-------|
|
||||
| **Maximum acceleration** | +2.0 m/s² |
|
||||
| **Maximum deceleration** | -3.5 m/s² |
|
||||
|
||||
These limits are enforced at the hardware level by the panda safety firmware. Any attempt to exceed these limits is blocked regardless of what the software commands.
|
||||
|
||||
## Driver Monitoring Violations
|
||||
|
||||
- **Reducing or weakening driver monitoring parameters** — Any modification that lowers the sensitivity, delays the response, or otherwise weakens the driver monitoring system is prohibited. This includes increasing allowed distraction time, reducing alert thresholds, or disabling monitoring entirely.
|
||||
|
||||
### Driver Monitoring Escalation Timeline
|
||||
|
||||
The driver monitoring system follows a strict escalation timeline:
|
||||
|
||||
| Phase | Timeout | Description |
|
||||
|-------|---------|-------------|
|
||||
| **Active monitoring** | 11 seconds | Time before the first distraction alert when the driver is not looking at the road |
|
||||
| **Passive monitoring** | 30 seconds | Time before an alert when the driver's face is not detected (e.g., face covered or camera obstructed) |
|
||||
| **Terminal alerts** | 3 strikes | After 3 terminal-level alerts (driver unresponsive), the system locks out and requires a full restart |
|
||||
|
||||
Modifying any of these thresholds to be more permissive is strictly prohibited.
|
||||
|
||||
## General Prohibitions
|
||||
|
||||
- Disabling or bypassing driver monitoring
|
||||
- Modifying braking safety thresholds
|
||||
- Any modification that reduces the driver's ability to take manual control
|
||||
|
||||
## Why These Restrictions Exist
|
||||
|
||||
These restrictions protect you, your passengers, and other road users. Safety-critical systems have been carefully tuned and tested. Unauthorized modifications can have unpredictable and dangerous consequences.
|
||||
|
||||
!!! info "References"
|
||||
- [comma.ai Safety Policy](https://github.com/commaai/openpilot/blob/master/docs/SAFETY.md)
|
||||
- [Official sunnypilot Branches](../references/recommended-branches.md)
|
||||
38
docs_sp/safety/safety.md
Normal file
38
docs_sp/safety/safety.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: Safety Information
|
||||
---
|
||||
|
||||
# Safety Information
|
||||
|
||||
!!! danger "Important"
|
||||
sunnypilot is a **driver assistance** system. It is **NOT** a self-driving system. The driver must maintain attention at all times.
|
||||
|
||||
## Driver Responsibilities
|
||||
|
||||
- **Keep your hands on the wheel** at all times
|
||||
- **Keep your eyes on the road** — do not rely on the system to detect all hazards
|
||||
- **Be ready to take over** immediately at any time
|
||||
- **Follow all traffic laws** — the system does not replace your judgment
|
||||
|
||||
## System Limitations
|
||||
|
||||
sunnypilot may not perform well in:
|
||||
|
||||
- Heavy rain, snow, or fog
|
||||
- Construction zones
|
||||
- Unmarked or poorly marked roads
|
||||
- Unusual traffic situations
|
||||
- Night driving with poor lighting
|
||||
|
||||
## When to Disengage
|
||||
|
||||
Immediately take manual control if:
|
||||
|
||||
- The system behaves unexpectedly
|
||||
- Road conditions change suddenly
|
||||
- You enter an unfamiliar or complex driving situation
|
||||
- Emergency vehicles are present
|
||||
|
||||
## Prohibited Use
|
||||
|
||||
See [Prohibited Modifications](prohibited-modifications.md) for modifications and uses that are not allowed.
|
||||
87
docs_sp/settings/cruise/index.md
Normal file
87
docs_sp/settings/cruise/index.md
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: Cruise Control Settings
|
||||
---
|
||||
|
||||
# Cruise Control Settings
|
||||
|
||||
Configure adaptive cruise control behavior, including intelligent button management, smart cruise features, and custom speed increments.
|
||||
|
||||
**Location**: `Settings -> Cruise`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Intelligent Cruise Button Management (ICBM) (Alpha)
|
||||
|
||||
Allows sunnypilot to dynamically manage cruise speed by intercepting button presses on the steering wheel. When enabled, speed adjustments are handled intelligently to support features like Speed Limit Assist.
|
||||
|
||||
!!! note "Vehicle Compatibility"
|
||||
This toggle only appears if your vehicle supports ICBM. If you do not see it, your vehicle does not support this feature.
|
||||
|
||||
---
|
||||
|
||||
## Smart Cruise Control - Vision
|
||||
|
||||
Uses vision-based path predictions to estimate the appropriate speed to drive through turns ahead. The system monitors predicted lateral acceleration and smoothly decelerates when entering curves, then accelerates back to your set speed when exiting.
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control, or ICBM must be enabled.
|
||||
|
||||
---
|
||||
|
||||
## Smart Cruise Control - Map
|
||||
|
||||
Uses map data to estimate the appropriate speed to drive through turns ahead. The system calculates deceleration distance based on your current speed and upcoming waypoint target velocities.
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control, or ICBM must be enabled.
|
||||
|
||||
---
|
||||
|
||||
## Custom ACC Speed Increments
|
||||
|
||||
Enables customization of how much the set speed changes with short and long button presses on the steering wheel.
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control (or ICBM enabled), and PCM Cruise must not be active.
|
||||
|
||||
### Short Press Increment
|
||||
|
||||
Once the toggle is enabled, a selector appears below it. Use the **-** and **+** buttons to set the speed change (in km/h or mph) for a short press of the cruise speed button. The range is 1 to 10.
|
||||
|
||||
### Long Press Increment
|
||||
|
||||
A second selector lets you choose the speed change for a long press:
|
||||
|
||||
| Selection | Speed change |
|
||||
|-----------|-------------|
|
||||
| **1** | 1 km/h (or mph) |
|
||||
| **2** | 5 km/h (or mph) |
|
||||
| **3** | 10 km/h (or mph) |
|
||||
|
||||
---
|
||||
|
||||
## Enable Dynamic Experimental Control
|
||||
|
||||
Automatically switches between standard and experimental driving mode based on driving conditions. When enabled, the system uses real-time signals (speed, turn detection, stop signs, traffic lights) to determine the most appropriate mode.
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control. The device must be offroad (parked, ignition off) to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Speed Limit
|
||||
|
||||
A button that opens the [Speed Limit sub-panel](speed-limit/index.md) where you can configure speed limit mode, offset, and data source.
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Intelligent Cruise Button Management](../../features/cruise/icbm.md)
|
||||
- [Smart Cruise Control - Vision](../../features/cruise/scc-v.md)
|
||||
- [Smart Cruise Control - Map](../../features/cruise/scc-m.md)
|
||||
- [Custom ACC Increments](../../features/cruise/custom-acc-increments.md)
|
||||
- [Dynamic Experimental Control](../../features/cruise/dynamic-experimental-control.md)
|
||||
66
docs_sp/settings/cruise/speed-limit/index.md
Normal file
66
docs_sp/settings/cruise/speed-limit/index.md
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
title: Speed Limit Settings
|
||||
---
|
||||
|
||||
# Speed Limit Settings
|
||||
|
||||
Configure how sunnypilot responds to detected speed limits from maps, signs, and navigation data.
|
||||
|
||||
**Location**: `Settings -> Cruise -> Speed Limit`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Speed Limit
|
||||
|
||||
A row of four buttons that controls how sunnypilot uses speed limit information:
|
||||
|
||||
| Mode | What it does |
|
||||
|------|-------------|
|
||||
| **Off** | Speed limit data is not used |
|
||||
| **Info** | Displays the current speed limit on the HUD |
|
||||
| **Warning** | Displays speed limit and alerts you when exceeding it |
|
||||
| **Assist** | Automatically adjusts cruise speed to match the speed limit (with optional offset) |
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control, or ICBM must be enabled.
|
||||
|
||||
!!! warning "Vehicle Restrictions"
|
||||
- **Tesla**: Speed Limit Assist mode is disabled on release branches
|
||||
- **Rivian**: Speed Limit Assist mode is always disabled
|
||||
|
||||
---
|
||||
|
||||
## Customize Source
|
||||
|
||||
A button that opens the [Speed Limit Source sub-panel](source.md) where you choose which data source provides speed limit information (car, map, or a combination).
|
||||
|
||||
---
|
||||
|
||||
## Speed Limit Offset
|
||||
|
||||
A row of three buttons that controls how the speed offset is calculated:
|
||||
|
||||
| Type | What it does |
|
||||
|------|-------------|
|
||||
| **None** | No offset - cruise matches the exact speed limit |
|
||||
| **Fixed** | A fixed value (in km/h or mph) is added to or subtracted from the limit |
|
||||
| **%** | A percentage is applied to the speed limit |
|
||||
|
||||
---
|
||||
|
||||
## Speed Limit Value Offset
|
||||
|
||||
A slider that sets the offset value applied to the detected speed limit. Use the **-** and **+** buttons to adjust from -30 to +30. This slider only appears when Speed Limit Offset is set to Fixed or %.
|
||||
|
||||
- **Positive values**: Cruise faster than the limit (e.g., +5 means 5 over)
|
||||
- **Negative values**: Cruise slower than the limit (e.g., -5 means 5 under)
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Speed Limit Assist](../../../features/cruise/speed-limit.md)
|
||||
- [OSM Maps](../../../features/connected/osm-maps.md)
|
||||
37
docs_sp/settings/cruise/speed-limit/source.md
Normal file
37
docs_sp/settings/cruise/speed-limit/source.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Speed Limit Source
|
||||
---
|
||||
|
||||
# Speed Limit Source
|
||||
|
||||
**Location**: `Settings -> Cruise -> Speed Limit -> Customize Source`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
Configure which data source sunnypilot uses to determine the current speed limit, and how multiple sources are prioritized.
|
||||
|
||||
---
|
||||
|
||||
## Speed Limit Source
|
||||
|
||||
A row of five buttons lets you choose the source policy:
|
||||
|
||||
| Option | What it does |
|
||||
|--------|-------------|
|
||||
| **Car Only** | Uses only the speed limit data provided by your vehicle's built-in systems (e.g., traffic sign recognition from the car's cameras) |
|
||||
| **Map Only** | Uses only OpenStreetMap data for speed limits. Requires a downloaded map database from the [OSM panel](../../osm.md) |
|
||||
| **Car First** | Checks the car's speed limit data first. Falls back to map data if the car does not report a limit |
|
||||
| **Map First** | Checks map data first. Falls back to the car's reported limit if no map data is available |
|
||||
| **Combined** | Uses the higher of the two available values from car and map sources |
|
||||
|
||||
!!! tip
|
||||
**Car First** is a good default for vehicles with traffic sign recognition. If your vehicle does not have sign recognition, use **Map Only** or **Map First** and make sure you have downloaded the map for your region in the [OSM panel](../../osm.md).
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- [Speed Limit Settings](index.md) - mode, offset type, and offset value
|
||||
- [OSM Panel](../../osm.md) - download map data for your region
|
||||
- [Speed Limit Assist (Feature)](../../../features/cruise/speed-limit.md) - how Speed Limit Assist works
|
||||
136
docs_sp/settings/developer.md
Normal file
136
docs_sp/settings/developer.md
Normal file
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: Developer Settings
|
||||
---
|
||||
|
||||
# Developer Settings
|
||||
|
||||
Advanced settings for developers and power users, including debug tools, connectivity options, and alpha features.
|
||||
|
||||
**Location**: `Settings -> Developer`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Available and configurable on all devices (comma 3X/3, comma four, sunnylink).
|
||||
|
||||
---
|
||||
|
||||
## Show Advanced Controls
|
||||
|
||||
Reveals additional advanced settings throughout the sunnypilot interface. Enabling this does not change any driving behavior - it only makes hidden controls visible.
|
||||
|
||||
Settings gated behind this toggle include:
|
||||
|
||||
- [Models](models.md): Adjust Lane Turn Speed, Adjust Software Delay
|
||||
- [Software](software.md): Disable Updates
|
||||
- Developer: GitHub Runner Service, copyparty Service, Quickboot Mode
|
||||
|
||||
---
|
||||
|
||||
## Enable ADB
|
||||
|
||||
Enables ADB (Android Debug Bridge) for connecting to the device over USB or network for debugging.
|
||||
|
||||
!!! note "Availability"
|
||||
Can only be changed while the device is offroad.
|
||||
|
||||
---
|
||||
|
||||
## Enable SSH
|
||||
|
||||
Enables SSH access to the device for remote terminal sessions.
|
||||
|
||||
---
|
||||
|
||||
## SSH Keys
|
||||
|
||||
A button that fetches SSH public keys from a GitHub username and installs them on the device. This allows SSH login using your GitHub-associated key pair.
|
||||
|
||||
!!! warning
|
||||
Only add SSH keys from users you trust. Anyone with an installed key has full access to the device.
|
||||
|
||||
---
|
||||
|
||||
## Joystick Debug Mode
|
||||
|
||||
Enables joystick-controlled driving for testing and development purposes.
|
||||
|
||||
!!! note "Availability"
|
||||
Hidden on release branches. Can only be changed while the device is offroad.
|
||||
|
||||
---
|
||||
|
||||
## Longitudinal Maneuver Mode
|
||||
|
||||
Enables a longitudinal debug mode for testing acceleration and braking maneuvers.
|
||||
|
||||
!!! note "Availability"
|
||||
Hidden on release branches. Requires longitudinal control and the device must be offroad.
|
||||
|
||||
---
|
||||
|
||||
## sunnypilot Longitudinal Control (Alpha)
|
||||
|
||||
Enables alpha-quality longitudinal control for vehicles that do not yet have full upstream support. This replaces the car's stock adaptive cruise control with sunnypilot's own gas and brake management.
|
||||
|
||||
!!! warning
|
||||
Enabling this disables AEB (Automatic Emergency Braking). A confirmation dialog appears before activation.
|
||||
|
||||
!!! note "Availability"
|
||||
Hidden on release branches. Only appears if your vehicle supports alpha longitudinal control.
|
||||
|
||||
---
|
||||
|
||||
## UI Debug Mode
|
||||
|
||||
Shows touch indicators, FPS counter, and mouse coordinates on screen. Useful for UI development and troubleshooting display issues.
|
||||
|
||||
---
|
||||
|
||||
## GitHub Runner Service
|
||||
|
||||
Enables the GitHub Actions self-hosted runner service on the device. This allows the device to execute CI/CD jobs from your repository.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when **Show Advanced Controls** is enabled. Hidden on release branches.
|
||||
|
||||
---
|
||||
|
||||
## copyparty Service
|
||||
|
||||
Enables a file server on the device for downloading driving routes and logs from a web browser via the device's local IP address.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when **Show Advanced Controls** is enabled.
|
||||
|
||||
---
|
||||
|
||||
## Quickboot Mode
|
||||
|
||||
Creates a prebuilt file for accelerated boot, reducing startup time. Requires software updates to be disabled first.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when **Show Advanced Controls** is enabled, the device is not on a release or development branch, and **Disable Updates** is enabled in [Software Settings](software.md).
|
||||
|
||||
---
|
||||
|
||||
## Error Log
|
||||
|
||||
A **VIEW** button that opens the sunnypilot crash error log in a viewer. On close, you are offered the option to delete the log.
|
||||
|
||||
!!! note "Availability"
|
||||
Hidden on release branches.
|
||||
|
||||
---
|
||||
|
||||
## Platform Differences
|
||||
|
||||
On **comma four**, the Developer panel includes:
|
||||
|
||||
- ADB (circle icon toggle)
|
||||
- SSH (circle icon toggle)
|
||||
- SSH Keys
|
||||
- Joystick Debug Mode
|
||||
- Longitudinal Maneuver Mode
|
||||
- Alpha Longitudinal
|
||||
- UI Debug Mode
|
||||
|
||||
The comma four panel does not include: Show Advanced Controls, GitHub Runner Service, copyparty Service, Quickboot Mode, or Error Log.
|
||||
137
docs_sp/settings/device.md
Normal file
137
docs_sp/settings/device.md
Normal file
@@ -0,0 +1,137 @@
|
||||
---
|
||||
title: Device Settings
|
||||
---
|
||||
|
||||
# Device Settings
|
||||
|
||||
View device information, manage calibration, configure power behavior, and access system utilities.
|
||||
|
||||
**Location**: `Settings -> Device`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Available and configurable on all devices (comma 3X/3, comma four, sunnylink).
|
||||
|
||||
---
|
||||
|
||||
## Device Information
|
||||
|
||||
The top of the panel displays your device's **Dongle ID** and **Serial** number. These identifiers are used for pairing and support.
|
||||
|
||||
---
|
||||
|
||||
## Pair Device
|
||||
|
||||
Pairs your comma device with your comma connect account. Once paired, you can view driving routes, manage the device remotely, and access dashcam footage through the comma connect app.
|
||||
|
||||
---
|
||||
|
||||
## Reset Calibration
|
||||
|
||||
Resets the device's calibration data. After reset, the system will re-learn the camera's mounting position during your next drive. The current calibration status is shown in the description text.
|
||||
|
||||
---
|
||||
|
||||
## Change Language
|
||||
|
||||
Opens a language selection dialog where you can choose the display language for the interface.
|
||||
|
||||
---
|
||||
|
||||
## Enable Always Offroad / Exit Always Offroad
|
||||
|
||||
Toggles "Always Offroad" mode. When enabled, the device stays in its offroad (parked) state even when the vehicle is running. This is useful for configuring settings or downloading updates without driving. The button text changes based on the current state.
|
||||
|
||||
---
|
||||
|
||||
## Wake Up Behavior
|
||||
|
||||
A row of two buttons that controls what the device does when it wakes up:
|
||||
|
||||
| Option | What it does |
|
||||
|--------|-------------|
|
||||
| **Default** | Device boots normally and enters the driving screen |
|
||||
| **Offroad** | Device boots directly into offroad (settings) mode |
|
||||
|
||||
---
|
||||
|
||||
## Max Time Offroad
|
||||
|
||||
A selector that sets how long the device stays powered on after the engine is turned off before automatically shutting down. Values range from 5 minutes to 30 hours, or **Always On** to prevent auto-shutdown.
|
||||
|
||||
---
|
||||
|
||||
## Quiet Mode
|
||||
|
||||
Toggles quiet mode on or off. When enabled, the device suppresses non-critical sounds. Safety-critical alerts are never silenced.
|
||||
|
||||
---
|
||||
|
||||
## Driver Camera Preview
|
||||
|
||||
Opens a live preview of the driver-facing camera so you can verify its position and angle.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled while the vehicle is onroad.
|
||||
|
||||
---
|
||||
|
||||
## Onroad Uploads
|
||||
|
||||
Toggles data uploads while driving. When enabled, the device uploads driving segments over a cellular or Wi-Fi connection during your drive instead of waiting until parked.
|
||||
|
||||
---
|
||||
|
||||
## Training Guide
|
||||
|
||||
Opens the sunnypilot training guide, which walks through the system's rules, features, and limitations.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled while the vehicle is onroad.
|
||||
|
||||
---
|
||||
|
||||
## Regulatory
|
||||
|
||||
Displays FCC regulatory information for the device.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled while the vehicle is onroad.
|
||||
|
||||
---
|
||||
|
||||
## Reset Settings
|
||||
|
||||
Resets all sunnypilot settings to their defaults. This is a two-step confirmation to prevent accidental resets. After confirmation, the device reboots.
|
||||
|
||||
!!! warning
|
||||
This action cannot be undone. All custom settings will be lost.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled while the vehicle is onroad.
|
||||
|
||||
---
|
||||
|
||||
## Reboot / Power Off
|
||||
|
||||
**Reboot** restarts the device. **Power Off** shuts the device down completely.
|
||||
|
||||
Power Off is hidden while the vehicle is onroad to prevent accidental shutdown during driving.
|
||||
|
||||
---
|
||||
|
||||
## Platform Differences
|
||||
|
||||
On **comma four**, the Device panel has a simplified layout with these items:
|
||||
|
||||
- Device ID and Serial (info display)
|
||||
- Update sunnypilot
|
||||
- Pair
|
||||
- Review Training Guide
|
||||
- Driver Camera Preview
|
||||
- Terms & Conditions
|
||||
- Regulatory Info
|
||||
- Reset Calibration
|
||||
- Uninstall sunnypilot
|
||||
- Reboot / Power Off (circle buttons)
|
||||
|
||||
The comma four panel does not include: Always Offroad, Wake Up Behavior, Max Time Offroad, Quiet Mode, Onroad Uploads, Reset Settings, or Change Language.
|
||||
52
docs_sp/settings/display.md
Normal file
52
docs_sp/settings/display.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: Display Settings
|
||||
---
|
||||
|
||||
# Display Settings
|
||||
|
||||
Control screen brightness, timing, and UI behavior for the onroad display.
|
||||
|
||||
**Location**: `Settings -> Display`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Onroad Brightness
|
||||
|
||||
A selector that controls the screen brightness while driving. Use the **-** and **+** buttons to cycle through the options:
|
||||
|
||||
| Option | What it does |
|
||||
|--------|-------------|
|
||||
| **Auto (Default)** | Adjusts brightness automatically based on ambient light |
|
||||
| **Auto (Dark)** | Adjusts automatically but biased toward a darker screen |
|
||||
| **Screen Off** | Turns the screen off completely after the delay period |
|
||||
| **0% - 100%** | Fixed brightness level in 5% increments |
|
||||
|
||||
---
|
||||
|
||||
## Onroad Brightness Delay
|
||||
|
||||
A selector that sets how long the screen stays at full brightness before the selected brightness mode takes effect. Available delay values range from seconds to minutes.
|
||||
|
||||
!!! note "Availability"
|
||||
This selector is disabled when Onroad Brightness is set to Auto (Default) or Auto (Dark), since those modes manage brightness continuously.
|
||||
|
||||
---
|
||||
|
||||
## Interactivity Timeout
|
||||
|
||||
A selector that controls how long the settings interface stays open before automatically closing and returning to the driving screen. Use the **-** and **+** buttons to choose a timeout:
|
||||
|
||||
| Option | Timeout |
|
||||
|--------|---------|
|
||||
| **Default** | Standard system timeout |
|
||||
| **10s - 120s** | Custom timeout in 10-second increments |
|
||||
| **1m / 2m** | One or two minute timeout |
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Onroad Display](../features/display/onroad-display.md)
|
||||
51
docs_sp/settings/firehose.md
Normal file
51
docs_sp/settings/firehose.md
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: Firehose Settings
|
||||
---
|
||||
|
||||
# Firehose Settings
|
||||
|
||||
Firehose Mode uploads training data from your drives to comma's servers, helping improve autonomous driving models.
|
||||
|
||||
**Location**: `Settings -> Firehose`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Available and configurable on all devices (comma 3X/3, comma four, sunnylink).
|
||||
|
||||
!!! info "First Fork with Official Support"
|
||||
sunnypilot is the first and currently only major fork to receive official Firehose Mode support.
|
||||
|
||||
---
|
||||
|
||||
## How It Works
|
||||
|
||||
When Firehose Mode is active, the system randomly samples a portion of your drives rather than uploading everything. It queues approximately 10 segments at a time for transmission, whether sunnypilot is actively engaged or not. Both engaged and disengaged driving data contributes to simulator training.
|
||||
|
||||
No special driving behavior is needed. Normal driving patterns work fine.
|
||||
|
||||
---
|
||||
|
||||
## Status Display
|
||||
|
||||
The panel shows whether Firehose Mode is currently active or inactive:
|
||||
|
||||
- **Active** (green): The device is connected to an unmetered network and uploading data.
|
||||
- **Inactive** (red): Connect to an unmetered Wi-Fi network to begin uploading.
|
||||
|
||||
If available, the panel also displays the number of segments you have contributed to the training dataset.
|
||||
|
||||
---
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Compatible branch**: You must be running one of the following branches:
|
||||
- `staging`, `dev`, or `master`
|
||||
- `staging-tici`, `master-tici`
|
||||
- `release-tizi` or `release-tici`
|
||||
- **Weekly connectivity**: Connect to Wi-Fi with a reliable USB-C power adapter at minimum once per week.
|
||||
- **Supported vehicle**: Only vehicles officially supported in upstream openpilot qualify for model training data collection.
|
||||
|
||||
---
|
||||
|
||||
## Optional: Mobile Upload
|
||||
|
||||
Devices with hotspot access or unlimited data plans can upload data while driving, removing the need for weekly Wi-Fi sessions.
|
||||
28
docs_sp/settings/index.md
Normal file
28
docs_sp/settings/index.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Settings
|
||||
---
|
||||
|
||||
# Settings
|
||||
|
||||
Complete reference for every configurable option in sunnypilot. The panels below are listed in the same order they appear on your device's settings sidebar.
|
||||
|
||||
!!! info "Not all settings appear on every device"
|
||||
comma four users see a simplified settings screen. Most features still work on comma four - you just configure the hidden ones through sunnylink. A few onroad visual features are not available on comma four at all. See [Platform Differences](platform-differences.md) for the full breakdown.
|
||||
|
||||
| Panel | Description |
|
||||
|-------|-------------|
|
||||
| [Device](device.md) | Device information, calibration, power, and system controls |
|
||||
| [Network](network.md) | Wi-Fi connection management |
|
||||
| [sunnylink](sunnylink.md) | Cloud integration, backup/restore, sponsor status |
|
||||
| [Toggles](toggles.md) | Core driving toggles (enable sunnypilot, experimental mode, lane departure, etc.) |
|
||||
| [Software](software.md) | Update management and branch selection |
|
||||
| [Models](models.md) | Driving model selection, download, and tuning |
|
||||
| [Steering](steering/index.md) | Lateral control: MADS, lane change, blinker pause, and torque tuning |
|
||||
| [Cruise](cruise/index.md) | Cruise behavior: ICBM, smart cruise, custom increments, speed limit assist |
|
||||
| [Visuals](visuals.md) | HUD overlays, indicators, and visual customization |
|
||||
| [Display](display.md) | Screen brightness, timeout, and interactivity settings |
|
||||
| [OSM](osm.md) | OpenStreetMap database and map downloads |
|
||||
| [Trips](trips.md) | Drive statistics and trip history |
|
||||
| [Vehicle](vehicle/index.md) | Vehicle-specific settings by brand |
|
||||
| [Firehose](firehose.md) | Training data upload for comma's driving models |
|
||||
| [Developer](developer.md) | Developer and debug options |
|
||||
83
docs_sp/settings/models.md
Normal file
83
docs_sp/settings/models.md
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
title: Models Settings
|
||||
---
|
||||
|
||||
# Models Settings
|
||||
|
||||
Select and manage driving models, and configure model-related parameters.
|
||||
|
||||
**Location**: `Settings -> Models`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Current Model
|
||||
|
||||
A button labeled **SELECT** that opens a model selection dialog. The currently active model name is displayed. Choose from available driving models, each with different driving characteristics and capabilities.
|
||||
|
||||
!!! warning "Offroad Only"
|
||||
Model selection can only be changed while the vehicle is offroad (parked with ignition off), unless Always Offroad mode is active.
|
||||
|
||||
---
|
||||
|
||||
## Model Download Progress
|
||||
|
||||
When a model is being downloaded, progress bars appear for each component:
|
||||
|
||||
- **Driving Model** - the main supercombo neural network
|
||||
- **Vision Model** - the vision processing model
|
||||
- **Policy Model** - the decision-making policy model
|
||||
|
||||
Each shows a progress bar with download percentage.
|
||||
|
||||
---
|
||||
|
||||
## Refresh Model List
|
||||
|
||||
A button that forces a refresh of the available model list from the server. Use this if you expect a new model to be available but do not see it in the selection dialog.
|
||||
|
||||
---
|
||||
|
||||
## Clear Model Cache
|
||||
|
||||
A button that deletes all downloaded models except the currently active one. The current cache size in MB is displayed. Useful for freeing storage space.
|
||||
|
||||
---
|
||||
|
||||
## Cancel Download
|
||||
|
||||
A button that appears only while a model download is in progress. Cancels the current download.
|
||||
|
||||
---
|
||||
|
||||
## Use Lane Turn Desires
|
||||
|
||||
When enabled, at speeds of 20 mph (32 km/h) or below with the turn signal on, the model plans a turn in the blinker direction at the nearest drivable path. This helps the model make smoother turns at low speeds.
|
||||
|
||||
---
|
||||
|
||||
## Adjust Lane Turn Speed
|
||||
|
||||
A selector that sets the maximum speed at which lane turn desires are active. Default is 19 mph. Use the **-** and **+** buttons to adjust.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when **Use Lane Turn Desires** is enabled and **Show Advanced Controls** is enabled in [Developer Settings](developer.md).
|
||||
|
||||
---
|
||||
|
||||
## Live Learning Steer Delay
|
||||
|
||||
Enables real-time learning and adaptive steering response time. The system continuously measures the actual steering delay and adjusts compensation accordingly. When disabled, a fixed response time is used instead.
|
||||
|
||||
The description text shows the current live delay value or a breakdown of delay components.
|
||||
|
||||
---
|
||||
|
||||
## Adjust Software Delay
|
||||
|
||||
A selector that sets the fixed software delay value used when Live Learning Steer Delay is disabled. Default is 0.2 seconds. Use the **-** and **+** buttons to adjust.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when **Live Learning Steer Delay** is disabled and **Show Advanced Controls** is enabled in [Developer Settings](developer.md).
|
||||
22
docs_sp/settings/network.md
Normal file
22
docs_sp/settings/network.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Network Settings
|
||||
---
|
||||
|
||||
# Network Settings
|
||||
|
||||
Manage Wi-Fi connections on your comma device.
|
||||
|
||||
**Location**: `Settings -> Network`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Available and configurable on all devices (comma 3X/3, comma four, sunnylink).
|
||||
|
||||
---
|
||||
|
||||
## Wi-Fi
|
||||
|
||||
The Network panel displays a list of available Wi-Fi networks. Tap a network name to connect, or use the **Scan** button to refresh the list.
|
||||
|
||||
- A stable Wi-Fi connection is required for software updates and route uploads.
|
||||
- For Firehose Mode, connect to Wi-Fi with a reliable USB-C power adapter at least once per week.
|
||||
- Hotspot and tethered connections also work for data uploads while driving if your data plan supports it.
|
||||
68
docs_sp/settings/osm.md
Normal file
68
docs_sp/settings/osm.md
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: OSM Settings
|
||||
---
|
||||
|
||||
# OSM Settings
|
||||
|
||||
Download and manage OpenStreetMap (OSM) data used for speed limit lookups, curve detection, and road name display.
|
||||
|
||||
**Location**: `Settings -> OSM`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Mapd Version
|
||||
|
||||
Displays the version of the map processing daemon currently running on the device.
|
||||
|
||||
---
|
||||
|
||||
## Downloaded Maps
|
||||
|
||||
Shows the current size of downloaded map data. A **DELETE** button removes all downloaded map files to free storage space.
|
||||
|
||||
!!! note "Availability"
|
||||
The delete button is disabled while a map download is in progress.
|
||||
|
||||
---
|
||||
|
||||
## Downloading Map
|
||||
|
||||
A progress indicator that appears only while a map download or database check is active. Shows the download percentage and the file being downloaded.
|
||||
|
||||
---
|
||||
|
||||
## Database Update
|
||||
|
||||
A **CHECK** button that checks for updates to your selected region's OSM database. After checking, it downloads any available updates. The description shows the last check time or current download progress.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when a country has been selected. Disabled while a download is in progress.
|
||||
|
||||
---
|
||||
|
||||
## Country
|
||||
|
||||
A **SELECT** button that opens a country selection dialog. Choose the country for which you want to download map data. The currently selected country is displayed.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled while a download is in progress.
|
||||
|
||||
---
|
||||
|
||||
## State
|
||||
|
||||
A **SELECT** button that opens a US state selection dialog. Narrows the download to a specific state, reducing download size and improving performance.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when the selected country is the United States. Disabled while a download is in progress.
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [OSM Maps](../features/connected/osm-maps.md)
|
||||
- [Speed Limit Assist](../features/cruise/speed-limit.md)
|
||||
- [Smart Cruise Control - Map](../features/cruise/scc-m.md)
|
||||
79
docs_sp/settings/platform-differences.md
Normal file
79
docs_sp/settings/platform-differences.md
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
title: Platform Differences
|
||||
---
|
||||
|
||||
# Platform Differences
|
||||
|
||||
sunnypilot runs on different hardware platforms, each with its own settings interface. This page explains the differences so you know what to expect.
|
||||
|
||||
## Platforms
|
||||
|
||||
### comma 3X / comma 3 (TIZI/TICI)
|
||||
|
||||
The full-featured interface with a sidebar-based settings panel. All settings and onroad visual features documented in this manual are available on these devices.
|
||||
|
||||
### comma four (MICI)
|
||||
|
||||
A simplified, touch-friendly interface designed for the comma four's compact form factor. Only a subset of settings are exposed through the on-device screen. Most features still work on comma four - you configure the hidden ones through sunnylink.
|
||||
|
||||
However, some onroad visual features require UI rendering code that does not exist on comma four. These features cannot be activated on comma four even through sunnylink. Each setting page notes which category it falls into.
|
||||
|
||||
### sunnylink (Web / App)
|
||||
|
||||
The sunnylink web interface provides access to all configurable settings regardless of which device you use. If a setting is not shown on your comma four's screen, you can configure it through sunnylink - provided the feature is supported on your device.
|
||||
|
||||
## Three Levels of Device Availability
|
||||
|
||||
Throughout this manual, each setting includes a "Toggle & Device Availability" note using one of these three patterns:
|
||||
|
||||
| Level | Badge Text | What It Means |
|
||||
|-------|-----------|---------------|
|
||||
| **Full** | "Available and configurable on all devices (comma 3X/3, comma four, sunnylink)." | The setting appears on every device's screen and in sunnylink. |
|
||||
| **Config-Hidden** | "Supported on all devices. comma four users must use sunnylink to change this setting." | The feature works on comma four, but the toggle is hidden from the device screen. Use sunnylink to configure it. |
|
||||
| **Unsupported** | "Supported on: comma 3X/3 only. This feature is currently not available on comma four and cannot be forced via sunnylink." | The feature requires onroad UI rendering code that does not exist on comma four. Forcing the param via sunnylink will not make it work. |
|
||||
|
||||
## On-Screen Settings Availability
|
||||
|
||||
The table below shows which settings panels have on-screen controls on each platform. A :material-close: means the panel is not shown on that device's screen.
|
||||
|
||||
| Panel | comma 3X/3 | comma four | sunnylink |
|
||||
|-------|:----------:|:----------:|:---------:|
|
||||
| [Device](device.md) | :material-check: | :material-check: (simplified) | :material-check: |
|
||||
| [Network](network.md) | :material-check: | :material-check: | :material-check: |
|
||||
| [sunnylink](sunnylink.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Toggles](toggles.md) | :material-check: | :material-check: (fewer items) | :material-check: |
|
||||
| [Software](software.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Models](models.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Steering](steering/index.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Cruise](cruise/index.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Visuals](visuals.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Display](display.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [OSM](osm.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Trips](trips.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Vehicle](vehicle/index.md) | :material-check: | :material-close: | :material-check: |
|
||||
| [Firehose](firehose.md) | :material-check: | :material-check: (condensed) | :material-check: |
|
||||
| [Developer](developer.md) | :material-check: | :material-check: | :material-check: |
|
||||
|
||||
## Onroad Visual Features Not Available on comma four
|
||||
|
||||
The following features from the [Visuals](visuals.md) panel rely on onroad UI rendering code that only exists on comma 3X/3. These cannot be enabled on comma four:
|
||||
|
||||
- Enable Standstill Timer
|
||||
- Display Road Name
|
||||
- Green Traffic Light Alert (Beta)
|
||||
- Lead Departure Alert (Beta)
|
||||
- Speedometer: Always Display True Speed
|
||||
- Speedometer: Hide from Onroad Screen
|
||||
- Display Turn Signals (always-on display; lane change alert icons still appear)
|
||||
- Real-time Acceleration Bar
|
||||
- Display Metrics Below Chevron
|
||||
- Developer UI (onroad overlay)
|
||||
|
||||
## What This Means for You
|
||||
|
||||
If you use a **comma four**, your on-device screen shows a simplified set of controls. Most sunnypilot features still run on your device - you configure the hidden ones through **sunnylink**. The exception is the onroad visual features listed above, which require rendering code that does not exist on comma four.
|
||||
|
||||
If you use a **comma 3X or comma 3**, all settings and onroad visual features are directly accessible from the device sidebar.
|
||||
|
||||
!!! tip
|
||||
Throughout this manual, each setting includes a "Toggle & Device Availability" note. Look for these callouts to quickly check whether a feature works on your device and where to configure it.
|
||||
60
docs_sp/settings/software.md
Normal file
60
docs_sp/settings/software.md
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
title: Software Settings
|
||||
---
|
||||
|
||||
# Software Settings
|
||||
|
||||
Manage software updates, view release notes, and switch branches.
|
||||
|
||||
**Location**: `Settings -> Software`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Current Version
|
||||
|
||||
Displays the currently installed version of sunnypilot. The description text shows release notes for the current version.
|
||||
|
||||
---
|
||||
|
||||
## Download
|
||||
|
||||
A button that checks for available updates. If an update is found, the button changes to **DOWNLOAD** to begin downloading. Progress is shown during the download.
|
||||
|
||||
!!! note "Availability"
|
||||
Only available while the device is offroad.
|
||||
|
||||
---
|
||||
|
||||
## Install Update
|
||||
|
||||
A button that appears after an update has been downloaded. Tapping it reboots the device to install the update.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when an update has been downloaded and the device is offroad.
|
||||
|
||||
---
|
||||
|
||||
## Target Branch
|
||||
|
||||
A button labeled **SELECT** that opens a branch selection dialog. Choose which sunnypilot branch to track for updates. The currently selected branch is displayed.
|
||||
|
||||
!!! tip
|
||||
For daily driving, stay on the latest **release** branch. Switch to staging or dev branches only if you want to test new features.
|
||||
|
||||
---
|
||||
|
||||
## Uninstall
|
||||
|
||||
A button that uninstalls sunnypilot from the device. Requires confirmation before proceeding.
|
||||
|
||||
---
|
||||
|
||||
## Disable Updates
|
||||
|
||||
Prevents the device from checking for or applying software updates. The device remains on its current version indefinitely. A reboot prompt appears when toggling this setting.
|
||||
|
||||
!!! note "Availability"
|
||||
Only appears when **Show Advanced Controls** is enabled in [Developer Settings](developer.md). Can only be changed while the device is offroad.
|
||||
89
docs_sp/settings/steering/index.md
Normal file
89
docs_sp/settings/steering/index.md
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: Steering Settings
|
||||
---
|
||||
|
||||
# Steering Settings
|
||||
|
||||
Configure lateral (steering) control behavior including MADS, lane changes, blinker pause, and torque tuning.
|
||||
|
||||
**Location**: `Settings -> Steering`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Modular Assistive Driving System (MADS)
|
||||
|
||||
A toggle that enables MADS, which decouples lateral (steering) control from longitudinal (speed) control. With MADS on, steering assistance can remain active even when cruise control is not engaged.
|
||||
|
||||
Turn this toggle **on** to enable MADS, or **off** to revert to standard engagement behavior.
|
||||
|
||||
When enabled, a **Customize MADS** button appears below the toggle. Tap it to open the [MADS sub-panel](mads.md) where you can configure engagement modes and brake pedal behavior.
|
||||
|
||||
!!! note "Platform-specific behavior"
|
||||
Some vehicles (Rivian, certain Tesla configurations) show limited MADS settings. The system displays a note indicating which options are restricted for your vehicle.
|
||||
|
||||
---
|
||||
|
||||
## Customize Lane Change
|
||||
|
||||
A button that opens the [Lane Change sub-panel](lane-change.md) where you can set the auto lane change timer and blind spot monitoring delay.
|
||||
|
||||
---
|
||||
|
||||
## Pause Lateral Control with Blinker
|
||||
|
||||
When you activate your turn signal, this feature temporarily pauses automatic steering so you can take manual control of the wheel. Useful during merges, parking, or any situation where you want to steer by hand while keeping the system otherwise active.
|
||||
|
||||
Turn this toggle **on** to enable it.
|
||||
|
||||
### Minimum Speed to Pause Lateral Control
|
||||
|
||||
Once the blinker pause toggle is enabled, a speed selector appears directly below it. Use the **-** and **+** buttons to set the speed threshold. Lateral control only pauses when your current speed is below this value while the blinker is on. The speed displays in your preferred unit (km/h or mph).
|
||||
|
||||
### Post-Blinker Delay
|
||||
|
||||
A second selector lets you choose how many seconds the system waits after the blinker turns off before resuming automatic steering. The delay ranges from 0 to 10 seconds.
|
||||
|
||||
!!! tip
|
||||
Set the delay to at least 1-2 seconds to avoid the system resuming steering while you are still mid-maneuver.
|
||||
|
||||
---
|
||||
|
||||
## Enforce Torque Lateral Control
|
||||
|
||||
Forces torque-based lateral control on your vehicle, even if it does not use torque control by default.
|
||||
|
||||
When enabled, a **Customize Torque Params** button appears below the toggle. Tap it to open the [Torque sub-panel](torque.md) for advanced tuning.
|
||||
|
||||
!!! note "Availability"
|
||||
This toggle is hidden on vehicles with angle-based steering. Enabling this disables Neural Network Lateral Control (NNLC), and vice versa. The device must be offroad (parked, ignition off) to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Neural Network Lateral Control (NNLC)
|
||||
|
||||
Enables a neural network model to handle lateral control instead of the traditional controller. NNLC can provide smoother steering in some situations.
|
||||
|
||||
!!! note "Availability"
|
||||
This toggle is hidden on vehicles with angle-based steering. Enabling this disables Enforce Torque Lateral Control, and vice versa. The device must be offroad to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Sub-Panels
|
||||
|
||||
The Steering section contains these additional configuration pages:
|
||||
|
||||
- **[MADS Settings](mads.md)** - configure engagement modes and brake pedal behavior
|
||||
- **[Lane Change Settings](lane-change.md)** - configure auto lane change timing and blind spot monitoring
|
||||
- **[Torque Settings](torque.md)** - fine-tune torque lateral control parameters
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Modular Assistive Driving System](../../features/steering/mads.md)
|
||||
- [Neural Network Lateral Control](../../features/steering/nnlc.md)
|
||||
- [Auto Lane Change](../../features/steering/auto-lane-change.md)
|
||||
- [Torque Control](../../features/steering/torque-control.md)
|
||||
43
docs_sp/settings/steering/lane-change.md
Normal file
43
docs_sp/settings/steering/lane-change.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
title: Lane Change Settings
|
||||
---
|
||||
|
||||
# Lane Change Settings
|
||||
|
||||
Configure automatic lane change behavior and blind spot monitoring integration.
|
||||
|
||||
**Location**: `Settings -> Steering -> Customize Lane Change`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Auto Lane Change by Blinker
|
||||
|
||||
A selector that controls how lane changes are initiated when you activate the turn signal. Use the **-** and **+** buttons to cycle through the options:
|
||||
|
||||
| Option | What happens |
|
||||
|--------|-------------|
|
||||
| **Off** | Auto lane change is disabled |
|
||||
| **Nudge** | Requires a light steering nudge in the desired direction to start the lane change (default) |
|
||||
| **Nudgeless** | Lane change begins immediately when the turn signal is activated - no nudge needed |
|
||||
| **0.5 s** | Lane change begins 0.5 seconds after the turn signal is activated |
|
||||
| **1 s** | Lane change begins 1 second after activation |
|
||||
| **2 s** | Lane change begins 2 seconds after activation |
|
||||
| **3 s** | Lane change begins 3 seconds after activation |
|
||||
|
||||
---
|
||||
|
||||
## Auto Lane Change: Delay with Blind Spot
|
||||
|
||||
When enabled, the system waits for the blind spot to clear before executing a lane change. If a vehicle is detected in the blind spot, the lane change is delayed until the path is clear.
|
||||
|
||||
!!! note "Availability"
|
||||
This toggle only appears if your vehicle supports Blind Spot Monitoring (BSM) and Auto Lane Change by Blinker is set to a mode other than Off or Nudge.
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Auto Lane Change](../../features/steering/auto-lane-change.md)
|
||||
62
docs_sp/settings/steering/mads.md
Normal file
62
docs_sp/settings/steering/mads.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: MADS Settings
|
||||
---
|
||||
|
||||
# MADS Settings
|
||||
|
||||
Fine-tune how the Modular Assistive Driving System (MADS) engages and disengages steering assistance.
|
||||
|
||||
**Location**: `Settings -> Steering -> Customize MADS`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
!!! info "Prerequisite"
|
||||
The main **Modular Assistive Driving System (MADS)** toggle must be enabled in [Steering Settings](index.md) to access this sub-panel.
|
||||
|
||||
---
|
||||
|
||||
## Toggle with Main Cruise
|
||||
|
||||
When enabled, pressing the main cruise button (the on/off button on the steering wheel) can activate MADS steering assistance.
|
||||
|
||||
!!! warning "Vehicle Restrictions"
|
||||
- **Rivian**: Always forced OFF (limited settings mode)
|
||||
- **Tesla (without vehicle bus)**: Always forced OFF (limited settings mode)
|
||||
|
||||
!!! note
|
||||
For vehicles without a dedicated LFA/LKAS button, disabling this will prevent lateral control engagement.
|
||||
|
||||
---
|
||||
|
||||
## Unified Engagement Mode (UEM)
|
||||
|
||||
When enabled, engaging cruise control also automatically engages MADS lateral control in a single action, rather than requiring separate activation.
|
||||
|
||||
Once lateral control is engaged via UEM, it remains engaged until you manually disable it using the MADS button or turn off the car.
|
||||
|
||||
!!! warning "Vehicle Restrictions"
|
||||
- **Rivian**: Always forced ON (limited settings mode)
|
||||
- **Tesla (without vehicle bus)**: Always forced ON (limited settings mode)
|
||||
|
||||
---
|
||||
|
||||
## Steering Mode on Brake Pedal
|
||||
|
||||
A row of three buttons controls what happens to MADS steering assistance when you press the brake pedal:
|
||||
|
||||
| Mode | What happens |
|
||||
|------|-------------|
|
||||
| **Remain Active** | Steering assistance continues even after you press the brake |
|
||||
| **Pause** | Steering assistance pauses but can be quickly resumed |
|
||||
| **Disengage** | Steering assistance fully disengages when you brake |
|
||||
|
||||
!!! warning "Vehicle Restrictions"
|
||||
- **Rivian**: Always forced to Disengage (limited settings mode)
|
||||
- **Tesla (without vehicle bus)**: Always forced to Disengage (limited settings mode)
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Modular Assistive Driving System](../../features/steering/mads.md)
|
||||
82
docs_sp/settings/steering/torque.md
Normal file
82
docs_sp/settings/steering/torque.md
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
title: Torque Settings
|
||||
---
|
||||
|
||||
# Torque Settings
|
||||
|
||||
Advanced tuning parameters for torque-based lateral (steering) control. These settings give you fine-grained control over how the steering motor responds.
|
||||
|
||||
**Location**: `Settings -> Steering -> Customize Torque Params`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
!!! info "Prerequisite"
|
||||
**Enforce Torque Lateral Control** must be enabled in [Steering Settings](index.md) to access this sub-panel. Not available on vehicles with angle-based steering.
|
||||
|
||||
!!! warning "Offroad Only"
|
||||
All torque settings can only be changed while the vehicle is offroad (parked with ignition off).
|
||||
|
||||
---
|
||||
|
||||
## Torque Control Tune Version
|
||||
|
||||
A button that opens a version selector. Choose which version of the torque control tuning algorithm to use. Newer versions may offer improved performance but can behave differently than what you are accustomed to.
|
||||
|
||||
---
|
||||
|
||||
## Self-Tune
|
||||
|
||||
Enables real-time self-tuning of torque parameters based on your driving behavior. The system continuously adjusts lateral acceleration factor and friction values for optimal steering feel.
|
||||
|
||||
---
|
||||
|
||||
## Less Restrict Settings for Self-Tune (Beta)
|
||||
|
||||
Uses a more relaxed self-tuning profile. The torque controller is more forgiving when learning values, which may provide a smoother but less responsive steering feel.
|
||||
|
||||
!!! note "Availability"
|
||||
This toggle only appears when **Self-Tune** is enabled.
|
||||
|
||||
---
|
||||
|
||||
## Enable Custom Tuning
|
||||
|
||||
Enables manual override of torque control parameters. When enabled, you can set specific values for lateral acceleration and friction instead of relying on self-tuning. The values you set here override the offline values from the vehicle's tuning data files.
|
||||
|
||||
---
|
||||
|
||||
## Manual Real-Time Tuning
|
||||
|
||||
Forces the torque controller to use your fixed custom values instead of the learned values from Self-Tune. Enabling this overrides Self-Tune values in real time.
|
||||
|
||||
!!! note "Availability"
|
||||
This toggle only appears when **Enable Custom Tuning** is enabled.
|
||||
|
||||
---
|
||||
|
||||
## Lateral Acceleration Factor
|
||||
|
||||
A slider that controls the lateral acceleration gain. Use the **-** and **+** buttons to adjust. The value displays as a decimal (e.g., 1.50 means 1.50x lateral acceleration factor).
|
||||
|
||||
Higher values produce more aggressive steering response. Lower values produce softer response.
|
||||
|
||||
!!! note "Availability"
|
||||
This slider only appears when **Enable Custom Tuning** is enabled.
|
||||
|
||||
---
|
||||
|
||||
## Friction
|
||||
|
||||
A slider that controls the friction compensation factor. Use the **-** and **+** buttons to adjust. The value displays as a decimal (e.g., 0.75).
|
||||
|
||||
Adjusts how much the system compensates for steering friction in your vehicle.
|
||||
|
||||
!!! note "Availability"
|
||||
This slider only appears when **Enable Custom Tuning** is enabled.
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [Torque Control](../../features/steering/torque-control.md)
|
||||
68
docs_sp/settings/sunnylink.md
Normal file
68
docs_sp/settings/sunnylink.md
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: sunnylink Settings
|
||||
---
|
||||
|
||||
# sunnylink Settings
|
||||
|
||||
Configure the sunnylink cloud integration for secure backup, restore, sponsorship, and remote configuration.
|
||||
|
||||
**Location**: `Settings -> sunnylink`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## Enable sunnylink
|
||||
|
||||
Master toggle for all sunnylink features. When disabled, no sunnylink requests are made. Your Dongle ID is displayed next to the toggle.
|
||||
|
||||
Enabling sunnylink for the first time triggers a consent prompt that must be completed before the feature activates.
|
||||
|
||||
!!! note "Availability"
|
||||
Can only be changed while the device is offroad.
|
||||
|
||||
---
|
||||
|
||||
## Sponsor Status
|
||||
|
||||
A button that opens the sponsor status dialog. Displays your current sponsor tier name and color. Becoming a sponsor grants early access to sunnylink features.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled when sunnylink is not enabled.
|
||||
|
||||
---
|
||||
|
||||
## Pair GitHub Account
|
||||
|
||||
A button that opens the GitHub pairing dialog. Links your GitHub account to the device for sponsor verification and API access. Displays **Paired** or **Not Paired** as the current status.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled when sunnylink is not enabled.
|
||||
|
||||
---
|
||||
|
||||
## Enable sunnylink uploader (infrastructure test)
|
||||
|
||||
Uploads driving data to sunnypilot servers. This feature is currently available to highest-tier sponsors only and is used for testing data volume and upload infrastructure.
|
||||
|
||||
!!! note "Availability"
|
||||
Disabled when sunnylink is not enabled.
|
||||
|
||||
---
|
||||
|
||||
## Backup Settings / Restore Settings
|
||||
|
||||
Two side-by-side buttons for managing settings backups through sunnylink:
|
||||
|
||||
- **Backup Settings**: Encrypts and uploads all current sunnypilot settings to the cloud. A progress indicator shows the upload status.
|
||||
- **Restore Settings**: Downloads and applies the most recently backed-up settings. A progress indicator shows the download status.
|
||||
|
||||
!!! note "Availability"
|
||||
Both buttons are disabled while the device is onroad or when sunnylink is not enabled.
|
||||
|
||||
---
|
||||
|
||||
## Related Features
|
||||
|
||||
- [sunnylink](../features/connected/sunnylink.md)
|
||||
104
docs_sp/settings/toggles.md
Normal file
104
docs_sp/settings/toggles.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: Toggles
|
||||
---
|
||||
|
||||
# Toggles
|
||||
|
||||
Core driving assist toggles that control fundamental sunnypilot behavior, driving personality, driver monitoring, and data recording.
|
||||
|
||||
**Location**: `Settings -> Toggles`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Available and configurable on all devices (comma 3X/3, comma four, sunnylink).
|
||||
|
||||
---
|
||||
|
||||
## Enable sunnypilot
|
||||
|
||||
Enables the sunnypilot driving assist system for adaptive cruise control and lane keeping. Your attention is required at all times while the system is active.
|
||||
|
||||
!!! warning "Restart Required"
|
||||
Changing this toggle requires the device to be offroad (parked, ignition off). A restart is needed for the change to take effect.
|
||||
|
||||
---
|
||||
|
||||
## Experimental Mode
|
||||
|
||||
Activates end-to-end longitudinal control with a new driving visualization. This alpha feature uses the neural network to handle gas and braking on all road types, including city streets with stop signs and traffic lights.
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control. Not available on vehicles using stock adaptive cruise control.
|
||||
|
||||
---
|
||||
|
||||
## Disengage on Accelerator Pedal
|
||||
|
||||
When enabled, pressing the gas pedal will immediately disengage sunnypilot. When disabled, pressing the gas pedal overrides sunnypilot's speed control without disengaging the system.
|
||||
|
||||
---
|
||||
|
||||
## Driving Personality
|
||||
|
||||
A row of three buttons that controls how closely sunnypilot follows the vehicle ahead and how aggressively it accelerates and brakes:
|
||||
|
||||
| Personality | Behavior |
|
||||
|-------------|----------|
|
||||
| **Aggressive** | Shorter following distance, quicker acceleration |
|
||||
| **Standard** | Moderate following distance and response |
|
||||
| **Relaxed** | Longer following distance, gentler acceleration |
|
||||
|
||||
!!! note "Availability"
|
||||
Requires longitudinal control.
|
||||
|
||||
---
|
||||
|
||||
## Enable Lane Departure Warnings
|
||||
|
||||
Alerts you to steer back into your lane when the vehicle drifts over a detected lane line without the turn signal active. Warnings activate above 31 mph (50 km/h).
|
||||
|
||||
---
|
||||
|
||||
## Always-On Driver Monitoring
|
||||
|
||||
Keeps the driver monitoring camera active even when sunnypilot is not engaged. The system will still watch for distracted or drowsy driving whenever the vehicle is on.
|
||||
|
||||
---
|
||||
|
||||
## Record and Upload Driver Camera
|
||||
|
||||
Uploads footage from the driver-facing camera to help improve the driver monitoring algorithm. When enabled, driver camera data is included in uploaded driving segments.
|
||||
|
||||
!!! warning "Restart Required"
|
||||
Changing this toggle requires the device to be offroad.
|
||||
|
||||
---
|
||||
|
||||
## Record and Upload Microphone Audio
|
||||
|
||||
Records microphone audio while driving. The audio is stored locally and included in dashcam video available through comma connect.
|
||||
|
||||
!!! warning "Restart Required"
|
||||
Changing this toggle requires the device to be offroad.
|
||||
|
||||
---
|
||||
|
||||
## Use Metric System
|
||||
|
||||
Switches the display from miles per hour (mph) to kilometers per hour (km/h) throughout the interface.
|
||||
|
||||
---
|
||||
|
||||
## Platform Differences
|
||||
|
||||
On **comma four**, this panel contains the same toggles with slightly different labels:
|
||||
|
||||
| comma 3X/3 Label | comma four Label |
|
||||
|-------------------|-----------------|
|
||||
| Enable sunnypilot | enable sunnypilot |
|
||||
| Driving Personality | driving personality |
|
||||
| Experimental Mode | experimental mode |
|
||||
| Use Metric System | use metric units |
|
||||
| Enable Lane Departure Warnings | lane departure warnings |
|
||||
| Always-On Driver Monitoring | always-on driver monitor |
|
||||
| Record and Upload Driver Camera | record & upload driver camera |
|
||||
| Record and Upload Microphone Audio | record & upload mic audio |
|
||||
35
docs_sp/settings/trips.md
Normal file
35
docs_sp/settings/trips.md
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: Trips Settings
|
||||
---
|
||||
|
||||
# Trips Settings
|
||||
|
||||
View your cumulative and recent driving statistics.
|
||||
|
||||
**Location**: `Settings -> Trips`
|
||||
|
||||
!!! info "Toggle & Device Availability"
|
||||
Supported on all devices. comma four users must use sunnylink to change this setting.
|
||||
|
||||
---
|
||||
|
||||
## All Time
|
||||
|
||||
A stat card showing your lifetime driving totals:
|
||||
|
||||
- **Drives** - total number of driving routes recorded
|
||||
- **Distance** - total distance driven (km or miles, based on your unit preference)
|
||||
- **Hours** - total hours of driving time
|
||||
|
||||
---
|
||||
|
||||
## Past Week
|
||||
|
||||
A stat card showing your driving activity from the last 7 days:
|
||||
|
||||
- **Drives** - number of routes recorded this week
|
||||
- **Distance** - distance driven this week
|
||||
- **Hours** - hours driven this week
|
||||
|
||||
!!! note
|
||||
This panel is display-only. There are no interactive controls.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user