Pybricks
MicroPython for LEGO's own hubs, replacing the firmware LEGO ships. It is written in the browser at code.pybricks.com, and the hub runs the program on its own afterwards, with no phone in the room.
What it reaches
| Capability | State | Note |
|---|---|---|
| Run a program on a hub with nothing else connected | works | the hub keeps the program across a power cycle |
| Drive motors and read sensors from that program | works | the same ports the stock firmware uses |
| Blink the hub's own status LED under program control | works | which is what turns a hub into a VLL emitter |
| Reach it from a browser | works | code.pybricks.com is Web Bluetooth, so Chrome and Edge, and not Safari |
| Talk to a hub running this firmware from other software | out of reach | it answers on its own service, not LEGO's, so a client written for stock hubs does not see it |
| Keep LEGO's own app working | out of reach | installing this replaces the stock firmware; LEGO's app needs it back |
Why it matters here
A hub with this firmware is the one emitter most people already own. The status LED is under program control, so a hub can flash a full frame at a Micro Scout with no soldering and nothing bought — see Powered Up hub (Pybricks VLL) for the program and what it took to make the timing hold on the poorest hub.
It is also the reason a hub can be reached without the page: the program lives in the hub. That is the same idea the bridge uses for its five slots, arrived at from the other end.
The trade
Installing it is a firmware replacement, not an app. The hub stops being a stock hub until it is put back, and while it carries this firmware the panel here cannot see it: it advertises a different service. That is a real cost and it is why this is a separate note rather than a line in Powered Up.
Links
- The editor and the docs: code.pybricks.com · docs.pybricks.com
- Powered Up hub (Pybricks VLL) — the VLL program, and the Move hub's constraints
- Powered Up — the hubs themselves, on stock firmware