Difference between revisions of "Microduino-Module BLE"

From Microduino Wiki
Jump to: navigation, search
(Application)
Line 9: Line 9:
  
 
==Features==
 
==Features==
*Microduino-Shield BT4.0 adopts U type 27 PIN interface of Microduino, combining with other Microduino modult to use;
+
*Adopt Microduino UPIN27 standard interface, working by stacking with other Microduino modules; 
*Microduino-Shield BT4.0 chooses the HM-10 BLE as the bluetooth core module;
+
*Adopt TI CC2541 chip with low consumption;
*TI CC2540 chip with 256Kb space;
+
*Support iBecons mode; 
*Support AT instruction, capable of updating baud rate, device name,paring code and other related parameters as needed, flexible to use;
+
*Multiple ways to restore factory settings;
*Small, cheap, stackable;
+
**Use “AT+ RENEW\r\n” instruction to restore;  
*Open source hardware circuit design, compatible with the Arduino IDE development environment for programming;
+
**Test pin DEF to GND and then power on the module. The LED light blinks after LED1 keeps on for three seconds and meantime, loose DEF and factory reset succeeds, you can see the LED light blinks every one second.
*With uniformed Microduino interface standard and rich peripheral modules, it is flexible and convenient to have a quick connection and extension with other corresponding Microduino modules and sensors;  
+
*Capable of data power-off preservation function;
*2.54 pitch row female connector for easy integration into breadboard.
+
*Support AT instruction and flexible to change serial baud rate, device name, code matching as well as other parameters according to various needs;
 +
*Small, cheap, stackable and open source;  
 +
*Open source hardware circuit design and Arduino compatible programming development environment;  
 +
*Uniform Microduino interface standard and rich external modules, flexible to connect with other Microduino modules and sensors;  
 +
*2.54 pin pitch interface makes it easy to be integrated to pegboard.
  
==Specifications==
+
==Specification==
*Communication form: serial transmission;
+
*Way of Communication: Serial port transmission and the default serial port is D4(RX), D5(TX);  
*Power supply:+3.3VDC 50mA;
+
*Power Supply: +3.3VDC 50mA;
*Bluetooth protocol:Bluetooth Specification V4.0 BLE;
+
*Bluetooth Protocol: Bluetooth Specification V4.0 BLE;
*Service support:Central & Peripheral UUID FFE0,FFE1;
+
*Service Support: Central & Peripheral UUID FFE0,FFE1;
*Frequency:2.4GHz ISM band;
+
*Frequency: 2.4GHz ISM band;
*Modulation mode:GFSK(Gaussian Frequency Shift Keying);
+
*Way of Modulation: GFSK(Gaussian Frequency Shift Keying);
*Power of transmission:≤4dBm;
+
*Transmit Power: ≤4dBm;
*Sensitivity:≤-84dBm at 0.1% BER;
+
*Flexibility: ≤-84dBm at 0.1% BER;
*Transmission rate:
+
*Transmission Rate:
 
**Asynchronous: 6 kbps;
 
**Asynchronous: 6 kbps;
 
**Synchronous: 6 kbps;
 
**Synchronous: 6 kbps;
*State indicator:
+
*Status Indicator:
**Two states:
+
**Before connection:
***Flashing means that the module has been powered but not matched well.
+
***Host machine indicator keeps on for 100ms every second when not recording slave machine address; 
***Always lighting means that the module has been matched well and has started communication.
+
***Host machine indicator keeps on for 900ms every second when recording slave machine address;
**By the indicator, it is very easy to the status of the module, which is conveniently.
+
***Slave machine indicator keeps on for one second every two seconds.
 +
**After connection:
 +
**The indicator of both the host and the slave machine keeps on for 100ms every five seconds.
 +
*During the transmission, each data package should include less than 120 bytes. The higher the baud rate is, the longer transmission interval is. There exists loss rate during Bluetooth data transmission. So users should be ready for re-transmission or data check. 
 +
*iBeacon has been integrated. Set by AT instruction “AT+MODE2\r\n” can be achieved only under slave machine.
 +
**Work mode: 0(transmission), 1(Direct drive) and 2(iBeacon);
 +
**iBeacon can be tested by Locate iBeacons offered on App Store. Here is the reference: http://blog.csdn.net/mzy202/article/details/20365691
  
==Documents==
+
==Document==
 
Eagle PCB '''[[File:Microduino-BT Shield.zip]]'''
 
Eagle PCB '''[[File:Microduino-BT Shield.zip]]'''
  
===Main component===
+
Support AT instruction configuration/control: '''[[File:Microduino-BLE.pdf]]'''
**HM-10 Bluetooth module documentation:'''[[File:Bluetooth40 cn.pdf]]''','''[[File:Bluetooth40 en.pdf]]'''
+
 
**cc2540_datasheet:'''[[File:Cc2540 datasheet.pdf]]'''
+
===Main Components===
 +
*cc2541_datasheet:'''[[File:Cc2541.pdf]]'''
  
 
==Development==
 
==Development==
===Serial communication requirements===
+
===Serial Port Communication Requirements===
*Default serial configuration:
+
*Default serial configuration is:
 
**Baud rate: 9600
 
**Baud rate: 9600
 
**No check
 
**No check
**Data bits: 8
+
**Data bit 8
**Stop bit: 1
+
**Stop bit 1
*As for Arduino IDE serial monitor:
+
*For Arduino IDE serial monitor: 
**Set at:"No line terminator"、"9600baud"
+
**Set to: “\r\n”、“9600baud”
*For other serial debug software:
+
*For other serial debugging software: 
**Baud rate: 9600
+
**Baud rate 9600
 
**No check
 
**No check
**Data bits: 8
+
**Data bit 8
**Stop bit: 1
+
**Stop bit1
  
*We suggest using Microduino-Core32u4 to debug this BT module:
+
===Use PC to Debug===
**Microduino-Core32u4 module can use the USB to simulate the serial 0, and BT uses the 32u4's serial 1 (RX0,TX1), so you don't need to change the existing jumper (RX0,TX1) and it won't impact program download or the serial port's function.
+
*Debug by serial port:  
 
+
**Do not stack [[Microduino-USBTTL]] directly and cross connect RX(D4) and TX(D5) of [[Microduino-USBTTL]] and [[Microduino-BT]].
*Microduino Shield BT4.0 uses the default serial RX0,TX1 to communicate with Core module, so it can be directly connected with Microduino FT232.
+
{|class="wikitable"
 +
|-
 +
|Microduino-BT||Microduino-USBTTL
 +
|-
 +
|D4||TX1
 +
|-
 +
|D5||RX0
 +
|-
 +
|3V3 ||3V3
 +
|-
 +
|GND ||GND
 +
|-
 +
|}
  
===Use PC to debug===
+
===Use USBTTL and Core to Download and Debug===
*When debugging directly through the serial port:
 
**No need to stack the FT232 directly, and just cross connect the FT232 and BT4.0's RX0,TX1.
 
 
 
===Use FT232R、Core to download and debug===
 
 
*If it keeps using the default jumper (RX0、TX1):
 
*If it keeps using the default jumper (RX0、TX1):
 
**Unplug the Microduino Shield BT4.0 during downloading the program;  
 
**Unplug the Microduino Shield BT4.0 during downloading the program;  
Line 75: Line 94:
 
***TX-D9、RX-D10 (you can adopt SoftwareSeria libray to solve the problem)
 
***TX-D9、RX-D10 (you can adopt SoftwareSeria libray to solve the problem)
  
===Pin description===
+
===Pin Description===
  
:[[file:Microduino-BT-1.jpg|800px|thumb|center|Microduino-BT]]
+
:[[file:Microduino-BT-1Big2.jpg|800px|thumb|center|Microduino-BT]]
 
<br style="clear: left"/>
 
<br style="clear: left"/>
:[[file:Microduino-BT-2.jpg|800px|thumb|center|Microduino-BT]]
+
:[[file:Microduino-BT-2Big1.jpg|800px|thumb|center|Microduino-BT]]
 
<br style="clear: left"/>
 
<br style="clear: left"/>
  
 
{|class="wikitable"
 
{|class="wikitable"
! rowspan="1" | HM-10 Pin || Microduino Pin || Function
+
! rowspan="1" | HM-10 module pin name || Microduino pin || Function  
 
|-
 
|-
| TX|| RX0(orD2/D9) || It serves as the serial transmission pin (TTL),capable of connecting the RXD of a microcontroller
+
| TX|| RX0(orD2/D4) || Serial sending pin(TTL level), capable of connection RXD od a microcontroller.
 
|-
 
|-
| RX || TX1(orD3/D10) || It serves as the serial receiving pin (TTL),capable of connecting the TXD of a microcontroller  
+
| RX || TX1(orD3/D5) || Serial receiving pin(TTL level), capable of connecting TXD of a microcontroller.
 
|}
 
|}
 
 
*Support AT intruction configuration and control:'''[[File:Bluetooth40 cn.pdf]]''','''[[File:Bluetooth40 en.pdf]]'''
 
  
 
==Application==
 
==Application==
===Download progrm===
+
===Program Download===
Program test:'''[[File:BLE debug uart1.zip]]''','''[[File:BLE LightBlue time.zip]]'''
+
Program test: '''[[File:BLE debug uart1.zip]]''','''[[File:BLE LightBlue time.zip]]'''
 
 
===Shield BT4.0 pass-through data to IOS devices===
 
*Prepared hardware:Microduino FT232R, Microduino Core, Microduino Shield BT4.0, supported Bluetooth 4.0 devices (iPhone4s upper,iPod touch 5 upper,iPad 3 upper,iPad mini upper);
 
*Prepared software: Arduino IDE (version 1.0 or higher), Microduino test program (Arduino part) and LightBlue downloaded from App Store;
 
*Start Arduino IED,open the Microduino test program, select board "Microduino Core (Atmega328P@16M,5V)" and then download directly;
 
*Start to set the IOS device:
 
**start Bluetooth on IOS device;
 
**Open LightBlue;
 
**Find the "HMSoft" in "Central" tab , then set "Service"-"Characteristics" in order;
 
**You can see the debugging window and then click the "Start Notify".
 
*ASCII data can be seen to be displayed: "BLE, Time: xxx". Besides, xxx shows the runtime of Microduino-Core and Shield BT4.0's in seconds.
 
  
===Use Core32u4 to debug Shield BT4.0===
+
===Serial Port Debug Shield BT4.0 by CoreUSB ===
*Hardware needed:Microduino FT232R,Microduino Core 32u4 and Microduino Shield BT4.0;
+
*Hardware: Microduino CoreUSB and Microduino BT;
*Software needed:Arduino IDE(version 1.0 or higher), Microduino test program(Arduino part);
+
*Software: Arduino IDE (version 1.0 or higher) and Microduino test program (Arduino end);
**(You can keep the current jumper(RXO,TX1) without change for Microduino-CoreUSb utilizes USB simulation port 0(Serial) and the RXO and TX1 of Microduino-BT are the serial1 of Microduino-CoreUSB;
+
**Other conditions: Users can change the jumpers back of the module and change the serial port to RX0(D0) and TX1(D1);(Because CoreUSB can use USB to simulate 0(Serial), and RX0 and TX1 is the (Serial 1) of CoreUSB); 
*Start Arduino IED, open Microduino test program, select Microduino-CoreUSB and then download;
+
*Start Arduino IDE, open Microduino test program and choose Microduino-CoreUSB as the board and download directly;  
*Check whether the serial communication is ok:
+
*Check if the serial communication is OK or not:  
**Send the capitalized "AT"(NO \r\n after it) after opening the corresponding serial monitor. And if the return shows "OK", it means the setup is successful.
+
**Send “AT”(with \r\n behind) after opening the serial monitor and if the return is “OK”, it means the configuration is successful.
 +
===Have serial debugging of BT module by uart1 of Core+ ===
 +
*Hardware: Microduino USBTTL, Microduino Core+ and Microduino BT;
 +
*Software: Arduino IDE (version 1.0 and higher) as well as Microduino test program (Arduino end);
 +
*Other conditions: Users can change the jumpers back of the module and change the serial port to D2 and D3;
 +
*Start Arduino IDE, open Microduino test program and choose board Microduino Core+( Atmega644P@16M,5V) and download;
 +
*Check the status of the serial communication: 
 +
** Send “AT”(with \r\n behind) after opening the serial monitor and if the return is “OK”, it means the configuration is successful.  
  
===Use Core+'s uart1 to debug Shield BT4.0===
+
==[[ How to Connect Two Microduino-BT Modules]]==
*Hardware needed:Microduino FT232R, Microduino Core+ and Microduino Shield BT4.0;
 
*Software needed:Arduino IDE (version 1.0 or higher), Microduino test program (Arduino part);
 
*Other condition:The player has changed the jumper, making the serial changed to D2、D3;
 
*Start Arduino IED, open Microduino test program, select the board type "Microduino Core (Atmega328P@16M,5V)" and then download directly;
 
*Check the serial communication:
 
**Open the serial monitor,send the capitalized “AT”( without \r\n behind), if the return shows“OK”,that means a successful configuration.
 
  
===[[How to Connect Two Microduino-BT Modules]]===
+
==[[Microduino BT Serial port Transmits Data to IOS Device]]==
  
 
===Note:If you use Android device to debug, you need to make sure the system should be version 4.3 or higher so that Microduino-BT can be detected.===
 
===Note:If you use Android device to debug, you need to make sure the system should be version 4.3 or higher so that Microduino-BT can be detected.===

Revision as of 07:06, 17 November 2014

Language: English  • 中文
Microduino-Shield BT4.0

Microduino-Shield BT 4.0 module is a plug-in device that supports Bluetooth 4.0 low energy standard. Microduino-Shield BT 4.0 module is a bluetooth serial port transparent transmission module, using the 27 PIN standard Microduino interface, supporting the Arduino board and derivatives, such as Microduino core. The module is designed by player ogre_c.

Features

  • Adopt Microduino UPIN27 standard interface, working by stacking with other Microduino modules;
  • Adopt TI CC2541 chip with low consumption;
  • Support iBecons mode;
  • Multiple ways to restore factory settings;
    • Use “AT+ RENEW\r\n” instruction to restore;
    • Test pin DEF to GND and then power on the module. The LED light blinks after LED1 keeps on for three seconds and meantime, loose DEF and factory reset succeeds, you can see the LED light blinks every one second.
  • Capable of data power-off preservation function;
  • Support AT instruction and flexible to change serial baud rate, device name, code matching as well as other parameters according to various needs;
  • Small, cheap, stackable and open source;
  • Open source hardware circuit design and Arduino compatible programming development environment;
  • Uniform Microduino interface standard and rich external modules, flexible to connect with other Microduino modules and sensors;
  • 2.54 pin pitch interface makes it easy to be integrated to pegboard.

Specification

  • Way of Communication: Serial port transmission and the default serial port is D4(RX), D5(TX);
  • Power Supply: +3.3VDC 50mA;
  • Bluetooth Protocol: Bluetooth Specification V4.0 BLE;
  • Service Support: Central & Peripheral UUID FFE0,FFE1;
  • Frequency: 2.4GHz ISM band;
  • Way of Modulation: GFSK(Gaussian Frequency Shift Keying);
  • Transmit Power: ≤4dBm;
  • Flexibility: ≤-84dBm at 0.1% BER;
  • Transmission Rate:
    • Asynchronous: 6 kbps;
    • Synchronous: 6 kbps;
  • Status Indicator:
    • Before connection:
      • Host machine indicator keeps on for 100ms every second when not recording slave machine address;
      • Host machine indicator keeps on for 900ms every second when recording slave machine address;
      • Slave machine indicator keeps on for one second every two seconds.
**After connection: 
    • The indicator of both the host and the slave machine keeps on for 100ms every five seconds.
  • During the transmission, each data package should include less than 120 bytes. The higher the baud rate is, the longer transmission interval is. There exists loss rate during Bluetooth data transmission. So users should be ready for re-transmission or data check.
  • iBeacon has been integrated. Set by AT instruction “AT+MODE2\r\n” can be achieved only under slave machine.

Document

Eagle PCB File:Microduino-BT Shield.zip

Support AT instruction configuration/control: File:Microduino-BLE.pdf

Main Components

Development

Serial Port Communication Requirements

  • Default serial configuration is:
    • Baud rate: 9600
    • No check
    • Data bit 8
    • Stop bit 1
  • For Arduino IDE serial monitor:
    • Set to: “\r\n”、“9600baud”
  • For other serial debugging software:
    • Baud rate 9600
    • No check
    • Data bit 8
    • Stop bit1

Use PC to Debug

Microduino-BT Microduino-USBTTL
D4 TX1
D5 RX0
3V3 3V3
GND GND

Use USBTTL and Core to Download and Debug

  • If it keeps using the default jumper (RX0、TX1):
    • Unplug the Microduino Shield BT4.0 during downloading the program;
  • If you want to change the jumper cables to meet your requirement, you need to cut the connection between two intermediate of the pad and RX0/TX1, and then connect them to D2, D3(or D9、D10).
    • If it needs to change the jumper, you can change the serial connection of Microduino Shield BT4.0 and Microduino Core from "TX-RX0、RX-TX1" to:
      • TX-D2、RX-D3 (For Core+'s Serial1)
      • TX-D9、RX-D10 (you can adopt SoftwareSeria libray to solve the problem)

Pin Description

Microduino-BT


Microduino-BT


HM-10 module pin name Microduino pin Function
TX RX0(orD2/D4) Serial sending pin(TTL level), capable of connection RXD od a microcontroller.
RX TX1(orD3/D5) Serial receiving pin(TTL level), capable of connecting TXD of a microcontroller.

Application

Program Download

Program test: File:BLE debug uart1.zip,File:BLE LightBlue time.zip

Serial Port Debug Shield BT4.0 by CoreUSB

  • Hardware: Microduino CoreUSB and Microduino BT;
  • Software: Arduino IDE (version 1.0 or higher) and Microduino test program (Arduino end);
    • Other conditions: Users can change the jumpers back of the module and change the serial port to RX0(D0) and TX1(D1);(Because CoreUSB can use USB to simulate 0(Serial), and RX0 and TX1 is the (Serial 1) of CoreUSB);
  • Start Arduino IDE, open Microduino test program and choose Microduino-CoreUSB as the board and download directly;
  • Check if the serial communication is OK or not:
    • Send “AT”(with \r\n behind) after opening the serial monitor and if the return is “OK”, it means the configuration is successful.

Have serial debugging of BT module by uart1 of Core+

  • Hardware: Microduino USBTTL, Microduino Core+ and Microduino BT;
  • Software: Arduino IDE (version 1.0 and higher) as well as Microduino test program (Arduino end);
  • Other conditions: Users can change the jumpers back of the module and change the serial port to D2 and D3;
  • Start Arduino IDE, open Microduino test program and choose board Microduino Core+( Atmega644P@16M,5V) and download;
  • Check the status of the serial communication:
    • Send “AT”(with \r\n behind) after opening the serial monitor and if the return is “OK”, it means the configuration is successful.

How to Connect Two Microduino-BT Modules

Microduino BT Serial port Transmits Data to IOS Device

Note:If you use Android device to debug, you need to make sure the system should be version 4.3 or higher so that Microduino-BT can be detected.

A simple test of Microduino-Shield BT4.0

FQA

  • This module can’t make pair with win7?
    • Check the BT version in win7, this module only support BLE 4.0 version and default password is 000000.
  • Does this module can reset by button?
    • No, it can be reset by power down.
  • This module can’t make pair with iphone and Android phone?
    • This issue mostly is caused by the BT version. This module only supports BT4.0 protocol.
    • For Andriod OS: 4.3 release
    • For IOS: iPhone4s upper, iPod touch 5 upper, iPad 3 upper and iPad mini upper

Buy

History

  • On June 5, 2013, the second time proofing is completed, changed its name to the "Microduino - (BT)" and added the third optional serial port - UART1, divided into 2 version, version 2.1, a module used for HM09;A 4.0 version, module used for HM10.
  • On May 10, 2013, the board is completed.

Pictures

Microduino BT 4.0 Front
Microduino BT 4.0 Back

Video