1.. _ubx_bmd300eval_nrf52832:
2
3u-blox EVK-BMD-30/35: BMD-300-EVAL, BMD-301-EVAL, and BMD-350-EVAL
4##################################################################
5
6Overview
7********
8
9The BMD-300-EVAL, BMD-301-EVAL, and BMD-350-EVAL hardware provides
10support for the u-blox BMD-300, BMD-301, and BMD-350 Bluetooth 5
11modules, based on the Nordic Semiconductor nRF52832 ARM Cortex-M4F
12CPU and the following devices:
13
14* :abbr:`ADC (Analog to Digital Converter)`
15* CLOCK
16* FLASH
17* :abbr:`GPIO (General Purpose Input Output)`
18* :abbr:`I2C (Inter-Integrated Circuit)`
19* :abbr:`MPU (Memory Protection Unit)`
20* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
21* :abbr:`PWM (Pulse Width Modulation)`
22* RADIO (Bluetooth Low Energy)
23* :abbr:`RTC (nRF RTC System Clock)`
24* Segger RTT (RTT Console)
25* :abbr:`SPI (Serial Peripheral Interface)`
26* :abbr:`UART (Universal asynchronous receiver-transmitter)`
27* :abbr:`WDT (Watchdog Timer)`
28
29.. figure:: img/BMD-30-33-35-36-EVAL.jpg
30	:align: center
31	:alt: BMD-300-EVAL
32
33	BMD-300-EVAL (Credit: u-blox AG)
34
35.. note::
36	The BMD-300-EVAL, BMD-301-EVAL, and BMD-350-EVAL share the same
37	pin headers and assignments. The boards are different only in
38	the module used on the board. The BMD-300 and BMD-301 modules
39	share the same footprint and differ only in the antenna. The
40	BMD-350 module utilizes the nRF52832 CIAA WLCSP package.
41
42More information about the BMD-300-EVAL, BMD-301-EVAL, and
43BMD-350-EVAL and the respective modules can be found at the
44`u-blox website`_. All of the Nordic Semiconductor examples for
45the nRF52 DK (nrf52dk_nrf52832) may be used without modification.
46
47Hardware
48********
49
50The BMD-300/301/350 module on the board contains an internal
51high-frequency oscillator at 32MHz. There is also a low frequency
52(slow) oscillator of 32.768kHz. The module itself does not include
53the slow crystal; however, the EVAL boards do.
54
55.. note::
56	When targeting a custom design without a slow crystal,
57	be sure to modify code to utilize the internal RC
58	oscillator for the slow clock.
59
60Supported Features
61==================
62
63The BMD-300/301/350-EVAL configuration supports the following
64hardware features:
65
66+-----------+------------+----------------------+
67| Interface | Controller | Driver/Component     |
68+===========+============+======================+
69| ADC       | on-chip    | adc                  |
70+-----------+------------+----------------------+
71| CLOCK     | on-chip    | clock_control        |
72+-----------+------------+----------------------+
73| FLASH     | on-chip    | flash                |
74+-----------+------------+----------------------+
75| GPIO      | on-chip    | gpio                 |
76+-----------+------------+----------------------+
77| I2C(M)    | on-chip    | i2c                  |
78+-----------+------------+----------------------+
79| MPU       | on-chip    | arch/arm             |
80+-----------+------------+----------------------+
81| NVIC      | on-chip    | arch/arm             |
82+-----------+------------+----------------------+
83| PWM       | on-chip    | pwm                  |
84+-----------+------------+----------------------+
85| RADIO     | on-chip    | Bluetooth            |
86+-----------+------------+----------------------+
87| RTC       | on-chip    | system clock         |
88+-----------+------------+----------------------+
89| RTT       | Segger     | console              |
90+-----------+------------+----------------------+
91| SPI(M/S)  | on-chip    | spi                  |
92+-----------+------------+----------------------+
93| UART      | on-chip    | serial               |
94+-----------+------------+----------------------+
95| WDT       | on-chip    | watchdog             |
96+-----------+------------+----------------------+
97
98Other hardware features have not been enabled yet for this board.
99See the `u-blox website`_ for a complete list of
100BMD-300/301/350-EVAL hardware features.
101
102Connections and IOs
103===================
104
105LED
106---
107
108* LED1 (red) = P0.17
109* LED2 (red) = P0.18
110* LED3 (green) = P0.19
111* LED4 (green) = P0.20
112* D5 (red) = OB LED 1
113* D6 (green) = OB LED 2
114
115Push buttons
116------------
117
118* BUTTON1 = SW1 = P0.13
119* BUTTON2 = SW2 = P0.14
120* BUTTON3 = SW3 = P0.15
121* BUTTON4 = SW4 = P0.16
122* BOOT = SW5 = boot/reset
123
124External Connectors
125-------------------
126
127.. figure:: img/bmd-300-eval_pin_out.jpg
128	:align: center
129	:alt: BMD-300-EVAL pin-out
130
131	BMD-300-EVAL pin-out (Credit: u-blox AG)
132
133.. note::
134	The BMD-300-EVAL, BMD-301-EVAL, and BMD-350-EVAL share
135	the same pin headers and assignments.
136	The BMD-300-EVAL is shown here.
137
138.. note::
139	The pin numbers noted below are referenced to
140	the pin 1 markings on the BMD-300/301/350-EVAL
141	for each header
142
143J-Link Prog Connector (J2)
144
145+-------+--------------+
146| PIN # | Signal Name  |
147+=======+==============+
148| 1     | VDD          |
149+-------+--------------+
150| 2     | IMCU_TMSS    |
151+-------+--------------+
152| 3     | GND          |
153+-------+--------------+
154| 4     | IMCU_TCKS    |
155+-------+--------------+
156| 5     | V5V          |
157+-------+--------------+
158| 6     | IMCU_TDOS    |
159+-------+--------------+
160| 7     | Cut off      |
161+-------+--------------+
162| 8     | IMCU_TDIS    |
163+-------+--------------+
164| 9     | Cut off      |
165+-------+--------------+
166| 10    | IMCU_RESET   |
167+-------+--------------+
168
169
170Debug OUT (J3)
171
172+-------+----------------+
173| PIN # | Signal Name    |
174+=======+================+
175| 1     | EXT_VTG        |
176+-------+----------------+
177| 2     | EXT_SWDIO      |
178+-------+----------------+
179| 3     | GND            |
180+-------+----------------+
181| 4     | EXT_SWDCLK     |
182+-------+----------------+
183| 5     | GND            |
184+-------+----------------+
185| 6     | EXT_SWO        |
186+-------+----------------+
187| 7     | N/C            |
188+-------+----------------+
189| 8     | N/C            |
190+-------+----------------+
191| 9     | EXT_GND_DETECT |
192+-------+----------------+
193| 10    | EXT_RESET      |
194+-------+----------------+
195
196
197Auxiliary (J9)
198
199+-------+----------------+
200| PIN # | Signal Name    |
201+=======+================+
202| 1     | P0.10          |
203+-------+----------------+
204| 2     | P0.09          |
205+-------+----------------+
206| 3     | P0.08          |
207+-------+----------------+
208| 4     | P0.07          |
209+-------+----------------+
210| 5     | P0.06          |
211+-------+----------------+
212| 6     | P0.05 / AIN3   |
213+-------+----------------+
214| 7     | P0.21 / RESET  |
215+-------+----------------+
216| 8     | P0.01 / XL2    |
217+-------+----------------+
218| 9     | P0.00 / XL1    |
219+-------+----------------+
220| 10    | GND            |
221+-------+----------------+
222
223
224Arduino Headers
225---------------
226
227
228Power (J5)
229
230+-------+--------------+---------------------------+
231| PIN # | Signal Name  | BMD-300/301/350 Functions |
232+=======+==============+===========================+
233| 1     | VSHLD        | N/A                       |
234+-------+--------------+---------------------------+
235| 2     | VSHLD        | N/A                       |
236+-------+--------------+---------------------------+
237| 3     | RESET        | P0.21 / RESET             |
238+-------+--------------+---------------------------+
239| 4     | VSHLD        | N/A                       |
240+-------+--------------+---------------------------+
241| 5     | V5V          | N/A                       |
242+-------+--------------+---------------------------+
243| 6     | GND          | N/A                       |
244+-------+--------------+---------------------------+
245| 7     | GND          | N/A                       |
246+-------+--------------+---------------------------+
247| 8     | N/C          | N/A                       |
248+-------+--------------+---------------------------+
249
250
251Analog in (J8)
252
253+-------+--------------+---------------------------+
254| PIN # | Signal Name  | BMD-300/301/350 Functions |
255+=======+==============+===========================+
256| 1     | A0           | P0.03 / AIN1              |
257+-------+--------------+---------------------------+
258| 2     | A1           | P0.04 / AIN2              |
259+-------+--------------+---------------------------+
260| 3     | A2           | P0.28 / AIN4              |
261+-------+--------------+---------------------------+
262| 4     | A3           | P0.29 / AIN5              |
263+-------+--------------+---------------------------+
264| 5     | A4           | P0.30 / AIN6              |
265+-------+--------------+---------------------------+
266| 6     | A5           | P0.31 / AIN7              |
267+-------+--------------+---------------------------+
268
269
270Digital I/O (J7)
271
272+-------+--------------+---------------------------+
273| PIN # | Signal Name  | BMD-300/301/350 Functions |
274+=======+==============+===========================+
275| 1     | D7           | P0.18/TRACEDATA[0]/SWO    |
276+-------+--------------+---------------------------+
277| 2     | D6           | P0.17                     |
278+-------+--------------+---------------------------+
279| 3     | D5           | P0.16/TRACEDATA[1]        |
280+-------+--------------+---------------------------+
281| 4     | D4           | P0.15/TRACEDATA[2]        |
282+-------+--------------+---------------------------+
283| 5     | D3           | P0.14/TRACEDATA[3]        |
284+-------+--------------+---------------------------+
285| 6     | D2           | P0.13                     |
286+-------+--------------+---------------------------+
287| 7     | D1 (TX)      | P0.12                     |
288+-------+--------------+---------------------------+
289| 8     | D0 (RX)      | P0.11                     |
290+-------+--------------+---------------------------+
291
292
293Digital I/O (J6)
294
295+-------+--------------+---------------------------+
296| PIN # | Signal Name  | BMD-300/301/350 Functions |
297+=======+==============+===========================+
298| 1     | SCL          | P0.27                     |
299+-------+--------------+---------------------------+
300| 2     | SDA          | P0.26                     |
301+-------+--------------+---------------------------+
302| 3     | AREF         | P0.02/AIN0                |
303+-------+--------------+---------------------------+
304| 4     | GND          | N/A                       |
305+-------+--------------+---------------------------+
306| 5     | D13 (SCK)    | P0.25                     |
307+-------+--------------+---------------------------+
308| 6     | D12 (MISO)   | P0.24                     |
309+-------+--------------+---------------------------+
310| 7     | D11 (MOSI)   | P0.23                     |
311+-------+--------------+---------------------------+
312| 8     | D10 (SS)     | P0.22                     |
313+-------+--------------+---------------------------+
314| 9     | D9           | P0.20/TRACECLK            |
315+-------+--------------+---------------------------+
316| 10    | D8           | P0.19                     |
317+-------+--------------+---------------------------+
318
319
320J11
321
322+-------+--------------+---------------------------+
323| PIN # | Signal Name  | BMD-300/301/350 Functions |
324+=======+==============+===========================+
325| 1     | D12 (MISO)   | P0.24                     |
326+-------+--------------+---------------------------+
327| 2     | V5V          | N/A                       |
328+-------+--------------+---------------------------+
329| 3     | D13 (SCK)    | P0.25                     |
330+-------+--------------+---------------------------+
331| 4     | D11 (MOSI)   | P0.23                     |
332+-------+--------------+---------------------------+
333| 5     | RESET        | N/A                       |
334+-------+--------------+---------------------------+
335| 6     | N/A          | N/A                       |
336+-------+--------------+---------------------------+
337
338
339Programming and Debugging
340*************************
341
342Flashing
343========
344
345Follow the instructions in the :ref:`nordic_segger` page to install
346and configure all the necessary software. Further information can be
347found in :ref:`nordic_segger_flashing`. Then build and flash
348applications as usual (see :ref:`build_an_application` and
349:ref:`application_run` for more details).
350
351Here is an example for the :zephyr:code-sample:`hello_world` application.
352
353First, run your favorite terminal program to listen for output.
354
355.. code-block:: console
356
357	$ minicom -D <tty_device> -b 115200
358
359Replace :code:`<tty_device>` with the port where the
360BMD-300/301/350-EVAL can be found. For example, under Linux,
361:code:`/dev/ttyACM0`.
362
363Then build and flash the application in the usual way.
364
365.. zephyr-app-commands::
366	:zephyr-app: samples/hello_world
367	:board: ubx_bmd300eval/nrf52832
368	:goals: build flash
369
370Debugging
371=========
372
373Refer to the :ref:`nordic_segger` page to learn about debugging
374u-blox boards with a Segger J-LINK-OB IC.
375
376
377Testing the LEDs and buttons in the BMD-330-EVAL
378************************************************
379
380There are 2 samples that allow you to test that the buttons
381(switches) and LEDs on the board are working properly with Zephyr:
382
383.. code-block:: console
384
385	samples/basic/blinky
386	samples/basic/button
387
388You can build and flash the examples to make sure Zephyr is
389running correctly on your board. The button and LED definitions
390can be found in :zephyr_file:`boards/u-blox/ubx_bmd300eval/ubx_bmd300eval_nrf52832.dts`.
391
392References
393**********
394
395.. target-notes::
396
397.. _u-blox website: https://www.u-blox.com/en/product/bmd-3035-series-open-cpu
398