Brick electronics · offline connection planning
Does the physical wiring match your program’s port map?
Build a named Powered Up hub port worksheet, compare physical and program assignments, catch duplicate sockets and check a scoped two-motor program pair.
Your setup and observations
A count of four components on four ports can still be wrong. Map each independent task to its physical socket and the port selected in the program, then inspect the conflicts.
Work through a concrete example
Example: choose Technic 88012, then compare the distance sensor physically plugged into C with the default program setting D. Four tasks can fit four sockets and still have an incorrect map. Change that program selection to C; for a Pybricks DriveBase, separately identify two different rotation-sensing motor rows.
One row means one independent external connection
Use City Hub 88009 A/B, Technic Hub 88012 A–D, or SPIKE Large Hub 45601 A–F. The worksheet catches absent/out-of-profile ports, two independent components assigned to one physical socket, repeated program ports, and physical/program mismatches. It does not create splitter or multiplexer support.
The default example has enough sockets but the wrong map
Left and right motors occupy A and B, a distance sensor is physically on C but its program says D, and the light uses D. Correct the sensor program selection to C to remove the mismatch and duplicate program assignment. Transfer the resulting worksheet to the exact project; no connected hardware is inspected.
Pair checks are specific, not universal
The optional Pybricks DriveBase check requires two different active rows containing rotation-sensing motors, in an already-installed documented Pybricks runtime. It rejects one port used twice, a sensor/light as a motor, and basic DC motors without rotation sensing. It is not a claim that every stock app has the same pairing behavior.
Hardware capacity is not app compatibility or power
The official SPIKE technical sheet allows freely selected paired ports but explicitly warns that the app may not support every hardware function. Pybricks device support belongs to that installed runtime, not automatically to original LEGO apps. No motor-current sum, battery-life estimate or overload-safe verdict is produced.
Built-in resources stay separate
Buttons, status lights and internal sensors are not extra external ports. BOOST Move Hub is deliberately not a profile here: its built-in motors must not be counted as external sockets. Blank task labels receive connection-row names; unused rows do not consume a port.
Primary sources and limits
- LEGO City FAQ — Powered Up versus Power Functions
- LEGO Technic Hub 88012 — four I/O ports and app scope
- LEGO SPIKE Large Hub technical specifications
- Pybricks DriveBase — two rotation-sensing Motor inputs
- Pybricks motors without rotation sensors
- Official EV3 port-view example — program and physical mismatch