From b5cb48849a55334ee263ccd8a8fa765e9f617b4c Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Tue, 15 Sep 2026 15:58:35 +0800 Subject: [PATCH 1/7] add Arduino 3.3.11 PlatformIO environment --- platformio.ini | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/platformio.ini b/platformio.ini index 0a4bf8ceaa..1034d9507d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -8,22 +8,35 @@ ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html +[platformio] +default_envs = esp32-s3-devkitc-1 + [env] -platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino monitor_speed = 115200 -lib_deps = - fastled/FastLED - tinyu-zhao/INA3221 - mathertel/OneButton @ ^2.5.0 -[env:esp32-s3-devkitc-1] +lib_deps = + fastled/FastLED @ 3.10.3 + tinyu-zhao/INA3221 @ 0.0.1 + mathertel/OneButton @ 2.6.2 + build_type = release -build_flags = -DCORE_DEBUG_LEVEL=0 -O0 +build_flags = + -DCORE_DEBUG_LEVEL=0 + -O0 + extra_scripts = post:generate_user_custom.py + custom_firmware_version = 0.0.1 -custom_firmware_name = stampfly_firmware custom_firmware_suffix = .bin custom_firmware_dir = ./ - \ No newline at end of file + +[env:esp32-s3-devkitc-1] +platform = espressif32 @ 7.0.1 +custom_firmware_name = stampfly_firmware + + +[env:esp32-s3-devkitc-1-arduino3311] +platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.311/platform-espressif32.zip +custom_firmware_name = stampfly_firmware3311 \ No newline at end of file From 5fc8df18d910bcacf5b5a868d697a5cdaa70d57b Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:19:21 +0800 Subject: [PATCH 2/7] adaptation for arduino-esp 3.3.11 --- $null | 0 include/arduino_esp32_compat.h | 44 ++++++++++++++++++++++++++++++++++ lib/bmi270/common.c | 7 +++--- lib/vl53l3c/vl53lx_platform.c | 11 +++++---- platformio.ini | 3 +++ src/buzzer.cpp | 16 ++++++++++++- src/flight_control.cpp | 30 +++++++++++++++++++---- src/idf_component.yml | 2 ++ src/idf_component.yml.orig | 2 ++ src/imu.cpp | 3 ++- src/rc.cpp | 30 ++++++++++++++++++++--- src/sensor.cpp | 3 ++- src/tof.cpp | 3 ++- 13 files changed, 135 insertions(+), 19 deletions(-) create mode 100755 $null create mode 100755 include/arduino_esp32_compat.h create mode 100755 src/idf_component.yml create mode 100755 src/idf_component.yml.orig diff --git a/$null b/$null new file mode 100755 index 0000000000..e69de29bb2 diff --git a/include/arduino_esp32_compat.h b/include/arduino_esp32_compat.h new file mode 100755 index 0000000000..30688cc677 --- /dev/null +++ b/include/arduino_esp32_compat.h @@ -0,0 +1,44 @@ +#pragma once + +#include +#include +#include + +#if ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(3, 0, 0) +#define STAMPFLY_ARDUINO_ESP32_V3 1 +#else +#define STAMPFLY_ARDUINO_ESP32_V3 0 +#endif + +#if STAMPFLY_ARDUINO_ESP32_V3 +#include + +static inline void stampfly_delay_us(uint32_t us) +{ + esp_rom_delay_us(us); +} +#else +#include + +static inline void stampfly_delay_us(uint32_t us) +{ + ets_delay_us(us); +} +#endif +#ifdef __cplusplus +#if STAMPFLY_ARDUINO_ESP32_V3 + +#if !defined(ARDUINO_USB_MODE) || !ARDUINO_USB_MODE +#error "StampFly HWCDC compatibility requires ARDUINO_USB_MODE=1" +#endif + +#if !defined(ARDUINO_USB_CDC_ON_BOOT) || !ARDUINO_USB_CDC_ON_BOOT +#error "StampFly HWCDC compatibility requires ARDUINO_USB_CDC_ON_BOOT=1" +#endif + +#include + +#define USBSerial HWCDCSerial + +#endif +#endif \ No newline at end of file diff --git a/lib/bmi270/common.c b/lib/bmi270/common.c index 94352c66c8..9ef8383b66 100644 --- a/lib/bmi270/common.c +++ b/lib/bmi270/common.c @@ -10,6 +10,7 @@ #include #include "common.h" +#include "../../include/arduino_esp32_compat.h" //#include "bmi2_defs.h" //#include "driver/i2c.h" @@ -39,7 +40,7 @@ static struct coines_intf_config intf_conf; struct bmi2_dev Bmi270; struct bmi2_dev *pBmi270=&Bmi270; -i2c_cmd_handle_t i2chandle; +static i2c_cmd_handle_t i2chandle; // SPIデバイスハンドラーを使って通信する spi_device_handle_t spidev; @@ -50,7 +51,7 @@ i2c_port_t i2c_port=1; uint8_t Bmi270_address = 0x69; -uint8_t _I2CBuffer[256]; +static uint8_t _I2CBuffer[256]; struct bmi2_sens_config config; @@ -256,7 +257,7 @@ BMI2_INTF_RETURN_TYPE bmi2_spi_write(uint8_t reg_addr, const uint8_t *reg_data, void bmi2_delay_us(uint32_t period, void *intf_ptr) { //coines_delay_usec(period); - ets_delay_us(period); + stampfly_delay_us(period); } /*! diff --git a/lib/vl53l3c/vl53lx_platform.c b/lib/vl53l3c/vl53lx_platform.c index 495cfe05d7..6c45485cbd 100644 --- a/lib/vl53l3c/vl53lx_platform.c +++ b/lib/vl53l3c/vl53lx_platform.c @@ -38,6 +38,7 @@ unsigned int i2cwriteCount = 0; unsigned char SPI2C_Buffer[256]; #include +#include "../../include/arduino_esp32_compat.h" #ifndef SMALL_FOOTPRINT #include #endif @@ -60,7 +61,7 @@ unsigned char SPI2C_Buffer[256]; #endif -i2c_cmd_handle_t i2chandle; +static i2c_cmd_handle_t i2chandle; //#ifndef HAL_I2C_MODULE_ENABLED //#warning "HAL I2C module must be enable " @@ -70,7 +71,7 @@ i2c_cmd_handle_t i2chandle; -uint8_t _I2CBuffer[256]; +static uint8_t _I2CBuffer[256]; #define I2C_MASTER_SDA_IO 3 @@ -121,7 +122,7 @@ int vl53lx_i2c_init(void) { int status=0; //i2c_driver_delete(i2c_master_port); - ets_delay_us(100000); + stampfly_delay_us(100000); //delay(100); //status = i2c_param_config(i2c_master_port, &conf); //status = status|i2c_driver_install(i2c_master_port, conf.mode, 0, 0, 0); @@ -392,14 +393,14 @@ VL53LX_Error VL53LX_GetTimerFrequency(int32_t *ptimer_freq_hz) VL53LX_Error VL53LX_WaitMs(VL53LX_Dev_t *pdev, int32_t wait_ms){ (void)pdev; - ets_delay_us(wait_ms*1000); + stampfly_delay_us(wait_ms*1000); //delay(wait_ms); return VL53LX_ERROR_NONE; } VL53LX_Error VL53LX_WaitUs(VL53LX_Dev_t *pdev, int32_t wait_us){ (void)pdev; - ets_delay_us(wait_us); + stampfly_delay_us(wait_us); //delay(wait_us/1000); return VL53LX_ERROR_NONE; } diff --git a/platformio.ini b/platformio.ini index 1034d9507d..023f89ef4f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -39,4 +39,7 @@ custom_firmware_name = stampfly_firmware [env:esp32-s3-devkitc-1-arduino3311] platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.311/platform-espressif32.zip +build_flags = + ${env.build_flags} + -DARDUINO_USB_CDC_ON_BOOT=1 custom_firmware_name = stampfly_firmware3311 \ No newline at end of file diff --git a/src/buzzer.cpp b/src/buzzer.cpp index 478f06fcb7..b0eb10d6a5 100644 --- a/src/buzzer.cpp +++ b/src/buzzer.cpp @@ -6,23 +6,37 @@ #include "Arduino.h" #include #include "buzzer.h" +#include "arduino_esp32_compat.h" const int buzzerPin = 40; const int channel = 5; void setup_pwm_buzzer(void) { +#if STAMPFLY_ARDUINO_ESP32_V3 + ledcAttachChannel(buzzerPin, 4000, 8, channel); +#else ledcSetup(channel, 4000, 8); // 配置PWM通道:通道0,频率3000Hz,分辨率8位 ledcAttachPin(buzzerPin, channel); // 将PWM通道绑定到GPIO +#endif } void buzzer_sound(uint32_t frequency, uint32_t duration_ms) { +#if STAMPFLY_ARDUINO_ESP32_V3 + ledcWriteTone(buzzerPin, frequency); + ledcWrite(buzzerPin, 127); +#else ledcWriteTone(channel, frequency); ledcWrite(channel, 127); +#endif vTaskDelay(duration_ms / portTICK_PERIOD_MS); +#if STAMPFLY_ARDUINO_ESP32_V3 + ledcWriteTone(buzzerPin, 0); +#else ledcWriteTone(channel, 0); - digitalWrite(channel, 0); +#endif + digitalWrite(buzzerPin, 0); } void beep(void) { diff --git a/src/flight_control.cpp b/src/flight_control.cpp index f8c5f7d066..2336a57f71 100644 --- a/src/flight_control.cpp +++ b/src/flight_control.cpp @@ -45,6 +45,7 @@ #include "telemetry.hpp" #include "button.hpp" #include "buzzer.h" +#include "arduino_esp32_compat.h" // モータPWM出力Pinのアサイン // Motor PWM Pin @@ -271,10 +272,16 @@ void init_copter(void) { // 割り込み設定 // Initialize intrupt +#if STAMPFLY_ARDUINO_ESP32_V3 + timer = timerBegin(1000000); + timerAttachInterrupt(timer, &onTimer); + timerAlarm(timer, 2500, true, 0); +#else timer = timerBegin(0, 80, true); timerAttachInterrupt(timer, &onTimer, true); timerAlarmWrite(timer, 2500, true); timerAlarmEnable(timer); +#endif // init button G0 init_button(); @@ -1019,20 +1026,34 @@ void angle_control(void) { } } +static void write_motor_duty(uint8_t channel, uint32_t duty) { +#if STAMPFLY_ARDUINO_ESP32_V3 + ledcWriteChannel(channel, duty); +#else + ledcWrite(channel, duty); +#endif +} + void set_duty_fr(float duty) { - ledcWrite(FrontRight_motor, (uint32_t)(255 * duty)); + write_motor_duty(FrontRight_motor, (uint32_t)(255 * duty)); } void set_duty_fl(float duty) { - ledcWrite(FrontLeft_motor, (uint32_t)(255 * duty)); + write_motor_duty(FrontLeft_motor, (uint32_t)(255 * duty)); } void set_duty_rr(float duty) { - ledcWrite(RearRight_motor, (uint32_t)(255 * duty)); + write_motor_duty(RearRight_motor, (uint32_t)(255 * duty)); } void set_duty_rl(float duty) { - ledcWrite(RearLeft_motor, (uint32_t)(255 * duty)); + write_motor_duty(RearLeft_motor, (uint32_t)(255 * duty)); } void init_pwm(void) { +#if STAMPFLY_ARDUINO_ESP32_V3 + ledcAttachChannel(pwmFrontLeft, freq, resolution, FrontLeft_motor); + ledcAttachChannel(pwmFrontRight, freq, resolution, FrontRight_motor); + ledcAttachChannel(pwmRearLeft, freq, resolution, RearLeft_motor); + ledcAttachChannel(pwmRearRight, freq, resolution, RearRight_motor); +#else ledcSetup(FrontLeft_motor, freq, resolution); ledcSetup(FrontRight_motor, freq, resolution); ledcSetup(RearLeft_motor, freq, resolution); @@ -1041,6 +1062,7 @@ void init_pwm(void) { ledcAttachPin(pwmFrontRight, FrontRight_motor); ledcAttachPin(pwmRearLeft, RearLeft_motor); ledcAttachPin(pwmRearRight, RearRight_motor); +#endif } uint8_t get_arming_button(void) { diff --git a/src/idf_component.yml b/src/idf_component.yml new file mode 100755 index 0000000000..c792efe32e --- /dev/null +++ b/src/idf_component.yml @@ -0,0 +1,2 @@ +dependencies: + idf: '>=5.1' diff --git a/src/idf_component.yml.orig b/src/idf_component.yml.orig new file mode 100755 index 0000000000..c792efe32e --- /dev/null +++ b/src/idf_component.yml.orig @@ -0,0 +1,2 @@ +dependencies: + idf: '>=5.1' diff --git a/src/imu.cpp b/src/imu.cpp index 91d477343b..347f01ba0c 100644 --- a/src/imu.cpp +++ b/src/imu.cpp @@ -23,7 +23,8 @@ * SOFTWARE. */ -#include +#include +#include "arduino_esp32_compat.h" #include "common.h" #include "bmi2.h" #include "imu.hpp" diff --git a/src/rc.cpp b/src/rc.cpp index 7f45226c69..57aaa00741 100644 --- a/src/rc.cpp +++ b/src/rc.cpp @@ -28,6 +28,7 @@ #include #include #include "flight_control.hpp" +#include "arduino_esp32_compat.h" // esp_now_peer_info_t slave; @@ -50,10 +51,14 @@ esp_now_peer_info_t peerInfo; volatile float Stick[16]; volatile uint8_t Recv_MAC[3]; +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0) +void on_esp_now_sent(const esp_now_send_info_t *tx_info, esp_now_send_status_t status); +#else void on_esp_now_sent(const uint8_t *mac_addr, esp_now_send_status_t status); +#endif -// 受信コールバック -void OnDataRecv(const uint8_t *mac_addr, const uint8_t *recv_data, int data_len) { +// 受信数据公共处理逻辑 +static void handle_received_data(const uint8_t *src_mac, const uint8_t *recv_data, int data_len) { Connect_flag = 0; uint8_t *d_int; @@ -61,7 +66,7 @@ void OnDataRecv(const uint8_t *mac_addr, const uint8_t *recv_data, int data_len) float d_float; if (!TelemAddr[0] && !TelemAddr[1] && !TelemAddr[2] && !TelemAddr[3] && !TelemAddr[4] && !TelemAddr[5]) { - memcpy(TelemAddr, mac_addr, 6); + memcpy(TelemAddr, src_mac, 6); memcpy(peerInfo.peer_addr, TelemAddr, 6); peerInfo.channel = CHANNEL; peerInfo.encrypt = false; @@ -142,11 +147,30 @@ void OnDataRecv(const uint8_t *mac_addr, const uint8_t *recv_data, int data_len) #endif } +// 受信回调外壳 +#if STAMPFLY_ARDUINO_ESP32_V3 +void OnDataRecv(const esp_now_recv_info_t *info, const uint8_t *recv_data, int data_len) { + handle_received_data(info->src_addr, recv_data, data_len); +} +#else +void OnDataRecv(const uint8_t *mac_addr, const uint8_t *recv_data, int data_len) { + handle_received_data(mac_addr, recv_data, data_len); +} +#endif + // 送信コールバック uint8_t esp_now_send_status; +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0) +void on_esp_now_sent(const esp_now_send_info_t *tx_info, esp_now_send_status_t status) { + (void)tx_info; + esp_now_send_status = status; +} +#else void on_esp_now_sent(const uint8_t *mac_addr, esp_now_send_status_t status) { + (void)mac_addr; esp_now_send_status = status; } +#endif void rc_init(void) { // Initialize Stick list diff --git a/src/sensor.cpp b/src/sensor.cpp index 8a66c1241f..134ff90dbc 100644 --- a/src/sensor.cpp +++ b/src/sensor.cpp @@ -23,7 +23,8 @@ * SOFTWARE. */ -#include "sensor.hpp" +#include "sensor.hpp" +#include "arduino_esp32_compat.h" #include "imu.hpp" #include "tof.hpp" #include "flight_control.hpp" diff --git a/src/tof.cpp b/src/tof.cpp index bb7df97226..5df373bb30 100644 --- a/src/tof.cpp +++ b/src/tof.cpp @@ -23,7 +23,8 @@ * SOFTWARE. */ -#include +#include +#include "arduino_esp32_compat.h" #include "tof.hpp" VL53LX_Dev_t tof_front; From 314a6990568b751c87b9e0c125f9fe302067e8cb Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Thu, 17 Sep 2026 10:11:42 +0800 Subject: [PATCH 3/7] fix: resolve I2C driver compatibility issues across versions --- include/arduino_esp32_i2c_compat.h | 27 ++++++++++++ lib/bmi270/common.c | 24 ++++++++++- lib/bmi270/common.h | 3 ++ lib/vl53l3c/vl53lx_platform.c | 69 +++++++++++++++++++++++++++++- src/arduino_esp32_i2c_compat.c | 62 +++++++++++++++++++++++++++ 5 files changed, 183 insertions(+), 2 deletions(-) create mode 100755 include/arduino_esp32_i2c_compat.h create mode 100755 src/arduino_esp32_i2c_compat.c diff --git a/include/arduino_esp32_i2c_compat.h b/include/arduino_esp32_i2c_compat.h new file mode 100755 index 0000000000..49c7e926d2 --- /dev/null +++ b/include/arduino_esp32_i2c_compat.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include + +#include "arduino_esp32_compat.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if STAMPFLY_ARDUINO_ESP32_V3 + +int stampfly_i2c_write(uint8_t i2c_num, uint16_t address, const uint8_t *data, size_t length); +int stampfly_i2c_read(uint8_t i2c_num, uint16_t address, uint8_t *data, size_t length); +int stampfly_i2c_write_read(uint8_t i2c_num, + uint16_t address, + const uint8_t *write_data, + size_t write_length, + uint8_t *read_data, + size_t read_length); + +#endif + +#ifdef __cplusplus +} +#endif diff --git a/lib/bmi270/common.c b/lib/bmi270/common.c index 9ef8383b66..21bd579b77 100644 --- a/lib/bmi270/common.c +++ b/lib/bmi270/common.c @@ -10,7 +10,7 @@ #include #include "common.h" -#include "../../include/arduino_esp32_compat.h" +#include "../../include/arduino_esp32_i2c_compat.h" //#include "bmi2_defs.h" //#include "driver/i2c.h" @@ -40,14 +40,18 @@ static struct coines_intf_config intf_conf; struct bmi2_dev Bmi270; struct bmi2_dev *pBmi270=&Bmi270; +#if !STAMPFLY_ARDUINO_ESP32_V3 static i2c_cmd_handle_t i2chandle; +#endif // SPIデバイスハンドラーを使って通信する spi_device_handle_t spidev; +#if !STAMPFLY_ARDUINO_ESP32_V3 i2c_port_t i2c_port=1; +#endif uint8_t Bmi270_address = 0x69; @@ -66,6 +70,7 @@ void bmi270_dev_init(void) Bmi270.gyro_en = 1; } +#if !STAMPFLY_ARDUINO_ESP32_V3 void getI2cBus(void) { i2chandle = i2c_cmd_link_create(); @@ -99,6 +104,7 @@ int _i2cRead(uint8_t slave_address, uint8_t *pdata, uint32_t count) { status = i2c_master_read_byte(i2chandle, pdata+count-1, I2C_MASTER_NACK); return status; } +#endif /******************************************************************************/ /*! User interface functions */ @@ -112,6 +118,13 @@ BMI2_INTF_RETURN_TYPE bmi2_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_ int32_t status_int; _I2CBuffer[0] = reg_addr; +#if STAMPFLY_ARDUINO_ESP32_V3 + status_int = stampfly_i2c_write_read(1, Bmi270_address, _I2CBuffer, 1, reg_data, len); + if (status_int != 0) { + Status = 0x66; + } + return Status; +#else getI2cBus(); status_int = _i2cWrite(Bmi270_address, _I2CBuffer, 1); if (status_int != 0) { @@ -125,6 +138,7 @@ BMI2_INTF_RETURN_TYPE bmi2_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_ done: putI2cBus(); return Status; +#endif } /*! @@ -139,6 +153,13 @@ BMI2_INTF_RETURN_TYPE bmi2_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, } _I2CBuffer[0] = reg_addr; memcpy(&_I2CBuffer[1], reg_data, len); +#if STAMPFLY_ARDUINO_ESP32_V3 + status_int = stampfly_i2c_write(1, Bmi270_address, _I2CBuffer, len + 1); + if (status_int != 0) { + Status = 0x55; + } + return Status; +#else getI2cBus(); status_int = _i2cWrite(Bmi270_address, _I2CBuffer, len + 1); if (status_int != 0) { @@ -146,6 +167,7 @@ BMI2_INTF_RETURN_TYPE bmi2_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, } putI2cBus(); return Status; +#endif } //SPIバスの設定 diff --git a/lib/bmi270/common.h b/lib/bmi270/common.h index 4719e2a4fd..267be43bca 100644 --- a/lib/bmi270/common.h +++ b/lib/bmi270/common.h @@ -17,7 +17,10 @@ extern "C" { #include #include "bmi2.h" #include "bmi2_defs.h" +#include "../../include/arduino_esp32_i2c_compat.h" +#if !STAMPFLY_ARDUINO_ESP32_V3 #include "driver/i2c.h" +#endif #include #include "driver/gpio.h" #include "sdkconfig.h" diff --git a/lib/vl53l3c/vl53lx_platform.c b/lib/vl53l3c/vl53lx_platform.c index 6c45485cbd..f5c29f24bc 100644 --- a/lib/vl53l3c/vl53lx_platform.c +++ b/lib/vl53l3c/vl53lx_platform.c @@ -38,7 +38,7 @@ unsigned int i2cwriteCount = 0; unsigned char SPI2C_Buffer[256]; #include -#include "../../include/arduino_esp32_compat.h" +#include "../../include/arduino_esp32_i2c_compat.h" #ifndef SMALL_FOOTPRINT #include #endif @@ -50,7 +50,9 @@ unsigned char SPI2C_Buffer[256]; #include //#include "esp_log.h" +#if !STAMPFLY_ARDUINO_ESP32_V3 #include "driver/i2c.h" +#endif #define I2C_TIME_OUT_BASE 10 #define I2C_TIME_OUT_BYTE 1 @@ -61,7 +63,19 @@ unsigned char SPI2C_Buffer[256]; #endif +#if STAMPFLY_ARDUINO_ESP32_V3 +typedef struct { + uint8_t address; + const uint8_t *write_data; + uint32_t write_count; + uint8_t *read_data; + uint32_t read_count; +} stampfly_i2c_transaction_t; + +static stampfly_i2c_transaction_t i2c_transaction; +#else static i2c_cmd_handle_t i2chandle; +#endif //#ifndef HAL_I2C_MODULE_ENABLED //#warning "HAL I2C module must be enable " @@ -83,6 +97,7 @@ static uint8_t _I2CBuffer[256]; #define I2C_MASTER_TIMEOUT_MS 1000 //#define I2C_SENSOR_ADDR 0x29 +#if !STAMPFLY_ARDUINO_ESP32_V3 int i2c_master_port = I2C_MASTER_NUM; i2c_config_t conf = { .mode = I2C_MODE_MASTER, @@ -93,6 +108,7 @@ i2c_config_t conf = { .master.clk_speed = I2C_MASTER_FREQ_HZ, // select frequency specific to your project .clk_flags = 0, // optional; you can use I2C_SCLK_SRC_FLAG_* flags to choose i2c source clock here }; +#endif /* when not customized by application define dummy one */ //#ifndef VL53LX_GetI2cBus @@ -102,7 +118,15 @@ i2c_config_t conf = { //#endif void VL53LX_GetI2cBus(void) { +#if STAMPFLY_ARDUINO_ESP32_V3 + i2c_transaction.address = 0; + i2c_transaction.write_data = NULL; + i2c_transaction.write_count = 0; + i2c_transaction.read_data = NULL; + i2c_transaction.read_count = 0; +#else i2chandle = i2c_cmd_link_create(); +#endif } //#ifndef VL53LX_PutI2cBus @@ -113,9 +137,30 @@ void VL53LX_GetI2cBus(void) void VL53LX_PutI2cBus(void) { +#if STAMPFLY_ARDUINO_ESP32_V3 + if ((i2c_transaction.write_count != 0U) && (i2c_transaction.read_count != 0U)) { + (void)stampfly_i2c_write_read(I2C_MASTER_NUM, + i2c_transaction.address, + i2c_transaction.write_data, + i2c_transaction.write_count, + i2c_transaction.read_data, + i2c_transaction.read_count); + } else if (i2c_transaction.write_count != 0U) { + (void)stampfly_i2c_write(I2C_MASTER_NUM, + i2c_transaction.address, + i2c_transaction.write_data, + i2c_transaction.write_count); + } else if (i2c_transaction.read_count != 0U) { + (void)stampfly_i2c_read(I2C_MASTER_NUM, + i2c_transaction.address, + i2c_transaction.read_data, + i2c_transaction.read_count); + } +#else i2c_master_stop(i2chandle); i2c_master_cmd_begin(i2c_master_port,i2chandle, 1 / portTICK_RATE_MS); i2c_cmd_link_delete(i2chandle); +#endif } int vl53lx_i2c_init(void) @@ -130,15 +175,36 @@ int vl53lx_i2c_init(void) } int _I2CWrite(VL53LX_DEV Dev, uint8_t *pdata, uint32_t count) { +#if STAMPFLY_ARDUINO_ESP32_V3 + if ((Dev == NULL) || ((pdata == NULL) && (count != 0U))) { + return -1; + } + + i2c_transaction.address = Dev->i2c_slave_address; + i2c_transaction.write_data = pdata; + i2c_transaction.write_count = count; + return 0; +#else int status; i2c_master_start(i2chandle); status = i2c_master_write_byte(i2chandle, (Dev->i2c_slave_address<<1)|I2C_MASTER_WRITE, I2C_MASTER_ACK); status = i2c_master_write(i2chandle, pdata, count, I2C_MASTER_ACK); return status; +#endif } int _I2CRead(VL53LX_DEV Dev, uint8_t *pdata, uint32_t count) { +#if STAMPFLY_ARDUINO_ESP32_V3 + if ((Dev == NULL) || ((pdata == NULL) && (count != 0U))) { + return -1; + } + + i2c_transaction.address = Dev->i2c_slave_address; + i2c_transaction.read_data = pdata; + i2c_transaction.read_count = count; + return 0; +#else int status; i2c_master_start(i2chandle); @@ -149,6 +215,7 @@ int _I2CRead(VL53LX_DEV Dev, uint8_t *pdata, uint32_t count) { } status = i2c_master_read_byte(i2chandle, pdata+count-1, I2C_MASTER_NACK); return status; +#endif } VL53LX_Error VL53LX_WriteMulti(VL53LX_DEV Dev, uint16_t index, uint8_t *pdata, uint32_t count) { diff --git a/src/arduino_esp32_i2c_compat.c b/src/arduino_esp32_i2c_compat.c new file mode 100755 index 0000000000..6e40a22214 --- /dev/null +++ b/src/arduino_esp32_i2c_compat.c @@ -0,0 +1,62 @@ +#include "arduino_esp32_i2c_compat.h" + +#if STAMPFLY_ARDUINO_ESP32_V3 + +#include +#include + +#define STAMPFLY_I2C_TIMEOUT_MS 1U + +int stampfly_i2c_write(uint8_t i2c_num, uint16_t address, const uint8_t *data, size_t length) +{ + if ((data == NULL) && (length != 0U)) { + return -1; + } + + return i2cWrite(i2c_num, address, data, length, STAMPFLY_I2C_TIMEOUT_MS) == ESP_OK ? 0 : -1; +} + +int stampfly_i2c_read(uint8_t i2c_num, uint16_t address, uint8_t *data, size_t length) +{ + size_t read_count = 0; + + if ((data == NULL) && (length != 0U)) { + return -1; + } + + if (i2cRead(i2c_num, address, data, length, STAMPFLY_I2C_TIMEOUT_MS, &read_count) != ESP_OK) { + return -1; + } + + return read_count == length ? 0 : -1; +} + +int stampfly_i2c_write_read(uint8_t i2c_num, + uint16_t address, + const uint8_t *write_data, + size_t write_length, + uint8_t *read_data, + size_t read_length) +{ + size_t read_count = 0; + + if (((write_data == NULL) && (write_length != 0U)) || + ((read_data == NULL) && (read_length != 0U))) { + return -1; + } + + if (i2cWriteReadNonStop(i2c_num, + address, + write_data, + write_length, + read_data, + read_length, + STAMPFLY_I2C_TIMEOUT_MS, + &read_count) != ESP_OK) { + return -1; + } + + return read_count == read_length ? 0 : -1; +} + +#endif From 0f10f833a9f34ee38039c8bd435b2a90b2db6cdb Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Thu, 17 Sep 2026 15:21:18 +0800 Subject: [PATCH 4/7] fix:Increase I2C timeout to accommodate the actual initialization flow --- src/arduino_esp32_i2c_compat.c | 2 +- src/tof.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/arduino_esp32_i2c_compat.c b/src/arduino_esp32_i2c_compat.c index 6e40a22214..9433c21eca 100755 --- a/src/arduino_esp32_i2c_compat.c +++ b/src/arduino_esp32_i2c_compat.c @@ -5,7 +5,7 @@ #include #include -#define STAMPFLY_I2C_TIMEOUT_MS 1U +#define STAMPFLY_I2C_TIMEOUT_MS 50U int stampfly_i2c_write(uint8_t i2c_num, uint16_t address, const uint8_t *data, size_t length) { diff --git a/src/tof.cpp b/src/tof.cpp index 5df373bb30..5ad99bd5c0 100644 --- a/src/tof.cpp +++ b/src/tof.cpp @@ -25,6 +25,7 @@ #include #include "arduino_esp32_compat.h" +#include "sensor.hpp" #include "tof.hpp" VL53LX_Dev_t tof_front; @@ -76,6 +77,10 @@ void tof_init(void) { VL53LX_SetDeviceAddress(ToF_front, 0x54); ToF_front->i2c_slave_address = 0x2A; + // Verify the front ToF address before enabling the bottom ToF. + USBSerial.println("I2C scan after front ToF address change"); + scan_i2c(); + delay(100); digitalWrite(XSHUT_BOTTOM, HIGH); From 64bb3012f3dc3e7b7a93ad3c127841e85ba6544c Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Thu, 17 Sep 2026 16:30:06 +0800 Subject: [PATCH 5/7] fix: validate STA MAC for esp-now on Arduino 3.x --- src/flight_control.cpp | 5 ++++- src/rc.cpp | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/flight_control.cpp b/src/flight_control.cpp index 2336a57f71..f03914cfce 100644 --- a/src/flight_control.cpp +++ b/src/flight_control.cpp @@ -258,6 +258,9 @@ void init_copter(void) { USBSerial.begin(115200); delay(1500); USBSerial.printf("Start StampFly!\r\n"); +#if STAMPFLY_ARDUINO_ESP32_V3 + USBSerial.printf("Environment: Arduino-ESP32 %s (3.x compatibility branch)\r\n", ESP_ARDUINO_VERSION_STR); +#endif // Initialize PWM init_pwm(); @@ -1107,4 +1110,4 @@ void motor_stop(void) { set_duty_fl(0.0); set_duty_rr(0.0); set_duty_rl(0.0); -} \ No newline at end of file +} diff --git a/src/rc.cpp b/src/rc.cpp index 57aaa00741..85dd70f238 100644 --- a/src/rc.cpp +++ b/src/rc.cpp @@ -29,6 +29,9 @@ #include #include "flight_control.hpp" #include "arduino_esp32_compat.h" +#if STAMPFLY_ARDUINO_ESP32_V3 +#include +#endif // esp_now_peer_info_t slave; @@ -180,7 +183,25 @@ void rc_init(void) { WiFi.mode(WIFI_STA); WiFi.disconnect(); +#if STAMPFLY_ARDUINO_ESP32_V3 + esp_err_t mac_status = esp_read_mac((uint8_t *)MyMacAddr, ESP_MAC_WIFI_STA); + bool mac_valid = (mac_status == ESP_OK); + bool mac_is_zero = true; + for (uint8_t i = 0; i < sizeof(MyMacAddr); i++) { + if (MyMacAddr[i] != 0) { + mac_is_zero = false; + break; + } + } + mac_valid = mac_valid && !mac_is_zero; + if (!mac_valid) { + memset((uint8_t *)MyMacAddr, 0, sizeof(MyMacAddr)); + USBSerial.printf("Invalid WiFi STA MAC (esp_read_mac status: %d); pairing broadcast disabled.\r\n", + (int)mac_status); + } +#else WiFi.macAddress((uint8_t *)MyMacAddr); +#endif USBSerial.printf("MAC ADDRESS: %02X:%02X:%02X:%02X:%02X:%02X\r\n", MyMacAddr[0], MyMacAddr[1], MyMacAddr[2], MyMacAddr[3], MyMacAddr[4], MyMacAddr[5]); @@ -203,11 +224,23 @@ void rc_init(void) { esp_wifi_set_channel(CHANNEL, WIFI_SECOND_CHAN_NONE); // Send my MAC address +#if STAMPFLY_ARDUINO_ESP32_V3 + if (mac_valid) { + for (uint16_t i = 0; i < 50; i++) { + send_peer_info(); + delay(50); + USBSerial.printf("%d\n", i); + } + } else { + USBSerial.println("Pairing broadcast skipped because WiFi STA MAC is invalid."); + } +#else for (uint16_t i = 0; i < 50; i++) { send_peer_info(); delay(50); USBSerial.printf("%d\n", i); } +#endif // ESP-NOW再初期化 WiFi.mode(WIFI_STA); From 07f5063648824097025521534854bd7f8b9e016a Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Thu, 17 Sep 2026 18:07:55 +0800 Subject: [PATCH 6/7] fix: propagate ToF I2C errors on Arduino 3.x --- include/arduino_esp32_compat.h | 11 ++++- lib/vl53l3c/vl53lx_platform.c | 74 +++++++++++++++++++++++++++------- src/flight_control.cpp | 6 +-- 3 files changed, 72 insertions(+), 19 deletions(-) diff --git a/include/arduino_esp32_compat.h b/include/arduino_esp32_compat.h index 30688cc677..f1fcdb218c 100755 --- a/include/arduino_esp32_compat.h +++ b/include/arduino_esp32_compat.h @@ -6,10 +6,19 @@ #if ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(3, 0, 0) #define STAMPFLY_ARDUINO_ESP32_V3 1 +#define STAMPFLY_ARDUINO_ESP32_BRANCH_NAME "3.x compatibility branch" #else #define STAMPFLY_ARDUINO_ESP32_V3 0 +#define STAMPFLY_ARDUINO_ESP32_BRANCH_NAME "legacy compatibility branch" #endif +#define STAMPFLY_STRINGIFY_IMPL(value) #value +#define STAMPFLY_STRINGIFY(value) STAMPFLY_STRINGIFY_IMPL(value) +#define STAMPFLY_ARDUINO_ESP32_VERSION_STRING \ + STAMPFLY_STRINGIFY(ESP_ARDUINO_VERSION_MAJOR) "." \ + STAMPFLY_STRINGIFY(ESP_ARDUINO_VERSION_MINOR) "." \ + STAMPFLY_STRINGIFY(ESP_ARDUINO_VERSION_PATCH) + #if STAMPFLY_ARDUINO_ESP32_V3 #include @@ -41,4 +50,4 @@ static inline void stampfly_delay_us(uint32_t us) #define USBSerial HWCDCSerial #endif -#endif \ No newline at end of file +#endif diff --git a/lib/vl53l3c/vl53lx_platform.c b/lib/vl53l3c/vl53lx_platform.c index f5c29f24bc..21831a48fe 100644 --- a/lib/vl53l3c/vl53lx_platform.c +++ b/lib/vl53l3c/vl53lx_platform.c @@ -70,6 +70,7 @@ typedef struct { uint32_t write_count; uint8_t *read_data; uint32_t read_count; + int transfer_status; } stampfly_i2c_transaction_t; static stampfly_i2c_transaction_t i2c_transaction; @@ -124,6 +125,7 @@ void VL53LX_GetI2cBus(void) i2c_transaction.write_count = 0; i2c_transaction.read_data = NULL; i2c_transaction.read_count = 0; + i2c_transaction.transfer_status = 0; #else i2chandle = i2c_cmd_link_create(); #endif @@ -139,22 +141,22 @@ void VL53LX_PutI2cBus(void) { #if STAMPFLY_ARDUINO_ESP32_V3 if ((i2c_transaction.write_count != 0U) && (i2c_transaction.read_count != 0U)) { - (void)stampfly_i2c_write_read(I2C_MASTER_NUM, - i2c_transaction.address, - i2c_transaction.write_data, - i2c_transaction.write_count, - i2c_transaction.read_data, - i2c_transaction.read_count); + i2c_transaction.transfer_status = stampfly_i2c_write_read(I2C_MASTER_NUM, + i2c_transaction.address, + i2c_transaction.write_data, + i2c_transaction.write_count, + i2c_transaction.read_data, + i2c_transaction.read_count); } else if (i2c_transaction.write_count != 0U) { - (void)stampfly_i2c_write(I2C_MASTER_NUM, - i2c_transaction.address, - i2c_transaction.write_data, - i2c_transaction.write_count); + i2c_transaction.transfer_status = stampfly_i2c_write(I2C_MASTER_NUM, + i2c_transaction.address, + i2c_transaction.write_data, + i2c_transaction.write_count); } else if (i2c_transaction.read_count != 0U) { - (void)stampfly_i2c_read(I2C_MASTER_NUM, - i2c_transaction.address, - i2c_transaction.read_data, - i2c_transaction.read_count); + i2c_transaction.transfer_status = stampfly_i2c_read(I2C_MASTER_NUM, + i2c_transaction.address, + i2c_transaction.read_data, + i2c_transaction.read_count); } #else i2c_master_stop(i2chandle); @@ -163,6 +165,17 @@ void VL53LX_PutI2cBus(void) #endif } +#if STAMPFLY_ARDUINO_ESP32_V3 +static VL53LX_Error stampfly_i2c_propagate_status(VL53LX_Error status) +{ + if ((status == VL53LX_ERROR_NONE) && (i2c_transaction.transfer_status != 0)) { + return VL53LX_ERROR_CONTROL_INTERFACE; + } + + return status; +} +#endif + int vl53lx_i2c_init(void) { int status=0; @@ -233,6 +246,9 @@ VL53LX_Error VL53LX_WriteMulti(VL53LX_DEV Dev, uint16_t index, uint8_t *pdata, u Status = VL53LX_ERROR_CONTROL_INTERFACE; } VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); +#endif return Status; } @@ -255,6 +271,9 @@ VL53LX_Error VL53LX_ReadMulti(VL53LX_DEV Dev, uint16_t index, uint8_t *pdata, ui } done: VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); +#endif return Status; } @@ -272,6 +291,9 @@ VL53LX_Error VL53LX_WrByte(VL53LX_DEV Dev, uint16_t index, uint8_t data) { Status = VL53LX_ERROR_CONTROL_INTERFACE; } VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); +#endif return Status; } @@ -290,6 +312,9 @@ VL53LX_Error VL53LX_WrWord(VL53LX_DEV Dev, uint16_t index, uint16_t data) { Status = VL53LX_ERROR_CONTROL_INTERFACE; } VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); +#endif return Status; } @@ -308,6 +333,9 @@ VL53LX_Error VL53LX_WrDWord(VL53LX_DEV Dev, uint16_t index, uint32_t data) { Status = VL53LX_ERROR_CONTROL_INTERFACE; } VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); +#endif return Status; } @@ -344,6 +372,9 @@ VL53LX_Error VL53LX_RdByte(VL53LX_DEV Dev, uint16_t index, uint8_t *data) { done: VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); +#endif return Status; } @@ -368,7 +399,14 @@ VL53LX_Error VL53LX_RdWord(VL53LX_DEV Dev, uint16_t index, uint16_t *data) { done: VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); + if (Status == VL53LX_ERROR_NONE) { + *data = ((uint16_t)_I2CBuffer[0]<<8)+ (uint16_t)_I2CBuffer[1]; + } +#else *data = ((uint16_t)_I2CBuffer[0]<<8)+ (uint16_t)_I2CBuffer[1]; +#endif return Status; } @@ -392,7 +430,14 @@ VL53LX_Error VL53LX_RdDWord(VL53LX_DEV Dev, uint16_t index, uint32_t *data) { done: VL53LX_PutI2cBus(); +#if STAMPFLY_ARDUINO_ESP32_V3 + Status = stampfly_i2c_propagate_status(Status); + if (Status == VL53LX_ERROR_NONE) { + *data = ((uint32_t)_I2CBuffer[0]<<24) + ((uint32_t)_I2CBuffer[1]<<16) + ((uint32_t)_I2CBuffer[2]<<8) + (uint32_t)_I2CBuffer[3]; + } +#else *data = ((uint32_t)_I2CBuffer[0]<<24) + ((uint32_t)_I2CBuffer[1]<<16) + ((uint32_t)_I2CBuffer[2]<<8) + (uint32_t)_I2CBuffer[3]; +#endif return Status; } @@ -575,4 +620,3 @@ VL53LX_Error VL53LX_WaitValueMaskEx( - diff --git a/src/flight_control.cpp b/src/flight_control.cpp index f03914cfce..85c81d0adc 100644 --- a/src/flight_control.cpp +++ b/src/flight_control.cpp @@ -258,9 +258,9 @@ void init_copter(void) { USBSerial.begin(115200); delay(1500); USBSerial.printf("Start StampFly!\r\n"); -#if STAMPFLY_ARDUINO_ESP32_V3 - USBSerial.printf("Environment: Arduino-ESP32 %s (3.x compatibility branch)\r\n", ESP_ARDUINO_VERSION_STR); -#endif + USBSerial.printf("Environment: Arduino-ESP32 %s (%s)\r\n", + STAMPFLY_ARDUINO_ESP32_VERSION_STRING, + STAMPFLY_ARDUINO_ESP32_BRANCH_NAME); // Initialize PWM init_pwm(); From 016caca7ba831410e52b0c805d6c4ec99bdf7b27 Mon Sep 17 00:00:00 2001 From: XI LUO <141394459+LuoIsHere@users.noreply.github.com> Date: Fri, 18 Sep 2026 10:27:39 +0800 Subject: [PATCH 7/7] ci: add Arduino 2.x and 3.x build coverage --- $null | 0 .github/workflows/Arduino-Lint-Check.yml | 11 +++++---- .github/workflows/clang-format-check.yml | 5 ++-- .github/workflows/platformio.yml | 31 +++++++++++++++++------- src/idf_component.yml | 2 -- src/idf_component.yml.orig | 2 -- src/imu.cpp | 2 +- src/sensor.cpp | 4 +-- src/tof.cpp | 2 +- 9 files changed, 34 insertions(+), 25 deletions(-) delete mode 100755 $null delete mode 100755 src/idf_component.yml delete mode 100755 src/idf_component.yml.orig diff --git a/$null b/$null deleted file mode 100755 index e69de29bb2..0000000000 diff --git a/.github/workflows/Arduino-Lint-Check.yml b/.github/workflows/Arduino-Lint-Check.yml index ee49e2f830..c58faf741e 100644 --- a/.github/workflows/Arduino-Lint-Check.yml +++ b/.github/workflows/Arduino-Lint-Check.yml @@ -1,17 +1,18 @@ name: Arduino Lint Check on: push: - branches: [ master ] + branches: [main, master] pull_request: - branches: [ master ] + branches: [main, master] + workflow_dispatch: jobs: lint: name: Lint Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: arduino/arduino-lint-action@v1 + - uses: actions/checkout@v4 + - uses: arduino/arduino-lint-action@v2 with: library-manager: update compliance: strict - project-type: all \ No newline at end of file + project-type: all diff --git a/.github/workflows/clang-format-check.yml b/.github/workflows/clang-format-check.yml index 1d8a20c2f9..4cfdca1d9a 100644 --- a/.github/workflows/clang-format-check.yml +++ b/.github/workflows/clang-format-check.yml @@ -8,14 +8,13 @@ jobs: matrix: path: - check: './' # path to include - exclude: './lib' # path to exclude - exclude: './include' # path to exclude + exclude: '(^|[\\/])(lib|include)([\\/]|$)' # paths to exclude # - check: 'src' # exclude: '(Fonts)' # Exclude file paths containing "Fonts" # - check: 'examples' # exclude: '' steps: - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4 - name: Run clang-format style check for C/C++/Protobuf programs. uses: jidicula/clang-format-action@v4.9.0 with: diff --git a/.github/workflows/platformio.yml b/.github/workflows/platformio.yml index a4f7c3ca51..759d40afb9 100644 --- a/.github/workflows/platformio.yml +++ b/.github/workflows/platformio.yml @@ -1,24 +1,37 @@ -name: Build test with platformio +name: Build test with PlatformIO -on: [push, pull_request] +on: + push: + pull_request: + workflow_dispatch: jobs: build: + name: Build (${{ matrix.environment }}) runs-on: ubuntu-latest - + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + environment: + - esp32-s3-devkitc-1 + - esp32-s3-devkitc-1-arduino3311 + steps: - - uses: actions/checkout@v3 - - uses: actions/cache@v3 + - uses: actions/checkout@v4 + - uses: actions/cache@v4 with: path: | ~/.cache/pip ~/.platformio/.cache - key: ${{ runner.os }}-pio - - uses: actions/setup-python@v4 + key: ${{ runner.os }}-pio-${{ matrix.environment }}-${{ hashFiles('platformio.ini') }} + restore-keys: | + ${{ runner.os }}-pio-${{ matrix.environment }}- + - uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install PlatformIO Core - run: pip install --upgrade platformio + run: pip install platformio==6.1.19 - name: Build PlatformIO Project - run: pio run + run: pio run -e ${{ matrix.environment }} diff --git a/src/idf_component.yml b/src/idf_component.yml deleted file mode 100755 index c792efe32e..0000000000 --- a/src/idf_component.yml +++ /dev/null @@ -1,2 +0,0 @@ -dependencies: - idf: '>=5.1' diff --git a/src/idf_component.yml.orig b/src/idf_component.yml.orig deleted file mode 100755 index c792efe32e..0000000000 --- a/src/idf_component.yml.orig +++ /dev/null @@ -1,2 +0,0 @@ -dependencies: - idf: '>=5.1' diff --git a/src/imu.cpp b/src/imu.cpp index 347f01ba0c..58b2efd32e 100644 --- a/src/imu.cpp +++ b/src/imu.cpp @@ -23,7 +23,7 @@ * SOFTWARE. */ -#include +#include #include "arduino_esp32_compat.h" #include "common.h" #include "bmi2.h" diff --git a/src/sensor.cpp b/src/sensor.cpp index 134ff90dbc..0f7aa89636 100644 --- a/src/sensor.cpp +++ b/src/sensor.cpp @@ -23,7 +23,7 @@ * SOFTWARE. */ -#include "sensor.hpp" +#include "sensor.hpp" #include "arduino_esp32_compat.h" #include "imu.hpp" #include "tof.hpp" @@ -360,4 +360,4 @@ float sensor_read(void) { uint32_t et = micros(); // USBSerial.printf("Sensor read %f %f %f\n\r", (mt-st)*1.0e-6, (et-mt)*1e-6, (et-st)*1.0e-6); return (et - st) * 1.0e-6; -} \ No newline at end of file +} diff --git a/src/tof.cpp b/src/tof.cpp index 5ad99bd5c0..496a70e221 100644 --- a/src/tof.cpp +++ b/src/tof.cpp @@ -23,7 +23,7 @@ * SOFTWARE. */ -#include +#include #include "arduino_esp32_compat.h" #include "sensor.hpp" #include "tof.hpp"