diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index cb55d2f831..b14ae65842 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -62,4 +62,4 @@ jobs:
git commit -m "build docs"
# docs live in different repo to not bloat openpilot's full clone size
- git push -f origin tmp:gh-pages2
+ git push -f origin tmp:gh-pages
diff --git a/docs/docs/car-porting/what-is-a-car-port.md b/docs/docs/car-porting/what-is-a-car-port.md
index d089d9513e..b918bb50e0 100644
--- a/docs/docs/car-porting/what-is-a-car-port.md
+++ b/docs/docs/car-porting/what-is-a-car-port.md
@@ -1,9 +1,22 @@
# What is a car port?
-All car ports live in `openpilot/selfdrive/car/`.
+A car port enables openpilot support on a particular car. Each car model openpilot supports needs to be individually ported. All car ports live in `openpilot/selfdrive/car/`.
-* interface.py: Interface for the car, defines the CarInterface class
-* carstate.py: Reads CAN from car and builds openpilot CarState message
-* carcontroller.py: Builds CAN messages to send to car
-* values.py: Limits for actuation, general constants for cars, and supported car documentation
-* radar_interface.py: Interface for parsing radar points from the car
+The complexity of a car port varies depending on many factors including:
+* existing openpilot support for similar cars
+* architecture and APIs available in the car
+
+
+# Structure of a car port
+* `interface.py`: Interface for the car, defines the CarInterface class
+* `carstate.py`: Reads CAN from car and builds openpilot CarState message
+* `carcontroller.py`: Builds CAN messages to send to car
+* `values.py`: Limits for actuation, general constants for cars, and supported car documentation
+* `radar_interface.py`: Interface for parsing radar points from the car
+
+
+# Overiew
+
+[Jason Young](https://github.com/jyoung8607) gave a talk at COMMA_CON with an overview of the car porting process. The talk is available on YouTube:
+
+https://youtu.be/KcfzEHB6ms4?si=5szh1PX6TksOCKmM
diff --git a/docs/docs/contributing/architecture.md b/docs/docs/contributing/architecture.md
new file mode 100644
index 0000000000..c79bec1ac6
--- /dev/null
+++ b/docs/docs/contributing/architecture.md
@@ -0,0 +1 @@
+# Architecture
diff --git a/docs/docs/contributing/roadmap.md b/docs/docs/contributing/roadmap.md
new file mode 100644
index 0000000000..64ccdb3b75
--- /dev/null
+++ b/docs/docs/contributing/roadmap.md
@@ -0,0 +1,5 @@
+# Roadmap
+
+Coming soon...
+
+For now, check out our GitHub [milestones](https://github.com/commaai/openpilot/milestones) and [bounties](https://comma.ai/bounties).
diff --git a/docs/docs/getting-started/what-is-openpilot.md b/docs/docs/getting-started/what-is-openpilot.md
index de45ae035b..b3c56c8410 100644
--- a/docs/docs/getting-started/what-is-openpilot.md
+++ b/docs/docs/getting-started/what-is-openpilot.md
@@ -1,6 +1,6 @@
# What is openpilot?
-[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
+[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](https://github.com/commaai/openpilot/blob/master/docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](https://github.com/commaai/openpilot/blob/master/docs/INTEGRATION.md) and [limitations](https://github.com/commaai/openpilot/blob/master/docs/LIMITATIONS.md).
## How do I use it?
diff --git a/tools/ssh/README.md b/docs/docs/how-to/connect-to-comma.md
similarity index 63%
rename from tools/ssh/README.md
rename to docs/docs/how-to/connect-to-comma.md
index 588ea71579..53460ac990 100644
--- a/tools/ssh/README.md
+++ b/docs/docs/how-to/connect-to-comma.md
@@ -1,39 +1,42 @@
-# SSH
+# connect to a comma 3/3X
-## Quick Start
+A comma 3/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 3X, the serial console is accessible from the main OBD-C port.
+Connect the comma 3/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/serial/connect.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.
+
+## 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.
* Enable SSH in your device's settings
* Enter your GitHub username in the device's settings
* Connect to your device
- * Username: `comma`
- * Port: `22` or `8022`
+ * Username: `comma`
+ * Port: `22`
Here's an example command for connecting to your device using its tethered connection:
`ssh comma@192.168.43.1`
For doing development work on device, it's recommended to use [SSH agent forwarding](https://docs.github.com/en/developers/overview/using-ssh-agent-forwarding).
-## Notes
+### Notes
The public keys are only fetched from your GitHub account once. In order to update your device's authorized keys, you'll need to re-enter your GitHub username.
The `id_rsa` key in this directory only works while your device is in the setup state with no software installed. After installation, that default key will be removed.
-See the [community wiki](https://github.com/commaai/openpilot/wiki/SSH) for more detailed instructions and information.
+#### ssh.comma.ai proxy
-# Connecting to ssh.comma.ai
-SSH into your comma device from anywhere with `ssh.comma.ai`. Requires a [comma prime subscription](https://comma.ai/connect).
+With a [comma prime subscription](https://comma.ai/connect), you can SSH into your comma device from anywhere.
-## Setup
-
-With software version 0.6.1 or newer, enter your GitHub username on your device under Developer Settings. Your GitHub authorized public keys will become your authorized SSH keys for `ssh.comma.ai`. You can add any additional keys in `/system/comma/home/.ssh/authorized_keys.persist`.
-
-## Recommended .ssh/config
-
-With the below SSH configuration, you can type `ssh comma-{dongleid}` to connect to your device through `ssh.comma.ai`.
-For example: `ssh comma-ffffffffffffffff`
+With the below SSH configuration, you can type `ssh comma-{dongleid}` to connect to your device through `ssh.comma.ai`.
```
Host comma-*
@@ -41,6 +44,7 @@ Host comma-*
User comma
IdentityFile ~/.ssh/my_github_key
ProxyCommand ssh %h@ssh.comma.ai -W %h:%p
+
Host ssh.comma.ai
Hostname ssh.comma.ai
Port 22
diff --git a/docs/docs/how-to/first-pr.md b/docs/docs/how-to/first-pr.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/docs/docs/index.md b/docs/docs/index.md
new file mode 120000
index 0000000000..74ea27aeeb
--- /dev/null
+++ b/docs/docs/index.md
@@ -0,0 +1 @@
+getting-started/what-is-openpilot.md
\ No newline at end of file
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index b0f571954d..45a1503b0c 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -1,6 +1,9 @@
site_name: openpilot docs
docs_dir: docs
repo_url: https://github.com/commaai/openpilot/
+site_url: https://docs.comma.ai
+
+strict: true
theme:
name: terminal
@@ -11,8 +14,19 @@ nav:
- Getting Started:
- What is openpilot?: getting-started/what-is-openpilot.md
- How-to:
- - Turn the speed blue: how-to/turning-the-speed-blue.md
+ #- Make my first pull request: how-to/first-pr.md
+ - Connect to a comma 3/3X: how-to/connect-to-comma.md
- Car Porting:
- What is a car port?: car-porting/what-is-a-car-port.md
- Porting a car brand: car-porting/brand-port.md
- Porting a car model: car-porting/model-port.md
+ - Contributing:
+ - Roadmap: contributing/roadmap.md
+ #- Architecture: contributing/architecture.md
+ - Contributing: https://github.com/commaai/openpilot/blob/master/docs/CONTRIBUTING.md
+ - Links:
+ - Blog: https://blog.comma.ai
+ - Bounties: https://comma.ai/bounties
+ - GitHub: https://github.com/commaai
+ - Discord: https://discord.comma.ai
+ - X: https://x.com/comma_ai
diff --git a/tools/ssh/id_rsa b/system/hardware/tici/id_rsa
similarity index 100%
rename from tools/ssh/id_rsa
rename to system/hardware/tici/id_rsa