Wiki / Protocols
Power Functions RC (IR)
Power Functions RC is the one-way infrared remote protocol for Power Functions (IR), built on a 38 kHz carrier. It is officially documented by LEGO (LEGO Power Functions RC v1.20, mirrored at philohome.com).
Link layer
- 38 kHz carrier (like consumer IR remotes); a "mark" = 6 carrier cycles (~158 µs ON min). This differs fundamentally from baseband VLL — you need a 38 kHz-modulated IR emitter.
- Bit timing: low bit ≈ 316–526 µs, high bit ≈ 526–947 µs, start/stop ≈ 947–1579 µs.
- 16-bit message: 4-bit nibbles = [toggle+escape+channel] + [address+mode] + [data] + [LRC check nibble].
Modes
- Combo PWM — both outputs, 7 speed steps each fwd/rev + brake/float.
- Single output PWM / increment / toggle.
- 4 channels (select on remote + receiver).
Tooling
- Arduino libs (
LEGOPowerFunctions), receiver decoders (github.com/matthiaszimmermann/ArduinoLegoIrReceiver), recorders. - Contrast with RCX IR protocol (serial data link) and VLL — Visible Light Link (baseband light). All three are "optical", but mutually incompatible encodings.