LogoLogo
GitHubBlynk WebsiteLogin to Blynk.Console
  • Introduction
  • Getting Started
    • Supported Hardware
    • Quickstart
      • Next Steps After Quickstart
      • Quickstart Device: Code Overview
      • Troubleshooting
    • Device Activation Methods
      • Manual Device Activation
      • WiFi provisioning
      • Static Token
    • Template Quick Setup
      • Set Up Datastreams
      • Set Up Web Dashboard
      • Set Up Mobile App Dashboard
      • Prepare Your Code
      • Test your Template
    • Send Data From Hardware To Blynk
    • Control Devices (GPIOs and beyond)
    • Events
    • Notifications (Alerts)
    • Sign Up / Sign In
  • General Concepts
    • Developer Mode
    • Device
    • Device Template
    • Connection Lifecycle
      • Disconnections And Heartbeat
    • Users
      • Multi-tenancy
    • Organizations
    • Automations
      • Forward Device Data
  • Message Usage
  • Integration Guides
    • Node-RED
    • The Things Stack
      • Getting Started
      • Device Grouping
      • Automated Device Onboarding
      • System DataStreams
    • Blues
    • NCD Industrial Vibration Sensor
    • Particle - monitor with Blynk
    • Particle - control with Blynk
    • AWS IoT Core
  • Myriota
  • OpenWeather
  • Blynk.Console
    • Overview
    • Dashboards
      • Dashboard Widgets
    • Devices
      • Device profile
        • Dashboard
        • Device Info & Metadata
        • Notifications & Events
        • Developer tools
          • General
          • Datastreams
          • Testing
          • Actions Log
      • Actions with devices
      • Segments
      • Filters
      • Notifications Settings
      • Device Sharing
    • Locations
      • Location Profile
      • Assigning Devices to the Locations
    • Organizations
      • Create a Sub-Organization
      • Working with Sub-Organizations
    • Users
      • User Profile
    • Device Templates
      • Working With Templates
      • Info
        • Offline Ignore Period
        • Manufacturer
        • Template ID
        • Categories
        • Hotspot Prefix
      • Datastreams
        • Datastream Settings
          • Name
          • Alias
          • Virtual Pin
          • Color
          • Data Type
          • Min Value
          • Max Value
          • Default Value
          • Save RAW Data
          • Invalidate Value
          • Wait for confirmation from device
          • Sync with latest server value every time device connects to the cloud
          • Expose to Voice Assistants
        • Virtual Pin
        • Location
        • Enumerable
      • Web Dashboard
        • Multiple Dashboard Tabs
      • Metadata
        • Metadata Tutorial
      • Connection Lifecycle
      • Events
        • Custom Events
          • Event Settings
          • How to Send/Log Events
          • Content Events
        • Notifications Settings
          • Custom Sounds and Critical Notifications
      • User Guides
      • Assets
    • Widgets (Console)
      • Switch
      • Slider
      • Number Input
      • Image Button
      • Web Page Image Button
      • LED
      • Label
      • Gauge
      • Chart
      • Map
      • Image Gallery
      • Custom Chart
      • Heatmap Chart
      • Video
      • Bitmask Table
      • Gradient Ramp
      • Terminal
      • Segmented Switch
      • Alarm & Sound Widget
      • Modules
    • Blynk.Air
      • Shipment Details
      • Shipment Management
        • New Shipping
      • Device shipment statuses
      • User-Controlled Shipments
    • Settings
      • Organization Settings
        • General
        • Users
        • Locations (Job Site or Facilities)
        • Tags
      • Roles and Permissions
      • Developers
        • OAuth2
        • Webhooks
        • Create New Webhook
      • Integrations
    • User Profile Menu
    • Limits
  • Blynk.Apps
    • Overview
    • Mobile Dashboard Editor
    • Device Header Constructor
      • Header Design
      • Header Mini Widgets
        • Connection Status Widget
        • Last Reported Widget
        • Tabs Widget
        • Datastream Value Widget
        • Image Widget
        • Battery Level Widget
        • Signal Level Widget
        • Tags Widget
      • Header Buttons
    • Pages
    • Widgets (app)
      • Common Widget Settings
      • List of Datastreams types supported by Widgets
    • Widgets Controllers
      • Button
      • Styled Button
      • Icon Button
      • Image Button
      • Slider
      • Vertical Slider
      • Step Slider
      • Vertical Step Slider
      • Joystick
      • zeRGBa
      • RGB Light Control
      • Step H
      • Step V
      • Slope Control
      • Switch
      • Level Slider
      • Level Slider with Switch
    • Widgets Displays
      • Value Display
      • Labeled Value
      • LED
      • Gauge
      • Radial Gauge
      • Enhanced Gauge
      • LCD
      • Simple Chart
      • SuperChart
      • Terminal
      • Video Stream
      • Level H
      • Level V
      • Image Gallery
      • Gradient Ramp
      • Icon
      • Image Animation
      • Lottie Animation
    • Widgets Interface
      • Tabs
      • Menu
      • Map
      • Text Input
      • Numeric Input
      • Time input
      • Segmented Switch
      • Icon Segmented Switch
      • Text
      • Formatted Text
      • Dynamic Spacer
    • Widgets Other
      • Music Player
      • WebPage Button
      • WebPage Image Button
      • Alias Name
    • Main Menu
      • My Profile
      • Organization
      • Settings
      • Help
      • About
      • Log Out
    • Devices
      • Add New Device
    • Automations
    • Notifications & Events
  • Blynk.Edgent
    • Blynk.Edgent overview
    • Blynk.Inject and Blynk.Air
    • OTA: Firmware Over-The-Air updates
  • Blynk.NCP
    • Blynk.NCP overview
    • Supported Connectivity Modules
    • OTA: Firmware Over-The-Air updates
  • Blynk Library - firmware API
    • Installation
      • Install Blynk Library in Arduino IDE
      • Install Blynk Library for Platformio.org
      • Install ESP8266 core for Arduino IDE
    • Configuration
    • Connection Management
    • Device Online/Offline Status
    • Digital/Analog Pins
    • Virtual Pins
    • Widget Properties
    • State Syncing
    • Timers
    • Time (RTC clock)
    • Timezone / Location
    • Log Event
    • Metadata
    • Debug
    • Reboot
    • Over-The-Air Firmware Updates (OTA)
    • Other
    • Limitations and Recommendations
    • Blynk Protocol
  • BLYNK.CLOUD MQTT API
    • Device MQTT API
      • Authentication
      • Topic Structure
      • Datastreams
      • Widget Properties
      • Events
      • Metadata
      • Timezone/Location
      • OTA
      • Miscelaneous
  • BLYNK.CLOUD HTTPS API
    • Device HTTPS API
      • Get Datastream Value
      • Get Multiple Datastream Values
      • Get Historical Data From Device
      • Update Datastream Value
      • Update Multiple Datastreams Simultaneously
      • Upload a Set of Timestamped Data
      • Update Widget/Datastream Property
      • Send/Log An Event
      • Get Device Metadata Value
      • Update Device Metadata Value
      • Is Device Connected
      • Upload a File
      • HTTPS API Troubleshooting
    • Platform API
      • Authentication
      • Ogranization API
        • Get Own Organization Info
        • Get Organization Info
        • Search Organizations
        • Create Organization
        • Get Static Tokens
        • Get Organization Tags
        • Get Organization Automations
      • Devices API
        • Get All Devices
        • Search Devices
        • Get Devices by Owner Email
        • Get Devices in user organization
        • Get Recently Activated Devices
        • Get Device Info
        • Get Connection Status
        • Create Device
        • Edit Device
        • Get Datastream Values
        • Update Datastream Value
        • Update Multiple Datastreams Values
        • Import Datastream Values
        • Update Datastream Property
        • Get Datastream Historical Data
        • Get Device Metadata
        • Update Device Metadata
        • Get Device Tags
        • Get Device Timeline Log
        • Log a Device Event
        • Get Actions Log
        • Erase All Data
        • Remove Device Owner
        • Transfer Device
        • Delete Device
      • Users API
        • Get All Users
        • Search Users
        • Create New User
        • Invite User
        • Get User Info
        • Update User Role
      • Templates API
        • Get All Templates
        • Get Template Info
        • Get Template Metadata
        • Get Template Datastreams
        • Get Template Events
    • Security
  • Downloads
    • Blynk Mobile Apps
    • Blynk Library
  • Troubleshooting
    • General Issues
    • Developer Mode
    • Changes from Blynk 0.1
      • Migrating to the new Blynk - Full Guide
    • Glossary
    • Links
  • Commercial Use
    • Deploying Products With Dynamic AuthTokens
    • Deploying Products With Static Tokens
    • Working With Clients
    • Supported topologies
    • Business Plan (White Label Solution)
      • App Publishing Process And Timeline
      • What's Needed To Publish Your Apps And Go Live
      • Branding Materials
      • Custom Email Address For Transactional Emails
      • Application Settings
        • General
        • Design
        • Mobile Apps
        • Sign Up
  • Add-Ons
    • Add-on list
    • Amazon Alexa
    • Google Assistant
    • Localization
    • Database Access
    • Marketing
Powered by GitBook
On this page
  • Install required software
  • Configure your Arduino IDE and Micro:Bit
  • Upload your first sketch!
  • Make something useful ;)
  • What next?
  • Challenges

Was this helpful?

  1. Legacy Platform Help Articles
  2. Legacy articles

BBC micro:bit + Arduino IDE

Last updated 2 years ago

Was this helpful?

This documentation is for the LEGACY version of Blynk platform which is no longer supported and will be shut down.

You can sign up for the current version of Blynk platform .

The new mobile apps can be downloaded from and .

The actual Blynk documentation is .

In March 2016, BBC started delivering a micro:bit to every 11-year-old kid in Britain, as part of the BBC Make it Digital initiative. They should have provided nearly 1 million of devices for free. BBC micro:bit is quite a nice piece of hardware: small, low-power, embedded device with inputs, outputs, and a processor. It includes a variety of sensors, 25 LED lights, two programmable buttons, and Bluetooth, with power provided either through an external battery pack or an attached USB device. It can be used with JavaScript, Python, or Scratch programming languages and is perfect for education in engineering and electronics.

But you can get bored with the functionality of the board itself. What if you could easily build an iOS/Android app to interact with your micro:bit? Blynk does just that! Here is how to use it with Arduino IDE. The whole tutorial should not take more than 30 minutes.

Install required software

  1. Download and install the latest .

  2. Install Nordic nRF5 support package for Arduino. Follow .

  3. Install BLEPeripheral library. You can use Arduino Library Manager or .

  4. Install the latest Blynk libraries. .

  5. Install Blynk app on your smartphone, and create an account (if you don't have one).

Configure your Arduino IDE and Micro:Bit

In Arduino IDE:

  1. Select Tools -> Board -> BBC micro:bit

  2. Select Tools -> SoftDevice -> S110 *

  3. Select Tools -> Programmer -> CMSIS-DAP

  4. Connect your Micro:Bit

  5. Select: Tools -> nRF5 Flash SoftDevice (read and accept the license)

*Blynk device works as a Peripheral. So you may select any compatible SoftDevice: S110 is for Peripheral S120 is for Central only S130 is for Central + Peripheral S132 is for Nordic nRF52-based boards, Central + Peripheral

Upload your first sketch!

A new Auth Token for this device will land in your email box. Open our example for micro:bit in Arduino IDE: File > Examples > Blynk > Boards_Bluetooth > BBC_MicroBit

That's it! Click "Upload" button. In your project, add BLE widget and tap on it to open BLE Settings.

  1. Click "Connect BLE device" button.

  2. Select "Blynk" device.

  3. Blynk App should report that the device is connected.

Make something useful ;)

Reading Analog Sensor

In Blynk App, add a Value Display widget and attach it to Analog Pin 1. After you run the project, you should see the value of analog sensor.

Reading Button Status

Add these lines on the top of setup function, and upload it to the board.

  // Configure on-board buttons
  pinMode(PIN_BUTTON_A, INPUT_PULLUP);
  pinMode(PIN_BUTTON_B, INPUT_PULLUP);

Add a Value Display widget and attach it to Digital Pin 5. This is the pin of Button A, for Button B use pin 11 (see the pin map). Run your project to see the button status.

Switching some LEDs on and off

For this, you will have to add more code to your sketch. Add this above your loop and setup functions (not inside of them):

#define LED_ROW2 27
#define LED_COL3 10

BLYNK_WRITE(V0)
{
  pinMode(LED_ROW2, OUTPUT);
  pinMode(LED_COL3, OUTPUT);
  if (param.asInt() == 1)        /* When button widget is "ON" */
  {
    digitalWrite(LED_ROW2, 1);
    digitalWrite(LED_COL3, 0);
  }
  else
  {
    digitalWrite(LED_ROW2, 0);
    digitalWrite(LED_COL3, 0);
  }
}

What next?

Challenges

Using Blynk smartphone app, create a New Project. Select BBC Micro:bit device, BLE connection type.

Inside of the sketch, replace "YourAuthToken" with the token you have received:

Why do we need to use 2 pins to drive a single LED? That's a legitimate question! Actually, this trick allows us to control all 25 LEDs by toggling just 12 GPIO pins in total. Read more about .

Now add a Button widget (select mode: Switch), assign it to Virtual Pin 0. Run the project, and try clicking the Button widget. The middle LED should light up.

Read about concept and unleash full power of Blynk. Blynk supports huge amount of board types. Our library is Open Source Software. us a star on GitHub.

While micro:bit is working quite well in this mode, there are no default drivers currently available. For example, no convenient functions to work with the on-board LED array. However (with some efforts) these drivers can be ported to Arduino IDE: The pin mapping for Arduino IDE core can be found . And is some advanced information on low-level C/C++ programming on micro:bit.

how micro:bit display works
Virtual Pins
Check if your favourite is on the list!
Give
https://github.com/lancaster-university/microbit-dal/
here
here
here
App Store
Google Play
here
Arduino IDE
instructions here
install manually
Our instructions