SparkFun moto:bit

The SparkFun moto:bit is a fully loaded "carrier" board for the micro:bit that, when combined with the micro:bit, provides you with a fully functional robotics platform. The moto:bit offers a simple, beginner-friendly robotics controller capable of operating a basic robotics chassis. Onboard each moto:bit are multiple I/O pins capable of hooking up servos, sensors and other circuits. At the flip of the switch you can get your micro:bit moving!

The moto:bit connects to the micro:bit via an edge connector at the top of the board, making setup easy. This creates a handy way to swap out micro:bits for programming, while still providing reliable connections to all of the different pins on the micro:bit. We have also included a basic barrel jack on the moto:bit that is capable of providing power to anything you connect to the carrier board.

The micro:bit is a pocket-sized computer that lets you get creative with digital technology. Between the micro:bit and our shield-like bit boards you can do almost anything while coding, customizing and controlling your micro:bit from almost anywhere! You can use your micro:bit for all sorts of unique creations, from robots to musical instruments and more. At half the size of a credit card, this versatile board has vast potential!

Note: The SparkFun moto:bit does NOT include a micro:bit board. The micro:bit will need to be purchased separately.

Important: The silkscreen indicates an input voltage range of 3V to 17V but we have found that the actual range is 3V to 11V. Please do not apply more than 11V to the power jack on the moto:bit. We are currently updating our boards to resolve this issue.

  • Edge connector for easy use with the micro:bit
  • Full H-Bridge for control of two motors
  • Control servo motors
  • I2C port for extending functionality
  • Power and battery management onboard for the micro:bit

SparkFun moto:bit Product Help and Resources

Wireless Remote Control with micro:bit

January 21, 2019

In this tutorial, we will utilize the MakeCode radio blocks to have the one micro:bit transmit a signal to a receiving micro:bit on the same channel. Eventually, we will control a micro:bot wirelessly using parts from the arcade:kit!

micro:bot Kit Experiment Guide

February 20, 2020

Get started with the moto:bit, a carrier board for the micro:bit that allows you to control motors, and create your own robot using this experiment guide for the micro:bot kit.

Getting Started with the micro:bit

September 2, 2021

The BBC micro:bit is a compact, powerful programming tool that requires no software installation. Read on to learn how to use it YOUR way!

1 of 1 found this helpful:

Red blinking LED

The red blinking LED means that the moto:bit is alive and ready. It is not a problem status indicator LED.

Core Skill: Robotics

This skill concerns mechanical and robotics knowledge. You may need to know how mechanical parts interact, how motors work, or how to use motor drivers and controllers.

2 Robotics

Skill Level: Rookie - You will be required to know some basics about motors, basic motor drivers and how simple robotic motion can be accomplished.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #349255 / about 6 years ago / 1

    I see there is an input voltage range of 3-17v. Does the input voltage carry through to the voltage supplied to the motors? Right now all I have is 4 x aa battery holder and I was wondering if I purchase something like 3c lipo at ~11v would that extra voltage get regulated down or would it carry through to the motors and allow them to spin faster. I looked thought he docs and did not see anything about the output voltage so I apologize if I missed it. Thanks!

  • Member #1069886 / about 7 years ago * / 1

    Here is a handy class for people who want to program the moto:bit in micropython:
    from microbit import *
    class motobit:
        #8-bit index of the motobit functions (expressed in hex)
        left_motor = 0x21
        right_motor = 0x20
        motor_enable = 0x70
        invert_left = 0x12
        invert_right = 0x13
        #8-bit address of the motobit itself (expressed in hex)
        motobit_address = 0x59
        #method to combine an 8-bit index with an 8-bit command and send it to the motobit via i2c
        def write16bit(self, index, command):
            i2c.write(self.motobit_address,bytes([index, command]), repeat = False)
        #method to enable the motors, use motobit.enable(1) to enable motors
        def enable (self, run):
            self.write16bit(self.motor_enable, run)
        #method to run a single motor
        #power is in the range [-127,127] and will be clipped if too big
        def run_motor (self, motor, power):
            # add 128 to the power because the actual range of input is 0-255
            #now make sure power is in the range 0-255
            if power < 0: 
                power = 0
            elif power > 255:
                power = 255
            #send the command to drive the appropriate motor
            self.write16bit(motor, power)
        #method to drive both motors 
        def drive(self, left_speed, right_speed):
            self.run_motor(self.right_motor, right_speed)
            self.run_motor(self.left_motor, left_speed)
        #method to invert the left motor, use motobit.invert_left_motor(1) to enable, (0 to disable)
        def invert_left_motor(self, invert):
        #method to invert the right motor, use motobit.invert_right_motor(1) to enable, (0 to disable)
        def invert_right_motor(self, invert):

    • Member #1069886 / about 7 years ago / 1

      And here is a short implementation example:

      car = motobit()

Customer Reviews

4.3 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

A nice addition to the Micro:Bit

This motor driver plus additional sensor/servo breakout is a welcomed addition to my Micro:Bit projects. Some things I really like about the board is the power switch and barrel jack (perfect for 9v, AAA, AA battery packs; max 17v).

I would like to see the spring loaded pin connectors for the motors, that would allow for various size wiring and provide a tight hold onto the wires, but this is still a very solid product. I will recommend to others.

Convenient Motor Add-on for Micro:Bit

This makes using motors and sensors in unison easier than most other breakout boards. I would like to have a 90 degree version (with the microbit mounted vertically to the horizontal moto:bit board) to make it easier to place on smaller robots. Other than that it works great!

Love the moto:bit!

This takes a LOT of the hookup trouble out of the equation in making a functioning robot ready for prime time! Love it and have gotten several kids hooked on making things that move!