Turn a Raspberry Pi into a smart USB drive for your Tesla's dashcam.
Auto-archives. Modern web UI. Multi-camera viewer. Privacy-first.
- Plugs into your Tesla's USB port and pretends to be a dashcam drive.
- Tracks every drive — route on a map, distance, speed, and the dashcam clips that recorded it — built from the metadata Tesla embeds in each clip.
- Enriches drives with Tesla BLE telemetry — battery, HVAC, cabin and exterior temps, TPMS, odometer, and location — pulled over Bluetooth and layered onto each trip for a much fuller picture than the dashcam metadata gives you on its own.
- Archives clips automatically to your NAS, cloud, or wherever — over WiFi, in the background.
- Keeps the car awake (and the dashcam recording) via the same BLE link — no Tesla API subscription needed.
- Privacy controls. Minimal device reporting with a visible setup choice and an easy opt-out.
The Rust rewrite of the original Go version. Same sentryusb.conf, faster server, more reliable.
Sentry USB is one of the free tools for Tesla owners from the Sentry Six project, alongside Sentry Studio (desktop TeslaCam viewer), Sentry Drive (drive history and FSD analytics), and Sentry Connect (the iPhone companion app for this Pi). Not affiliated with Tesla, Inc. Unrelated to the Sentry (sentry.io) error-monitoring service.
Important
Beginning with update 2026.20, Tesla has begun offering the ability to encrypt Tesla cam footage, which is enabled by default. Encrypted files cannot be read by Sentry USB. To continue using Sentry USB, please disable the encryption.
You can find the relevant settings in your vehicle's menu under Safety, beneath the dashcam USB storage options.

Every drive your Tesla recorded — route, distance, duration, battery deltas, and FSD usage — with rolling totals for the selected time range.

Per-drive deep view: speed curve, battery deltas, climate with HVAC runtime, odometer, and FSD analytics — alongside the route map and synchronized multi-camera dashcam playback.

Every charge session — energy added, duration, cost, and charging speed — with per-tag time-of-use electricity rates and rolling totals for the selected range.

11-step setup wizard — no SSH, no config files.

Everything reconfigurable from the browser.
| Drives tracking | Every trip with route, distance, duration, battery deltas, and FSD usage — plus the dashcam clips one click in |
| Tesla BLE telemetry | Adds battery, HVAC, cabin/exterior temps, TPMS, odometer, and location to each drive — beyond what Tesla's dashcam metadata carries on its own |
| Multi-camera viewer | Synchronized 6-camera playback with HW3-aware adaptive grid and drift correction |
| Auto-archive | CIFS / SMB, rsync, rclone (cloud), NFS — kicks off whenever the Pi sees known WiFi |
| Keep awake | BLE (free, same link as telemetry), TeslaFi, Tessie, or generic webhook |
| Sentry Cloud (beta) | Encrypted cloud sync — drives are encrypted on the Pi before they leave your network |
| Notifications | Pushover, ntfy, Gotify, Discord, Telegram, Slack, Signal, Matrix, AWS SNS, IFTTT, Webhook, iOS app |
| Privacy controls | Minimal device statistics, a visible setup choice, and full per-flow disclosure |
Note
No prebuilt SD card image yet. You start from stock Raspberry Pi OS Lite and run a one-liner over SSH. A prebuilt image is on the roadmap — for now this is the only supported install path. See the full Getting Started guide for the click-by-click walkthrough.
On a Pi already running Raspberry Pi OS Lite (64-bit):
sudo apt update && sudo apt upgrade -y
sudo -i
curl -fsSL https://usb.sentry-six.com | bashWarning
The apt update && apt upgrade step is required. Pi OS images bake in an apt cache from whenever the image was built; if Debian has shipped with a newer version, the install will hit 404 Not Found errors. Running the update and upgrade command will prevent this issue.
Then open http://sentryusb.local in a browser and the setup wizard takes you the rest of the way.
| Tier | Boards | Notes |
|---|---|---|
| Recommended | Raspberry Pi 4B, Raspberry Pi 5 | 1 GB RAM is sufficient. USB 2.0 OTG — fastest archiving, smoothest UI |
| Tested | Raspberry Pi Zero 2 W, Raspberry Pi 3A+ | USB 2.0 OTG — works fine, slower archive speeds. Pi 3A+ needs a USB-A-to-USB-A cable |
| Community | Radxa Rock Pi 4C+, Radxa Zero 3W | USB 3.0 OTG — reported working, not officially supported |
| Not supported | Raspberry Pi 3B/3B+, Pi 2, Pi Zero W (v1), Pi 1 | 3B/3B+/2/1: USB goes through a hub chip — host-only, can never appear as a drive to the car. Zero W v1: too slow, build retired |
Plus a high-quality MicroSD card sized for the storage layout you choose and a USB 3.0 data cable (not charge-only) between the Pi and your Tesla. Use a 3.0 cable even on USB 2.0 boards — it delivers more power and keeps lower-end Pis stable.
By default, Sentry USB sends no device identifier to our servers. Here's everything it ever sends:
| When | What | Identifier? |
|---|---|---|
| Device statistics (when enabled) | Running version; after startup, enabling reporting, and daily. Server keeps first/last report times. | Stable hashed device ID; no raw serial or boot ID |
| Wraps / lock chime submissions | The file + your IP for rate-limiting and abuse handling | No device or hardware fingerprint; the IP may be retained with the submission |
| Sentry Cloud (if signed in) | Your account + synced files | Account credentials |
| iOS push pairing (if enabled) | Random pairing ID | Not tied to hardware |
| AI Support & Help (if used) | Chat messages, product/software version, and the Pi connection's public IP for abuse prevention; diagnostics only after a separate one-time approval | Random conversation ID and access token; no hardware fingerprint |
New installations preselect Yes, count me on the Privacy step. Reporting begins only after you continue past that step; choose No thanks first to prevent it. Existing installations keep their saved choice, and an existing installation without a choice stays off. Change reporting later under Settings → System → Device counting. Full disclosure, retention, and controls for each flow are documented in wiki/Privacy.md.
- Wiki — Getting Started, Setup Wizard Guide, Archive Methods, Notifications, Privacy, Troubleshooting, FAQ
- BUILD.md — Building from source
Prerequisites: Rust stable, Node 20+, and cross (cargo install cross).
# Web UI
cd web && npm ci && npm run build && cd ..
rm -rf crates/sentryusb/static && cp -r web/dist crates/sentryusb/static
# Binaries (aarch64)
cross build --release --target aarch64-unknown-linux-gnu -p sentryusb
# 32-bit (armhf — Pi 3A+ with 32-bit Pi OS):
cross build --release --target armv7-unknown-linux-gnueabihf -p sentryusbSee BUILD.md for details.
./build-image.sh # 64-bit image (Pi 3A+/4/5/Zero 2)
./build-image.sh --32bit # 32-bit image (armhf — Pi 3A+ with 32-bit Pi OS)The build-image script is for developers and CI; end users should use the curl-one-liner install above.
A Rust rewrite of the original Go Scottmg1/Sentry-USB, itself a modernized fork of TeslaUSB by marcone and contributors.
- Discord — discord.gg/9QZEzVwdnt — fastest help, real humans
- Issues — github.com/Sentry-Six/Sentry-USB-Rusty/issues — reproducible bugs
- Site — sentry-six.com/sentry-usb
PolyForm Noncommercial 1.0.0 — free for any noncommercial use; commercial use requires a separate license. See LICENSE. Some bundled shell scripts are derived from TeslaUSB and remain under the MIT License; see NOTICE for the file-by-file breakdown.
This is source-available software, not open source — commercial use is not permitted under this license. To inquire about a commercial license, contact the authors.
