MBC Servo6 6-Port Servo Expander (for LEGO® SPIKE™) (Coming Soon)

SRV-06 · COMING SOON

Six servos on one SPIKE port: angle, speed, current readback and stall protection are handled on the board, and the servos draw power from the hub, no battery needed.

Choose edition:
1 → 6servos on one port
Stall guardper-channel current
No batteryhub-powered
EditionsOfficial SPIKE App, Pybricks
PowerServos are powered by the SPIKE hub through the expander (about 0.75 A total), no external battery
ControllerSPIKE™ Prime only (official app in Python text mode; Pybricks v4.0 or later)
Warranty6 months

WRO RoboMission: allowed in all age groups; servos count toward the motor limit
WRO rules check · Other competitions · Where to buy

① Pick your host

Only hosts this product supports are listed; pick one, then your software, and the page covers just that software.

Interactive tutorial

No hub needed: click through it in your browser. Pick a function on the left, watch the code or blocks build up on the right, and drag the simulated sensor to see the values.

Interactive tutorials for all products →


Note

Circuit and firmware are done; final tests with the hub are in progress, so specifications may change at launch. Contact us for early access or a quote.

Warning

Check before you buy

Item Note
Compatible hub SPIKE™ Prime only (not Robot Inventor or EV3)
Official SPIKE App Python text mode only, no block coding
Pybricks Requires Pybricks firmware v4.0 or later; on the first run press Y in the console to allow power
Servo power Supplied by the hub battery through the expander, about 0.75 A total; check the running current of high-torque servos first

Overview: servos on SPIKE

LEGO SPIKE Prime has no servo motors, yet grippers, turntables and arms that "turn to an angle and hold" are smallest and cheapest with hobby servos.

The MBC Servo6 6-Port Servo Expander (for LEGO® SPIKE™) plugs into any hub port and drives six standard 3-wire servos (SG90, MG996R and similar, 500-2500 µs signal). Angle, speed, current readback and stall protection are computed on the expander; the hub only sends commands.

Hardware highlights

  • No external battery: servo power comes from the hub battery (M1/M2 supply line) through a rectifier and an electronic fuse (eFuse), so there is no battery box to carry.
  • Per-channel current sensing: each of the six channels has its own shunt; read every servo's current at any time. Current above a threshold for a set time counts as a stall and can release that channel automatically to protect servo and gears.
  • Isolated from the hub: digital isolator on the signal line and an isolated DC-DC for the controller; a short or spike on the servo side cannot reach the hub.
  • Both servo types: positional servos use "move to angle" (speed 1-99 = 6-594 °/s, 100 = immediate); 360° continuous servos use "run" (-100 to 100).
  • 🔧 Calibratable: min/max pulse width and angle range per channel (default 500-2500 µs, 180°), or send a raw pulse width.
  • 🧷 No heartbeat needed: every command sets a state; when the hub program ends the servos hold their last position, nothing runs away.

Wiring and start-up

  1. Hub cable: plug the expander's SPIKE cable into any hub port (A-F).
  2. Servos: plug the 3-pin servo connectors into CN1-CN6 as marked (signal / VCC / GND).
  3. No battery: once the hub finishes the handshake it sends battery voltage to the expander; the green LED changes from fast blinking to steady.
  4. Program it: see Official SPIKE App or Pybricks.

Tip

At power-on the expander outputs no pulses, so servos do not twitch; the first angle command moves directly to the target (no speed ramp), later commands use the speed you set.

Commands (same names in both environments)

Function What it does
servo_angle(port, angle, speed=100) Move to 0-180° (within calibration); speed 1-99 = speed×6 °/s, 100 = immediate
servo_wait(port, timeout_ms=10000) Wait until the channel reaches the target
servo_run(port, speed) 360° continuous servo: -100 to 100, 0 stops
servo_pulse(port, pulse_us) Raw pulse width 500-2500 µs (calibration or special servos)
servo_release(port) / stop_all() Release one channel / all channels (stop pulses)
servo_calibrate(port, min_us, max_us, range_deg) Pulse and angle range for the channel
servo_stall_config(port, current_ma, time_ms, auto_release) Stall threshold (default 400 mA for 300 ms, auto release; final values to be confirmed on hardware)
get_current(port) / get_total_current() Channel current / total current in mA
is_moving(port) / is_stalled(port) / is_active(port) Moving / stall flag / pulses active
is_power_fault() Whether the eFuse has tripped

Supported platforms

Platform How
LEGO SPIKE Prime (official app) Python text mode + library
LEGO SPIKE Prime (Pybricks v4.0+) Library, sync and async (multitask) styles
Robot Inventor, EV3 Not supported

Downloads

Interested in this sensor?

Ask us for pricing, bulk / school orders or distributor info. Our engineers reply within 3 business days.

Email for a quoteBuying Guide