mirror of
https://github.com/SlimeVR/SlimeVR-Tracker-ESP.git
synced 2026-04-05 17:51:57 +02:00
245 lines
5.1 KiB
JSON
245 lines
5.1 KiB
JSON
{
|
|
"$id": "board-defaults.schema.json",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
|
|
"$defs": {
|
|
"pin": {
|
|
"type": "string",
|
|
"pattern": "^[AD]?[0-9]\\d*$"
|
|
},
|
|
|
|
"LED_PIN": {
|
|
"type": "string",
|
|
"pattern": "^([AD]?[0-9]\\d*|LED_BUILTIN)$"
|
|
},
|
|
|
|
"IMU_TYPE": {
|
|
"type": "string",
|
|
"enum": [
|
|
"IMU_AUTO",
|
|
"IMU_MPU9250",
|
|
"IMU_MPU6500",
|
|
"IMU_BNO080",
|
|
"IMU_BNO085",
|
|
"IMU_BNO055",
|
|
"IMU_MPU6050",
|
|
"IMU_BNO086",
|
|
"IMU_BMI160",
|
|
"IMU_ICM20948",
|
|
"IMU_ICM42688",
|
|
"IMU_BMI270",
|
|
"IMU_LSM6DS3TRC",
|
|
"IMU_LSM6DSV",
|
|
"IMU_LSM6DSO",
|
|
"IMU_LSM6DSR",
|
|
"IMU_MPU6050_SF",
|
|
"IMU_ICM45686",
|
|
"IMU_ICM45605"
|
|
],
|
|
"description": "Imu Type"
|
|
},
|
|
|
|
"PROTOCOL": {
|
|
"type": "string",
|
|
"enum": ["I2C", "SPI"],
|
|
"description": "Protocol"
|
|
},
|
|
|
|
"IMU_ROTATION": {
|
|
"type": "string",
|
|
"enum": ["DEG_0", "DEG_90", "DEG_180", "DEG_270"],
|
|
"description": "Protocol"
|
|
},
|
|
|
|
"I2C_IMU": {
|
|
"type": "object",
|
|
"description": "I2C Imu",
|
|
"properties": {
|
|
"protocol": { "const": "I2C" },
|
|
"imu": { "$ref": "#/$defs/IMU_TYPE" },
|
|
"sda": { "$ref": "#/$defs/pin", "description": "SDA Pin" },
|
|
"scl": { "$ref": "#/$defs/pin", "description": "SCL Pin" },
|
|
"int": { "$ref": "#/$defs/pin", "description": "INT Pin" },
|
|
"address": {
|
|
"type": "number",
|
|
"description": "IMU Address"
|
|
},
|
|
"rotation": {
|
|
"$ref": "#/$defs/IMU_ROTATION",
|
|
"description": "IMU Rotation"
|
|
}
|
|
},
|
|
"required": ["protocol", "imu", "sda", "scl"]
|
|
},
|
|
|
|
"SPI_IMU": {
|
|
"type": "object",
|
|
"description": "SPI Imu",
|
|
"properties": {
|
|
"protocol": { "const": "SPI" },
|
|
"imu": { "$ref": "#/$defs/IMU_TYPE" },
|
|
"int": { "$ref": "#/$defs/pin", "description": "INT Pin" },
|
|
"rotation": {
|
|
"$ref": "#/$defs/IMU_ROTATION",
|
|
"description": "IMU Rotation"
|
|
},
|
|
"cs": { "$ref": "#/$defs/pin", "description": "CS Pin" }
|
|
},
|
|
"required": ["protocol", "imu", "cs"]
|
|
},
|
|
|
|
"IMU": {
|
|
"type": "object",
|
|
"discriminator": {
|
|
"propertyName": "protocol"
|
|
},
|
|
"oneOf": [
|
|
{ "$ref": "#/$defs/I2C_IMU" },
|
|
{ "$ref": "#/$defs/SPI_IMU" }
|
|
],
|
|
"required": ["protocol"]
|
|
},
|
|
|
|
"BOARD_TYPES": {
|
|
"type": "string",
|
|
"enum": [
|
|
"BOARD_SLIMEVR",
|
|
"BOARD_SLIMEVR_V1_2",
|
|
"BOARD_SLIMEVR_DEV",
|
|
"BOARD_NODEMCU",
|
|
"BOARD_WEMOSD1MINI",
|
|
"BOARD_ESP01",
|
|
"BOARD_TTGO_TBASE",
|
|
"BOARD_WROOM32",
|
|
"BOARD_LOLIN_C3_MINI",
|
|
"BOARD_BEETLE32C3",
|
|
"BOARD_ESP32C3DEVKITM1",
|
|
"BOARD_ESP32C6DEVKITC1",
|
|
"BOARD_WEMOSWROOM02",
|
|
"BOARD_XIAO_ESP32C3",
|
|
"BOARD_ESP32S3_SUPERMINI"
|
|
],
|
|
"description": "Board Type"
|
|
},
|
|
|
|
"BATTERY": {
|
|
"type": "object",
|
|
"discriminator": {
|
|
"propertyName": "type"
|
|
},
|
|
"description": "Battery Settings",
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "const": "BAT_EXTERNAL" },
|
|
"shieldR": {
|
|
"type": "number",
|
|
"description": "Battery Shield Resistor (Ohms)"
|
|
},
|
|
"r1": { "type": "number", "description": "R1 (Ohms)" },
|
|
"r2": { "type": "number", "description": "R2 (Ohms)" },
|
|
"pin": {
|
|
"$ref": "#/$defs/pin",
|
|
"description": "Battery Pin"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "const": "BAT_INTERNAL" }
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "const": "BAT_MCP3021" }
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"type": { "const": "BAT_INTERNAL_MCP3021" }
|
|
}
|
|
}
|
|
],
|
|
"required": ["type"]
|
|
},
|
|
|
|
"BASIC_IMU_BOARD_CONFIG": {
|
|
"type": "object",
|
|
"properties": {
|
|
"SENSORS": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/$defs/IMU" },
|
|
"minItems": 1,
|
|
"maxItems": 2,
|
|
"description": "Sensors List"
|
|
},
|
|
"LED": {
|
|
"type": "object",
|
|
"description": "Led Settings",
|
|
"properties": {
|
|
"LED_PIN": {
|
|
"$ref": "#/$defs/LED_PIN",
|
|
"description": "Led pin"
|
|
},
|
|
"LED_INVERTED": {
|
|
"type": "boolean",
|
|
"description": "Led inverted"
|
|
}
|
|
},
|
|
"required": ["LED_PIN", "LED_INVERTED"]
|
|
},
|
|
"BATTERY": { "$ref": "#/$defs/BATTERY" }
|
|
},
|
|
"required": ["SENSORS", "LED", "BATTERY"]
|
|
},
|
|
|
|
"BoardConfig": {
|
|
"type": "object",
|
|
"properties": {
|
|
"values": {
|
|
"$ref": "#/$defs/BASIC_IMU_BOARD_CONFIG"
|
|
},
|
|
"flashingRules": {
|
|
"type": "object",
|
|
"properties": {
|
|
"needBootPress": { "type": "boolean" },
|
|
"needManualReboot": { "type": "boolean" },
|
|
"shouldOnlyUseDefaults": { "type": "boolean" },
|
|
"applicationOffset": { "type": "integer" }
|
|
},
|
|
"required": [
|
|
"needBootPress",
|
|
"needManualReboot",
|
|
"shouldOnlyUseDefaults",
|
|
"applicationOffset"
|
|
]
|
|
},
|
|
"ignored": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": ["values", "flashingRules"]
|
|
}
|
|
},
|
|
|
|
"type": "object",
|
|
"properties": {
|
|
"toolchain": {
|
|
"type": "string",
|
|
"enum": ["platformio"]
|
|
},
|
|
"defaults": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"$ref": "#/$defs/BOARD_TYPES"
|
|
},
|
|
"additionalProperties": { "$ref": "#/$defs/BoardConfig" }
|
|
}
|
|
},
|
|
"required": ["toolchain", "defaults"]
|
|
}
|