# LEGO Dimensions Portal Reader Python module for communicating with LEGO Dimensions USB portals (PS3/PS4/Wii U versions) to detect character and vehicle disc placement/removal events. **Repository:** https://gitea.hideawaygaming.com.au/jessikitty/lego-dimensions-reader ## Purpose Drives the Moonlight Drive-In video player system — placing a LEGO Dimensions character disc triggers themed video playback and LED light effects. ## Architecture - **Core module:** `lego_dimensions_reader.py` — event-driven NFC tag detection with callbacks - **Character database:** `character_database.json` — maps IDs to character/vehicle names - **Integration:** `moonlight_integration.py` — connects portal events to video player ## Key Features - Tag insert/remove callbacks - LED control: solid color, flash, fade, rainbow cycle - TEA encryption/decryption for character ID extraction - Built-in character (82) and vehicle (82) databases - Cross-platform: Linux native, Windows via WinUSB/Zadig ## Session Log - 2026-09-23 — Windows Driver Fix — Resolved pyusb backend issues on Windows 11; requires `pip install libusb` and Zadig WinUSB driver --- *Created by: Jess Rogerson (yelling commands at Claude.AI)*