Skip to content

Commit 6a0a31c

Browse files
committed
board: Add initial board configuration for FoBE Quill ESP32S3 Mesh
This commit introduces the initial configuration files for the FoBE Quill ESP32S3 Mesh board, including board initialization, pin mappings, and basic SDK configuration. Signed-off-by: Chiho Sin <[email protected]>
1 parent 1eb0ae6 commit 6a0a31c

File tree

5 files changed

+146
-0
lines changed

5 files changed

+146
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// This file is part of the CircuitPython project: https://circuitpython.org
2+
//
3+
// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
4+
//
5+
// SPDX-License-Identifier: MIT
6+
7+
#include "supervisor/board.h"
8+
#include "mpconfigboard.h"
9+
#include "shared-bindings/microcontroller/Pin.h"
10+
#include "driver/gpio.h"
11+
12+
void board_init(void) {
13+
reset_board();
14+
}
15+
16+
void reset_board(void) {
17+
// Turn on MFP power by default.
18+
gpio_set_direction(1, GPIO_MODE_DEF_OUTPUT);
19+
gpio_set_level(1, true);
20+
21+
// Turn on DISP power by default.
22+
gpio_set_direction(12, GPIO_MODE_DEF_OUTPUT);
23+
gpio_set_level(12, false);
24+
}
25+
26+
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// This file is part of the CircuitPython project: https://circuitpython.org
2+
//
3+
// SPDX-FileCopyrightText: Copyright (c) 2025 FoBE Studio
4+
//
5+
// SPDX-License-Identifier: MIT
6+
7+
#pragma once
8+
9+
// Micropython setup
10+
11+
#define MICROPY_HW_BOARD_NAME "FoBE Quill ESP32S3 Mesh"
12+
#define MICROPY_HW_MCU_NAME "ESP32S3"
13+
14+
#define MICROPY_HW_LED_STATUS (&pin_GPIO11)
15+
#define MICROPY_HW_LED_STATUS_INVERTED (1)
16+
17+
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO36)
18+
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO35)
19+
20+
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO47)
21+
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO33)
22+
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO34)
23+
24+
#define DEFAULT_UART_BUS_RX (&pin_GPIO38)
25+
#define DEFAULT_UART_BUS_TX (&pin_GPIO37)
26+
27+
// #define DOUBLE_TAP_PIN (&pin_GPIO34)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
USB_VID = 0x303A
2+
USB_PID = 0x82F5
3+
USB_PRODUCT = "FoBE Quill ESP32S3 Mesh"
4+
USB_MANUFACTURER = "FoBE Studio"
5+
6+
IDF_TARGET = esp32s3
7+
8+
CIRCUITPY_ESP_FLASH_SIZE = 4MB
9+
CIRCUITPY_ESP_FLASH_MODE = qio
10+
CIRCUITPY_ESP_FLASH_FREQ = 80m
11+
12+
CIRCUITPY_ESP_PSRAM_SIZE = 2MB
13+
CIRCUITPY_ESP_PSRAM_MODE = qio
14+
CIRCUITPY_ESP_PSRAM_FREQ = 80m
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// This file is part of the CircuitPython project: https://circuitpython.org
2+
//
3+
// SPDX-FileCopyrightText: Copyright (c) 2025 FoBE Studio
4+
//
5+
// SPDX-License-Identifier: MIT
6+
7+
#include "shared-bindings/board/__init__.h"
8+
9+
static const mp_rom_map_elem_t board_module_globals_table[] = {
10+
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
11+
12+
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_GPIO0) },
13+
{ MP_ROM_QSTR(MP_QSTR_BOOT0), MP_ROM_PTR(&pin_GPIO0) },
14+
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO11) },
15+
{ MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_GPIO11) },
16+
{ MP_ROM_QSTR(MP_QSTR_BAT), MP_ROM_PTR(&pin_GPIO10) },
17+
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO35) },
18+
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO36) },
19+
{ MP_ROM_QSTR(MP_QSTR_DISP_POWER), MP_ROM_PTR(&pin_GPIO12) },
20+
{ MP_ROM_QSTR(MP_QSTR_MFP_POWER), MP_ROM_PTR(&pin_GPIO1) },
21+
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO8) },
22+
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO9) },
23+
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO11) },
24+
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO38) },
25+
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO37) },
26+
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO36) },
27+
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO35) },
28+
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO34) },
29+
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO33) },
30+
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO47) },
31+
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO48) },
32+
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO21) },
33+
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO18) },
34+
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO17) },
35+
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO2) },
36+
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO3) },
37+
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO4) },
38+
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO5) },
39+
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO6) },
40+
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO7) },
41+
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO33) },
42+
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO47) },
43+
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO34) },
44+
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO38) },
45+
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO37) },
46+
{ MP_ROM_QSTR(MP_QSTR_DISP_SDA), MP_ROM_PTR(&pin_GPIO14) },
47+
{ MP_ROM_QSTR(MP_QSTR_DISP_SCL), MP_ROM_PTR(&pin_GPIO13) },
48+
{ MP_ROM_QSTR(MP_QSTR_MFP1), MP_ROM_PTR(&pin_GPIO38) },
49+
{ MP_ROM_QSTR(MP_QSTR_MFP2), MP_ROM_PTR(&pin_GPIO37) },
50+
{ MP_ROM_QSTR(MP_QSTR_MFP3), MP_ROM_PTR(&pin_GPIO36) },
51+
{ MP_ROM_QSTR(MP_QSTR_MFP4), MP_ROM_PTR(&pin_GPIO35) },
52+
{ MP_ROM_QSTR(MP_QSTR_LORA_MOSI), MP_ROM_PTR(&pin_GPIO39) },
53+
{ MP_ROM_QSTR(MP_QSTR_LORA_SCK), MP_ROM_PTR(&pin_GPIO40) },
54+
{ MP_ROM_QSTR(MP_QSTR_LORA_MISO), MP_ROM_PTR(&pin_GPIO41) },
55+
{ MP_ROM_QSTR(MP_QSTR_LORA_NSS), MP_ROM_PTR(&pin_GPIO45) },
56+
{ MP_ROM_QSTR(MP_QSTR_LORA_RST), MP_ROM_PTR(&pin_GPIO44) },
57+
{ MP_ROM_QSTR(MP_QSTR_LORA_BUSY), MP_ROM_PTR(&pin_GPIO43) },
58+
{ MP_ROM_QSTR(MP_QSTR_LORA_DIO1), MP_ROM_PTR(&pin_GPIO42) },
59+
{ MP_ROM_QSTR(MP_QSTR_LORA_RXEN), MP_ROM_PTR(&pin_GPIO46) },
60+
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
61+
{ MP_ROM_QSTR(MP_QSTR_STEMMA_I2C), MP_ROM_PTR(&board_i2c_obj) },
62+
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
63+
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) }
64+
};
65+
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#
2+
# Espressif IoT Development Framework Configuration
3+
#
4+
#
5+
# Component config
6+
#
7+
#
8+
# LWIP
9+
#
10+
# end of LWIP
11+
12+
# end of Component config
13+
14+
# end of Espressif IoT Development Framework Configuration

0 commit comments

Comments
 (0)