๐ค VLL emitters โ options & status
Every way to flash VLL at a Micro Scout (and Code Pilot / Scout), marking what is device-confirmed vs theory and how each fares per platform. The Micro Scout has no radio, so something must physically blink light at its sensor; these are the options.
Two facts shape everything: the sensor is red / near-IR biased (white is weak โ use red or IR), and VLL bits are distinguished by the ON/OFF ratio, so timing is scale-tolerant (~0.5โ1.4ร of nominal). Each emitter's own note holds the build detail; parts to buy are in Hardware shopping list.
Compatibility = which platform can drive the emitter (โ yes ยท โ ๏ธ awkward/partial ยท โ no ยท โ n/a).
| Emitter | Works? | iOS | Android | Windows | macOS | Notes |
|---|---|---|---|---|---|---|
| Phone torch (Flash Force) | โ confirmed | โ Safari | โ Chrome | โ | โ | phone-only (no torch on a PC); timer jitter โ scale 1.05โ1.35 |
| Powered Up hub (Pybricks) (Powered Up hub (Pybricks VLL)) | โ confirmed | โ (no Web BT) | โ Chrome | โ | โ | control = Web Bluetooth; standalone via the hub button = any platform. Red LED / 88005, scale 0.5โ1.4 |
| FTDI USB-serial + LED (FTDI DTR + LED) | โ proven | โ | โ ๏ธ (Web-Serial / OTG) | โ | โ | pylibftdi (desktop) or Web-Serial DTR (Chrome). Needs genuine FT232 |
| Arduino / ESP32 + LED (Arduino ยท ESP32 + LED) | โ | โ flash | โ ๏ธ flash | โ flash | โ flash | flashing needs a computer; once flashed, control over its own Wi-Fi works on ANY device incl. iOS. M5 = compact, web-flashable |
| LEGO 9V light brick via RCX (LEGO 9V Light brick (via RCX)) | โ (rcxvll.nqh) | โ | โ | โ | โ | NQC/BricxCC + tower; needs an RCX |
| LEGO USB IR tower 9783 (LEGO USB IR tower (RIS 2.0)) | โ documented protocol | โ | โ | โ | โ | VLL mode = a USB vendor request (official spec) + optical tube; pyusb on any desktop, WinVLL on Windows. VLL is visible red, not IR |
| Garmin Fenix flashlight | โ tested, fails | โ | โ | โ | โ | setFlashlightMode latency too high for 20โ40 ms pulses |
| Computer screen / baked video (Computer screen) | ~ marginal | โ | โ | โ | โ | any screen; poor contrast/refresh |
Pick by platform
- iPhone / iOS: phone torch (Flash Force) works directly in Safari. For hardware, use an ESP32/M5 with its own Wi-Fi web pult โ flash once from a computer, then control from Safari (no app, no Web Bluetooth). Pybricks/FTDI/tower can't be driven from iOS.
- Android: everything web-based works in Chrome โ phone torch, Pybricks hub (Web Bluetooth), FTDI (Web Serial).
- Windows: Pybricks (Chrome), FTDI, RCX+light brick, and the USB IR tower via WinVLL (turnkey).
- macOS: Pybricks hub (Chrome) or FTDI + LED (
pylibftdi, ~$5) โ both work today. M5/Arduino flash fine too. The USB IR tower also works here now that its VLL protocol is documented (pyusb + optical tube). - Dead end (all platforms): the Garmin Fenix watch flashlight โ
setFlashlightModehas too much per-toggle latency for 20โ40 ms VLL pulses.
Most compact overall: M5 StickS3 (ESP32 + IR LED) โ emitter + its own Wi-Fi web remote (works from any phone incl. iPhone), web-flashable from Flash Force.
See Link directory for the tools (JorgePe mindstorms-vll, WinVLL, lego-blockly, Pybricks, ESP Web Tools).