-
-
Notifications
You must be signed in to change notification settings - Fork 1
Board Support
This page provides a comprehensive and up-to-date list of all microcontroller boards and platforms supported by jescore. For information on how to add support for new boards, see Adding Board Support below.
| Platform | Families | Status | Notes |
|---|---|---|---|
| ESP32 | ESP32, ESP32-C3, ESP32-S3 | ✅ Fully Supported | Uses ESP-IDF UART abstraction |
| STM32 | All STM32 families | ✅ Supported | See STM32 Details for specifics |
| AVR | Arduino | 🟡 Planned | Fallback support via Arduino FW |
Status: Fully supported
All ESP32 variants use the ESP-IDF framework's UART abstraction, making them straightforward to support. The same code base works across all ESP32 chips.
The following boards have been tested and verified with jescore:
| Board | PlatformIO ID | Status |
|---|---|---|
| AZ-Delivery DevKit V4 | az-delivery-devkit-v4 |
✅ Tested |
| ESP32-WROVER-KIT | esp-wrover-kit |
✅ Tested |
| NodeMCU-32S | nodemcu-32s |
✅ Tested |
| ESP32-C3-DevKitM-1 | esp32-c3-devkitm-1 |
✅ Tested |
| ESP32-S3-DevKitC-1 | esp32-s3-devkitc-1 |
✅ Tested |
| Heltec WiFi LoRa 32 V3 | heltec_wifi_lora_32_V3 |
✅ Tested |
- UART Peripheral:
UART_NUM_0(can be customized with-DBASE_UART=UART_NUM_<n>) - To use a custom UART: Define
JES_UART_CUSTOMand setBASE_UARTin yourplatformio.ini:build_flags = -DJES_UART_CUSTOM -DBASE_UART=UART_NUM_1
Status: Supported with board-specific UART configurations
STM32 support is more complex due to the wide variety of chip families and board layouts. jescore supports all STM32 families, but UART configuration must be provided for each specific board or family.
The following STM32 chip families have header includes in board_parser.h:
| Family | Header | UART Defaults | Status |
|---|---|---|---|
| STM32C0 | stm32c0xx.h |
Custom required | ✅ Compile support |
| STM32F0 | stm32f0xx.h |
Custom required | ✅ Compile support |
| STM32F1 | stm32f1xx.h |
Custom required | ✅ Compile support |
| STM32F2 | stm32f2xx.h |
Custom required | ✅ Compile support |
| STM32F3 | stm32f3xx.h |
Custom required | ✅ Compile support |
| STM32F4 | stm32f4xx.h |
Custom required | ✅ Compile support |
| STM32F7 | stm32f7xx.h |
Custom required | ✅ Compile support |
| STM32G0 | stm32g0xx.h |
Custom required | ✅ Compile support |
| STM32G4 | stm32g431xx.h |
Pre-configured for G431 | ✅ Fully tested |
| STM32H5 | stm32h5xx.h |
Custom required | ✅ Compile support |
| STM32H7 | stm32h7xx.h |
Pre-configured for H753 | ✅ Fully tested |
| STM32L0 | stm32l0xx.h |
Custom required | ✅ Compile support |
| STM32L1 | stm32l1xx.h |
Custom required | ✅ Compile support |
| STM32L4 | stm32l4xx.h |
Pre-configured for L432, L476 | ✅ Fully tested |
| STM32L5 | stm32l5xx.h |
Custom required | ✅ Compile support |
| STM32N6 | stm32n6xx.h |
Custom required | ✅ Compile support |
| STM32U0 | stm32u0xx.h |
Custom required | ✅ Compile support |
| STM32U5 | stm32u5xx.h |
Custom required | ✅ Compile support |
| STM32WBA | stm32wbaxx.h |
Custom required | ✅ Compile support |
| STM32WB | stm32wbxx.h |
Custom required | ✅ Compile support |
| STM32WL | stm32wlxx.h |
Custom required | ✅ Compile support |
The following boards have built-in UART configurations and do not require custom configuration:
| Board | Chip | PlatformIO ID | Default UART | Platform Name |
|---|---|---|---|---|
| Nucleo-L432KC | STM32L432KC | nucleo_l432kc |
USART2 | STM32L432 |
| Nucleo-L476RG | STM32L476RG | nucleo_l476rg |
USART2 | STM32L476 |
| Nucleo-G431KB | STM32G431KB | nucleo_g431kb |
USART2 | STM32G431 |
| Nucleo-H753ZI | STM32H753ZI | nucleo_h753zi |
USART3 | STM32H753 |
| Board | Chip | PlatformIO ID | Status |
|---|---|---|---|
| Nucleo-L432KC | STM32L432KC | nucleo_l432kc |
✅ Tested |
| Nucleo-L476RG | STM32L476RG | nucleo_l476rg |
✅ Tested |
| Nucleo-G431KB | STM32G431KB | nucleo_g431kb |
✅ Tested |
| Nucleo-H753ZI | STM32H753ZI | nucleo_h753zi |
✅ Tested |
ESP32 boards typically require no additional configuration. Simply:
-
Add the board to your
platformio.ini:[env:my_esp32_board] platform = espressif32 board = my_esp32_board_id framework = arduino lib_deps = jescore
-
If you need a custom UART peripheral number (other than UART_NUM_0):
build_flags = -DJES_UART_CUSTOM -DBASE_UART=UART_NUM_1
Note: For ESP32,
JES_UART_CUSTOMonly requires definingBASE_UART. Nouart_cfg.hfile is needed.
STM32 boards require UART configuration macros. There are two approaches:
You can open a PR with tested modifications to board_parser.h or request support. This has the benefit of expanding the core and helping others as a side-effect.
For boards not pre-configured, create a uart_cfg.h file in your project with the following macros:
#ifndef _UART_CFG_H_
#define _UART_CFG_H_
// Platform name (optional, defaults to "STM32")
#define BUILD_PLATFORM_NAME "STM32L452CE"
// UART Clock Configuration
#define USART_RCC_PERIPH RCC_PERIPHCLK_USART2
#define USART_CLK_SRC_DEFAULT(PeriphClkInit_struct) PeriphClkInit_struct.Usart2ClockSelection = __HAL_RCC_GET_USART2_SOURCE()
// UART Enable/Disable
#define USART_CLK_ENABLE() __HAL_RCC_USART2_CLK_ENABLE()
#define USART_CLK_GPIO_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
#define USART_CLK_GPIO_DISABLE() __USART2_CLK_DISABLE()
// UART Peripheral
#define USART_NUM USART2
// GPIO Configuration
#define USART_GPIO_TX_PORT GPIOA
#define USART_GPIO_RX_PORT GPIOA
#define USART_GPIO_TX_NUM GPIO_PIN_2
#define USART_GPIO_RX_NUM GPIO_PIN_3
#define USART_GPIO_TX_ALT GPIO_AF7_USART2
#define USART_GPIO_RX_ALT GPIO_AF7_USART2
// IRQ Configuration
#define USART_IRQn_NUM USART2_IRQn
#endif // _UART_CFG_H_Then enable custom UART in your platformio.ini:
build_flags = -DJES_UART_CUSTOMAnd ensure uart_cfg.h is in your include path.
| Board | Chip | Platform | CLI Support | Tested | Notes |
|---|---|---|---|---|---|
| AZ-Delivery DevKit V4 | ESP32 | ESP32 | ✅ Yes | ✅ Yes | |
| ESP32-WROVER-KIT | ESP32 | ESP32 | ✅ Yes | ✅ Yes | |
| NodeMCU-32S | ESP32 | ESP32 | ✅ Yes | ✅ Yes | |
| ESP32-C3-DevKitM-1 | ESP32-C3 | ESP32 | ✅ Yes | ✅ Yes | |
| ESP32-S3-DevKitC-1 | ESP32-S3 | ESP32 | ✅ Yes | ✅ Yes | |
| Heltec WiFi LoRa 32 V3 | ESP32 | ESP32 | ✅ Yes | ✅ Yes | |
| Nucleo-L432KC | STM32L432KC | STM32 | ✅ Yes | ✅ Yes | Pre-configured |
| Nucleo-L476RG | STM32L476RG | STM32 | ✅ Yes | ✅ Yes | Pre-configured |
| Nucleo-G431KB | STM32G431KB | STM32 | ✅ Yes | ✅ Yes | Pre-configured |
| Nucleo-H753ZI | STM32H753ZI | STM32 | ✅ Yes | ✅ Yes | Pre-configured |
If you need support for a board not listed here:
- For ESP32: It likely already works! Just try it and report any issues.
- For STM32: Provide the UART configuration macros (see above) via a PR or issue.
- For other platforms: Open an issue with your use case and board details.