Skip to content

Add Stella variant #1074

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 4 additions & 12 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -880,13 +880,13 @@ stella.build.core=arduino
stella.build.crossprefix=arm-none-eabi-
stella.build.compiler_path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/

stella.build.variant=ARDUINO_NANO33BLE
stella.build.variant=STELLA
stella.build.mcu=cortex-m4
stella.build.extra_flags=
stella.build.architecture=cortex-m4
stella.build.fpu=-mfpu=fpv4-sp-d16
stella.build.float-abi=-mfloat-abi=softfp
stella.build.board=ARDUINO_NANO33BLE
stella.build.board=STELLA
stella.build.ldscript=linker_script.ld
stella.compiler.mbed.arch.define=-DARDUINO_ARCH_NRF52840
stella.compiler.mbed.defines={build.variant.path}/defines.txt
Expand All @@ -899,19 +899,11 @@ stella.compiler.mbed="{build.variant.path}/libs/libmbed.a" "{build.variant.path}
stella.vid.0=0x2341
stella.pid.0=0x005a
stella.vid.1=0x2341
stella.pid.1=0x805a
stella.vid.2=0x2341
stella.pid.2=0x015a
stella.vid.3=0x2341
stella.pid.3=0x025a
stella.pid.1=0x0076
stella.upload_port.0.vid=0x2341
stella.upload_port.0.pid=0x005a
stella.upload_port.1.vid=0x2341
stella.upload_port.1.pid=0x805a
stella.upload_port.2.vid=0x2341
stella.upload_port.2.pid=0x015a
stella.upload_port.3.vid=0x2341
stella.upload_port.3.pid=0x025a
stella.upload_port.1.pid=0x0076

stella.upload.tool=bossac
stella.upload.tool.default=bossac
Expand Down
343 changes: 343 additions & 0 deletions patches/0262-Add-Stella-target.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,343 @@
From 2e630587c4174fc192a1945f09300e73fc2d5b87 Mon Sep 17 00:00:00 2001
From: pennam <[email protected]>
Date: Mon, 30 Jun 2025 14:15:01 +0200
Subject: [PATCH] Add Stella target

---
.../TARGET_STELLA/PinNames.h | 246 ++++++++++++++++++
.../TARGET_STELLA/device.h | 39 +++
targets/targets.json | 19 ++
3 files changed, 304 insertions(+)
create mode 100644 targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/PinNames.h
create mode 100644 targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/device.h

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
new file mode 100644
index 0000000000..b4ef8a160b
--- /dev/null
+++ b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/PinNames.h
@@ -0,0 +1,246 @@
+/*
+ * Copyright (c) 2019 Arduino SA
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* MBED TARGET LIST: ARDUINO_NANO33BLE */
+
+#ifndef MBED_PINNAMES_H
+#define MBED_PINNAMES_H
+
+#include "cmsis.h"
+#include "nrf_gpio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ PIN_INPUT,
+ PIN_OUTPUT
+} PinDirection;
+
+///> define macro producing for example Px_y = NRF_GPIO_PIN_MAP(x, y)
+#define PinDef(port_num, pin_num) P##port_num##_##pin_num = NRF_GPIO_PIN_MAP(port_num, pin_num)
+
+
+typedef enum {
+ PinDef(0 , 0), // P0_0 = 0...
+ PinDef(0 , 1),
+ PinDef(0 , 2),
+ PinDef(0 , 3),
+ PinDef(0 , 4),
+ PinDef(0 , 5),
+ PinDef(0 , 6),
+ PinDef(0 , 7),
+ PinDef(0 , 8),
+ PinDef(0 , 9),
+ PinDef(0 , 10),
+ PinDef(0 , 11),
+ PinDef(0 , 12),
+ PinDef(0 , 13),
+ PinDef(0 , 14),
+ PinDef(0 , 15),
+ PinDef(0 , 16),
+ PinDef(0 , 17),
+ PinDef(0 , 18),
+ PinDef(0 , 19),
+ PinDef(0 , 20),
+ PinDef(0 , 21),
+ PinDef(0 , 22),
+ PinDef(0 , 23),
+ PinDef(0 , 24),
+ PinDef(0 , 25),
+ PinDef(0 , 26),
+ PinDef(0 , 27),
+ PinDef(0 , 28),
+ PinDef(0 , 29),
+ PinDef(0 , 30),
+ PinDef(0 , 31),
+
+ PinDef(1 , 0), //P1_1 = 32...
+ PinDef(1 , 1),
+ PinDef(1 , 2),
+ PinDef(1 , 3),
+ PinDef(1 , 4),
+ PinDef(1 , 5),
+ PinDef(1 , 6),
+ PinDef(1 , 7),
+ PinDef(1 , 8),
+ PinDef(1 , 9),
+ PinDef(1 , 10),
+ PinDef(1 , 11),
+ PinDef(1 , 12),
+ PinDef(1 , 13),
+ PinDef(1 , 14),
+ PinDef(1 , 15),
+
+ // Port0
+ p0 = P0_0,
+ p1 = P0_1,
+ p2 = P0_2,
+ p3 = P0_3,
+ p4 = P0_4,
+ p5 = P0_5,
+ p6 = P0_6,
+ p7 = P0_7,
+ p8 = P0_8,
+ p9 = P0_9,
+ p10 = P0_10,
+ p11 = P0_11,
+ p12 = P0_12,
+ p13 = P0_13,
+ p14 = P0_14,
+ p15 = P0_15,
+ p16 = P0_16,
+ p17 = P0_17,
+ p18 = P0_18,
+ p19 = P0_19,
+ p20 = P0_20,
+ p21 = P0_21,
+ p22 = P0_22,
+ p23 = P0_23,
+ p24 = P0_24,
+ p25 = P0_25,
+ p26 = P0_26,
+ p27 = P0_27,
+ p28 = P0_28,
+ p29 = P0_29,
+ p30 = P0_30,
+ p31 = P0_31,
+
+ // Port1
+ p32 = P1_0,
+ p33 = P1_1,
+ p34 = P1_2,
+ p35 = P1_3,
+ p36 = P1_4,
+ p37 = P1_5,
+ p38 = P1_6,
+ p39 = P1_7,
+ p40 = P1_8,
+ p41 = P1_9,
+ p42 = P1_10,
+ p43 = P1_11,
+ p44 = P1_12,
+ p45 = P1_13,
+ p46 = P1_14,
+ p47 = P1_15,
+
+ RX_PIN_NUMBER = P1_10,
+ TX_PIN_NUMBER = P1_3,
+
+ LED_BUILTIN = P0_13,
+ LED_POWER = P1_9,
+
+ LED_RED = p24,
+ LED_GREEN = p16,
+ LED_BLUE = p6,
+
+ LED1 = LED_BUILTIN,
+ LED2 = LED_RED,
+ LED3 = LED_GREEN,
+ LED4 = LED_BLUE,
+
+ // mBed interface Pins
+ CONSOLE_TX = TX_PIN_NUMBER,
+ CONSOLE_RX = RX_PIN_NUMBER,
+#if defined(MBED_CONF_TARGET_STDIO_UART_TX)
+ STDIO_UART_TX = MBED_CONF_TARGET_STDIO_UART_TX,
+#else
+ STDIO_UART_TX = CONSOLE_TX,
+#endif
+#if defined(MBED_CONF_TARGET_STDIO_UART_RX)
+ STDIO_UART_RX = MBED_CONF_TARGET_STDIO_UART_RX,
+#else
+ STDIO_UART_RX = CONSOLE_RX,
+#endif
+
+ SPI_PSELMOSI0 = P1_1,
+ SPI_PSELMISO0 = P1_8,
+ SPI_PSELSS0 = P1_2,
+ SPI_PSELSCK0 = P0_13,
+
+ SPIS_PSELMOSI = P1_1,
+ SPIS_PSELMISO = P1_8,
+ SPIS_PSELSS = P1_2,
+ SPIS_PSELSCK = P0_13,
+
+ I2C_SDA0 = p31,
+ I2C_SCL0 = p2,
+
+#ifndef ARDUINO_ARCH_MBED
+ // Digital Pins
+ D2 = P1_11,
+ D3 = P1_12,
+ D4 = P1_15,
+ D5 = P1_13,
+ D6 = P1_14,
+ D7 = P0_23,
+ D8 = P0_21,
+ D9 = P0_27,
+ D10 = P1_2,
+ D11 = P1_1,
+ D12 = P1_8,
+ D13 = P0_13,
+
+ // Analog Pins
+ A0 = p4,
+ A1 = p5,
+ A2 = p30,
+ A3 = p29,
+ A4 = p31,
+ A5 = p2,
+ A6 = p28,
+ A7 = p3,
+#endif
+
+ AIN0 = p4,
+ AIN1 = p5,
+ AIN2 = p30,
+ AIN3 = p29,
+ AIN6 = p28,
+ AIN7 = p3,
+
+ // Arduino Nano 33 BLE Sense Pins
+ VDD_ENV = p22,
+ INT_APDS = p19,
+
+ I2C_SDA1 = p14,
+ I2C_SCL1 = p15,
+
+ MIC_PWR = p17,
+ PDM_CLK = p26,
+ PDM_DIN = p25,
+
+ // Not connected
+ NC = (int)0xFFFFFFFF,
+
+ STDIO_UART_RTS = NC,
+ STDIO_UART_CTS = NC,
+
+} PinName;
+
+typedef enum {
+ PullNone = 0,
+ PullDown = 1,
+ PullUp = 3,
+ PullDefault = PullUp
+} PinMode;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
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
new file mode 100644
index 0000000000..a086e5b7f0
--- /dev/null
+++ b/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_NRF52/TARGET_MCU_NRF52840/TARGET_STELLA/device.h
@@ -0,0 +1,39 @@
+// The 'features' section in 'target.json' is now used to create the device's hardware preprocessor switches.
+// Check the 'features' section of the target description in 'targets.json' for more details.
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_DEVICE_H
+#define MBED_DEVICE_H
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#include "objects.h"
+
+#endif
diff --git a/targets/targets.json b/targets/targets.json
index 83fa8c930a..f69cbeef40 100644
--- a/targets/targets.json
+++ b/targets/targets.json
@@ -7332,6 +7332,25 @@
"CONFIG_GPIO_AS_PINRESET"
]
},
+ "STELLA": {
+ "inherits": [
+ "MCU_NRF52840"
+ ],
+ "features_add": [
+ "STORAGE"
+ ],
+ "components_remove": [
+ "QSPIF"
+ ],
+ "device_has_add": ["WATCHDOG"],
+ "device_has_remove": [
+ "QSPI",
+ "ITM"
+ ],
+ "macros_add": [
+ "CONFIG_GPIO_AS_PINRESET"
+ ]
+ },
"EDGE_CONTROL": {
"inherits": ["MCU_NRF52840"],
"features_add": ["STORAGE"],
--
2.47.2

2 changes: 1 addition & 1 deletion stella.variables
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export FLAVOUR="stella"
export VARIANTS=("ARDUINO_NANO33BLE")
export VARIANTS=("STELLA")
export FQBNS=("stella")
export LIBRARIES=("PDM SPI Wire MRI USBHID USBMIDI USBMSD ThreadDebug Scheduler SFU Nano33BLE_System SocketWrapper MLC")
export BOOTLOADERS=("nano33ble")
Loading