.. zephyr:board:: bg27_rb4111b

Overview
********

The EFR32BG27 +4 dBm Radio Board (BG27-RB4111B) in CSP package is a plug-in board for the Wireless
Starter Kit Mainboard (BRD4001A) and the Wireless Pro Kit Mainboard (BRD4002A). It is a complete
reference design for the EFR32BG27 Wireless SoC, with matching network and a PCB antenna for 4 dBm
output power in the 2.4 GHz band. The EFR32 on the radio board is powered by an on-board LDO in
boost DC-DC configuration to demonstrate single-cell operation.

See :ref:`silabs_radio_boards` for more information about the Wireless Mainboard platform.

Hardware
********

- EFR32BG27C320F768GJ39 SoC
- CPU core: ARM Cortex®-M33 with FPU, DSP and TrustZone
- Memory: 768 kB Flash, 64 kB RAM
- Transmit power: up to +4 dBm
- Operation frequency: 2.4 GHz
- Crystals for LFXO (32.768 kHz) and HFXO (38.4 MHz)
- 8 Mbit SPI NOR Flash

For more information about the EFR32BG27 SoC and BRD4111B board, refer to these documents:

- `BG27-RB4111B Website <https://www.silabs.com/development-tools/wireless/bluetooth/bg27-rb4111b-efr32bg27-4-dbm-boost-wireless-radio-board>`__
- `BG27-RB4111B User Guide <https://www.silabs.com/documents/public/user-guides/ug553-brd4111b-user-guide.pdf>`__
- `EFR32BG27 Website <https://www.silabs.com/wireless/bluetooth/efr32bg27-series-2-socs>`__
- `EFR32BG27 Datasheet <https://www.silabs.com/documents/public/data-sheets/efr32bg27-datasheet.pdf>`__
- `EFR32xG27 Reference Manual <https://www.silabs.com/documents/public/reference-manuals/efr32xg27-rm.pdf>`__

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

.. zephyr:board-supported-hw::

System Clock
============

The EFR32BG27 SoC is configured to use the HFRCODPLL oscillator at 76.8 MHz as the system
clock, locked to the 38.4 MHz external crystal oscillator on the board.

Serial Port
===========

The EFR32BG27 SoC has two USARTs and one EUSART.
USART1 is connected to the board controller and is used for the console.

Buttons and LEDs
================

This board has two buttons and two LEDs that share GPIO pins. If an application wants to use both
a button and a LED with the same number (e.g. button 0 and LED 0), it needs to time multiplex the
two functions.

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

.. zephyr:board-supported-runners ::

Connect the BRD4002A mainboard with a mounted BRD4111B radio board to your host
computer using the USB port.

Here is an example for the :zephyr:code-sample:`hello_world` application.

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

Open a serial terminal (minicom, putty, etc.) with the following settings:

- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1

Reset the board and you should see the following message in the terminal:

.. code-block:: console

   Hello World! bg27_rb4111b

Bluetooth
=========

To use Bluetooth functionality, run the command below to retrieve necessary binary
blobs from the Silicon Labs HAL repository.

.. code-block:: console

   west blobs fetch hal_silabs

Then build the Zephyr kernel and a Bluetooth sample with the following
command. The :zephyr:code-sample:`bluetooth_observer` sample application is used in
this example.

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/observer
   :board: bg27_rb4111b
   :goals: build
