内容
# Better-Tesla 🚗⚡
**Better-Tesla**,是一款用于监听、分析和向Tesla汽车的CAN Bus(控制区域网络)发送特定命令的开源硬件和软件项目。
该项目与Claude、Cursor等AI助手完全集成,提供一个**MCP(模型上下文协议)**服务器。这样,您的AI助手可以实时监控车辆的CAN网络,并在您进行逆向工程时提供帮助。
---
## 🛠️ 硬件需求
* **NodeMCU ESP8266 (v2)**
* **MCP2515 CAN控制器模块** (重要:请务必使用带有**8MHz**晶体的型号)
* *(可选)* 如果您想同时监听第二条CAN线路,可以添加第二个MCP2515模块。
* **连接图(SPI):**
* `CS` ➔ `D8 (GPIO15)` *(主MCP)*
* `CS` ➔ `D3 (GPIO0)` *(第二个MCP - 可选)*
* `INT` ➔ `D2 (GPIO4)` *(第二个MCP中未使用)*
* `SCK` ➔ `D5 (GPIO14)` *(两个模块共享)*
* `MOSI` ➔ `D7 (GPIO13)` *(两个模块共享)*
* `MISO` ➔ `D6 (GPIO12)` *(两个模块共享)*
* Tesla CAN Bus适配器电缆(根据您的车辆型号和年份,选择OBD2或专用插座)
---
## 📂 项目结构
该项目由4个主要组件组成:
1. **`firmware/` (C++):** 加载到ESP8266中的软件。它读取CAN Bus上的数据,并以JSON格式通过串行端口将其传输到计算机。它还执行主动注入任务,例如在倒车时打开四灯。
2. **`bridge/` (Python):** 桥接软件,实时读取从ESP8266传来的串行端口数据,并将其记录到名为`can.db`的本地SQLite数据库中。
3. **`mcp_server/` (Python):** MCP服务器,使AI助手(Cursor,Claude)能够访问车辆的实时CAN数据,在DBC数据库中搜索并解释信号。
4. **`data/hacks/` (Markdown):** 记录用于绕过Tesla安全系统和触发车辆功能(例如打开四灯)的技术和发现的内容。
---
## 🚀 安装和使用
### 1. 加载固件(ESP8266)
我们使用[PlatformIO](https://platformio.org/)编译和加载软件。
1. 使用VS Code或PlatformIO IDE打开`firmware/`文件夹。
2. *(可选)* 如果您连接了第二个MCP2515,请将`firmware/include/config.h`文件中的`ENABLE_SECOND_MCP2515`设置设为`true`。
3. 通过USB将ESP8266连接到计算机。
4. 通过PlatformIO的`Upload`功能加载代码。
### 2. 运行Python桥接器
要记录数据并向ESP8266发送命令,您需要运行桥接器脚本。
```bash
# 安装Python依赖项(建议使用虚拟环境)
python -m venv .venv
source .venv/bin/activate
pip install pyserial
# 启动桥接器(自动查找串行端口)
python bridge/bridge.py
```
*注意:数据将存储在名为`can.db`的SQLite数据库中。*
### 3. 使用MCP服务器
如果您正在使用支持此项目的AI助手(例如Cursor),可以将MCP服务器添加到您的配置中。这样,您可以向AI提问,例如“当前哪些CAN ID正在更改?”或“四灯的CAN ID是什么?”
```json
{
"mcpServers": {
"better-tesla": {
"command": "python",
"args": ["/path/to/mcp_server/server.py"]
}
}
}
```
---
## 🎯 项目目标
Better-Tesla项目旨在解密现代汽车(尤其是Tesla)的封闭汽车网络(CAN Bus)的密码,解释信号,并通过开源硬件提供与车辆的交互。主要目标是:
* **逆向工程和分析:** 发现车辆硬件如何通信并记录这些信息(通过DBC文件和笔记)。
* **AI辅助开发:** 提供MCP(模型上下文协议)服务器,使LLM和AI助手(例如Cursor,Claude)能够直接分析实时车辆数据。
* **可定制的车辆体验:** 根据获得的数据,使用第三方软件和开源硬件(ESP8266)为车辆添加新的自动化和功能。
* **智能过滤和控制:** 通过串行端口提供通信(例如`filter`,`send`),以便仅监控特定的CAN ID或直接向车辆发送硬件命令。
---
## 🙏 致谢和引用
在Better-Tesla项目的开发和Tesla CAN Bus数据分析过程中,我们从以下优秀的开源项目中汲取灵感并受益良多:
* [mikegapinski/tesla-can-explorer](https://github.com/mikegapinski/tesla-can-explorer) - CAN消息分析和硬件通信原理
* [commaai/opendbc](https://github.com/commaai/opendbc) - 全面的开源DBC(数据库)文件存档
---
## ⚠️ 免责声明
本项目纯粹用于教育和研究目的。向车辆的CAN Bus线路注入数据(写入)**可能存在危险**,可能导致车辆反应异常或驾驶安全性受损。
使用此软件时可能出现的任何硬件故障、事故或保修失效**完全由您自行承担**。请勿在行驶中的车辆上进行CAN Bus注入测试。