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