1.. _sparkfun_thing_plus_mgm240p:
2
3SparkFun Thing Plus Matter
4###########################
5
6Overview
7********
8
9The MGM240P Mighty Sparkfun Think Plus Matter contains
10a Wireless System-On-Chip from the EFR32MG24 family built on an
11ARM Cortex®-M33F processor with excellent low power capabilities.
12
13.. figure:: ./img/MGM240P_Thing_Plus.jpg
14   :height: 260px
15   :align: center
16   :alt: MGM240P Sparkfun Think Plus Matter
17
18   MGM240P Sparkfun Think Plus Matter (image courtesy of Sparkfun)
19
20Hardware
21********
22
23- Based on the Series 2 EFR32MG24 SoC
24- CPU core: 32-bit ARM® Cortex®-M33 core at 39 MHz
25- Flash memory: 1536 kB
26- RAM: 256 kB
27- Supports Multiple 802.15.4 Wireless Protocols (Zigbee and OpenThread)
28- Bluetooth Low Energy 5.3
29- Crystals for LFXO (32 kHz) and HFXO (39 MHz).
30
31For more information about the EFR32MG24 SoC and BRD2601B board, refer to these
32documents:
33
34- `EFR32MG24 Website`_
35- `EFR32MG24 Datasheet`_
36- `EFR32xG24 Reference Manual`_
37- `MGM240P Datasheet`_
38- `MGM240P Schematics`_
39
40Supported Features
41==================
42
43The board configuration supports the following hardware features:
44
45+-----------+------------+-------------------------------------+
46| Interface | Controller | Driver/Component                    |
47+===========+============+=====================================+
48| COUNTER   | on-chip    | stimer                              |
49+-----------+------------+-------------------------------------+
50| FLASH     | on-chip    | flash memory                        |
51+-----------+------------+-------------------------------------+
52| GPIO      | on-chip    | gpio                                |
53+-----------+------------+-------------------------------------+
54| UART      | on-chip    | serial                              |
55+-----------+------------+-------------------------------------+
56| TRNG      | on-chip    | semailbox                           |
57+-----------+------------+-------------------------------------+
58| WATCHDOG  | on-chip    | watchdog                            |
59+-----------+------------+-------------------------------------+
60| I2C(M/S)  | on-chip    | i2c                                 |
61+-----------+------------+-------------------------------------+
62| RADIO     | on-chip    | bluetooth                           |
63+-----------+------------+-------------------------------------+
64
65Other hardware features are currently not supported by the port.
66
67Connections and IOs
68===================
69
70In the following table, the column **Name** contains Pin names. For example, PA2
71means Pin number 2 on PORTA, as used in the board's datasheets and manuals.
72
73+-------+-------------+-------------------------------------+
74| Name  | Function    | Usage                               |
75+=======+=============+=====================================+
76| PA8   | GPIO        | LED0                                |
77+-------+-------------+-------------------------------------+
78| PA5   | USART0_TX   | UART Console EFM_BC_TX US0_TX       |
79+-------+-------------+-------------------------------------+
80| PA6   | USART0_RX   | UART Console EFM_BC_RX US0_RX       |
81+-------+-------------+-------------------------------------+
82
83The default configuration can be found in
84:zephyr_file:`boards/sparkfun/thing_plus_matter_mgm240p/sparkfun_thing_plus_matter_mgm240p_defconfig`
85
86System Clock
87============
88
89The EFR32MG24 SoC is configured to use the 39 MHz external oscillator on the
90board.
91
92Serial Port
93===========
94
95The EFR32MG24 SoC has one USART and two EUSARTs.
96USART0 is connected to the board controller and is used for the console.
97
98Programming and Debugging
99*************************
100
101.. note::
102   Before using the kit the first time, you should update the J-Link firmware
103   in Simplicity Studio.
104
105Flashing
106========
107
108The sample application :zephyr:code-sample:`hello_world` is used for this example.
109Build the Zephyr kernel and application:
110
111.. zephyr-app-commands::
112   :zephyr-app: samples/hello_world
113   :board: sparkfun_thing_plus_mgm240p
114   :goals: build
115
116Connect the sparkfun_thing_plus_mgm240p to your host computer using the USB port and you
117should see a USB connection.
118
119Open a serial terminal (minicom, putty, etc.) with the following settings:
120
121- Speed: 115200
122- Data: 8 bits
123- Parity: None
124- Stop bits: 1
125
126Reset the board and you'll see the following message on the corresponding serial port
127terminal session:
128
129.. code-block:: console
130
131   Hello World! _sparkfun_thing_plus_matter_mgm240p
132
133Bluetooth
134=========
135
136To use the BLE function, run the command below to retrieve necessary binary
137blobs from the SiLabs HAL repository.
138
139.. code-block:: console
140
141   west blobs fetch silabs
142
143Then build the Zephyr kernel and a Bluetooth sample with the following
144command. The :zephyr:code-sample:`bluetooth_observer` sample application is used in
145this example.
146
147.. zephyr-app-commands::
148   :zephyr-app: samples/bluetooth/observer
149   :board: sparkfun_thing_plus_matter_mgm240p
150   :goals: build
151
152.. _EFR32MG24 Website:
153   https://www.silabs.com/wireless/zigbee/efr32mg24-series-2-socs#
154
155.. _EFR32MG24 Datasheet:
156   https://www.silabs.com/documents/public/data-sheets/efr32mg24-datasheet.pdf
157
158.. _EFR32xG24 Reference Manual:
159   https://www.silabs.com/documents/public/reference-manuals/efr32xg24-rm.pdf
160
161.. _MGM240P Datasheet:
162   https://cdn.sparkfun.com/assets/1/4/5/e/5/MGM240P-Datasheet.pdf
163
164.. _MGM240P Schematics:
165   https://cdn.sparkfun.com/assets/0/f/8/4/9/Thing_Plus_MGM240P.pdf
166