Skip to content

Commit bfadb39

Browse files
authored
Merge pull request #1074 from pennam/stella-variant
Add Stella variant
2 parents 6e79acd + a196ddf commit bfadb39

19 files changed

+1810
-13
lines changed

boards.txt

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -880,13 +880,13 @@ stella.build.core=arduino
880880
stella.build.crossprefix=arm-none-eabi-
881881
stella.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/
882882

883-
stella.build.variant=ARDUINO_NANO33BLE
883+
stella.build.variant=STELLA
884884
stella.build.mcu=cortex-m4
885885
stella.build.extra_flags=
886886
stella.build.architecture=cortex-m4
887887
stella.build.fpu=-mfpu=fpv4-sp-d16
888888
stella.build.float-abi=-mfloat-abi=softfp
889-
stella.build.board=ARDUINO_NANO33BLE
889+
stella.build.board=STELLA
890890
stella.build.ldscript=linker_script.ld
891891
stella.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840
892892
stella.compiler.mbed.defines={build.variant.path}/defines.txt
@@ -899,19 +899,11 @@ stella.compiler.mbed="{build.variant.path}/libs/libmbed.a" "{build.variant.path}
899899
stella.vid.0=0x2341
900900
stella.pid.0=0x005a
901901
stella.vid.1=0x2341
902-
stella.pid.1=0x805a
903-
stella.vid.2=0x2341
904-
stella.pid.2=0x015a
905-
stella.vid.3=0x2341
906-
stella.pid.3=0x025a
902+
stella.pid.1=0x0076
907903
stella.upload_port.0.vid=0x2341
908904
stella.upload_port.0.pid=0x005a
909905
stella.upload_port.1.vid=0x2341
910-
stella.upload_port.1.pid=0x805a
911-
stella.upload_port.2.vid=0x2341
912-
stella.upload_port.2.pid=0x015a
913-
stella.upload_port.3.vid=0x2341
914-
stella.upload_port.3.pid=0x025a
906+
stella.upload_port.1.pid=0x0076
915907

916908
stella.upload.tool=bossac
917909
stella.upload.tool.default=bossac

patches/0262-Add-Stella-target.patch

Lines changed: 343 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,343 @@
1+
From 2e630587c4174fc192a1945f09300e73fc2d5b87 Mon Sep 17 00:00:00 2001
2+
From: pennam <m.pennasilico@arduino.cc>
3+
Date: Mon, 30 Jun 2025 14:15:01 +0200
4+
Subject: [PATCH] Add Stella target
5+
6+
---
7+
.../TARGET_STELLA/PinNames.h | 246 ++++++++++++++++++
8+
.../TARGET_STELLA/device.h | 39 +++
9+
targets/targets.json | 19 ++
10+
3 files changed, 304 insertions(+)
11+
create mode 100644 targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/PinNames.h
12+
create mode 100644 targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/device.h
13+
14+
diff --git a/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/PinNames.h b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/PinNames.h
15+
new file mode 100644
16+
index 0000000000..b4ef8a160b
17+
--- /dev/null
18+
+++ b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/PinNames.h
19+
@@ -0,0 +1,246 @@
20+
+/*
21+
+ * Copyright (c) 2019 Arduino SA
22+
+ *
23+
+ * Licensed under the Apache License, Version 2.0 (the "License");
24+
+ * you may not use this file except in compliance with the License.
25+
+ * You may obtain a copy of the License at
26+
+ *
27+
+ * http://www.apache.org/licenses/LICENSE-2.0
28+
+ *
29+
+ * Unless required by applicable law or agreed to in writing, software
30+
+ * distributed under the License is distributed on an "AS IS" BASIS,
31+
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
32+
+ * See the License for the specific language governing permissions and
33+
+ * limitations under the License.
34+
+ */
35+
+
36+
+/* MBED TARGET LIST: ARDUINO_NANO33BLE */
37+
+
38+
+#ifndef MBED_PINNAMES_H
39+
+#define MBED_PINNAMES_H
40+
+
41+
+#include "cmsis.h"
42+
+#include "nrf_gpio.h"
43+
+
44+
+#ifdef __cplusplus
45+
+extern "C" {
46+
+#endif
47+
+
48+
+typedef enum {
49+
+ PIN_INPUT,
50+
+ PIN_OUTPUT
51+
+} PinDirection;
52+
+
53+
+///> define macro producing for example Px_y = NRF_GPIO_PIN_MAP(x, y)
54+
+#define PinDef(port_num, pin_num) P##port_num##_##pin_num = NRF_GPIO_PIN_MAP(port_num, pin_num)
55+
+
56+
+
57+
+typedef enum {
58+
+ PinDef(0 , 0), // P0_0 = 0...
59+
+ PinDef(0 , 1),
60+
+ PinDef(0 , 2),
61+
+ PinDef(0 , 3),
62+
+ PinDef(0 , 4),
63+
+ PinDef(0 , 5),
64+
+ PinDef(0 , 6),
65+
+ PinDef(0 , 7),
66+
+ PinDef(0 , 8),
67+
+ PinDef(0 , 9),
68+
+ PinDef(0 , 10),
69+
+ PinDef(0 , 11),
70+
+ PinDef(0 , 12),
71+
+ PinDef(0 , 13),
72+
+ PinDef(0 , 14),
73+
+ PinDef(0 , 15),
74+
+ PinDef(0 , 16),
75+
+ PinDef(0 , 17),
76+
+ PinDef(0 , 18),
77+
+ PinDef(0 , 19),
78+
+ PinDef(0 , 20),
79+
+ PinDef(0 , 21),
80+
+ PinDef(0 , 22),
81+
+ PinDef(0 , 23),
82+
+ PinDef(0 , 24),
83+
+ PinDef(0 , 25),
84+
+ PinDef(0 , 26),
85+
+ PinDef(0 , 27),
86+
+ PinDef(0 , 28),
87+
+ PinDef(0 , 29),
88+
+ PinDef(0 , 30),
89+
+ PinDef(0 , 31),
90+
+
91+
+ PinDef(1 , 0), //P1_1 = 32...
92+
+ PinDef(1 , 1),
93+
+ PinDef(1 , 2),
94+
+ PinDef(1 , 3),
95+
+ PinDef(1 , 4),
96+
+ PinDef(1 , 5),
97+
+ PinDef(1 , 6),
98+
+ PinDef(1 , 7),
99+
+ PinDef(1 , 8),
100+
+ PinDef(1 , 9),
101+
+ PinDef(1 , 10),
102+
+ PinDef(1 , 11),
103+
+ PinDef(1 , 12),
104+
+ PinDef(1 , 13),
105+
+ PinDef(1 , 14),
106+
+ PinDef(1 , 15),
107+
+
108+
+ // Port0
109+
+ p0 = P0_0,
110+
+ p1 = P0_1,
111+
+ p2 = P0_2,
112+
+ p3 = P0_3,
113+
+ p4 = P0_4,
114+
+ p5 = P0_5,
115+
+ p6 = P0_6,
116+
+ p7 = P0_7,
117+
+ p8 = P0_8,
118+
+ p9 = P0_9,
119+
+ p10 = P0_10,
120+
+ p11 = P0_11,
121+
+ p12 = P0_12,
122+
+ p13 = P0_13,
123+
+ p14 = P0_14,
124+
+ p15 = P0_15,
125+
+ p16 = P0_16,
126+
+ p17 = P0_17,
127+
+ p18 = P0_18,
128+
+ p19 = P0_19,
129+
+ p20 = P0_20,
130+
+ p21 = P0_21,
131+
+ p22 = P0_22,
132+
+ p23 = P0_23,
133+
+ p24 = P0_24,
134+
+ p25 = P0_25,
135+
+ p26 = P0_26,
136+
+ p27 = P0_27,
137+
+ p28 = P0_28,
138+
+ p29 = P0_29,
139+
+ p30 = P0_30,
140+
+ p31 = P0_31,
141+
+
142+
+ // Port1
143+
+ p32 = P1_0,
144+
+ p33 = P1_1,
145+
+ p34 = P1_2,
146+
+ p35 = P1_3,
147+
+ p36 = P1_4,
148+
+ p37 = P1_5,
149+
+ p38 = P1_6,
150+
+ p39 = P1_7,
151+
+ p40 = P1_8,
152+
+ p41 = P1_9,
153+
+ p42 = P1_10,
154+
+ p43 = P1_11,
155+
+ p44 = P1_12,
156+
+ p45 = P1_13,
157+
+ p46 = P1_14,
158+
+ p47 = P1_15,
159+
+
160+
+ RX_PIN_NUMBER = P1_10,
161+
+ TX_PIN_NUMBER = P1_3,
162+
+
163+
+ LED_BUILTIN = P0_13,
164+
+ LED_POWER = P1_9,
165+
+
166+
+ LED_RED = p24,
167+
+ LED_GREEN = p16,
168+
+ LED_BLUE = p6,
169+
+
170+
+ LED1 = LED_BUILTIN,
171+
+ LED2 = LED_RED,
172+
+ LED3 = LED_GREEN,
173+
+ LED4 = LED_BLUE,
174+
+
175+
+ // mBed interface Pins
176+
+ CONSOLE_TX = TX_PIN_NUMBER,
177+
+ CONSOLE_RX = RX_PIN_NUMBER,
178+
+#if defined(MBED_CONF_TARGET_STDIO_UART_TX)
179+
+ STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
180+
+#else
181+
+ STDIO_UART_TX = CONSOLE_TX,
182+
+#endif
183+
+#if defined(MBED_CONF_TARGET_STDIO_UART_RX)
184+
+ STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
185+
+#else
186+
+ STDIO_UART_RX = CONSOLE_RX,
187+
+#endif
188+
+
189+
+ SPI_PSELMOSI0 = P1_1,
190+
+ SPI_PSELMISO0 = P1_8,
191+
+ SPI_PSELSS0 = P1_2,
192+
+ SPI_PSELSCK0 = P0_13,
193+
+
194+
+ SPIS_PSELMOSI = P1_1,
195+
+ SPIS_PSELMISO = P1_8,
196+
+ SPIS_PSELSS = P1_2,
197+
+ SPIS_PSELSCK = P0_13,
198+
+
199+
+ I2C_SDA0 = p31,
200+
+ I2C_SCL0 = p2,
201+
+
202+
+#ifndef ARDUINO_ARCH_MBED
203+
+ // Digital Pins
204+
+ D2 = P1_11,
205+
+ D3 = P1_12,
206+
+ D4 = P1_15,
207+
+ D5 = P1_13,
208+
+ D6 = P1_14,
209+
+ D7 = P0_23,
210+
+ D8 = P0_21,
211+
+ D9 = P0_27,
212+
+ D10 = P1_2,
213+
+ D11 = P1_1,
214+
+ D12 = P1_8,
215+
+ D13 = P0_13,
216+
+
217+
+ // Analog Pins
218+
+ A0 = p4,
219+
+ A1 = p5,
220+
+ A2 = p30,
221+
+ A3 = p29,
222+
+ A4 = p31,
223+
+ A5 = p2,
224+
+ A6 = p28,
225+
+ A7 = p3,
226+
+#endif
227+
+
228+
+ AIN0 = p4,
229+
+ AIN1 = p5,
230+
+ AIN2 = p30,
231+
+ AIN3 = p29,
232+
+ AIN6 = p28,
233+
+ AIN7 = p3,
234+
+
235+
+ // Arduino Nano 33 BLE Sense Pins
236+
+ VDD_ENV = p22,
237+
+ INT_APDS = p19,
238+
+
239+
+ I2C_SDA1 = p14,
240+
+ I2C_SCL1 = p15,
241+
+
242+
+ MIC_PWR = p17,
243+
+ PDM_CLK = p26,
244+
+ PDM_DIN = p25,
245+
+
246+
+ // Not connected
247+
+ NC = (int)0xFFFFFFFF,
248+
+
249+
+ STDIO_UART_RTS = NC,
250+
+ STDIO_UART_CTS = NC,
251+
+
252+
+} PinName;
253+
+
254+
+typedef enum {
255+
+ PullNone = 0,
256+
+ PullDown = 1,
257+
+ PullUp = 3,
258+
+ PullDefault = PullUp
259+
+} PinMode;
260+
+
261+
+#ifdef __cplusplus
262+
+}
263+
+#endif
264+
+
265+
+#endif
266+
diff --git a/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/device.h b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/device.h
267+
new file mode 100644
268+
index 0000000000..a086e5b7f0
269+
--- /dev/null
270+
+++ b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/device.h
271+
@@ -0,0 +1,39 @@
272+
+// The 'features' section in 'target.json' is now used to create the device's hardware preprocessor switches.
273+
+// Check the 'features' section of the target description in 'targets.json' for more details.
274+
+/* mbed Microcontroller Library
275+
+ * Copyright (c) 2006-2013 ARM Limited
276+
+ * SPDX-License-Identifier: Apache-2.0
277+
+ *
278+
+ * Licensed under the Apache License, Version 2.0 (the "License");
279+
+ * you may not use this file except in compliance with the License.
280+
+ * You may obtain a copy of the License at
281+
+ *
282+
+ * http://www.apache.org/licenses/LICENSE-2.0
283+
+ *
284+
+ * Unless required by applicable law or agreed to in writing, software
285+
+ * distributed under the License is distributed on an "AS IS" BASIS,
286+
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
287+
+ * See the License for the specific language governing permissions and
288+
+ * limitations under the License.
289+
+ */
290+
+#ifndef MBED_DEVICE_H
291+
+#define MBED_DEVICE_H
292+
+
293+
+
294+
+
295+
+
296+
+
297+
+
298+
+
299+
+
300+
+
301+
+
302+
+
303+
+
304+
+
305+
+
306+
+
307+
+
308+
+#include "objects.h"
309+
+
310+
+#endif
311+
diff --git a/targets/targets.json b/targets/targets.json
312+
index 83fa8c930a..f69cbeef40 100644
313+
--- a/targets/targets.json
314+
+++ b/targets/targets.json
315+
@@ -7332,6 +7332,25 @@
316+
"CONFIG_GPIO_AS_PINRESET"
317+
]
318+
},
319+
+ "STELLA": {
320+
+ "inherits": [
321+
+ "MCU_NRF52840"
322+
+ ],
323+
+ "features_add": [
324+
+ "STORAGE"
325+
+ ],
326+
+ "components_remove": [
327+
+ "QSPIF"
328+
+ ],
329+
+ "device_has_add": ["WATCHDOG"],
330+
+ "device_has_remove": [
331+
+ "QSPI",
332+
+ "ITM"
333+
+ ],
334+
+ "macros_add": [
335+
+ "CONFIG_GPIO_AS_PINRESET"
336+
+ ]
337+
+ },
338+
"EDGE_CONTROL": {
339+
"inherits": ["MCU_NRF52840"],
340+
"features_add": ["STORAGE"],
341+
--
342+
2.47.2
343+

stella.variables

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export FLAVOUR="stella"
2-
export VARIANTS=("ARDUINO_NANO33BLE")
2+
export VARIANTS=("STELLA")
33
export FQBNS=("stella")
44
export LIBRARIES=("PDM SPI Wire MRI USBHID USBMIDI USBMSD ThreadDebug Scheduler SFU Nano33BLE_System SocketWrapper MLC")
55
export BOOTLOADERS=("nano33ble")

0 commit comments

Comments
 (0)