Flash Force Wiki
The Flash Force Wiki documents how to talk to old LEGO bricks through an optical input — visible light (VLL), printed barcodes, and infrared (IR). It is centered on the Micro Scout and extended to the whole family of optically-controlled bricks.
Status legend: ✅ device-confirmed · ⚠️ partial / theory · ❌ tested, doesn't work.
Start here
- The big idea: several 1997–2002 LEGO bricks are programmed by flashing light at their sensor. VLL — Visible Light Link is the shared protocol; Micro Scout, Code Pilot and Scout all decode the same codes. The RCX and Spybotics instead use modulated infrared.
- Invisible IR? The Micro Scout's sensor is IR-sensitive, so VLL also works with an infrared LED — see Micro Scout.
📚 Reference (start tables)
- Sets & bricks index — master table: every brick, its optical interface, the sets, part numbers, catalog links.
- Frequencies & wavelengths — physical layer cheat-sheet: carrier, wavelength & brightness for every link/sensor.
- Link directory — all verified external resources (specs, tools, communities).
- Hardware shopping list — what to buy to build each emitter.
- VLL emitters — options & status — every way to flash VLL, what's device-confirmed vs dead-end, macOS notes.
- Buildable models (DDK & DSDK) — printable PDF build instructions for the Micro Scout kit models (AAT, Battle Droid).
Devices (by optical input)
Optically controllable (you can drive/program them with light):
| Device | Optical input | Optical output | Protocol |
|---|---|---|---|
| Micro Scout | light sensor (incl. IR) | — | VLL (receive) |
| Code Pilot | light sensor + barcode reader | — | VLL + barcodes |
| Scout | light sensor | VLL emitter | VLL (send) + serial |
| RCX | IR transceiver + light sensor | IR | RCX IR |
| Spybotics | 2× IR sensors + light sensor | IR emitters | IR + serial |
| Power Functions (IR) | IR receiver | — | PF RC (38 kHz) |
| Bionicle Manas | IR receiver | — | 76 kHz IR |
| RC Train (IR) | IR receiver | — | 76 kHz (early) / 38 kHz PF (later) |
| EV3 | IR sensor (beacon/remote) | IR beacon | EV3 IR (own) |
Optical sensor only (sense light, but programmed over USB/BT — no optical command channel):
| Device | Optical part |
|---|---|
| NXT | light / color sensor |
| EV3 | color sensor (+ IR link above) |
| WeDo | IR motion/distance sensor |
| Powered Up | color & distance sensor, light brick |
Not optical (disambiguation): CyberMaster talks to the PC over radio (27 MHz RF), not light — none of the emitter techniques here apply to it.
Protocols
Emitters — how to send the light
Phone torch (Flash Force) · Powered Up hub (Pybricks VLL) · FTDI DTR + LED · Arduino · ESP32 + LED · IR LED (invisible VLL) · LEGO 9V Light brick (via RCX) · LEGO USB IR tower (RIS 2.0) · Computer screen → which to pick: VLL emitters — options & status
Tools & software
Flash Force · lego-blockly · rcxvll.nqh (pbrick) · NQC · BrickCC · LegoRcxPy · LegoBpy · BrickLogo · Droid Developer Kit CD (_ddk.exe)
Sources
LEGO official docs — Tower Interface + Scout SDK · LEGO FAQ — P program & IR tower · elecbrick (Doug Eaton) · RCX Internals (Kekoa Proudfoot) · philohome (Philippe Hurbain) · pbrick.info · adriansieber · DACTA · Robolab sensors