ROS2 Connector icon ROS2 Connector — Bridge ARC to ROS2 via rosbridge: publish/subscribe topics for cameras, servos, ports, NMS, variables, scripts, and movement. Try it →
 
Micro:bit

Micro:Bit by BBC

BBC micro:bit with Synthiam ARCx: USB robotics firmware, Blockly coding, digital I/O, analog sensors and PWM control.
Connection Type
USB
Number of Servos
Varies
Audio Support
No
Camera Support
No
UARTs
None
I2C Support
Yes
ADC Ports
3
Digital Ports
16
A pocket-sized educational board with a grid of red LEDs and crocodile clips on its edge pads, connected by USB to a laptop showing a colorful browser dashboard
BBC micro:bit + Synthiam ARCx

From classroom gadget to robot controller

Load Synthiam's EZB firmware onto a micro:bit and ARCx or ARC can switch its pins, read its analog pads and buttons, and dim LEDs over a USB cable. Students build and program with robot skills and Blockly in a web browser.

How the micro:bit works with Synthiam. ARC and ARCx do not use the micro:bit's default programs. Instead, the micro:bit runs a small program called firmware that tells it how to talk to Synthiam software and how to respond to commands like reading a pin or setting an output. You upload that firmware once, from an Arduino sketch, and then connect over USB with the Ezb Connection robot skill in ARCx (or EZB Connection in ARC) at 57600 baud. We recommend ARCx: it runs on Windows, Ubuntu and Raspberry Pi, and a whole class can use it from their own browsers.

Meet the board

What is the BBC micro:bit?

The BBC micro:bit is a small, beginner-friendly microcontroller board (a tiny computer on a circuit board) created for teaching programming and electronics. It is about half the size of a credit card.

The micro:bit typically includes:

  • ARM Cortex-M0 processor (runs your program or firmware)
  • 25-LED display (a 5×5 LED matrix you can light up)
  • Two buttons (Button A and Button B)
  • Motion sensor (accelerometer) and compass (magnetometer)
  • USB for power, programming and communicating with ARCx or ARC
  • Bluetooth for wireless projects
  • Power options: USB or an external battery pack
  • GPIO pins, inputs and outputs for connecting electronics

micro:bit at a glance

TypeEducational microcontroller board (DIY EZB with Synthiam firmware)
MakerBBC
ProcessorARM Cortex-M0 (Nordic nRF51 on the original micro:bit)
ConnectionUSB (serial), 57600 baud with the EZB firmware
PowerUSB or battery pack
EZB portsD3–D16 digital and PWM; ADC on pins 0–4
Synthiam uses it forClassroom robotics, simple I/O and sensors
Websitemicrobit.org
Capabilities

What you can do with a micro:bit in Synthiam

💡

Digital in and out

Turn LEDs, buzzers and relays on and off, and read buttons and switches on D3–D16. Watch and toggle them live in Digital Monitor.

🕹

Buttons A and B

Button A is on pin 5 and Button B on pin 11, so a script or skill can read them as digital ports D5 and D11 and make the robot react to a press.

📈

Analog sensors

Read light sensors, potentiometers and other analog sensors on the big pads 0, 1 and 2 (and pins 3 and 4) with Adc Monitor, or chart them with Ez Chart.

🎛

PWM

Dim an LED or vary a buzzer with PWM duty from 0% to 100% using the Pwm Slider or PWM.set(d8, 50).

🧩

Blockly for students

Snap blocks together in the Script robot skill to read a pad and light an LED, then convert the program to JavaScript or Python when students are ready.

👥

A whole class at once

ARCx is used from a browser, so several students can watch and use the same robot project from their own laptops or tablets.

What the firmware does not do. The v1 firmware handles digital, PWM, servo and analog commands. It does not read the on-board motion sensor or compass, draw pictures on the LED display, use Bluetooth, or provide I2C, UART or ultrasonic commands. Servos need extra hardware (see the limitations below).

Pin reference

micro:bit pins and EZB ports

micro:bit edge connector pinout showing pins P0 to P20, the LED columns, buttons A and B, the analog inputs, SPI and I2C pins
micro:bit pinout and connection example.

GPIO stands for General Purpose Input/Output. These are the pins on the edge of the micro:bit that let you connect LEDs, buttons, sensors, servos (with extra hardware), buzzers and more.

The easiest pins to use are the three large ring pads labeled P0, P1 and P2, designed for alligator clips without soldering. A micro:bit breakout board (an accessory that expands the edge connector into easy-to-use pins) gives convenient access to the other GPIO pins.

Important: many micro:bit pins are shared (also called multiplexed) with the 5×5 LED display and the buttons. A pin may control the LED matrix or an external device, but not both at the same time. If you notice strange behavior, use pins that are not shared with the LED matrix or buttons.

In Synthiam's v1 firmware, digital port numbers match the micro:bit pin numbers (D8 is pin 8), from D3 to D16. Analog ports ADC0–ADC4 read pins 0–4.

PinEZB port (v1 firmware)Shared functionsRecommended
#0ADC0Large pad, analog inYes
#1ADC1Large pad, analog inYes
#2ADC2Large pad, analog inYes
#3D3, ADC3Analog in, also used for LED matrix (column 1)
#4D4, ADC4Analog in, also used for LED matrix (column 2)
#5D5Also used for Button A
#6D6Also used for LED matrix (column 9)
#7D7Also used for LED matrix (column 8)
#8D8—Yes
#9D9Also used for LED matrix (column 7)
#10D10Analog in (no ADC port in the firmware), also used for LED matrix (column 3)
#11D11Also used for Button B
#12D12—Yes
#13D13Also available as SPI clockYes
#14D14Also available as SPI MISOYes
#15D15Also available as SPI MOSIYes
#16D16—Yes
#19—Also available as I2C clockYes
#20—Also available as I2C dataYes

To use the on-board buttons and LED display while also connecting external devices, choose pins that are less likely to conflict: #0, #1, #2, #8, #12, #13, #14, #15, #16, #19 and #20. With the v1 firmware, #0–#2 are analog inputs only, #8 and #12–#16 are digital ports, and #19 and #20 are not reachable.

Limitations of the v1 firmware

  • Digital ports start at D3, so pads 0–2 cannot be used as digital outputs.
  • A servo position is sent as a PWM duty proportional to the position, not as a standard hobby-servo pulse. Test a servo before you build around it, or use extra servo hardware.
  • Pin 10 is analog-capable but has no ADC port.
Get started

Program the micro:bit firmware and connect ARCx

The ARCx and ARC compatible firmware for the micro:bit is an Arduino sketch. You compile it in the Arduino IDE and upload it to the micro:bit over USB.

  1. Install the Arduino IDE on your computer from arduino.cc.
  2. Add micro:bit board support so the Arduino IDE knows how to compile for the micro:bit. Follow Adafruit's micro:bit with Arduino guide to install the micro:bit tools and board support.
  3. Download the firmware source. DJ's Microbit v1 Firmware source code (Feb 7, 2019), the Arduino sketch that connects the micro:bit to ARC and ARCx. Extract it and open EZ-Micro-Bit.ino.
  4. Compile and upload the sketch to the micro:bit over USB. The tutorial to compile and upload the firmware shows the steps for Arduino boards; the process is the same once the micro:bit board is selected.
  5. Install ARCx and add the Ezb Connection robot skill (Communication category). In its configuration, select EZB 0, open Connection and set Baud rate to 57600 (the default is 9600). Save.
  6. Connect. Pick the micro:bit's serial port and press the green connect button.
    Windows:  COM3   (check Device Manager for the number)
    Linux:    /dev/ttyACM0
  7. Try it. Add Digital Monitor and watch D5 change when you press Button A, or clip an LED (with a resistor) to pin 8 and toggle D8. Add Adc Monitor to read pad 0.
micro:bit EZB firmware sketch, LEDs and sensors on its pads
⇄
ARCx Ezb Connection USB serial, 57600 baud
⇄
Students' browsers Blockly, robot skills, Custom UI

Using ARC instead?

Plug the micro:bit into USB, open ARC, press Config on the connection control, set the baud rate to 57600 on the Settings tab, save, choose the micro:bit's COM port and press Connect.

ARC or ARCx?
ARCx Recommended ARC
Runs onWindows 10/11 x64, Ubuntu 24.04 x64 and ARM64, Raspberry Pi 4/5 with Ubuntu 24.04Windows
User interfaceAny web browser, several people at onceWindows desktop application
Connection skillEzb ConnectionEZB Connection
ProgrammingBlockly, JavaScript, PythonBlockly, EZ-Script, JavaScript, Python
AI agentsBuilt-in MCP serverThrough ARC robot skills
Troubleshooting

If something does not work

Try a different USB cable (some cables are charge-only), a different USB port, or close any other program that might be using the micro:bit's COM/serial port, including ARCx and ARC. Check that the micro:bit board support from the Adafruit guide is installed and the micro:bit board is selected.

Set the Ezb Connection's Baud rate to 57600, save, then disconnect and reconnect. If it still does not answer, confirm the EZB firmware is on the board: a micro:bit running a MakeCode or Python program will not respond.

It is probably shared with the LED matrix or a button. Move the device to one of the recommended pins (#8, #12, #13, #14, #15 or #16 for digital, #0–#2 for analog).

In the v1 firmware, the large pads are analog inputs (ADC0–ADC2). Digital and PWM outputs start at D3. Use pin 8 or 12–16 through a breakout board for outputs.

Add the user that runs ARCx to the dialout group, then log out and back in:
sudo usermod -aG dialout $USER
Questions

Frequently asked questions

Yes, but not at the same time. Uploading the EZB firmware replaces whatever program was on the micro:bit, and uploading a MakeCode program later replaces the EZB firmware. Re-upload the firmware when you want to use it with ARCx or ARC again.

The firmware on this page is the v1 build, written in 2019 for the original micro:bit with its Cortex-M0 processor. The V2 uses a different processor, so the sketch would need a board package that supports the V2. We have not published a V2 version.

No. The EZB firmware talks over the USB cable only. For a wireless robot, put ARCx on a small computer on the robot (such as a Raspberry Pi with Ubuntu 24.04), plug the micro:bit into it, and use the robot from a browser over Wi-Fi.

Not for the three large pads, which take alligator clips. To reach the digital ports (pins 3–16), a micro:bit breakout board makes the edge connector much easier to use.

Bring the micro:bit into robotics class

Upload the firmware, install ARCx, add the Ezb Connection skill, and let students program real hardware from their browsers.


ARC Pro

Upgrade to ARC Pro

Experience early access to the latest features and updates. You'll have everything that is needed to unleash your robot's potential.