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