Wiki / References
Link directory
External resources worth keeping, grouped by what you would want them for. Every link here was opened and checked.
Sets and catalogue links: Sets & bricks index. Parts: VLL emitters — options & status.
Protocol specifications (primary sources)
- LEGO official docs (archived here): the USB Tower Interface Reference (vendor-request spec; documents the tower's VLL mode) + Scout SDK (LASM reference + the canonical VLL Command Set table) + a printable MicroScout VLL barcode card. See LEGO official docs — Tower Interface + Scout SDK (PDFs in
Sources/). - VLL — elecbrick (Doug Eaton) — the canonical Micro Scout / Code Pilot / Scout VLL reference → elecbrick.com/vll · elecbrick.com/lego · GitHub. See elecbrick (Doug Eaton).
- VLL Transmit for legOS — Ben Jackson → ben.com/LEGO/rcx/vll.html (RCX light-sensor LED → Code Pilot/Micro Scout; useful range ~1 inch / 3 cm).
- Teaching the RCX VLL — Barnaby Walters → waterpigs.co.uk/articles/rcx-vll.
- RCX → MicroScout VLL (community thread + write-up) → pbrick.info p=45.
- RCX Internals — Kekoa Proudfoot — RCX serial/IR protocol + opcodes → mralligator.com/rcx (the Stanford original
graphics.stanford.edu/~kekoa/rcxnow 301-redirects here) · opcodes mralligator.com/rcx/opcodes.html. See RCX Internals (Kekoa Proudfoot). - LEGO Mindstorms Internals (crynwr, mirror) → arcb.csc.ncsu.edu/.../crynwr/lego-robotics.
- Power Functions RC protocol (official PDF) → philohome.com/pf/LEGO_Power_Functions_RC.pdf · context TechnicBRICKs v1.20 (Wayback). See Power Functions RC (IR).
Tools & libraries (software)
- Flash Force — VLL by phone torch → Flash Force.
- Controlz — Android, drives Powered Up and BuWizz 2.0 / 3.0 Pro from a phone or a gamepad
- BuWizz app — the vendor's own client, and the control when a BuWizz misbehaves
- Brick Automation Project — a whole layout automated from a desktop, limited by the Bluetooth adapter rather than by slots
- RemoteBlaBla — a Pybricks program that makes the LEGO handset a configurable remote, MIT
- lego-blockly — VLL/Code Pilot/MicroScout + RCX/WeDo, serial-control-line emitter → live editor · github.com/BlissCA/lego-blockly. See lego-blockly.
- JorgePe / mindstorms-vll: four VLL emitters via LED (FTDI bitbang
vllftdi.py= macOS/Linux via pylibftdi; EV3 port; EV3 LED via TOSlink) → github.com/JorgePe/mindstorms-vll. See lego-blockly. - Pybricks — MicroPython on Powered Up hubs; the working hub emitter → code.pybricks.com · docs.pybricks.com. See Powered Up hub (Pybricks VLL).
- WinVLL: programs the Micro Scout P mode via the USB IR tower (+ optical tube) or a sound-card LED probe; Windows app, but the underlying tower VLL-mode recipe is now documented (see the official Tower Interface Reference above) → line.to/…/winvll. See LEGO USB IR tower (RIS 2.0).
- legousbtower — Linux USB-tower driver (raw read/write, RCX-oriented). VLL mode isn't built in, but the vendor requests that enable it are spec'd in the official Tower Interface Reference → reachable via pyusb/libusb → legousb.sourceforge.net.
- ESP Web Tools — a browser flasher (Web Serial) for the M5 / web-flasher idea → esphome.github.io/esp-web-tools.
- rcxvll.nqh — RCX→Micro Scout VLL (NQC) → rcxvll.nqh (pbrick) (zip on pbrick.info).
- adriansieber — control Code Pilot/Scout/MicroScout via Swift (Flash Force's basis) → adriansieber.com.
- NQC (Not Quite C) — RCX / CyberMaster / Scout → bricxcc.sourceforge.net/nqc · github.com/jverne/nqc. See NQC · BrickCC.
- BricxCC (Bricx Command Center) — IDE → bricxcc.sourceforge.net · github.com/BrickBot/BricxCC.
- RCX on macOS → github.com/Glitchbone/mindstorms-rcx-osx-tools.
- USB IR tower control (cross-platform) → github.com/hangrydave/InfraredBrickTower.
- Python: RCX over serial IR → github.com/BlissCA/LegoRcxPy (LegoRcxPy); Interface B → github.com/BlissCA/LegoBpy (LegoBpy).
- BrickLogo (Rust, RCX + modern) → github.com/openbrickproject/BrickLogo (BrickLogo).
- Power Functions (IR libraries) → lib github.com/jurriaan/Arduino-PowerFunctions · receiver github.com/matthiaszimmermann/ArduinoLegoIrReceiver · recorder github.com/aorczyk/pf-recorder.
- 76 kHz IR (Spybotics / Manas / RC) generators → github.com/JorgePe/ir-spybotics · decoding write-up O Falcão — Decoding old LEGO infrared protocol · RCX→Spybotics pbrick.info p=35. See 76 kHz IR family.
- Power Functions, another sender → hackster.io PF IR sender.
- Adafruit: Bluetooth remote for the Droid (Micro Scout): full guide + CircuitPython code: Feather M0 Bluefruit receives BLE commands → flashes an LED → VLL to the Micro Scout. Uses Jorge Pereira's VLL code; notes the on-board red LED works in dim light, an external LED is better. → learn.adafruit.com/bluetooth-remote-for-lego-droid.
Proven VLL-transmit builds (precedents)
Sending VLL from a microcontroller and an LED is well established. All of these work:
- Flash Force (phone torch, visible) · Adafruit Feather BLE→LED (above) · Ben Jackson legOS (RCX LED) · rcxvll.nqh (RCX + 9V light brick) · adriansieber (iPad torch) · NQC VLL libs.
- Most public builds use a visible (red) LED, including LEGO's own USB tower, which (per the official spec) sends VLL on a red LED, not its IR channel. But *VLL over infrared is now confirmed working: an IR LED driven with the baseband VLL timing programmed a Micro Scout at 30–40 cm* (2026-07-19).
Communities, wikis & catalogs
- pbrick.info — RCXVLL, Scout SDK, Spybotics, RCX firmware → pbrick.info (pbrick.info).
- philohome.com — Philippe "Philo" Hurbain: motors/sensors/PF/connectors reference → philohome.com. See philohome (Philippe Hurbain).
- LUGNET: classic community archive (Code Pilot, robotics) → lugnet.com/robotics/codepilot.
- orionrobots: hobby robotics wiki; Spybotics page (full I/O incl. claimed VLL in/out, the 3 remote modes, the PC programming socket) + a YouTube series (DIY Spybotics→PC RS232 cable
xtGJei70cAg, RCX↔SpyboticsJ1S-p5n-iAY, RCX setup w/ BricxCC+NQCRREOENgSiZA). VLL-on-Spybotics is single-source — see Spybotics. → orionrobots.co.uk. - dubbekarl.dk/blog: vintage LEGO dacta / Interface A (9750/9760/Control) document & disk-image archive — instructions, C64/IBM-PC control software, restoration scans. Not VLL: it covers the pre-VLL optical/wired control era → dubbekarl.dk/blog.
- TechnicBRICKs — PF/Technic deep dives (domain now dead; via Wayback) → web.archive.org/…/technicbricks.com.
- Catalog (default): Rebrickable: use it for every set/part link (sets + parts + inventories). Catalog-specific extras, used only when they add something Rebrickable doesn't:
- BrickLink: part variants, price guide, marketplace.
- Technicopedia: in-depth Technic set write-ups (e.g. 8479 Code Pilot).
- LEGO.com: official pages for current products (88005, 8884/8885).
- BIOsector01 — Bionicle lore (8539 Manas); Wikipedia — set overviews (Spybotics).
- Bricker: part scans/images (e.g. the 8479bar01 barcode sheet).
- Books: Extreme NXT (Gasperi & Hurbain), Extreme Mindstorms — custom sensors/internals.
Some of these sites are as old as the bricks. elecbrick.com returns HTTP 500 right now, though its certificate is fine, so reach it through the Wayback Machine. And web.archive.org blocks automated fetches: open it in a browser or use curl.
Added August 2026, checked against primary sources
Modern LEGO
- bricklife/LEGO-Mario-Reveng — LEGO Mario LWP3 ports, barcode encoding.
- LEGO/spike-prime-docs — first-party SPIKE Prime BLE spec.
- nathankellenicki/node-smartplay · marcinruszkiewicz/lego_smart_brick — SMART Play (SMART Brick).
- BuWizz 3.0 API 3.22 (PDF) — official BuWizz protocol.
Bridges and pads
- j-zager/esp32-bluepad32-buwizz-controller: pad + BLE bricks on one ESP32, unforked Bluepad32.
- TommyWabg/Switch2Connect (GPL-3.0) · TheFrano/joycon2cpp · trevlars/switch2-controllers-linux — Switch 2 pads over BLE.
- pink0D/MouldKingino · jrichter24/moldqueen — BLE-advertising hubs from an ESP32.
- vicocz/brickcontroller2 — the live BrickController2 fork.
- Rbel12b/Lpf2 — AGPL-3.0 ESP32 library, successor to the dormant Legoino.
Vintage
- maehw/WebPBrick · maehw/DiyIrTower — see WebPBrick · DiyIrTower.
- Other VLL implementations: JorgePe/mindstorms-vll · automagically-de/spycmd · willihghd-ui torch VLL.