Stufin
Home Quick Cart Profile

BBC Micro:Bit Go

Buy Now on Stufin

BBC Micro

Bit Go

Overview

The BBC Micro

Bit Go is a versatile and accessible microcontroller-based development board that provides an excellent introduction to the world of programming and IoT. Its ease of use, affordability, and extensive resources make it an ideal choice for beginners and experienced developers alike.

Edge connector

Allows users to connect the MicroBit Go to other devices and accessories
Breadboard-friendlyCompatible with standard breadboards for easy prototyping

Extensive resources

Supported by a large community and a wealth of online resources, including tutorials, projects, and documentation

Target Applications

Pin Configuration

  • BBC Micro:Bit Go Pinout Guide
  • The BBC Micro:Bit Go is a popular IoT development board designed for educational and prototyping purposes. It features a compact design with 25 GPIO pins, allowing users to connect a wide range of sensors, actuators, and other devices. In this guide, we will explore each pin on the BBC Micro:Bit Go, explaining their functions and how to connect them.
  • Pin Structure:
  • The BBC Micro:Bit Go has a 25-pin edge connector, with the pins arranged in two rows of 12 and 13 pins, respectively. The pinout is as follows:
  • Row 1 (12 pins):
  • 1. GND (Ground): Provides a common ground connection for all components.
  • 2. VCC (Voltage Supply): Supplies power to the Micro:Bit Go and connected devices (typically 3.3V).
  • 3. Button A: A digital input pin connected to a built-in button (Button A) on the Micro:Bit Go.
  • 4. P0: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 5. P1: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 6. P2: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 7. P3: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 8. P4: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 9. P5: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 10. P6: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 11. P7: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 12. P8: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • Row 2 (13 pins):
  • 1. P9: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 2. P10: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 3. P11: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 4. P12: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 5. P13: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 6. P14: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 7. P15: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 8. P16: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 9. P19: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 10. P20: A digital input/output pin (GPIO) that can be used for various purposes such as reading sensors or controlling actuators.
  • 11. SCL (I2C Clock): The clock signal pin for I2C communication.
  • 12. SDA (I2C Data): The data signal pin for I2C communication.
  • 13. 3V: An alternative power supply pin that provides 3.3V output.
  • Connecting the Pins:
  • When connecting components to the Micro:Bit Go, ensure that you match the pin functions and voltage levels. Here are some general guidelines:
  • Use the GND pin as a common ground for all components.
  • Use the VCC pin to power external components, but ensure they operate within the 3.3V voltage range.
  • Connect digital sensors or actuators to the GPIO pins (P0-P20) using the appropriate voltage levels and signal conditioning.
  • Use the I2C pins (SCL and SDA) for I2C communication with external devices.
  • Connect external components to the 3V pin for a stable 3.3V power supply.
  • Remember to consult the datasheet for your specific component or device to ensure compatibility with the Micro:Bit Go's pinout and voltage levels.

Code Examples

BBC Micro:Bit Go Component Documentation
The BBC Micro:Bit Go is a popular microcontroller-based development board designed for educational and hobbyist purposes. It's a compact, easy-to-use device that allows users to create a wide range of IoT projects. This documentation provides an overview of the component and offers code examples to demonstrate its usage in various contexts.
Component Overview
The BBC Micro:Bit Go is a single-board microcontroller powered by a 32-bit ARM Cortex-M0 processor. It features:
25 programmable LEDs for display and interaction
 2 programmable buttons for user input
 Accelerometer and compass for motion and orientation sensing
 Bluetooth Low Energy (BLE) for wireless connectivity
 Micro-USB port for programming and power supply
 Compatible with a range of programming languages, including Python, JavaScript, and C++
Code Examples
### Example 1: Blinking LED with Button Press
This example demonstrates how to use the BBC Micro:Bit Go to create a simple LED blinker that responds to button presses.
MicroPython Code
```python
import microbit
while True:
    if microbit.button_a.is_pressed():
        microbit.led.toggle(0, 0, 9)  # Toggle LED at position (0, 0) with brightness 9
        microbit.sleep(500)  # Wait for 500ms
```
In this example, we use the `microbit` library to access the device's features. The code runs an infinite loop, checking for button A presses. When a press is detected, the LED at position (0, 0) toggles its state and waits for 500ms before checking again.
### Example 2: Accelerometer-based Gesture Recognition
This example demonstrates how to use the BBC Micro:Bit Go's accelerometer to recognize simple gestures.
MicroPython Code
```python
import microbit
while True:
    accelerometer_data = microbit.accelerometer.get_values()
    x, y, z = accelerometer_data
if abs(x) > 500 and abs(y) < 200 and abs(z) < 200:
        microbit.display.show("R")  # Show "R" on the display if gesture is detected
    elif abs(y) > 500 and abs(x) < 200 and abs(z) < 200:
        microbit.display.show("L")  # Show "L" on the display if gesture is detected
    else:
        microbit.display.clear()  # Clear the display if no gesture is detected
    microbit.sleep(50)  # Wait for 50ms
```
In this example, we use the `microbit.accelerometer` module to read the accelerometer data. We then analyze the data to recognize simple gestures, such as tilting the device to the right (x-axis) or left (y-axis). When a gesture is detected, the corresponding character is displayed on the device's LED matrix.
### Example 3: BLE-based Remote Control
This example demonstrates how to use the BBC Micro:Bit Go's BLE capabilities to create a simple remote control system.
MicroPython Code (Client-side)
```python
import microbit
import ble
client = ble.gap_scan(5000)  # Scan for BLE devices for 5 seconds
if client:
    client.connect()  # Connect to the first discovered device
while True:
    if microbit.button_a.is_pressed():
        client.send("-button_a_pressed-")  # Send a message to the server when button A is pressed
    microbit.sleep(50)  # Wait for 50ms
```
MicroPython Code (Server-side)
```python
import microbit
import ble
server = ble.gap_advertise(5000)  # Advertise the server for 5 seconds
while True:
    message = server.recv()
    if message == "-button_a_pressed-":
        microbit.led.toggle(0, 0, 9)  # Toggle LED at position (0, 0) with brightness 9
    microbit.sleep(50)  # Wait for 50ms
```
In this example, we create a client-server system using the BBC Micro:Bit Go's BLE capabilities. The client-side code scans for nearby BLE devices, connects to the first one, and sends a message when button A is pressed. The server-side code advertises its presence, receives messages from clients, and toggles an LED in response to the received message.
These examples demonstrate the versatility of the BBC Micro:Bit Go and its capabilities in various IoT projects.