.. _nrf51_ble400:

Waveshare BLE400
#################

Overview
********

BLE400 is a motherboard designed for BLE Bluetooth 2.4G Wireless Module. Used together with core board -- Core51822.

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

Motherboard
------------

- Onboard battery holder, multi power supplies are available
- All the IOs are accessible for easy expansion
- Integrates CP2102 for debugging
- LEDs and user keys, compatible with other official boards, easy to use

Core board
----------

- Onboard chip: nRF51822
- Communication distance (open outdoor 1M data rate): 30m
- Frequency range: 2.4GHz
- Operating voltage: 2.0V ~ 3.6V
- Operating temperature: -40℃ ~ 85℃
- Expansion pinheader: all the I/Os except P0.26 and P0.27
- Pinheader pitch: 2.00mm
- Antenna: onboard antenna

Features
========

- 2.4 GHz multiprotocol RF transceiver
- ARM® Cortex™-M0 32 bit processor
- 128 bit AES HW encryption
- 256kB flash & 32kB RAM
- Programmable Peripheral Interconnect (PPI)
- Digital interfaces: SPI, I2C, UART
- 10 bit ADC
- Programmable output power: -20 to +4 dBm
- Independent application development and protocol stack
- Fully compatible with NRF24L series
- Pinout compatible with NRF51xxx series
- Global separate power management
- Operating voltage: 1.8 V ~ 3.6 V

Revision History
================

Core board
----------

In June of 2015, Core51822 and its variant, Core51822 (B), upgraded the onboard chip to Rev3 (nRF51822_QFAC) that features 32kB RAM.

.. image:: img/Core51822-Compare.jpg
   :align: center
   :alt: Compare

Top: Core51822
Bottom: Core51822 (B)

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

Motherboard
------------

.. image:: img/nrf51_ble400.jpg
   :align: center
   :alt: BLE400

1. Wireless module connector: for easily connecting modules like Core51822
2. MCU pins expansion connector
3. I2C interface
4. SPI interface
5. 5V/3.3V power input/output: usually used as power output, also common-grounding with other user board
6. USB connector: USB TO UART via onboard converter CP2102
7. Debugging interface
8. UART interface
9. Battery holder
10. User LEDs
11. User keys
12. Reset button
13. CP2102
14. USB TO UART jumper
15. LEDs & Keys jumper

Core board
----------

.. image:: img/Core51822-pin.jpg
   :align: center
   :alt: Core board pinout

BLE400 dimensions
=================

.. image:: img/BLE400-size.jpg
   :align: center
   :alt: BLE400 size

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

LED
---

* LED0 (red) = P0.18
* LED1 (red) = P0.19
* LED2 (red) = P0.20
* LED3 (red) = P0.21
* LED4 (red) = P0.22
* SUSPEND = SUSPEND
* RXD1 = P0.9
* TXD1 = P0.11

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

* KEY1 = P0.16
* KEY2 = P0.17
* RESET = SWDIO

I2C
---

* SMBA = P0.02
* SCL = P0.01
* SDA = P0.00

SPI
---

* NSS = P0.30
* SCK = P0.25
* MOSI = P0.24
* MISO = P0.23

USART1
------

* RX = P0.05
* TX = P0.06
* CTS = P0.07
* RTS = P0.12

UART (USB)
----------

* RX = P0.9
* TX = P0.11
* CTS = P0.8
* RTS = P0.10

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

Flashing
========

Follow the instructions in the :ref:`nordic_segger` page to install
and configure all the necessary software. Further information can be
found in :ref:`nordic_segger_flashing`. Then build and flash
applications as usual (see :ref:`build_an_application` and
:ref:`application_run` for more details).

Here is an example for the :ref:`hello_world` application.

First, run your favorite terminal program to listen for output.

.. code-block:: console

   $ minicom -D <tty_device> -b 115200

Replace :code:`<tty_device>` with the port where the board nRF51 DK
can be found. For example, under Linux, :code:`/dev/ttyACM0`.

Then build and flash the application in the usual way.

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: nrf51_ble400
   :goals: build flash

Debugging
=========

Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a
Segger IC.


Testing the LEDs and buttons in the nRF51 DK
********************************************

There are samples below that allow you to test that the buttons (switches) and LEDs on
the board are working properly with Zephyr:

- :ref:`blinky-sample`
- :ref:`button-sample`
- :ref:`fade-led-sample`
- :ref:`96b_carbon_multi_thread_blinky`

You can build and flash the examples to make sure Zephyr is running correctly on
your board. The button and LED definitions can be found in
:zephyr_file:`boards/arm/nrf51_ble400/nrf51_ble400.dts`.

References
**********

.. target-notes::

.. _nRF51 DK website: https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF51-DK
.. _Nordic Semiconductor Infocenter: https://infocenter.nordicsemi.com
.. _Waveshare Wiki BLE400: https://www.waveshare.com/wiki/BLE400
.. _Waveshare WiKi Core51822: https://www.waveshare.com/wiki/Core51822
.. _User manual: https://www.waveshare.com/w/upload/b/b7/NRF51822-Eval-Kit-UserManual-EN.pdf
.. _Schematic: https://www.waveshare.com/w/upload/1/1b/BLE400-Schematic.pdf
.. _Code samples: https://www.waveshare.com/w/upload/5/53/NRF51822-Code.7z
.. _Core board schematics: https://www.waveshare.com/w/upload/5/57/Core51822-Schematic.pdf
