{"id":24701630,"url":"https://github.com/launchplatform/securedash-esp32","last_synced_at":"2026-05-21T07:18:47.436Z","repository":{"id":271841241,"uuid":"911519968","full_name":"LaunchPlatform/securedash-esp32","owner":"LaunchPlatform","description":"ESP32-based wireless accessible Tesla USB drive written in Rust (FAILED)","archived":false,"fork":false,"pushed_at":"2025-01-17T22:45:24.000Z","size":461,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T04:12:49.754Z","etag":null,"topics":["embeded","esp32","rust","tesla"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LaunchPlatform.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-03T07:58:24.000Z","updated_at":"2025-02-24T21:55:07.000Z","dependencies_parsed_at":"2025-01-27T05:25:00.067Z","dependency_job_id":null,"html_url":"https://github.com/LaunchPlatform/securedash-esp32","commit_stats":null,"previous_names":["launchplatform/securedash-esp32"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fsecuredash-esp32","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fsecuredash-esp32/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fsecuredash-esp32/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaunchPlatform%2Fsecuredash-esp32/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LaunchPlatform","download_url":"https://codeload.github.com/LaunchPlatform/securedash-esp32/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244902924,"owners_count":20529115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embeded","esp32","rust","tesla"],"created_at":"2025-01-27T05:24:59.161Z","updated_at":"2026-05-21T07:18:47.394Z","avatar_url":"https://github.com/LaunchPlatform.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SecureDash-ESP32\n\n\u003e [!WARNING]  \n\u003e Please note that this project is **ABADDONED** for now due to the limited ESP32 SD card and USB speed.\n\u003e If you purchase ESP32-S3-USB-OTG and try to use it as your Tesla Dashcam USB drive, it probably **WON'T WORK**.\n\nSecureDash-ESP is an ESP32-based wireless accessible Tesla USB drive written in Rust.\nThe author made a mistake and forgot to check the possible read/write speed limit of the SD card and USB; as a result, **it cannot sustain the needs of its original purpose**.\nDespite that, it might still be educational and potentially useful for some use cases that don't require high-speed IOs.\nTherefore, we open-sourced it regardless.\nPlease read the article [ESP32 Tesla dashcam remote USB project in Rust failed. Here's what I've learned](https://fangpenlin.com/posts/2025/01/17/my-rust-esp32-project-failure/) to learn more about the story of this project.\nWe won't provide any updates or bug fixing for this project at this moment.\n\n![Alt text](project-banner.png)\n\n# Hardware\n\nWe developed this system with [ESP32-S3-USB-OTG](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-usb-otg/user_guide.html).\nYou can purchase it [here from Amazon](https://www.amazon.com/Espressif-ESP32-S3-USB-OTG-Development-Board/dp/B09JZ8PTLX) (not an affiliate link).\n\n# Config file\nWe designed this wireless USB thumb drive so Tesla can be as easily configurable as possible.\nWe plan to provide a web UI for generating a simple TOML config file for the users to drop into the USB drive to configure it.\nTherefore, even non-technical users should be able to use it.\n\nThe config file filename is `securedash.toml`, and there are a few sections in it.\n\n## Wifi\n\nThe Wifi section defines how it should connect to the home Wifi.\nHere's an example:\n\n```TOML\n[wifi]\nssid = \"my-home-wifi\"\npassword = \"my-super-duper-secret-password\"\nauth_method = \"WPA3Personal\"\n```\n\nPlease note that the `auth_method` is optional.\nBy default, `WPA2Personal` will be used if it is not provided.\nThe all available `auth_method` options can be found [here](https://github.com/LaunchPlatform/securedash-esp32/blob/cff762a9cd502c62caabc0c75c4b9111c88bac02/src/config.rs#L7-L17).\n\n## API\n\nThe API section defines which websocket endpoint to connect to when Wifi connection is available.\nHere's an example:\n\n```\n[api]\nendpoint = \"ws://192.168.100.123:8080/tesla-backup\"\n```\n\n# API\n\nWe envisioned the storage server always running in the home network or on a public endpoint.\nThe Telsa vehicle returns and connects to the home Wifi without a well-known IP address.\nTherefore, making it a simple HTTP API server running on ESP32 is unsuitable for this use case.\nInstead, we make it a simple Websocket client connecting to a known endpoint of the storage server.\nUpon connection, the storage server can send request frames to the ESP32 via WebSocket.\nThe commands are in simple JSON format like this:\n\n```json\n{\n    \"id\": \"unique_id_of_req\",\n    \"command\": {\"PAYLOAD OF COMMAND\": \"...\"}\n}\n```\n\nHere are the available commands.\n\n## GetInfo\n\nRequest asking ESP32 for its device information.\nFor example:\n\n```json\n{\n    \"id\": \"a62fdfb7-4aed-413d-953d-ed3b54cce2b3\",\n    \"command\": {\n        \"type\": \"GetInfo\"\n    }\n}\n```\n\n## ListFiles\n\nRequest that ESP32 list files on a specific path.\nFor example:\n\n```json\n{\n    \"id\": \"222e46a8-bc3e-4867-84aa-b47d3beae193\",\n    \"command\": {\n        \"type\": \"ListFiles\",\n        \"path\": \"/disk\"\n    }\n}\n```\n\n## FetchFile\n\nRequest that ESP32 fetch content and return in multiple binary frames.\nFor example:\n\n```json\n{\n    \"id\": \"222e46a8-bc3e-4867-84aa-b47d3beae193\",\n    \"command\": {\n        \"type\": \"FetchFile\",\n        \"path\": \"/disk/TeslaCam/RecentClips/2023-11-15_14-02-02-back.mp4\",\n        \"chunk_size\": 4096\n    }\n}\n```\n\n## Reboot\n\nRequest that ESP32 reboot itself.\nFor example:\n\n\n```json\n{\n    \"id\": \"a62fdfb7-4aed-413d-953d-ed3b54cce2b3\",\n    \"command\": {\n        \"type\": \"Reboot\"\n    }\n}\n```\n\nNot implemented yet.\n\n# Alternatives\n\n- [teslausb](https://github.com/marcone/teslausb)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchplatform%2Fsecuredash-esp32","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchplatform%2Fsecuredash-esp32","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchplatform%2Fsecuredash-esp32/lists"}