mirror of
https://github.com/SlimeVR/SlimeVR-Tracker-ESP.git
synced 2026-04-05 17:51:57 +02:00
Fix esp32c3 build (#163)
This commit is contained in:
@@ -29,14 +29,6 @@ class DeviceConfiguration:
|
||||
[env:{self.platformio_board}]
|
||||
platform = {self.platform}
|
||||
board = {self.platformio_board}""")
|
||||
|
||||
if self.platform == "espressif32 @ 3.5.0":
|
||||
section += dedent("""
|
||||
lib_deps =
|
||||
${env.lib_deps}
|
||||
lorol/LittleFS_esp32 @ 1.0.6
|
||||
""")
|
||||
|
||||
return section
|
||||
|
||||
def filename(self) -> str:
|
||||
|
||||
@@ -5,8 +5,13 @@
|
||||
"board": "SLIMEVR"
|
||||
},
|
||||
{
|
||||
"platform": "espressif32 @ 3.5.0",
|
||||
"platform": "espressif32 @ 4.4.0",
|
||||
"platformio_board": "esp32dev",
|
||||
"board": "WROOM32"
|
||||
},
|
||||
{
|
||||
"platform": "espressif32 @ 4.4.0",
|
||||
"platformio_board": "lolin_c3_mini",
|
||||
"board": "SLIMEVR"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -240,7 +240,7 @@ float ICM_20948::getGyrDPS(int16_t axis_val)
|
||||
}
|
||||
|
||||
//Gyro Bias
|
||||
ICM_20948_Status_e ICM_20948::SetBiasGyroX( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasGyroX( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char gyro_bias_reg[4];
|
||||
@@ -252,7 +252,7 @@ ICM_20948_Status_e ICM_20948::SetBiasGyroX( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::SetBiasGyroY( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasGyroY( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char gyro_bias_reg[4];
|
||||
@@ -264,7 +264,7 @@ ICM_20948_Status_e ICM_20948::SetBiasGyroY( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::SetBiasGyroZ( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasGyroZ( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char gyro_bias_reg[4];
|
||||
@@ -276,34 +276,34 @@ ICM_20948_Status_e ICM_20948::SetBiasGyroZ( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasGyroX( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasGyroX( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, GYRO_BIAS_X, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasGyroY( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasGyroY( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, GYRO_BIAS_Y, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasGyroZ( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasGyroZ( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, GYRO_BIAS_Z, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
//Accel Bias
|
||||
ICM_20948_Status_e ICM_20948::SetBiasAccelX( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasAccelX( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char accel_bias_reg[4];
|
||||
@@ -315,7 +315,7 @@ ICM_20948_Status_e ICM_20948::SetBiasAccelX( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::SetBiasAccelY( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasAccelY( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char accel_bias_reg[4];
|
||||
@@ -327,7 +327,7 @@ ICM_20948_Status_e ICM_20948::SetBiasAccelY( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::SetBiasAccelZ( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasAccelZ( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char accel_bias_reg[4];
|
||||
@@ -339,34 +339,34 @@ ICM_20948_Status_e ICM_20948::SetBiasAccelZ( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasAccelX( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasAccelX( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, ACCEL_BIAS_X, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasAccelY( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasAccelY( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, ACCEL_BIAS_Y, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasAccelZ( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasAccelZ( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, ACCEL_BIAS_Z, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
//CPass Bias
|
||||
ICM_20948_Status_e ICM_20948::SetBiasCPassX( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasCPassX( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char cpass_bias_reg[4];
|
||||
@@ -378,7 +378,7 @@ ICM_20948_Status_e ICM_20948::SetBiasCPassX( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::SetBiasCPassY( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasCPassY( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char cpass_bias_reg[4];
|
||||
@@ -390,7 +390,7 @@ ICM_20948_Status_e ICM_20948::SetBiasCPassY( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::SetBiasCPassZ( int newValue)
|
||||
ICM_20948_Status_e ICM_20948::SetBiasCPassZ( int32_t newValue)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char cpass_bias_reg[4];
|
||||
@@ -402,30 +402,30 @@ ICM_20948_Status_e ICM_20948::SetBiasCPassZ( int newValue)
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasCPassX( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasCPassX( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, CPASS_BIAS_X, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasCPassY( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasCPassY( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, CPASS_BIAS_Y, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
ICM_20948_Status_e ICM_20948::GetBiasCPassZ( int* bias)
|
||||
ICM_20948_Status_e ICM_20948::GetBiasCPassZ( int32_t* bias)
|
||||
{
|
||||
ICM_20948_Status_e result = ICM_20948_Stat_Ok;
|
||||
unsigned char bias_data[4] = { 0 };
|
||||
result = inv_icm20948_read_mems(&_device, CPASS_BIAS_Z, 4, bias_data);
|
||||
bias[0] = (int)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
bias[0] = (int32_t)(bias_data[0] << 24) | (bias_data[1] << 16) | (bias_data[2] << 8) | (bias_data[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -174,26 +174,26 @@ public:
|
||||
//DMP
|
||||
|
||||
//Gyro Bias
|
||||
ICM_20948_Status_e SetBiasGyroX( int newValue);
|
||||
ICM_20948_Status_e SetBiasGyroY( int newValue);
|
||||
ICM_20948_Status_e SetBiasGyroZ( int newValue);
|
||||
ICM_20948_Status_e GetBiasGyroX( int* bias);
|
||||
ICM_20948_Status_e GetBiasGyroY( int* bias);
|
||||
ICM_20948_Status_e GetBiasGyroZ( int* bias);
|
||||
ICM_20948_Status_e SetBiasGyroX( int32_t newValue);
|
||||
ICM_20948_Status_e SetBiasGyroY( int32_t newValue);
|
||||
ICM_20948_Status_e SetBiasGyroZ( int32_t newValue);
|
||||
ICM_20948_Status_e GetBiasGyroX( int32_t* bias);
|
||||
ICM_20948_Status_e GetBiasGyroY( int32_t* bias);
|
||||
ICM_20948_Status_e GetBiasGyroZ( int32_t* bias);
|
||||
//Accel Bias
|
||||
ICM_20948_Status_e SetBiasAccelX( int newValue);
|
||||
ICM_20948_Status_e SetBiasAccelY( int newValue);
|
||||
ICM_20948_Status_e SetBiasAccelZ( int newValue);
|
||||
ICM_20948_Status_e GetBiasAccelX( int* bias);
|
||||
ICM_20948_Status_e GetBiasAccelY( int* bias);
|
||||
ICM_20948_Status_e GetBiasAccelZ( int* bias);
|
||||
ICM_20948_Status_e SetBiasAccelX( int32_t newValue);
|
||||
ICM_20948_Status_e SetBiasAccelY( int32_t newValue);
|
||||
ICM_20948_Status_e SetBiasAccelZ( int32_t newValue);
|
||||
ICM_20948_Status_e GetBiasAccelX( int32_t* bias);
|
||||
ICM_20948_Status_e GetBiasAccelY( int32_t* bias);
|
||||
ICM_20948_Status_e GetBiasAccelZ( int32_t* bias);
|
||||
//CPass Bias
|
||||
ICM_20948_Status_e SetBiasCPassX( int newValue);
|
||||
ICM_20948_Status_e SetBiasCPassY( int newValue);
|
||||
ICM_20948_Status_e SetBiasCPassZ( int newValue);
|
||||
ICM_20948_Status_e GetBiasCPassX( int* bias);
|
||||
ICM_20948_Status_e GetBiasCPassY( int* bias);
|
||||
ICM_20948_Status_e GetBiasCPassZ( int* bias);
|
||||
ICM_20948_Status_e SetBiasCPassX( int32_t newValue);
|
||||
ICM_20948_Status_e SetBiasCPassY( int32_t newValue);
|
||||
ICM_20948_Status_e SetBiasCPassZ( int32_t newValue);
|
||||
ICM_20948_Status_e GetBiasCPassX( int32_t* bias);
|
||||
ICM_20948_Status_e GetBiasCPassY( int32_t* bias);
|
||||
ICM_20948_Status_e GetBiasCPassZ( int32_t* bias);
|
||||
|
||||
// Done:
|
||||
// Configure DMP start address through PRGM_STRT_ADDRH/PRGM_STRT_ADDRL
|
||||
|
||||
@@ -109,7 +109,6 @@ public:
|
||||
void set_euler_zyx(const Vector3& p_euler);
|
||||
|
||||
Quat get_quat() const;
|
||||
void set_quat(const Quat& p_quat);
|
||||
|
||||
Vector3 get_euler() const { return get_euler_yxz(); }
|
||||
void set_euler(const Vector3& p_euler) { set_euler_yxz(p_euler); }
|
||||
@@ -240,7 +239,6 @@ public:
|
||||
|
||||
operator Quat() const { return get_quat(); }
|
||||
|
||||
Basis(const Quat& p_quat) { set_quat(p_quat); };
|
||||
Basis(const Quat& p_quat, const Vector3& p_scale) { set_quat_scale(p_quat, p_scale); }
|
||||
|
||||
Basis(const Vector3& p_euler) { set_euler(p_euler); }
|
||||
|
||||
@@ -57,14 +57,6 @@ void Quat::set_euler_xyz(const Vector3& p_euler) {
|
||||
-sin_a1 * sin_a2 * sin_a3 + cos_a1 * cos_a2 * cos_a3);
|
||||
}
|
||||
|
||||
// get_euler_xyz returns a vector containing the Euler angles in the format
|
||||
// (ax,ay,az), where ax is the angle of rotation around x axis,
|
||||
// and similar for other axes.
|
||||
// This implementation uses XYZ convention (Z is the first rotation).
|
||||
Vector3 Quat::get_euler_xyz() const {
|
||||
Basis m(*this);
|
||||
return m.get_euler_xyz();
|
||||
}
|
||||
|
||||
// set_euler_yxz expects a vector containing the Euler angles in the format
|
||||
// (ax,ay,az), where ax is the angle of rotation around x axis,
|
||||
@@ -92,18 +84,6 @@ void Quat::set_euler_yxz(const Vector3& p_euler) {
|
||||
sin_a1 * sin_a2 * sin_a3 + cos_a1 * cos_a2 * cos_a3);
|
||||
}
|
||||
|
||||
// get_euler_yxz returns a vector containing the Euler angles in the format
|
||||
// (ax,ay,az), where ax is the angle of rotation around x axis,
|
||||
// and similar for other axes.
|
||||
// This implementation uses YXZ convention (Z is the first rotation).
|
||||
Vector3 Quat::get_euler_yxz() const {
|
||||
#ifdef MATH_CHECKS
|
||||
ERR_FAIL_COND_V_MSG(!is_normalized(), Vector3(0, 0, 0), "The quaternion must be normalized.");
|
||||
#endif
|
||||
Basis m(*this);
|
||||
return m.get_euler_yxz();
|
||||
}
|
||||
|
||||
void Quat::operator*=(const Quat& q) {
|
||||
set(w * q.x + x * q.w + y * q.z - z * q.y,
|
||||
w * q.y + y * q.w + z * q.x - x * q.z,
|
||||
|
||||
@@ -28,15 +28,13 @@ platform = espressif8266
|
||||
board = esp12e
|
||||
|
||||
[env:BOARD_WROOM32]
|
||||
lib_deps=
|
||||
${env.lib_deps}
|
||||
lorol/LittleFS_esp32@1.0.6
|
||||
platform = espressif32@3.5.0
|
||||
platform = espressif32@4.4.0
|
||||
board = esp32dev
|
||||
|
||||
[env:BOARD_ESP01]
|
||||
lib_deps=
|
||||
${env.lib_deps}
|
||||
lorol/LittleFS_esp32@1.0.6
|
||||
platform = espressif32@3.5.0
|
||||
platform = espressif32@4.4.0
|
||||
board = esp32dev
|
||||
|
||||
[env:BOARD_LOLIN_C3_MINI]
|
||||
platform = espressif32@4.4.0
|
||||
board = lolin_c3_mini
|
||||
|
||||
@@ -57,10 +57,12 @@ upload_speed = 921600
|
||||
; Uncomment below if you want to build for esp32
|
||||
; Check your board name at https://docs.platformio.org/en/latest/platforms/espressif32.html#boards
|
||||
; [env:esp32]
|
||||
; lib_deps =
|
||||
; ${env.lib_deps}
|
||||
; lorol/LittleFS_esp32 @ 1.0.6
|
||||
; platform = espressif32 @ 3.5.0
|
||||
; platform = espressif32 @ 4.4.0
|
||||
; board = esp32dev
|
||||
; Comment out this line below if you have any trouble uploading the firmware - and if it has a CP2102 on it (a square chip next to the usb port): change to 3000000 (3 million) for even faster upload speed
|
||||
; upload_speed = 921600
|
||||
|
||||
; If you want to use a esp32c3, you can use this (experimental)
|
||||
;[env:esp32c3]
|
||||
;platform = espressif32 @ 4.4.0
|
||||
;board = lolin_c3_mini
|
||||
|
||||
@@ -21,15 +21,7 @@
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef ESP32
|
||||
// #define CONFIG_LITTLEFS_SPIFFS_COMPAT 1
|
||||
// #define CONFIG_LITTLEFS_LFS_YES_TRACE
|
||||
// #define LFS_YES_TRACE
|
||||
#include <LITTLEFS.h>
|
||||
#define LittleFS LITTLEFS
|
||||
#else
|
||||
#include <LittleFS.h>
|
||||
#endif
|
||||
#include <LittleFS.h>
|
||||
|
||||
#include "Configuration.h"
|
||||
#include "consts.h"
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#define BOARD_TTGO_TBASE 7
|
||||
#define BOARD_ESP01 8
|
||||
#define BOARD_SLIMEVR 9
|
||||
#define BOARD_LOLIN_C3_MINI 10
|
||||
|
||||
#define BAT_EXTERNAL 1
|
||||
#define BAT_INTERNAL 2
|
||||
|
||||
@@ -110,4 +110,12 @@
|
||||
#define PIN_BATTERY_LEVEL 36
|
||||
// #define LED_PIN 2
|
||||
// #define LED_INVERTED false
|
||||
#elif BOARD == BOARD_LOLIN_C3_MINI
|
||||
#define PIN_IMU_SDA 10
|
||||
#define PIN_IMU_SCL 8
|
||||
#define PIN_IMU_INT 6
|
||||
#define PIN_IMU_INT_2 7
|
||||
#define PIN_BATTERY_LEVEL 3
|
||||
// #define LED_PIN 2
|
||||
// #define LED_INVERTED false
|
||||
#endif
|
||||
|
||||
@@ -121,7 +121,7 @@ void ICM20948Sensor::load_bias() {
|
||||
imu.SetBiasCPassY(90);
|
||||
imu.SetBiasCPassZ(90);
|
||||
|
||||
int bias_gyro[3], bias_accel[3], bias_compass[3];
|
||||
int32_t bias_gyro[3], bias_accel[3], bias_compass[3];
|
||||
|
||||
// Reloads all bias from memory
|
||||
imu.GetBiasGyroX(&bias_gyro[0]);
|
||||
|
||||
Reference in New Issue
Block a user