From 92b134d562e1cfd815c9ec537c8e0216e8462c32 Mon Sep 17 00:00:00 2001 From: nikki-uwu Date: Tue, 6 Oct 2026 16:53:50 +0200 Subject: [PATCH 1/2] Add BOARD_TTGO_TOI_PLUS board support --- board-defaults.json | 31 +++++++++++++++++++++++++++++++ board-defaults.schema.json | 3 ++- platformio.ini | 14 ++++++++++++++ src/consts.h | 2 ++ 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/board-defaults.json b/board-defaults.json index 13531451a..4c03f1791 100644 --- a/board-defaults.json +++ b/board-defaults.json @@ -624,6 +624,37 @@ "needManualReboot": false, "shouldOnlyUseDefaults": false } + }, + "BOARD_TTGO_TOI_PLUS": { + "values": { + "SENSORS": [ + { + "protocol": "I2C", + "imu": "IMU_BNO085", + "rotation": "DEG_270", + "scl": "18", + "sda": "19", + "int": "5" + } + ], + "BATTERY": { + "type": "BAT_EXTERNAL", + "r1": 1, + "r2": 1, + "shieldR": 0, + "pin": "2" + }, + "LED": { + "LED_PIN": "3", + "LED_INVERTED": false + } + }, + "flashingRules": { + "applicationOffset": 65536, + "needBootPress": false, + "needManualReboot": false, + "shouldOnlyUseDefaults": false + } } } } diff --git a/board-defaults.schema.json b/board-defaults.schema.json index abfce2314..d67e48c8c 100644 --- a/board-defaults.schema.json +++ b/board-defaults.schema.json @@ -118,7 +118,8 @@ "BOARD_WEMOSWROOM02", "BOARD_XIAO_ESP32C3", "BOARD_ESP32S3_SUPERMINI", - "BOARD_ESP32C6_SUPERMINI" + "BOARD_ESP32C6_SUPERMINI", + "BOARD_TTGO_TOI_PLUS" ], "description": "Board Type" }, diff --git a/platformio.ini b/platformio.ini index bc279b6de..66041d446 100644 --- a/platformio.ini +++ b/platformio.ini @@ -262,3 +262,17 @@ build_flags = -D PRODUCT_NAME='"SlimeVR Glove (dev)"' board = lolin_c3_mini monitor_filters = colorize, esp32_exception_decoder + +[env:BOARD_TTGO_TOI_PLUS] +platform = espressif32 @ 6.7.0 +platform_packages = + framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.1 + framework-arduinoespressif32-libs @ https://github.com/espressif/arduino-esp32/releases/download/3.0.1/esp32-arduino-libs-3.0.1.zip +custom_slime_board = BOARD_TTGO_TOI_PLUS +build_flags = + ${env.build_flags} + -DESP32C3 +board = ttgo-t-oi-plus +monitor_filters = colorize, esp32_exception_decoder +; LilyGO T-OI Plus ESP32-C3: USB-UART bridge board (CH340 on UART0, GPIO20/21), +; no native-USB path. diff --git a/src/consts.h b/src/consts.h index 4e354b399..426afc36e 100644 --- a/src/consts.h +++ b/src/consts.h @@ -100,6 +100,7 @@ enum class SensorTypeID : uint8_t { #define BOARD_SLIMEVR_BUTTERFLY_DEV 25 #define BOARD_SLIMEVR_BUTTERFLY 26 #define BOARD_ESP32C6_SUPERMINI 27 +#define BOARD_TTGO_TOI_PLUS 28 #define BOARD_DEV_RESERVED 250 // Reserved, should not be used in any release firmware #define BOARD_N0 "BOARD_UNKNOWN" @@ -130,6 +131,7 @@ enum class SensorTypeID : uint8_t { #define BOARD_N25 "BOARD_SLIMEVR_BUTTERFLY_DEV" #define BOARD_N26 "BOARD_SLIMEVR_BUTTERFLY" #define BOARD_N27 "BOARD_ESP32C6_SUPERMINI" +#define BOARD_N28 "BOARD_TTGO_TOI_PLUS" #define BOARD_N250 \ "BOARD_DEV_RESERVED" // Reserved, should not be used in any release firmware From 7e1ff17f3b8237a5475224103ff882a238db9d88 Mon Sep 17 00:00:00 2001 From: nikki-uwu Date: Tue, 6 Oct 2026 17:35:20 +0200 Subject: [PATCH 2/2] Use real voltage divider values for T-OI Plus (100K/100K on board, 2x scaling) --- board-defaults.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/board-defaults.json b/board-defaults.json index 4c03f1791..c51bca101 100644 --- a/board-defaults.json +++ b/board-defaults.json @@ -639,8 +639,8 @@ ], "BATTERY": { "type": "BAT_EXTERNAL", - "r1": 1, - "r2": 1, + "r1": 100, + "r2": 100, "shieldR": 0, "pin": "2" },