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, with 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.
On a Raspberry Pi (recommended):
- Download Sentry-USB-for-Raspberry-Pi-Imager.rpi-imager-manifest and double-click it to open Raspberry Pi Imager.
- Pick your Pi, add your Wi-Fi when Imager asks, and write the card.
- Boot the Pi and open
http://sentryusb.localabout a minute later. - Follow the setup wizard, then plug the Pi into your Tesla.
The Getting Started guide has the click-by-click walkthrough.
Other boards, or 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 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, so they're host-only and 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.

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 |
| Charging history | Every charge session with energy added, duration, cost and charging speed, plus per-tag time-of-use rates |
| 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, Sentry Connect app |
| AI Support & Help | In-app support chat; a diagnostics report is uploaded only after you approve it |
| Privacy controls | Minimal device statistics, a visible setup choice, and full per-flow disclosure |
After Linux boots, Sentry USB uses the Pi's existing activity light to show startup, USB connection, camera-disk writes and application faults. The Pi's firmware boot and error codes remain unchanged. Different colours are for Pi 5 only; other supported boards use the same blink patterns and meanings.
See the status-light wiki guide for live blinking examples, the status table and limitations.
Your dashcam footage and drive history stay on the Pi unless you turn on a feature that sends them somewhere, such as archiving to your NAS or cloud storage, or Sentry Cloud sync (encrypted on the Pi first). Some things go online in normal use: update checks go to GitHub, and maps in the web UI load tiles from tiles.sentryusb.com. Optional features contact Sentry Six services when you use them: device counting (if you choose Yes, count me during setup), automatic time zone detection, phone notifications, AI Support & Help, and wraps or lock chime submissions.
Full per-flow details are in wiki/Privacy.md, and the legal disclosures are in the Privacy Policy.
- Wiki: Getting Started, Setup Wizard Guide, Archive Methods, Notifications, Privacy, Troubleshooting, FAQ
- BUILD.md: building from source
Prerequisites: Rust stable (1.89+), Node 20.19+ (or 22.12+), 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, for Pi 3A+ with 32-bit Pi OS):
cross build --release --target armv7-unknown-linux-gnueabihf -p sentryusbSee BUILD.md for details.
sudo image/build-image.sh --tag v3.29.0 # Linux, arm64 hostCI builds and attaches the image to each stable release; see BUILD.md.
A Rust rewrite of the original Go Scottmg1/Sentry-USB (archived), 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, for 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.
