diff --git a/README.md b/README.md
index a77a80935d..158bb08c49 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@
·
Community
·
- Try it on a comma 3X
+ Try it on a comma four
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:
-1. **Supported Device:** a comma 3X, 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.
+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 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).
-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.
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 7583095eaf..d189324ff7 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -13,13 +13,13 @@ Development is coordinated through [Discord](https://discord.comma.ai) and GitHu
## What contributions are we looking for?
**openpilot's priorities are [safety](SAFETY.md), stability, quality, and features, in that order.**
-openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and all development is towards that goal.
+openpilot is part of comma's mission to *solve self-driving cars while delivering shippable intermediaries*, and all development is towards that goal.
### What gets merged?
The probability of a pull request being merged is a function of its value to the project and the effort it will take us to get it merged.
If a PR offers *some* value but will take lots of time to get merged, it will be closed.
-Simple, well-tested bug fixes are the easiest to merge, and new features are the hardest to get merged.
+Simple, well-tested bug fixes are the easiest to merge, and new features are the hardest to get merged.
All of these are examples of good PRs:
* typo fix: https://github.com/commaai/openpilot/pull/30678
@@ -29,7 +29,7 @@ All of these are examples of good PRs:
### What doesn't get merged?
-* **style changes**: code is art, and it's up to the author to make it beautiful
+* **style changes**: code is art, and it's up to the author to make it beautiful
* **500+ line PRs**: clean it up, break it up into smaller PRs, or both
* **PRs without a clear goal**: every PR must have a singular and clear goal
* **UI design**: we do not have a good review process for this yet
@@ -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'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
diff --git a/docs/assets/four-ports.svg b/docs/assets/four-ports.svg
new file mode 100644
index 0000000000..7bab31abf3
--- /dev/null
+++ b/docs/assets/four-ports.svg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:494bd79c4d81d8bf766845cb451fa14e5b9ad931ff8aa90daea0ba67e164abe3
+size 105562
diff --git a/docs/concepts/glossary.md b/docs/concepts/glossary.md
index a09b0f0785..df9e9aa080 100644
--- a/docs/concepts/glossary.md
+++ b/docs/concepts/glossary.md
@@ -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 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).
diff --git a/docs/getting-started/what-is-openpilot.md b/docs/getting-started/what-is-openpilot.md
index b3c56c8410..6fab2b979b 100644
--- a/docs/getting-started/what-is-openpilot.md
+++ b/docs/getting-started/what-is-openpilot.md
@@ -5,7 +5,7 @@
## 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?
diff --git a/docs/how-to/connect-to-comma.md b/docs/how-to/connect-to-comma.md
index 5f02e11599..f0e45b19af 100644
--- a/docs/how-to/connect-to-comma.md
+++ b/docs/how-to/connect-to-comma.md
@@ -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
-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.
-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 3X, the serial console is accessible through the [panda](https://github.com/commaai/panda) using the `panda/tests/som_debug.sh` script.
+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`
+> [!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
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:
-
+
* Plug your device into constant power using port 2, letting the device boot up
* 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`
> [!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).
diff --git a/docs/how-to/replay-a-drive.md b/docs/how-to/replay-a-drive.md
index b0db36a46f..a11b29dcc4 100644
--- a/docs/how-to/replay-a-drive.md
+++ b/docs/how-to/replay-a-drive.md
@@ -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 3X*
+*Hardware required: jungle and comma four*
1. Connect your PC to a jungle.
2.
diff --git a/mkdocs.yml b/mkdocs.yml
index 550f807aca..f54c6e39bb 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -21,7 +21,7 @@ nav:
- What is openpilot?: getting-started/what-is-openpilot.md
- How-to:
- 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
#- Replay a drive: how-to/replay-a-drive.md
- Concepts:
diff --git a/selfdrive/debug/README.md b/selfdrive/debug/README.md
index 83b8a994db..172cf700e4 100644
--- a/selfdrive/debug/README.md
+++ b/selfdrive/debug/README.md
@@ -52,7 +52,7 @@ optional arguments:
-h, --help show this help message and exit
--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-
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.
diff --git a/tools/camerastream/README.md b/tools/camerastream/README.md
index 2f7498a07c..f75ebbf0fb 100644
--- a/tools/camerastream/README.md
+++ b/tools/camerastream/README.md
@@ -49,7 +49,7 @@ usage: compressed_vipc.py [-h] [--nvidia] [--cams CAMS] [--silent] addr
Decode video streams and broadcast on VisionIPC
positional arguments:
- addr Address of comma three
+ addr Address of comma four
options:
-h, --help show this help message and exit
diff --git a/tools/joystick/joystick_control.py b/tools/joystick/joystick_control.py
index 11d17e587e..8fe28ec0f0 100755
--- a/tools/joystick/joystick_control.py
+++ b/tools/joystick/joystick_control.py
@@ -42,7 +42,7 @@ class Keyboard:
class Joystick:
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
self.cancel_button = 'BTN_NORTH' # BTN_NORTH=X/triangle
if HARDWARE.get_device_type() == 'pc':
@@ -123,7 +123,7 @@ def main():
if __name__ == '__main__':
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 ' +
- 'a PlayStation 5 DualSense controller on the comma 3X.',
+ 'a PlayStation 5 DualSense controller on the comma four.',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('--keyboard', action='store_true', help='Use your keyboard instead of a joystick')
args = parser.parse_args()
diff --git a/tools/replay/README.md b/tools/replay/README.md
index 794c08f6a3..97ee91d988 100644
--- a/tools/replay/README.md
+++ b/tools/replay/README.md
@@ -101,7 +101,7 @@ tools/plotjuggler/juggle.py --stream
## 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: