Power Functions (IR)
Power Functions is LEGO's motor and battery system from 2007 to 2018, built around the IR RC Receiver 8884, which switches two motor outputs on command from the Speed Remote 8879 or the Remote 8885. It hears one link, the 38 kHz infrared remote code of Power Functions RC (IR) — the one LEGO published properly.
Reach
| Capability | State | Note |
|---|---|---|
| Two outputs, seven speed steps each way, brake and float | works | Combo PWM on one of four channels, set on remote and receiver |
| Driven from the bridge | works, untested here | it sends Combo PWM; no receiver has been on the bench |
| Driven from a Powered Up hub | works, untested here | the 88007 colour sensor emits these codes itself, so a modern Bluetooth hub reaches old motors |
| Driven by a plain lamp or a baseband infrared diode | out of reach | the 38 kHz carrier is part of the code, so a bare LED is never decoded |
| Servo angles between the steps | out of reach | the servo reads duty and the protocol has 15 duty steps, so 15 positions |
| Reading anything back | out of reach | one way; the receiver has no transmitter |
What it hears
NXT, EV3 and WeDo have optics that only sense. A Power Functions receiver is a control target: any emitter sending the documented codes drives its motors, whoever built the emitter. The frame, the bit timings and the four modes are in Power Functions RC (IR).
Reaching it today
The original remotes need nothing built: point an 8879 or an 8885 at an 8884.
The bridge sends Combo PWM — a mark of 6 carrier cycles at 158 µs, pauses of 263, 553 or 1026 µs, an LRC check nibble, the frame repeated five times. Its verb is pf <ch 1-4> <a|b|stop> <-7..7>.
A Powered Up hub is the shortcut: the 88007 colour sensor can emit these codes itself, which turns a modern Bluetooth hub into a bridge to old motors.
Anything else wants an infrared emitter modulated at 38 kHz and one of the mature libraries below. A clone servo buzzes at its stop, because it never gives up trying.
Links
- The protocol, from LEGO: Power Functions RC specification, 2010.
- Receiver 8884 (Rebrickable · LEGO.com) · remotes 8879 and 8885 (Rebrickable). See Sets & bricks index.
- The specification: philohome.com/pf · the whole family in How the links work.
- The servo taken apart, and its 15 decoded positions: philohome.com/pfservo.
- Code: Arduino-PowerFunctions · ArduinoLegoIrReceiver · pf-recorder.
- What to emit with: VLL emitters — options & status.