Jesse A. Green / notebook

Tesla Light Show — User Guide

Generated May 2026 from teslamotors/light-show at 9f94951

AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it.

Tesla Light Show is the official open-source toolkit from Tesla Motors for creating custom synchronized light shows on Tesla vehicles. You design sequences in xLights (free, third-party sequencing software), export them as .fseq files, validate them with the included validator.py tool, and load the result onto a USB drive that the car reads.


1. Quick Start

What you can do with this toolkit:

  • Control exterior lights, interior lighting, and closures (doors, frunk, trunk) in a fully custom animated sequence
  • Create single-car or synchronized multi-car shows (examples include up to 8 cars)
  • Validate .fseq files before loading — catch errors at your desk, not in the driveway
  • Start immediately from seven pre-built example shows

Prerequisites: A supported Tesla vehicle, xLights (free download), Python 3.7+ or a pre-compiled validator binary (Windows/macOS), a USB drive.

Validate an .fseq file:

python3 validator.py lightshow.fseq
Found 240 frames, step time of 50 ms for a total duration of 0:00:12.

Tip

Windows and macOS users can skip Python entirely — use the pre-compiled binaries validator-windows.exe and validator-macos.zip included at the repo root. Just double-click and drag-and-drop your file.

Next steps:

  • Load one of the example shows — see Common Tasks
  • Create your own show — see Core Usage
  • Troubleshoot a validator error — see Troubleshooting

2. Installation

System Requirements

Component Requirement
Tesla vehicle Supported firmware with light show feature enabled
xLights Third-party sequencing software (free, required for creating shows)
Python 3.7 or later (required for validator.py; not needed for pre-built binaries)
USB drive FAT32 formatted

Validator Setup

Windows (pre-compiled)

Download validator-windows.exe from the repository root. No installation required — run it directly.

macOS (pre-compiled)

Download validator-macos.zip from the repository root. Unzip, then run the extracted binary.

Python (all platforms)

Python 3.7+ is required. No additional packages — validator.py uses only the standard library.

python3 --version
Python 3.11.4

Post-Install Verification

python3 validator.py examples/lightshow_example_3_The_Arrival_5_Car/"Car #1"/LightShow/lightshow.fseq

A valid file produces frame count and duration output. An invalid file produces a specific error message describing the violation.

Important

Always validate your .fseq file before loading it onto the USB drive. The vehicle will silently skip malformed files with no on-screen explanation.


3. Core Usage

Step 1 — Get the xLights Show Folder

Tesla provides a pre-configured xLights project that maps all Tesla light channels correctly.

  1. Download xlights/tesla_xlights_show_folder.zip from the repository.
  2. Extract it to a local directory.
  3. Open that directory as your xLights show folder.

Note

For synchronized multi-car shows, use xlights/tesla_xlights_cross_vehicle_folder.zip instead. The cross-vehicle project has a different channel layout for coordinating multiple vehicles.

Step 2 — Create Your Sequence in xLights

Design your light sequence using xLights' built-in effects. The Tesla show folder pre-configures all channel assignments so the correct lights respond to each channel.

Step 3 — Export as FSEQ

Export your completed sequence as a .fseq file from xLights.

Step 4 — Validate

python3 validator.py lightshow.fseq

The validator checks that the file meets Tesla's vehicle requirements:

Check Requirement
File format FSEQ v2.0 (magic bytes PSEQ)
Channel count Exactly 48 (standard vehicles) or 200 (Cybertruck)
Compression V2 Uncompressed only
Step time ≥ 15 ms
Total duration ≤ 4 hours
FSEQ version 2.0 or 2.2 (other versions: warning issued, not rejected)

Warning

Your .fseq must be exported with exactly 48 or 200 channels. Model S, Model 3, Model X, and Model Y use 48 channels. Cybertruck uses 200 channels. Any other count fails validation.

Step 5 — Load onto USB

  1. Create a folder named LightShow at the root of a FAT32 USB drive.
  2. Copy lightshow.fseq into LightShow/.
  3. Optionally copy your audio file (lightshow.mp3 or lightshow.wav) into LightShow/.
USB root/
  LightShow/
    lightshow.fseq
    lightshow.mp3     (optional)
  1. Insert the USB drive into your Tesla.
  2. Start the show from the vehicle interface.

4. Common Tasks

Try a Pre-Built Example Show

Seven complete examples are included in the examples/ directory:

Example Cars Audio
lightshow_example_1_elevator_music.zip 1 —
lightshow_example_2_Max_Carlisle_Auld_Lang_Syne_In_the_City.zip 1 —
lightshow_example_3_The_Arrival_5_Car/ 5 MP3
lightshow_example_4_Ready_for_Assault_8_Car/ 8 WAV
lightshow_example_5_Cyber_Symphony_4_Car/ 4 WAV
lightshow_example_6_Ready_for_Assault_1_Car.zip 1 —
lightshow_example_7_Cyber_Symphony_1_Car.zip 1 —

To try example 1:

  1. Extract examples/lightshow_example_1_elevator_music.zip.
  2. Validate the extracted .fseq file with the validator.
  3. Copy to USB as described in Core Usage Step 5.

Run a Multi-Car Synchronized Show

Multi-car shows provide a separate sequence for each vehicle. Each car gets its own USB drive.

Using example 3 (5-car):

  1. Open examples/lightshow_example_3_The_Arrival_5_Car/.
  2. For each participating car, copy that car's LightShow/ contents to a separate USB drive:
    • Car #1's USB: contents of Car #1/LightShow/ → LightShow/ on USB
    • Car #2's USB: contents of Car #2/LightShow/ → LightShow/ on USB
    • (repeat for each car)
  3. Validate each car's lightshow.fseq before loading.
  4. Insert USB drives into all cars simultaneously.
  5. Trigger all shows at the same moment.

Note

Examples 4 and 5 use WAV audio; example 3 uses MP3. Both formats are confirmed as working by the included example files.

Validate Without Python

Windows:

  1. Run validator-windows.exe (double-click or terminal).
  2. When prompted, drag-and-drop your .fseq file into the window.

macOS:

  1. Unzip validator-macos.zip.
  2. Run the extracted binary.
  3. Drag-and-drop your .fseq file when prompted.

Create a Cross-Vehicle Show

  1. Extract xlights/tesla_xlights_cross_vehicle_folder.zip.
  2. Read cross-vehicle-shows/README.md for car positioning and channel layout details.
  3. Design your sequence using the cross-vehicle channel assignments.
  4. Export and validate each car's .fseq file individually.

5. Troubleshooting

Quick diagnostic: Run validator.py on the file first. All validator errors are specific and self-describing.

Error: Unknown file format, expected FSEQ v2.0

Cause: The .fseq file is not a valid FSEQ v2 file. Common causes: wrong export format in xLights, file corruption, or exporting from the wrong project.

Solution:

  1. Re-open the sequence in xLights.
  2. Confirm you are exporting to FSEQ format (not a different output type).
  3. Re-export and re-validate.
  4. If the error persists, try downloading an older xLights release from https://github.com/smeighan/xLights/releases

Prevention: Use the official Tesla xLights show folder as your project base.

Warning

Community issue #67 documented this error when newer xLights versions defaulted to FSEQ v2.2. The validator now accepts v2.2 with a warning rather than an error — if you see this error, the problem is not version 2.2 but a more fundamental format mismatch.

Error: Expected 48 or 200 channels, got {N}

Cause: The exported file has the wrong channel count. The xLights project is not using Tesla's layout, or the wrong show folder was opened.

Solution:

  1. Reopen the xLights project.
  2. Confirm you opened the Tesla show folder from xlights/tesla_xlights_show_folder.zip, not a custom layout.
  3. Re-export and re-validate.

Prevention: Always start from the official Tesla show folder project. (GitHub issue #85)

Error: Expected file format to be V2 Uncompressed

Cause: The .fseq file uses FSEQ compression. Tesla vehicles require uncompressed V2 format.

Solution:

  1. In xLights, locate the output/export compression settings.
  2. Set compression to None (uncompressed).
  3. Re-export the .fseq file and re-validate.

Prevention: The Tesla show folder project should have compression disabled by default.

Error: Expected total duration to be less than 4 hours, got {duration}

Cause: The sequence exceeds 4 hours total length. Almost always a configuration error — check that the step time and frame count are set correctly in xLights.

Solution:

  1. Review the sequence length and step time in xLights.
  2. Verify step time is at least 15 ms.
  3. Confirm the total frame count matches the intended duration.

WARNING: FSEQ Version Message

Cause: Your xLights export produced a FSEQ version other than 2.0 or 2.2. This is a warning, not a failure — the file passed validation.

WARNING: FSEQ version is 2.3. Only version 2.0 and 2.2 have been validated.
If the car fails to read this file, download an older version of XLights at https://github.com/smeighan/xLights/releases

Solution: Test on the vehicle. If the car does not read the file, download an older xLights release that produces v2.0.

Warning

A version warning does not guarantee vehicle compatibility. Always test after seeing this message.

Example 3 (5-Car) Fails on Model Y

Cause: Pre-built multi-car examples may have been authored for specific vehicle configurations. (GitHub issue #84)

Solution:

  1. Validate the specific car's .fseq file with the validator.
  2. Confirm the channel count matches your vehicle (48 for standard, 200 for Cybertruck).
  3. Confirm you are using the correct car number's files for each vehicle.

6. FAQ

Q: Which Tesla vehicles support custom light shows?

The validator accepts 48-channel files (Model S, Model 3, Model X, Model Y) and 200-channel files (Cybertruck). Light show support requires compatible vehicle firmware — check your vehicle's release notes for confirmation.

Q: Do I need to buy xLights?

No. xLights is free and open-source. Tesla provides the pre-configured show folder to map channels correctly.

Q: Which audio formats does the car accept?

The included examples use both MP3 (example 3) and WAV (examples 4 and 5). Both are confirmed working by the example files.

Q: Can I have multiple shows on one USB drive?

The car reads a LightShow/ folder at the USB root. For multiple shows, consult your vehicle's documentation on how to select among multiple stored shows.

Q: Why does the validator warn about FSEQ version but not fail?

FSEQ versions 2.0 and 2.2 are the only versions confirmed to work with Tesla vehicles. Version 2.2 was validated by the community. Other versions issue a warning so you can still test them rather than being blocked outright.

Q: The validator used to reject 200-channel files — is that fixed?

Yes. An older version of the validator required exactly 48 channels. The current validator.py accepts either 48 (standard vehicles) or 200 (Cybertruck). (GitHub issue #85)

Q: How long can a light show be?

Up to 4 hours, with a minimum step time of 15 ms. Practical shows are typically a few minutes.

Q: Can I share my show with other Tesla owners?

Yes — distribute your .fseq and audio files directly. Other creators can also share the xLights .xsq project file (included in examples 3, 4, 5) for remixing.

Q: Can I add new light channels beyond the current 48/200?

Not with the current validator or xLights project. This is an open feature request (GitHub issue #141) that would require changes to both the validator and the xLights channel layout.