Introduction

Bluno M0 is the only ARM Cortex-M0 Arduino Microcontroller that supports 5V standard logic level. With built-in Bluetooth chip, Bluno M0 supports multi-functions such as Bluetooth communication, wireless programming.

Have you tried to make projects with traditional Arduino board? Although these boards have better compatibility, but when you want to make volume production, you'll find that these boards are lacking of pins, low-performance or not compatible with 5V operating voltage. And most of them are very expensive. Luckily, Bluno M0 is a great soul solves all.

Bluno M0 selects 32-bit high-performance Nuvoton SCM (Single Chip Micyoco) as the core. Besides built-in ARM Cortex M0 infrastructure, Bluno M0 supports 5V Logic level, equipped with 1 USB port and 2 serial ports, providing 31 digital pins (parts AFIO) and 6 analog pins, offering more IO resources. Moreover, Bluno M0 is compatible with Arduino Leonardo package/encapsulation and the clock speed is 72MHz.

Additionally, Bluno M0 supplies another IIS interface, supporting play &record wav files. Once put Bluno M0 with advanced IIS chip, professional HIFI audio is available.

NOTE:

Features

Specification

Board Overview

Bluno M0 Mainboard (Arduino Compatible)
Bluno M0 Mainboard (Arduino Compatible)

Num

Label

Description

1

USB COM Port

USB Power; Program downloading port; Serial port (USB COM port, Bluetooth and Hardware Serial Port 1 share the same port: Serial)

2

Power Supply

DC 2.1 power supply port

3

Digital IO D0~D13

Digital IO D0~D13 (Leonardo Compatible)

4

Digital IO D24~D31

Digital IO D24~D31

5

SPI Interface

D14, D15, D16 (Pin Multiplexing)

6

Analog A0~A5

Analog A0~A5

7

MCU

NUC123LD4AN0

8

USB Serial Port

USB Power; USB Serial Port(called USBSerial in code)

NOTE: Bluno M0 can be charged by USB x 2 and DC 2.1

PinMap

Bluno M0 Pins IC pin Multiplex Note
D0 PC4 RXD1 Serial-RX
D1 PC5 TXD1 Serial-TX
D2 PF2 SDA INT0
D3 PF3 SCL INT1
D4 PC0 I2S LRCLK /
D5 PC3 PWM0 /
D6 PA13 PWM1 /
D7 PC2 I2S DI /
D8 PC3 I2S DO /
D9 PA14 PWM2 /
D10 PA15 PWM3 /
D11 PB8 PWM4 Software PWM
D12 PC1 I2S BCLK /
D13 PB14 PWM5 Software PWM
D14 PA10 SPI MISO /
D15 PA11 SPI SCK /
D16 PC11 SPI MOSI /
D17 PB6 RX LED /
D18 PD0 A0 /
D19 PD1 A1 /
D20 PD2 A2 /
D21 PD3 A3 /
D22 PD4 A4 /
D23 PD5 A5 /
D24 PB4 RXD2 RX2
D25 PB5 TXD2 TX2
D26 PC10 NULL /
D27 PC9 NULL /
D28 PC13 NULL /
D29 PC12 NULL /
D30 PB9 NULL /
D31 PB10 NULL /
D32 PB7 TX LED /

Tutorial

Requirements

Setup Bluno M0 Software Development Environment

Found “Bluno M0” Found “Bluno M0”

Found “Bluno M0” Install Bluno M0 MainBoard
Now, the development environment has been installed, you can use it like a normal Arduino board.IDE_Bluno_M0_Mainboard.png

Driver Installation

DFR0416_Device_Manager_UNINSTALL.png

Bluno_M0_driver_install1.png

Bluno_M0_driver_install2.png

Bluetooth Instruction

Bluno M0 is consistent with Bluno series in Bluetooth. Please refers to Bluno SKU:DFR0267 for details.

Special Function

Hardware Serial port x2 & USB Serial Port x1

USB Serial Port Serial
Hardware Serial Port 1 Serial
Hardware Serial Port 2 Serial2
void setup() {  // put your setup code here, to run once:
    Serial.begin(115200);
    Serial2.begin(115200);
}
void loop() {   // put your main code here, to run repeatedly:
    Serial.println("I am Serial");
    Serial2.println("I am Serial 2");
    delay(1000);
}
int pin;
void setup() {  // put your setup code here, to run once:
    for(pin=24;pin<32;pin++){
        pinMode(pin,OUTPUT);
    }
}
void loop() {   // put your main code here, to run repeatedly:
    for(pin=24;pin<32;pin++){
        digitalWrite(pin,HIGH);
    }
    delay(500);
    for(pin=24;pin<32;pin++){
        digitalWrite(pin,LOW);
    }
    delay(500);

}
#include <SPI.h>
#include <Wire.h>
#include <SD.h>
#include <WAV.h>

// set up variables using the SD utility library functions:
Sd2Card card;

const int chipSelect = 4;
void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("\nInitializing SD card...");

  // we'll use the initialization code from the utility libraries
  // since we're just testing if the card is working!
  if (!card.init(SPI_HALF_SPEED, chipSelect)) {
    Serial.println("initialization failed. Things to check:");
    Serial.println("* is a card inserted?");
    Serial.println("* is your wiring correct?");
    Serial.println("* did you change the chipSelect pin to match your shield or module?");
    return;
  } else {
    Serial.println("Wiring is correct and a card is present.");
  }
}

void loop()
{
   int ret=WAV_DECODING;
   wav.begin("test.wav");
   wav.play();
   while(ret == WAV_DECODING){
       ret = wav.decode();
   }
}

FAQ

Q1. No permission under Linux system

A. Input "sudo usermod -a -G USER NAME dialout" to add user into dialout group. Log out and log back in

Q2. Where is the missing driving file?

A. In the category driver of sdk.

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.

More

DFshopping_car1.png Shopping from Bluno M0 Mainboard or DFRobot Distributor.