.. _nrf51_vbluno51:

nRF51-VBLUno51
##############

Overview
********

Zephyr uses the nrf51_vbluno51 board configuration to run on the VBLUno51 board,
a VNG Bluetooth Low Energy UNO using an nRF51822 ARM processor.

.. figure:: img/nrf51_vbluno51.jpg
     :align: center
     :alt: nRF51_VBLUno51

     nrf51_vbluno51 Top

.. figure:: img/nrf51_vbluno51_bot.jpg
     :align: center
     :alt: nRF51_VBLUno51 Bottom

     nrf51_vbluno51 Bottom

More information about the board can be found at the
`VBLUno51 wiki page`_.

Hardware
********

VBLUno51 board has two external oscillators. The frequency of
the slow clock is 32.768 kHz. The frequency of the main clock
is 16 MHz.

Supported Features
==================

- CPU:
	+ Nordic nRF51822: ARM |reg| Cortex |trade| M0 32bit.
	+ *Bluetooth Low Energy interface.*
	+ 256KB Flash, 32KB Ram.
	+ UART(1), I2C(2), SPI(1), PWM(3), SWD, Timer 16bit(3).
	+ 21 digital channels, 6 ADC 10bit channels.
	+ 1 Led and 1 Button onboard.
	+ GPIO Voltage: 0 - 3.3V.
- DAPLink (CMSIS-DAP) interface for program and debug:
	+ USB MSD: Drag and Drop programming flash memory.
	+ USB HID (DAP): CMSIS-DAP compliant debug channel.
	+ USB CDC: Virtual COM port for log, trace and terminal emulation.

- Supports hardware flow control features (RTS/CTS).
- *Energy monitoring for BLE module by current measurement (Only VBLUno51_EM)*
- FOTA (Firmware over the air): Upgrade firmware over BLE interface.
- Build good applications with:
	+ Compiler and IDE: GCC, Keil MDK, IAR, Eclipse, Qt Creator.
	+ Frameworks: Arduino, ARM mbed-OS, Zephyr-OS, Nordic SDK, RIOT-OS, MyNewt-OS, ChibiOS, NuttX RTOS
	+ A lot of tutorials for Arduino, mbed-os and more.
- Pinout: Arduino Uno Rev3 compliant.
- Power:
	+ USB port.
	+ Power adapter: +9 -> +12V.
	+ 3V Battery: CR20xx holder
	+ Rechargeable battery jump: +3.7 -> +12V
- Open source: Hardware design, firmware, packages, tutorial and example codes

See `VBLUno51 wiki page`_ for full documents and tutorials about the VBLUno51 board.

Connections and IOs
===================

LED
---

* LED = LED0 (green) = P0.7

Push buttons
------------

* BUTTON = BUT = SW0 = P0.15

More details
------------

.. figure:: img/vbluno51_nordic_pinout.png
     :align: center
     :alt: nRF51_VBLUno51 Pinout

     nrf51_vbluno51 Pinout

.. figure:: img/vbluno51_frizting.png
     :align: center
     :alt: nRF51_VBLUno51 Fritzing part

     nrf51_vbluno51 Fritzing part

Programming and Debugging
*************************

Flashing
========

The VBLUno51 board has on-board DAPLink (CMSIS-DAP) interface for flashing and debugging.
You do not need any other programming device.
You only need to install pyOCD tool (https://pypi.python.org/pypi/pyOCD)

This tutorial uses the blinky application :ref:`blinky-sample`

See the :ref:`getting_started` for general information on setting up
 your development environment.

#. To build the Zephyr kernel along with the blinky sample app, enter:

   .. code-block:: console

      $ cd $ZEPHYR_BASE/samples/basic/blinky
      $ make BOARD=nrf51_vbluno51

#. To build and flash the generated binary image to the board, enter:

   .. code-block:: console

      $ make BOARD=nrf51_vbluno51 flash

Testing the VBLUno51 with Zephyr: buttons, LEDs, UART, BLE
**********************************************************

 Here are some sample applications that you can use to test different
 components on the VBLUno51 board:

 * :ref:`hello_world`
 * :ref:`blinky-sample`
 * :ref:`button-sample`
 * :ref:`bluetooth-beacon-sample`
 * :ref:`peripheral_hr`

References
**********

.. target-notes::

.. _VBLUno51 website: http://iotviet.com.vn/store/detail?id=2
.. _VBLUno51 wiki page: https://vngiotlab.github.io/vbluno/
