From 8e6ef4ea0468c87f28371e802ba94bc34c7b9883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sat, 21 Dec 2024 14:57:01 +0100 Subject: [PATCH] add nugget and nibble boards for 38c3 (#5609) * add nugget and nibble boards for 38c3 * mark those boards extra for now --- boards/esp32-s3-zero.json | 41 ++++++++++++++++++++++++++ src/platform/rp2xx0/architecture.h | 2 ++ variants/nibble_esp32/platformio.ini | 6 ++++ variants/nibble_esp32/variant.h | 18 +++++++++++ variants/nibble_rp2040/platformio.ini | 17 +++++++++++ variants/nibble_rp2040/variant.h | 18 +++++++++++ variants/nugget_s2_lora/platformio.ini | 6 ++++ variants/nugget_s2_lora/variant.h | 23 +++++++++++++++ variants/nugget_s3_lora/platformio.ini | 6 ++++ variants/nugget_s3_lora/variant.h | 23 +++++++++++++++ 10 files changed, 160 insertions(+) create mode 100644 boards/esp32-s3-zero.json create mode 100644 variants/nibble_esp32/platformio.ini create mode 100644 variants/nibble_esp32/variant.h create mode 100644 variants/nibble_rp2040/platformio.ini create mode 100644 variants/nibble_rp2040/variant.h create mode 100644 variants/nugget_s2_lora/platformio.ini create mode 100644 variants/nugget_s2_lora/variant.h create mode 100644 variants/nugget_s3_lora/platformio.ini create mode 100644 variants/nugget_s3_lora/variant.h diff --git a/boards/esp32-s3-zero.json b/boards/esp32-s3-zero.json new file mode 100644 index 000000000..76cb34fa0 --- /dev/null +++ b/boards/esp32-s3-zero.json @@ -0,0 +1,41 @@ +{ + "build": { + "arduino": { + "partitions": "default.csv", + "memory_type": "qio_qspi" + }, + "core": "esp32", + "extra_flags": [ + "-DARDUINO_ESP32S3_DEV", + "-DARDUINO_RUNNING_CORE=1", + "-DARDUINO_EVENT_RUNNING_CORE=1", + "-DARDUINO_USB_CDC_ON_BOOT=1", + "-DBOARD_HAS_PSRAM" + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "psram_type": "qio", + "hwids": [["0x303A", "0x1001"]], + "mcu": "esp32s3", + "variant": "esp32s3" + }, + "connectivity": ["wifi", "bluetooth"], + "debug": { + "default_tool": "esp-builtin", + "onboard_tools": ["esp-builtin"], + "openocd_target": "esp32s3.cfg" + }, + "frameworks": ["arduino", "espidf"], + "platforms": ["espressif32"], + "name": "Espressif ESP32-S3-FH4R2 (4 MB QD, 2MB PSRAM)", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 921600 + }, + "url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html", + "vendor": "Espressif" +} diff --git a/src/platform/rp2xx0/architecture.h b/src/platform/rp2xx0/architecture.h index 8c7dfc0cd..506c19c83 100644 --- a/src/platform/rp2xx0/architecture.h +++ b/src/platform/rp2xx0/architecture.h @@ -33,4 +33,6 @@ #define HW_VENDOR meshtastic_HardwareModel_RP2040_LORA #elif defined(RP2040_FEATHER_RFM95) #define HW_VENDOR meshtastic_HardwareModel_RP2040_FEATHER_RFM95 +#elif defined(PRIVATE_HW) +#define HW_VENDOR meshtastic_HardwareModel_PRIVATE_HW #endif \ No newline at end of file diff --git a/variants/nibble_esp32/platformio.ini b/variants/nibble_esp32/platformio.ini new file mode 100644 index 000000000..24d2ee2a5 --- /dev/null +++ b/variants/nibble_esp32/platformio.ini @@ -0,0 +1,6 @@ +[env:nibble-esp32] +extends = esp32s3_base +board = esp32-s3-zero +board_level = extra +build_flags = + ${esp32_base.build_flags} -D PRIVATE_HW -I variants/nibble_esp32 \ No newline at end of file diff --git a/variants/nibble_esp32/variant.h b/variants/nibble_esp32/variant.h new file mode 100644 index 000000000..8ffbd9d59 --- /dev/null +++ b/variants/nibble_esp32/variant.h @@ -0,0 +1,18 @@ +#define I2C_SDA 11 // I2C pins for this board +#define I2C_SCL 10 + +#define LED_PIN 1 // If defined we will blink this LED + +#define BUTTON_PIN 0 // If defined, this will be used for user button presses +#define BUTTON_NEED_PULLUP + +#define USE_RF95 +#define LORA_SCK 6 +#define LORA_MISO 7 +#define LORA_MOSI 8 +#define LORA_CS 9 +#define LORA_DIO0 5 // a No connect on the SX1262 module +#define LORA_RESET 4 + +#define LORA_DIO1 RADIOLIB_NC +#define LORA_DIO2 RADIOLIB_NC \ No newline at end of file diff --git a/variants/nibble_rp2040/platformio.ini b/variants/nibble_rp2040/platformio.ini new file mode 100644 index 000000000..ad987895f --- /dev/null +++ b/variants/nibble_rp2040/platformio.ini @@ -0,0 +1,17 @@ +[env:nibble-rp2040] +extends = rp2040_base +board = rpipico +board_level = extra +upload_protocol = picotool + +# add our variants files to the include and src paths +build_flags = ${rp2040_base.build_flags} + -DPRIVATE_HW + -Ivariants/nibble_rp2040 + -DDEBUG_RP2040_PORT=Serial + -DHW_SPI1_DEVICE + -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m0plus" +lib_deps = + ${rp2040_base.lib_deps} +debug_build_flags = ${rp2040_base.build_flags}, -g +debug_tool = cmsis-dap ; for e.g. Picotool \ No newline at end of file diff --git a/variants/nibble_rp2040/variant.h b/variants/nibble_rp2040/variant.h new file mode 100644 index 000000000..ac105b439 --- /dev/null +++ b/variants/nibble_rp2040/variant.h @@ -0,0 +1,18 @@ +#define ARDUINO_ARCH_AVR + +#define BUTTON_PIN -1 // Pin 17 used for antenna switching via DIO4 + +#define LED_PIN 1 + +#define HAS_CPU_SHUTDOWN 1 + +#define USE_RFM95 +#define LORA_SCK 10 +#define LORA_MISO 12 +#define LORA_MOSI 11 +#define LORA_CS 13 + +#define LORA_DIO0 14 +#define LORA_RESET 15 +#define LORA_DIO1 RADIOLIB_NC +#define LORA_DIO2 RADIOLIB_NC diff --git a/variants/nugget_s2_lora/platformio.ini b/variants/nugget_s2_lora/platformio.ini new file mode 100644 index 000000000..2a7ff1013 --- /dev/null +++ b/variants/nugget_s2_lora/platformio.ini @@ -0,0 +1,6 @@ +[env:nugget-s2-lora] +extends = esp32s2_base +board = lolin_s2_mini +board_level = extra +build_flags = + ${esp32s2_base.build_flags} -D PRIVATE_HW -I variants/nugget_s2_lora \ No newline at end of file diff --git a/variants/nugget_s2_lora/variant.h b/variants/nugget_s2_lora/variant.h new file mode 100644 index 000000000..2d123d603 --- /dev/null +++ b/variants/nugget_s2_lora/variant.h @@ -0,0 +1,23 @@ +#define I2C_SDA 34 // I2C pins for this board +#define I2C_SCL 36 + +#define LED_PIN 15 // If defined we will blink this LED + +#define HAS_NEOPIXEL // Enable the use of neopixels +#define NEOPIXEL_COUNT 3 // How many neopixels are connected +#define NEOPIXEL_DATA 12 // gpio pin used to send data to the neopixels +#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800) // type of neopixels in use + +#define BUTTON_PIN 0 // If defined, this will be used for user button presses +#define BUTTON_NEED_PULLUP + +#define USE_RF95 +#define LORA_SCK 6 +#define LORA_MISO 8 +#define LORA_MOSI 10 +#define LORA_CS 13 +#define LORA_DIO0 16 +#define LORA_RESET 5 + +#define LORA_DIO1 RADIOLIB_NC +#define LORA_DIO2 RADIOLIB_NC \ No newline at end of file diff --git a/variants/nugget_s3_lora/platformio.ini b/variants/nugget_s3_lora/platformio.ini new file mode 100644 index 000000000..729a3ef23 --- /dev/null +++ b/variants/nugget_s3_lora/platformio.ini @@ -0,0 +1,6 @@ +[env:nugget-s3-lora] +extends = esp32s3_base +board = lolin_s3_mini +board_level = extra +build_flags = + ${esp32s3_base.build_flags} -D PRIVATE_HW -I variants/nugget_s3_lora \ No newline at end of file diff --git a/variants/nugget_s3_lora/variant.h b/variants/nugget_s3_lora/variant.h new file mode 100644 index 000000000..488fe4e44 --- /dev/null +++ b/variants/nugget_s3_lora/variant.h @@ -0,0 +1,23 @@ +#define I2C_SDA 34 // I2C pins for this board +#define I2C_SCL 38 + +#define LED_PIN 15 // If defined we will blink this LED + +#define HAS_NEOPIXEL // Enable the use of neopixels +#define NEOPIXEL_COUNT 3 // How many neopixels are connected +#define NEOPIXEL_DATA 10 // gpio pin used to send data to the neopixels +#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800) // type of neopixels in use + +#define BUTTON_PIN 0 // If defined, this will be used for user button presses +#define BUTTON_NEED_PULLUP + +#define USE_RF95 +#define LORA_SCK 6 +#define LORA_MISO 7 +#define LORA_MOSI 8 +#define LORA_CS 9 +#define LORA_DIO0 16 // a No connect on the SX1262 module +#define LORA_RESET 4 + +#define LORA_DIO1 RADIOLIB_NC +#define LORA_DIO2 RADIOLIB_NC \ No newline at end of file