BLE 3 click
BLE 3 click

Description of product

BLE 3 click is a quick and simple solution if you want to add Bluetooth Low Energy to your project. It features the NINA-B1 Bluetooth 4.2 module, from u-blox.
This click also comes with an integrated antenna mounted on the PCB.

Built-in RTC saves additional energy

One of the standout features of the NINA-B1 module is its real time counter functionality. This counter can be used to generate precisely timed BLE advertising events (broadcasting packets to every device around), without involving the main MCU. The RTC can be operated in standby mode as well — further lowering the already low power consumption.

Low energy consumption desingned for IoT and smart devices

BLE – also known as Bluetooth Low Enegry is designed for sensors and smart devices that send out small pieces of information in regular intervals and need to have very low power consumption. For example our Hexiwear uses BLE for wireless communication. You can combine BLE 3 with one of our sensor clicks, like the Air quality click, and get notified what the air quality of your home or office is all the time.

Power saving modes

For really low power consumption there are different power saving modes to conserve battery life – standby mode and power off mode. The module can spend most of the time in power off mode and wake up periodically only to send small packages of data.

The ADC featured on the click can sample up to 200 kHz using different inputs as sample triggers and it supports 8/10/12-bit resolution.

For applications that require it, u-blox offers Apple iOS and Google Android connectivity.

The BLE 3 click communicates with the target board MCU through the UART, SPI and I2C interface, with the addition of 7 GPIO pins. It uses 3.3V power supply only.


ApplicationsMedical equipment and fitness applications, IoT devices, home automation, smart energy, etc.
On-board modulesNINA-B1 Bluetooth 4.2 module
Key FeaturesLED indicates power is on, Antenna power +10dBm, 2.4 GHz frequency band
Key BenefitsIn standby mode it uses 1.9μA, Operating temperature -40°C to 85°C
Input Voltage3.3V
Click board sizeM (42.9 x 25.4 mm)


Also known as Bluetooth Low Energy, BLE is intended for small smart devices like home automation sensor and fitness applications that need to have really low power consumption and long battery life. The BLE 3 click communicates with the target board MCU through the UART, SPI and I2C interface, with the addition of 7 GPIO pins. It uses 3.3V power supply only.

The NINA-B1 module has different power saving modes to conserve battery life – standby mode and power off mode. The module usually spends most of the time in power off mode (it is the primary mode) and wakes up to send small packages of data, and then powers off again. The following events can be used to bring the module out of standby-mode:

  • External wake-up event
  • RTC event
  • Analog or digital sensor event (programmable voltage level or edge detection)

During standby mode, the module is clocked at 32 kHz reference clock, which is generated by an internal 32 kHz oscillator.

The module is fully Bluetooth qualified and provides global modular approval. The ADC can sample up to 200 kHz using different inputs as sample triggers and it supports 8/10/12 bit resolution. Any of the 8 analog inputs can be used both as single-ended inputs and as differential pairs for measuring the voltage across them. The ADC supports full 0 V to VCC input range.

The NINA-B112 modules have an integrated antenna mounted on the PCB (10.0 x 14.0 mm). The RF signal pin is not connected to any signal path. You can configure NINA-B1 modules through U-Blox S-Center toolbox software using AT commands. The s-center evaluation software is available free of charge and can be downloaded from the U-Blox website.

Pinout diagram

This table shows how the pinout on BLE 3 click ccorresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).

NotesPinMikrobus logo.pngPinNotes
Active-high Reset pin  RST2RSTINT15RTS  UART request to send  
UART clear to sendCS/CTS3CSRX14   TX
Power supply+3.3V7+3.3V+5V10NC

The board also has an additional pinout with 7 GPIOs:

Name  I/O  Description
IO_7I/OGPIO intended for use with a push-button switch.
IO_16I/OAnalog function enabled GPIO
IO_17I/OAnalog function enabled GPIO.
IO_18I/OAnalog function enabled GPIO
IO_27I/OAnalog function enabled GPIO
IO_28I/ONFC pin 1
IO_29I/ONFC pin 2


The demo code available on Libstock sets up the BLE 3 click to broadcast the state of pins on a desired port. A smartphone and BLE 3 can communicate when a connection is established, and the smartphone can chage the state of the pins over bluetooth low energy.

Code examples for BLE 3 click, written for MikroElektronika hardware and compilers are available on Libstock

Code example

The code snippet sets up the BLE 3 click in data mode, and sends the state of the pins of a port over BLE. Also, when BLE 3 receives a value from the smartphone, it will send the value over UART to the MCU, the MCU then sets that value as the value of the pins of a desired port.

 1 #include <stdint.h>
 2 #include <stdbool.h>
 4 sbit BLE3_RTS_MCU at GPIOD_IDR.B13;
 5 sbit BLE3_CTS_MCU at GPIOD_ODR.B10;
 6 sbit BLE3_RST     at  GPIOC_ODR.B2;
 9 uint16_t porte_read = 0;
11 void main()
12 {
14     GPIO_Digital_Input( &GPIOD_BASE, _GPIO_PINMASK_10 );
15     GPIO_Digital_Output( &GPIOD_BASE, _GPIO_PINMASK_13 );
16     GPIO_Digital_Output ( &GPIOC_BASE, _GPIO_PINMASK_2 );
17     GPIO_Digital_Output(&GPIOE_BASE, _GPIO_PINMASK_ALL); // Set PORTE as digital output
19     UART3_Init_Advanced( 115200, _UART_8_BIT_DATA,       // Initialize UART
20                                 _UART_NOPARITY,
21                                 _UART_ONE_STOPBIT,
22                                 &_GPIO_MODULE_USART3_PD89);
23     delay_ms(500);
25     BLE3_RTS_MCU = 0;            // set RTS to 0
26     BLE3_RST = 1;                // pull reset pin high
27     delay_ms(2000);
29     Uart3_Write_Text("AT+UBTLN=");   // set the device name to "mikroE"
30     Uart3_Write_Text(""mikroE"");
31     Uart3_Write_Text("r");
33     delay_ms(2000);
35     Uart3_Write_Text("ATO1r");   // set BLE 3 into data mode, all bytes sent from UART will be sent over BLE
36     delay_ms(1000);               // all bytes received from BLE will be sent to UART
39     RXNEIE_USART3_CR1_bit = 1;           // setup UART interrupt
40     NVIC_IntEnable( IVT_INT_USART3 );
41     EnableInterrupts();
43     while(1)
44     {
45          GPIOE_ODR = porte_read << 8;
46          Uart3_Write(porte_read);        // send the updated value of the PORT over BLE
47          delay_ms(1000);
48          porte_read++;
49     }
51 }
53 // if smartphone/tablet writes to BLE 3, update the port with the value sent from the smartphone/tablet
55 void LO_RX_ISR() iv IVT_INT_USART3 ics ICS_AUTO
56 {
57     if( RXNE_USART3_SR_bit )
58     {
59         porte_read = USART3_DR;
60     }
61 }