MBC Servo6 6-Port Servo Expander (for LEGO® SPIKE™) × SPIKE × Official LEGO App

Interactive tutorialSPIKE

First time? Try the interactive tutorial in your browser first, then follow the steps below with your hub.

This page covers Official LEGO App (SPIKE 3, Robot Inventor) only: how to set it up for the MBC Servo6 6-Port Servo Expander (for LEGO® SPIKE™) on SPIKE Prime / Robot Inventor, how to read every value and examples. Use the switcher above to change product, host or software.

Setup

What you need

  • Sensor: MBC Servo6 6-Port Servo Expander (for LEGO® SPIKE™) (SPIKE edition). Each platform is a different factory edition; an EV3 edition is not recognised on a SPIKE hub.
  • Hub: SPIKE Prime (Education, yellow hub) or Robot Inventor (home edition, teal hub).
  • Cable: the standard cable in the box, or an original LEGO cable.
  • Software: Education uses the LEGO Education SPIKE App (the examples on this site use SPIKE 3); the home edition uses the LEGO MINDSTORMS Robot Inventor App.
  • Hub firmware: the original LEGO firmware. No need to switch to Pybricks.

Install the software

  1. Education: install the SPIKE App from the LEGO Education download page.
  2. Home edition: install the LEGO MINDSTORMS Robot Inventor App.
  3. If the hub has been flashed with Pybricks, switch it back to the original LEGO firmware with the SPIKE App first, or the official App cannot connect.

Note

The Education and home editions read values differently: in the home-edition App some blocks are limited to 0 ~ 126, and "Color" only goes up to 10. Use the readings for the edition you have.

Make the software see the sensor

No extension and no driver needed. Plug the sensor into the hub and the official App treats it as an original LEGO sensor (for most products a SPIKE Color Sensor); just use that sensor's blocks.

  • An official block returns one number at a time, so the product data is encoded into the "Color", "Reflected light" and "Raw red / green / blue" slots. See the readings below for what each slot means.
  • To open an example: download the .llsp3 (home edition: .lms) → open the App → top-left "File" → "Open" → pick the file.

Wiring

  1. Plug the sensor into hub port A with the cable (any of A~F works; choose the same port in your program).
  2. The plug only goes in one way: latch up, push it in gently, do not force it.
  3. When the hub is on, the light on the sensor comes on.

Note

Servo6 is coming soon: circuit and firmware are done and final hub testing is under way; specifications follow the release version. SPIKE Prime only (not Robot Inventor or EV3).

Wiring and power

  1. Host cable: plug the expander's SPIKE cable into any hub port (A~F).
  2. Servos: plug the 3-wire servo connectors into CN1~CN6 following the board markings (signal / VCC / GND). Servos with 500~2500 µs signals such as SG90 and MG996R work.
  3. No battery needed: after the handshake the hub sends battery voltage to the expander and the green LED changes from fast blinking to steady. Total servo current is limited to about 0.75 A; check the working current of high-torque servos first.

Tip

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

Add the library

The official App supports Python text mode only, not blocks.

  1. Download official SPIKE App library + examples (.zip).
  2. Official App Python projects cannot hold extra files, so paste the whole content of MBC_servo6_SPIKE_App_Lib.py at the top of your program, then write your own code below it.
from hub import port
import time
# ↑ paste the content of MBC_servo6_SPIKE_App_Lib.py above this line
sv = MBC_SERVO6(port.A)        # expander on port A
sv.servo_angle(1, 90)          # CN1 to 90°
time.sleep_ms(1000)
sv.stop_all()

The expander pretends to be a SPIKE ultrasonic sensor: commands go out through the ultrasonic sensor's "4 light values", and status comes back through device.data(). Each command waits one system polling cycle (about 20~50 ms), so controlling 6 servos in a row takes about 6 cycles.

Tip

When an official App program ends, the servos are not released (they hold their last position and do not run away); call stop_all() at the end of the program to release them.

First test

  1. Connect the hub to the App over USB or Bluetooth.
  2. Open example 1 on this page and press Run.
  3. Move your hand or the mat in front of the sensor: if the number changes, everything is connected.

FAQ

  • Nothing happens when I plug it in? Check in order: both ends of the cable firmly in → another hub port → another cable → another hub.
  • Different Apps give different numbers? The Education (yellow hub) and home (teal hub) editions use different formats. Check which edition you have and use its readings.
  • Do I need an adapter or a driver? No. The connector and protocol are the same as a LEGO hub port; it is recognised automatically.
  • Example 6 won't open in the official App? Examples marked "Pybricks only" use a new mode in firmware from 2026-10 on, which the official App blocks cannot read.

Examples

Example programs for this software are being prepared and will go live with the product; contact us if you need one sooner.

More questions

  • The hub does not detect the sensor? Unplug and replug, wait 2 s, try another port. The official app shows it as a distance (ultrasonic) sensor — that is expected.
  • Can I use the official app and Pybricks on the same hub? One firmware at a time: Pybricks and the MBC Blocks website need Pybricks firmware, the official app needs LEGO firmware; you can switch back any time with the SPIKE app.

Still stuck? Contact us with your software and a screenshot of the program.

Downloads

Sources

  • Host and software list:_build/guides.json
  • Setup:_build/guides/software/spike-official.en.md、_build/guides/product/servo6/spike-official.en.md
  • Examples:sensors/servo6/spike-examples.md
Email for a quoteBuying Guide