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:
- Different from official Arduino M0, Bluno M0 adopts a unique chip solution which should be installed independently. It supports Windows, Linux and MAC.
- The default IDE version should be 1.6.0 and above, other versions should be modified according to FAQ instructions.
Features
- Arduino IDE Compatible
- 32-Bit 72MHz Cortex-M0
- Supports 5V reference voltage
- Supports standard IIS audio interface
- Support USB and dual physical hardware serial port
- Compatible with Leonardo pin packages
- Support wireless programming upload code
- Support Windows /Linux /Mac
Specification
- Microcontrollers: Nuvoton NUC123ZD4AN0 (Cortex M0)
- Clock Speed: 72MHz
- Operating Voltage: 5V
- Recommended Input Voltage: 7-12V
- Limited input voltage: 6-20V
- Digital I/O Pins: 31
- Analog input Pins: 6
- External Interrupt: 2 (D2, D3)
- SRAM: 20K
- Flash: 68K (of which 12 KB used by bootloader, 55K used by the user code area, 1K used by EEPROM)
- EEPROM: 1K
- SPI: 1 port (D14, D15, D16)
- I2C: 1 port (D2, D3)
- USB COM port: 1 (Serial)
- USB Serial port: 1 (USBSerial)
- BLuetooth Serial port: Serial (USB COM port, Bluetooth and Hardware Serial Port 1 share the same port: Serial)
- Hardware serial port: 2 (Serial, Serial2)
- Serial D0 (Rx1) and D1 (Tx1)
- Serial2 D24 (Rx2) and D25 (Tx2)
- Size: 68.5 * 53.4 mm/ 2.69 * 2.10 inches
- Weight: 30g
Board Overview
|
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
- Hardware
- Bluno M0 x 1
- Micro USB Cable x1
- Software
- Arduino IDE (Version requirements: V1.6.X and later), [https://www.arduino.cc/en/software| Click to Download Arduino IDE from Arduino®]
Setup Bluno M0 Software Development Environment
- Open Arduino IDE, File->Preferences, find Additional Boards Manager URLs, copy the below link, and paste in the blank. https://raw.githubusercontent.com/DFRobot/DFRobotDuinoBoard/master/package_dfrobot_index.json
- Click OK
- Open Tools->Board->Boards Manager, enter Bluno in the search box, click Install
Now, the development environment has been installed, you can use it like a normal Arduino board.
Driver Installation
- Some Win10 systems will install driver automatically. Please open device manager to check whether the COM X is installed, if yes, you can just download the program.
- Connect M0 to your computer, and you will find an unknown device in the device manager.
- Update Driver Software --> '''Browse my computer for driver software '''.
- Generally, this driver is located in the SDK folder C:\Users\yourUserName\AppData\Local\Arduino15\packages\nucDuino\hardware\nucDuino\1.0.0\driver
- Or you can download it here directly: Click to save. Sometime you need disable the digital signature.
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
- Just like Arduino Leonardo, M0 has USB Serial Port and Hardware Serial Port. No like DFRduino M0, Bluno don't have Serial1. USB COM port, Bluetooth and Hardware Serial Port 1 share the same port: Serial.
USB Serial Port | Serial |
---|---|
Hardware Serial Port 1 | Serial |
Hardware Serial Port 2 | Serial2 |
- Sample Code1: D0&D1 refers to Serial, serial2 refers to Serial2. Users can use USB serial transformer tools to check printing.
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);
}
- Result1: Use USB serial transforming board to receive data from Serial2 and you can check printing in correspond in PC.
- Sample Code2: Digital IO
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);
}
- Sample Code3: Play WAV in IIS
#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();
}
}
- Tested Platform:
- Windows: win7 32bit/64bit, win8 32bit/64bit, win10 32bit
- Linux: Ubuntu 12.04 32bit
- Mac book: OSX 10.11
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.