docs: comma 3X to comma four (#37009)

* comma 3X -> comma four

* add comma four ports image
This commit is contained in:
Lukas
2026-01-21 00:15:12 +01:00
committed by GitHub
parent 6c7f3751e7
commit a7dfd36c00
12 changed files with 29 additions and 25 deletions
+4 -4
View File
@@ -17,7 +17,7 @@
<span> · </span> <span> · </span>
<a href="https://discord.comma.ai">Community</a> <a href="https://discord.comma.ai">Community</a>
<span> · </span> <span> · </span>
<a href="https://comma.ai/shop">Try it on a comma 3X</a> <a href="https://comma.ai/shop">Try it on a comma four</a>
</h3> </h3>
Quick start: `bash <(curl -fsSL openpilot.comma.ai)` Quick start: `bash <(curl -fsSL openpilot.comma.ai)`
@@ -42,10 +42,10 @@ Using openpilot in a car
------ ------
To use openpilot in a car, you need four things: To use openpilot in a car, you need four things:
1. **Supported Device:** a comma 3X, available at [comma.ai/shop](https://comma.ai/shop/comma-3x). 1. **Supported Device:** a comma four, available at [comma.ai/shop](https://comma.ai/shop/comma-3x).
2. **Software:** The setup procedure for the comma 3X allows users to enter a URL for custom software. Use the URL `openpilot.comma.ai` to install the release version. 2. **Software:** The setup procedure for the comma four allows users to enter a URL for custom software. Use the URL `openpilot.comma.ai` to install the release version.
3. **Supported Car:** Ensure that you have one of [the 275+ supported cars](docs/CARS.md). 3. **Supported Car:** Ensure that you have one of [the 275+ supported cars](docs/CARS.md).
4. **Car Harness:** You will also need a [car harness](https://comma.ai/shop/car-harness) to connect your comma 3X to your car. 4. **Car Harness:** You will also need a [car harness](https://comma.ai/shop/car-harness) to connect your comma four to your car.
We have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup). Note that it's possible to run openpilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play. We have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup). Note that it's possible to run openpilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play.
+1 -1
View File
@@ -39,7 +39,7 @@ All of these are examples of good PRs:
### First contribution ### 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. [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's lot of bounties that don't require a comma 3X or a car. There's lot of bounties that don't require a comma four or a car.
## Pull Requests ## Pull Requests
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:494bd79c4d81d8bf766845cb451fa14e5b9ad931ff8aa90daea0ba67e164abe3
size 105562
+1 -1
View File
@@ -6,4 +6,4 @@
* **segment**: routes are split into one minute chunks called segments. * **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). * **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). * **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 3X**: the latest hardware by comma.ai for running openpilot. more info at [comma.ai/shop](https://comma.ai/shop). * **comma four**: the latest hardware by comma.ai for running openpilot. more info at [comma.ai/shop](https://comma.ai/shop).
+1 -1
View File
@@ -5,7 +5,7 @@
## How do I use it? ## How do I use it?
openpilot is designed to be used on the comma 3X. openpilot is designed to be used on the comma four.
## How does it work? ## How does it work?
+9 -8
View File
@@ -1,19 +1,20 @@
# connect to a comma 3X # Connect to comma 3X or comma four
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). 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).
## Serial Console ## Serial Console
On both the comma three and 3X, the serial console is accessible from the main OBD-C port. On the comma 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. 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. 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` * Username: `comma`
* Password: `comma` * Password: `comma`
> [!NOTE]
> Serial console access through the OBD-C port is not available on the comma four. On comma four devices, serial access requires opening the device to access the internal debug connector.
## SSH ## SSH
In order to SSH into your device, you'll need a GitHub account with SSH keys. See this [GitHub article](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) for getting your account setup with SSH keys. In order to SSH into your device, you'll need a GitHub account with SSH keys. See this [GitHub article](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) for getting your account setup with SSH keys.
@@ -34,7 +35,7 @@ For doing development work on device, it's recommended to use [SSH agent forward
In order to use ADB on your device, you'll need to perform the following steps using the image below for reference: In order to use ADB on your device, you'll need to perform the following steps using the image below for reference:
![comma 3/3x back](../assets/three-back.svg) ![comma four ports](../assets/four-ports.svg)
* Plug your device into constant power using port 2, letting the device boot up * Plug your device into constant power using port 2, letting the device boot up
* Enable ADB in your device's settings * Enable ADB in your device's settings
@@ -45,7 +46,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` * Here's an example command for connecting to your device using its tethered connection: `adb connect 192.168.43.1:5555`
> [!NOTE] > [!NOTE]
> The default port for ADB is 5555 on the comma 3X. > The default port for ADB is 5555 on the comma four.
For more info on ADB, see the [Android Debug Bridge (ADB) documentation](https://developer.android.com/tools/adb). For more info on ADB, see the [Android Debug Bridge (ADB) documentation](https://developer.android.com/tools/adb).
+1 -1
View File
@@ -8,7 +8,7 @@ Replaying is a critical tool for openpilot development and debugging.
Just run `tools/replay/replay --demo`. Just run `tools/replay/replay --demo`.
## Replaying CAN data ## Replaying CAN data
*Hardware required: jungle and comma 3X* *Hardware required: jungle and comma four*
1. Connect your PC to a jungle. 1. Connect your PC to a jungle.
2. 2.
+1 -1
View File
@@ -21,7 +21,7 @@ nav:
- What is openpilot?: getting-started/what-is-openpilot.md - What is openpilot?: getting-started/what-is-openpilot.md
- How-to: - How-to:
- Turn the speed blue: how-to/turn-the-speed-blue.md - Turn the speed blue: how-to/turn-the-speed-blue.md
- Connect to a comma 3X: how-to/connect-to-comma.md - Connect to a comma 3X or comma four: how-to/connect-to-comma.md
# - Make your first pull request: how-to/make-first-pr.md # - Make your first pull request: how-to/make-first-pr.md
#- Replay a drive: how-to/replay-a-drive.md #- Replay a drive: how-to/replay-a-drive.md
- Concepts: - Concepts:
+1 -1
View File
@@ -52,7 +52,7 @@ optional arguments:
-h, --help show this help message and exit -h, --help show this help message and exit
--debug enable ISO-TP/UDS stack debugging output --debug enable ISO-TP/UDS stack debugging output
This tool is meant to run directly on a vehicle-installed comma three, with This tool is meant to run directly on a vehicle-installed comma four, with
the openpilot/tmux processes stopped. It should also work on a separate PC with a USB- the openpilot/tmux processes stopped. It should also work on a separate PC with a USB-
attached comma panda. Vehicle ignition must be on. Recommend engine not be running when attached comma panda. Vehicle ignition must be on. Recommend engine not be running when
making changes. Must turn ignition off and on again for any changes to take effect. making changes. Must turn ignition off and on again for any changes to take effect.
+1 -1
View File
@@ -49,7 +49,7 @@ usage: compressed_vipc.py [-h] [--nvidia] [--cams CAMS] [--silent] addr
Decode video streams and broadcast on VisionIPC Decode video streams and broadcast on VisionIPC
positional arguments: positional arguments:
addr Address of comma three addr Address of comma four
options: options:
-h, --help show this help message and exit -h, --help show this help message and exit
+2 -2
View File
@@ -42,7 +42,7 @@ class Keyboard:
class Joystick: class Joystick:
def __init__(self): def __init__(self):
# This class supports a PlayStation 5 DualSense controller on the comma 3X # This class supports a PlayStation 5 DualSense controller on the comma four
# TODO: find a way to get this from API or detect gamepad/PC, perhaps "inputs" doesn't support it # TODO: find a way to get this from API or detect gamepad/PC, perhaps "inputs" doesn't support it
self.cancel_button = 'BTN_NORTH' # BTN_NORTH=X/triangle self.cancel_button = 'BTN_NORTH' # BTN_NORTH=X/triangle
if HARDWARE.get_device_type() == 'pc': if HARDWARE.get_device_type() == 'pc':
@@ -123,7 +123,7 @@ def main():
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Publishes events from your joystick to control your car.\n' + parser = argparse.ArgumentParser(description='Publishes events from your joystick to control your car.\n' +
'openpilot must be offroad before starting joystick_control. This tool supports ' + 'openpilot must be offroad before starting joystick_control. This tool supports ' +
'a PlayStation 5 DualSense controller on the comma 3X.', 'a PlayStation 5 DualSense controller on the comma four.',
formatter_class=argparse.ArgumentDefaultsHelpFormatter) formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--keyboard', action='store_true', help='Use your keyboard instead of a joystick') parser.add_argument('--keyboard', action='store_true', help='Use your keyboard instead of a joystick')
args = parser.parse_args() args = parser.parse_args()
+1 -1
View File
@@ -101,7 +101,7 @@ tools/plotjuggler/juggle.py --stream
## watch3 ## watch3
watch all three cameras simultaneously from your comma three routes with watch3 watch all three cameras simultaneously from your comma four routes with watch3
simply replay a route using the `--dcam` and `--ecam` flags: simply replay a route using the `--dcam` and `--ecam` flags: