.. zephyr:board:: xg24_rb4187c

Overview
********

The `EFR32xG24 +20 dBm Radio Board`_ is the radio board delivered with the
`EFR32xG24 Pro Kit +20 dBm`_, and is also available standalone. It contains a Wireless
System-On-Chip from the EFR32MG24 family built on an ARM Cortex®-M33 processor with excellent low
power capabilities.

The radio board plugs into the Wireless Pro Kit Mainboard BRD4002A and is supported in Zephyr as one
of several :ref:`silabs_radio_boards`.

.. _EFR32xG24 +20 dBm Radio Board:
   https://www.silabs.com/development-tools/wireless/xg24-rb4187c-efr32xg24-wireless-gecko-radio-board
.. _EFR32xG24 Pro Kit +20 dBm:
   https://www.silabs.com/development-tools/wireless/efr32xg24-pro-kit-20-dbm

Hardware
********

- EFR32MG24B220F1536IM48 Mighty Gecko SoC
- CPU core: ARM Cortex®-M33 with FPU
- Flash memory: 1536 kB
- RAM: 256 kB
- Transmit power: up to +20 dBm
- Operation frequency: 2.4 GHz
- Crystals for LFXO (32.768 kHz) and HFXO (39 MHz).

For more information about the EFR32MG24 SoC and BRD4187C board, refer to these
documents:

- `EFR32MG24 Website`_
- `EFR32MG24 Datasheet`_
- `EFR32xG24 Reference Manual`_
- `BRD4187C User Guide`_

.. _EFR32MG24 Website:
   https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-socs
.. _EFR32MG24 Datasheet:
   https://www.silabs.com/documents/public/data-sheets/efr32mg24-datasheet.pdf
.. _EFR32xG24 Reference Manual:
   https://www.silabs.com/documents/public/reference-manuals/efr32xg24-rm.pdf
.. _BRD4187C User Guide:
   https://www.silabs.com/documents/public/reference-manuals/brd4187c-rm.pdf

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

.. zephyr:board-supported-hw::

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

The EFR32MG24 SoC is configured to use the HFRCODPLL oscillator at 78 MHz as the system clock,
locked to the 39 MHz external crystal oscillator on the board.

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

The EFR32MG24 SoC has one USART and two EUSARTs.
USART0 is connected to the board controller and is used for the console.

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

.. zephyr:board-supported-runners::

Flashing
========

Connect the BRD4002A board with a mounted BRD4187C 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: xg24_rb4187c
   :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! xg24_rb4187c

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: xg24_rb4187c
   :goals: build
