Skip to content

Commit 38e1054

Browse files
mlaschkartben
authored andcommitted
boards: holyiot_yj17095: Add Holyiot YJ-17095 module support
The Holyiot YJ-17095 module provides Bluetooth low energy (BLE) connectivity in a very small form factor of 9.4mm x 9.25mm. Signed-off-by: Marc Lasch <[email protected]>
1 parent b82a8eb commit 38e1054

File tree

10 files changed

+221
-0
lines changed

10 files changed

+221
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Holyiot YJ-17095 board configuration
2+
3+
# Copyright (c) 2025 Marc Lasch <[email protected]>
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
config BOARD_HOLYIOT_YJ17095
7+
select SOC_NRF52832_QFAA

boards/holyiot/yj17095/board.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
board_runner_args(nrfjprog "--softreset")
2+
board_runner_args(jlink "--device=nRF52832_xxAA" "--speed=4000")
3+
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
4+
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
5+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

boards/holyiot/yj17095/board.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: holyiot_yj17095
3+
full_name: YJ-17095
4+
vendor: holyiot
5+
socs:
6+
- name: nrf52832
Binary file not shown.
Binary file not shown.

boards/holyiot/yj17095/doc/index.rst

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
.. zephyr:board:: holyiot_yj17095
2+
3+
Overview
4+
********
5+
6+
The `Holyiot`_ YJ-17095 hardware features the Nordic Semiconductor nRF52832 ARM Cortex-M4 CPU and the following devices:
7+
8+
* CLOCK
9+
* FLASH
10+
* :abbr:`GPIO (General Purpose Input Output)`
11+
* :abbr:`MPU (Memory Protection Unit)`
12+
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
13+
* :abbr:`PWM (Pulse Width Modulation)`
14+
* RADIO (Bluetooth Low Energy)
15+
* :abbr:`RTC (nRF RTC System Clock)`
16+
* Segger RTT (RTT Console)
17+
* :abbr:`WDT (Watchdog Timer)`
18+
19+
The board does not contain peripherals for direct physical interaction, but it has an on-board 2.4 GHz antenna for
20+
Bluetooth Low Energy (BLE) communication. There are 11 GPIO pins accessible via solder pads on the board, in addition to
21+
pins for power supply and SWD programming. The `Nordic Semiconductor Infocenter`_ contains the processor's information
22+
and the datasheet. The boards measures 9.4mm by 9.25mm.
23+
24+
Hardware
25+
********
26+
27+
The nRF52832 of the Holyiot YJ-17095 is clocked by an external crystal with a frequency of 32 MHz.
28+
29+
Supported Features
30+
==================
31+
32+
.. zephyr:board-supported-hw::
33+
34+
Connections and IOs
35+
===================
36+
37+
.. figure:: img/pcb_back_gpio.webp
38+
:align: center
39+
:width: 60%
40+
:alt: Holyiot YJ-17095 PCB
41+
42+
Holyiot YJ-17095 PCB and pin out (Credit: Holyiot)
43+
44+
Programming and Debugging
45+
*************************
46+
47+
.. zephyr:board-supported-runners::
48+
49+
The boards can be programmed and debugged using an external programming and debugging tool, such as a Segger J-Link
50+
(see :ref:`build_an_application` and :ref:`application_run` for more details).
51+
52+
The following pins of the Segger J-Link must be connected to the following test
53+
pads on the PCB (see image):
54+
55+
* VTref = VDD
56+
* GND = GND
57+
* SWDIO = SWDIO
58+
* SWCLK = SWCLK
59+
60+
Flashing
61+
========
62+
63+
Follow the instructions in the :ref:`nordic_segger` page to install and configure all the necessary software. Further
64+
information can be found in :ref:`nordic_segger_flashing`. Then build and flash applications as usual
65+
(see :ref:`build_an_application` and :ref:`application_run` for more details).
66+
67+
Here is an example for the :zephyr:code-sample:`blinky` application. Since there is not LED mounted on the PCB the
68+
toggling GPIO can be measured on ``P0.29`` with a multimeter or an oscilloscope.
69+
70+
.. zephyr-app-commands::
71+
:zephyr-app: samples/basic/blinky
72+
:board: holyiot_yj17095
73+
:goals: build flash
74+
75+
Debugging
76+
=========
77+
78+
Refer to the :ref:`nordic_segger` page to learn about debugging Nordic nRF52x-based boards with a Segger debugger.
79+
80+
81+
Testing Bluetooth Low Energy (BLE) connectivity
82+
***********************************************
83+
84+
The easiest way to test the Bluetooth Low Energy (BLE) connectivity of the board is to build and flash the
85+
:zephyr:code-sample:`ble_periodic_adv` application.
86+
87+
.. zephyr-app-commands::
88+
:zephyr-app: samples/bluetooth/periodic_adv
89+
:board: holyiot_yj17095
90+
:goals: build flash
91+
92+
References
93+
**********
94+
95+
.. target-notes::
96+
97+
.. _Holyiot: http://www.holyiot.com
98+
.. _Nordic Semiconductor Infocenter: https://infocenter.nordicsemi.com
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/*
2+
* Copyright (c) 2025 Marc Lasch <[email protected]>
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
#include <nordic/nrf52832_qfaa.dtsi>
9+
10+
/ {
11+
model = "Holyiot YJ-17095";
12+
compatible = "holyiot,yj-17095";
13+
14+
chosen {
15+
zephyr,sram = &sram0;
16+
zephyr,flash = &flash0;
17+
zephyr,console = &uart0;
18+
zephyr,shell-uart = &uart0;
19+
zephyr,code-partition = &slot0_partition;
20+
};
21+
22+
leds {
23+
compatible = "gpio-leds";
24+
25+
led0: led_0 {
26+
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
27+
label = "P0.29";
28+
};
29+
};
30+
31+
/* These aliases are provided for compatibility with samples */
32+
aliases {
33+
led0 = &led0;
34+
watchdog0 = &wdt0;
35+
};
36+
};
37+
38+
&gpiote {
39+
status = "okay";
40+
};
41+
42+
&gpio0 {
43+
status = "okay";
44+
};
45+
46+
&flash0 {
47+
partitions {
48+
compatible = "fixed-partitions";
49+
#address-cells = <1>;
50+
#size-cells = <1>;
51+
52+
boot_partition: partition@0 {
53+
label = "mcuboot";
54+
reg = <0x00000000 0xc000>;
55+
};
56+
57+
slot0_partition: partition@c000 {
58+
label = "image-0";
59+
reg = <0x0000C000 0x37000>;
60+
};
61+
62+
slot1_partition: partition@43000 {
63+
label = "image-1";
64+
reg = <0x00043000 0x37000>;
65+
};
66+
67+
storage_partition: partition@7a000 {
68+
label = "storage";
69+
reg = <0x0007a000 0x00006000>;
70+
};
71+
};
72+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
identifier: holyiot_yj17095
2+
name: Holyiot YJ-17095
3+
type: mcu
4+
arch: arm
5+
toolchain:
6+
- zephyr
7+
- gnuarmemb
8+
supported:
9+
- ble
10+
- pwm
11+
- watchdog
12+
ram: 64
13+
flash: 512
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
# 32kHz clock source
4+
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
5+
6+
# Enable MPU
7+
CONFIG_ARM_MPU=y
8+
9+
# Enable RTT
10+
CONFIG_USE_SEGGER_RTT=y
11+
12+
# Enable GPIO
13+
CONFIG_GPIO=y
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copyright (c) 2022 Nordic Semiconductor
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
# Suppress "unique_unit_address_if_enabled" to handle the following overlaps:
5+
# - power@40000000 & clock@40000000 & bprot@40000000
6+
# - acl@4001e000 & flash-controller@4001e000
7+
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")

0 commit comments

Comments
 (0)