Skip to content

Commit 8af6a0c

Browse files
committed
boards: rakwireless: Adding rak11160 board support
The RAK11160 WisDuo module is a low-power, long-range LoRaWAN module based on the STM32WLE5 and Espressif ESP8684H2 MCUs. Signed-off-by: Sercan Erat <[email protected]>
1 parent e3ef835 commit 8af6a0c

File tree

8 files changed

+322
-0
lines changed

8 files changed

+322
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 RAKwireless Technology Co., Ltd. <www.rakwireless.com>
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_RAK11160
5+
select SOC_STM32WLE5XX
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Copyright (c) 2025 RAKwireless Technology Co., Ltd. <www.rakwireless.com>
2+
# Sercan Erat <[email protected]>
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
board_runner_args(pyocd "--target=stm32wle5ccux")
6+
board_runner_args(pyocd "--flash-opt=-O cmsis_dap.limit_packets=1")
7+
board_runner_args(jlink "--device=STM32WLE5CC" "--speed=4000" "--reset-after-load")
8+
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw")
9+
10+
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
11+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
12+
include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: rak11160
3+
full_name: RAK11160
4+
vendor: rakwireless
5+
socs:
6+
- name: stm32wle5xx
79.7 KB
Loading
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
.. zephyr:board:: rak11160
2+
3+
Overview
4+
********
5+
6+
RAK11160 is a WisDuo module based on the STM32WLE5 MCU with integrated LoRa
7+
transceiver. It uses an Espressif ESP8684H2 co-processor to support Bluetooth
8+
and WiFi connectivity. This module is ideal for various IoT applications such as
9+
home automation, sensor networks, building automation, and other IoT network
10+
applications.
11+
12+
Hardware
13+
********
14+
15+
The module has below hardware features:
16+
- STM32WLE5CC MCU with LPWAN single-core Cortex®-M4 at 48 MHz
17+
- 256-Kbyte Flash memory and 64-Kbyte SRAM
18+
- RF transceiver LoRa® modulations
19+
- Hardware encryption AES256-bit and a true random number generator
20+
- SMA connectors for the LORA antenna and BLE/WiFi antenna
21+
- 32-bit single core RISC-V ESP8684 MCU
22+
- 2 MB in ESP8684 MCU flash
23+
- ESP8684 MCU support 802.11b/g/n
24+
- A Bluetooth LE subsystem that supports features of Bluetooth 5 and Bluetooth Mesh
25+
26+
.. image:: img/rak11160.webp
27+
:align: center
28+
:alt: RAK11160-pinout
29+
30+
For more information about the RAK3112 stamp module:
31+
32+
- `WisDuo RAK11160 Website`_
33+
- `STM32WLE5CC on www.st.com`_
34+
- `ESP8684 on www.espressif.com`_
35+
36+
Supported Features
37+
==================
38+
39+
.. zephyr:board-supported-hw::
40+
41+
Building & Flashing
42+
*******************
43+
44+
.. zephyr:board-supported-runners::
45+
46+
Connect the board to your host computer and build and flash an application.
47+
The sample application :zephyr:code-sample:`hello_world` is used for this example.
48+
Build the Zephyr kernel and application, then flash it to the device:
49+
50+
.. zephyr-app-commands::
51+
:zephyr-app: samples/hello_world
52+
:board: rak11160
53+
:goals: build flash
54+
55+
Run a serial terminal to connect with your board. By default, ``usart1`` is
56+
accessible via the USB to TTL converter.
57+
58+
- Speed: 115200
59+
- Data: 8 bits
60+
- Parity: None
61+
- Stop bits: 1
62+
63+
.. code-block:: console
64+
65+
Hello World! rak11160/stm32wle5xx
66+
67+
References
68+
**********
69+
70+
.. target-notes::
71+
72+
.. _WisDuo RAK11160 Website:
73+
https://docs.rakwireless.com/product-categories/wisduo/rak11160-module/overview
74+
75+
.. _STM32WLE5CC on www.st.com:
76+
https://www.st.com/en/microcontrollers-microprocessors/stm32wle5cc.html
77+
78+
.. _ESP8684 on www.espressif.com:
79+
https://www.espressif.com/sites/default/files/documentation/esp8684_datasheet_en.pdf
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
/*
2+
* Copyright (c) 2025 RAKwireless Technology Co., Ltd. <www.rakwireless.com>
3+
* Sercan Erat <[email protected]>
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
#include <st/wl/stm32wle5Xc.dtsi>
9+
#include <st/wl/stm32wle5ccux-pinctrl.dtsi>
10+
11+
/ {
12+
model = "RAKWireless RAK11160 WisDuo LPWAN Module";
13+
compatible = "stm32,rak11160_stm32wl";
14+
15+
chosen {
16+
zephyr,console = &usart1;
17+
zephyr,shell-uart = &usart1;
18+
zephyr,sram = &sram0;
19+
zephyr,flash = &flash0;
20+
zephyr,code-partition = &slot0_partition;
21+
};
22+
23+
leds {
24+
compatible = "gpio-leds";
25+
26+
blue_led: led_2 {
27+
gpios = <&gpioa 1 GPIO_ACTIVE_HIGH>;
28+
label = "Blue LED";
29+
};
30+
31+
green_led: led_1 {
32+
gpios = <&gpioa 10 GPIO_ACTIVE_HIGH>;
33+
label = "Green LED";
34+
};
35+
};
36+
37+
/* regulator controlling ESP8684 enable */
38+
esp8684_enable: esp8684-enable {
39+
compatible = "regulator-fixed";
40+
regulator-name = "esp8684_enable";
41+
enable-gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
42+
regulator-boot-off;
43+
};
44+
45+
aliases {
46+
led0 = &green_led;
47+
lora0 = &lora;
48+
watchdog0 = &iwdg;
49+
};
50+
};
51+
52+
&lptim1 {
53+
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
54+
<&rcc STM32_SRC_LSE LPTIM1_SEL(3)>;
55+
status = "okay";
56+
};
57+
58+
&pll {
59+
div-m = <1>;
60+
mul-n = <3>;
61+
div-r = <2>;
62+
div-q = <2>;
63+
clocks = <&clk_hse>;
64+
status = "okay";
65+
};
66+
67+
&rcc {
68+
clocks = <&pll>;
69+
clock-frequency = <DT_FREQ_M(48)>;
70+
cpu1-prescaler = <1>;
71+
ahb3-prescaler = <1>;
72+
apb1-prescaler = <1>;
73+
apb2-prescaler = <1>;
74+
};
75+
76+
&clk_hse {
77+
status = "okay";
78+
clock-frequency = <DT_FREQ_M(32)>;
79+
hse-tcxo;
80+
};
81+
82+
&clk_lse {
83+
status = "okay";
84+
clock-frequency = <32768>;
85+
};
86+
87+
&subghzspi {
88+
status = "okay";
89+
90+
lora: radio@0 {
91+
status = "okay";
92+
antenna-enable-gpios = <&gpiob 8 GPIO_ACTIVE_HIGH>;
93+
tx-enable-gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
94+
rx-enable-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
95+
dio3-tcxo-voltage = <SX126X_DIO3_TCXO_1V8>;
96+
tcxo-power-startup-delay-ms = <5>;
97+
power-amplifier-output = "rfo-hp";
98+
rfo-hp-max-power = <22>;
99+
};
100+
};
101+
102+
&usart1 {
103+
pinctrl-0 = <&usart1_tx_pb6 &usart1_rx_pb7>;
104+
pinctrl-names = "default";
105+
current-speed = <115200>;
106+
status = "okay";
107+
108+
espc2 {
109+
compatible = "espressif,esp-at";
110+
status = "okay";
111+
};
112+
};
113+
114+
&usart2 {
115+
pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>;
116+
pinctrl-names = "default";
117+
current-speed = <115200>;
118+
status = "okay";
119+
};
120+
121+
&i2c2 {
122+
pinctrl-0 = <&i2c2_scl_pa12 &i2c2_sda_pa11>;
123+
pinctrl-names = "default";
124+
status = "okay";
125+
clock-frequency = <I2C_BITRATE_FAST>;
126+
};
127+
128+
&spi1 {
129+
pinctrl-0 = <&spi1_nss_pa4 &spi1_sck_pa5
130+
&spi1_miso_pa6 &spi1_mosi_pa7>;
131+
pinctrl-names = "default";
132+
status = "okay";
133+
};
134+
135+
&rtc {
136+
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>,
137+
<&rcc STM32_SRC_LSE RTC_SEL(1)>;
138+
status = "okay";
139+
};
140+
141+
&iwdg {
142+
status = "okay";
143+
};
144+
145+
&aes {
146+
status = "okay";
147+
};
148+
149+
&rng {
150+
status = "okay";
151+
};
152+
153+
&flash0 {
154+
partitions {
155+
compatible = "fixed-partitions";
156+
#address-cells = <1>;
157+
#size-cells = <1>;
158+
159+
boot_partition: partition@0 {
160+
label = "mcuboot";
161+
reg = <0x00000000 DT_SIZE_K(32)>;
162+
read-only;
163+
};
164+
165+
slot0_partition: partition@8000 {
166+
label = "image-0";
167+
reg = <0x00008000 DT_SIZE_K(108)>;
168+
};
169+
170+
slot1_partition: partition@23000 {
171+
label = "image-1";
172+
reg = <0x00023000 DT_SIZE_K(108)>;
173+
};
174+
175+
storage_partition: partition@3e000 {
176+
label = "storage";
177+
reg = <0x0003e000 DT_SIZE_K(8)>;
178+
};
179+
};
180+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
identifier: rak11160
2+
name: RAK11160
3+
type: mcu
4+
arch: arm
5+
toolchain:
6+
- zephyr
7+
- gnuarmemb
8+
ram: 64
9+
flash: 256
10+
supported:
11+
- counter
12+
- gpio
13+
- i2c
14+
- nvs
15+
- spi
16+
- uart
17+
- watchdog
18+
- lora
19+
vendor: rak
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Enable UART driver
2+
CONFIG_SERIAL=y
3+
4+
# Enable GPIO
5+
CONFIG_GPIO=y
6+
7+
# Enable Clocks
8+
CONFIG_CLOCK_CONTROL=y
9+
10+
# Console
11+
CONFIG_CONSOLE=y
12+
CONFIG_UART_CONSOLE=y
13+
14+
# Enable MPU
15+
CONFIG_ARM_MPU=y
16+
17+
# Enable HW stack protection
18+
CONFIG_HW_STACK_PROTECTION=y
19+
20+
# Regulator
21+
CONFIG_REGULATOR=y

0 commit comments

Comments
 (0)