diff --git a/.gitignore b/.gitignore index 807d4ed..157e94d 100644 --- a/.gitignore +++ b/.gitignore @@ -20,8 +20,7 @@ examples/dshot300/debug.cfg examples/dshot300/esp32.svd examples/dshot300/debug_custom.json examples/dshot300/debug.svd -/build -.vscode/c_cpp_properties.json +GEMINI.md .gemini/ gha-creds-*.json diff --git a/.vscode/arduino.json b/.vscode/arduino.json deleted file mode 100644 index b6596e1..0000000 --- a/.vscode/arduino.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "configuration": "JTAGAdapter=default,PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,LoopCore=1,EventsCore=1,DebugLevel=none,EraseFlash=all,ZigbeeMode=default", - "board": "esp32:esp32:esp32", - "sketch": "examples/dshot300/dshot300.ino", - "output": "build", - "port": "/dev/ttyUSB0" -} \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json deleted file mode 100644 index fa01868..0000000 --- a/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,899 +0,0 @@ -{ - "version": 4, - "configurations": [ - { - "name": "ESP32", - "compilerPath": "~/.arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++", - "compilerArgs": [ - "-MMD", - "-w", - "-Werror=return-type", - "-iprefix" - ], - "intelliSenseMode": "linux-gcc-x64", - "includePath": [ - "~/.arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/**", - "~/.arduino15/packages/esp32/hardware/esp32/3.3.0/variants/esp32/**", - "~/.arduino15/packages/esp32/hardware/esp32/3.3.0/libraries/**", - "~/.arduino15/packages/esp32/hardware/esp32/3.3.0/**", - "~/.arduino15/packages/esp32/tools/**", - "~/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/c++/14.2.0/**", - "~/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/c++/14.2.0/xtensa-esp-elf/esp32/**", - "~/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/c++/14.2.0/backward/**", - "~/.arduino15/packages/esp32/tools/esp-x32/2411/lib/gcc/xtensa-esp-elf/14.2.0/include/**", - "~/.arduino15/packages/esp32/tools/esp-x32/2411/lib/gcc/xtensa-esp-elf/14.2.0/include-fixed/**", - "~/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/**", - "~/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-b66b5448-v1/esp32/include/**", - "~/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-b66b5448-v1/esp32/include/freertos/FreeRTOS-Kernel/portable/xtensa/include/freertos/", - "~/Arduino/libraries/**", - "${workspaceFolder}/**" - ], - "forcedInclude": [ - "~/.arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/Arduino.h" - ], - "cStandard": "c17", - "cppStandard": "c++17", - "defines": [ - "F_CPU=240000000L", - "ESP32", - "ARDUINO=10607", - "ARDUINO_ESP32_DEV", - "ARDUINO_ARCH_ESP32", - "ARDUINO_BOARD=\"ESP32_DEV\"", - "ARDUINO_VARIANT=\"esp32\"", - "ARDUINO_PARTITION_default", - "ARDUINO_HOST_OS=\"linux\"", - "ARDUINO_FQBN=\"esp32:esp32:esp32:JTAGAdapter=default,PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,LoopCore=1,EventsCore=1,DebugLevel=none,EraseFlash=none,ZigbeeMode=default\"", - "ESP32=ESP32", - "CORE_DEBUG_LEVEL=0", - "ARDUINO_RUNNING_CORE=1", - "ARDUINO_EVENT_RUNNING_CORE=1", - "ARDUINO_USB_CDC_ON_BOOT=0", - "__DBL_MIN_EXP__=(-1021)", - "__XCHAL_HAVE_FP=1", - "__cpp_nontype_template_parameter_auto=201606L", - "__UINT_LEAST16_MAX__=0xffff", - "__ATOMIC_ACQUIRE=2", - "__FLT_MIN__=1.1754943508222875e-38F", - "__GCC_IEC_559_COMPLEX=0", - "__XCHAL_HAVE_PREDICTED_BRANCHES=0", - "__cpp_aggregate_nsdmi=201304L", - "__UINT_LEAST8_TYPE__=unsigned char", - "__INTMAX_C(c)=c ## LL", - "__XCHAL_HAVE_ADDX=1", - "__CHAR_BIT__=8", - "__XCHAL_DCACHE_LINESIZE=16", - "__XTENSA_MARCH_EARLIEST=260003", - "__XCHAL_DCACHE_LINEWIDTH=4", - "__UINT8_MAX__=0xff", - "__WINT_MAX__=0xffffffffU", - "__FLT32_MIN_EXP__=(-125)", - "__cpp_static_assert=201411L", - "__ORDER_LITTLE_ENDIAN__=1234", - "__SIZE_MAX__=0xffffffffU", - "__WCHAR_MAX__=0xffff", - "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1", - "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1", - "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1", - "__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)", - "__GCC_ATOMIC_CHAR_LOCK_FREE=2", - "__GCC_IEC_559=0", - "__FLT32X_DECIMAL_DIG__=17", - "__FLT_EVAL_METHOD__=0", - "__cpp_binary_literals=201304L", - "__FLT64_DECIMAL_DIG__=17", - "__cpp_noexcept_function_type=201510L", - "__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2", - "__cpp_variadic_templates=200704L", - "__UINT_FAST64_MAX__=0xffffffffffffffffULL", - "__SIG_ATOMIC_TYPE__=int", - "__DBL_MIN_10_EXP__=(-307)", - "__FINITE_MATH_ONLY__=0", - "__cpp_variable_templates=201304L", - "__XCHAL_HAVE_L32R=1", - "__FLT32X_MAX_EXP__=1024", - "__GNUC_PATCHLEVEL__=0", - "__FLT32_HAS_DENORM__=1", - "__UINT_FAST8_MAX__=0xffffffffU", - "__cpp_rvalue_reference=200610L", - "__XCHAL_HAVE_LOOPS=1", - "__cpp_nested_namespace_definitions=201411L", - "__XCHAL_DEBUGLEVEL=6", - "__INT8_C(c)=c", - "__XCHAL_HAVE_DFP_RECIP=0", - "__INT_LEAST8_WIDTH__=8", - "__cpp_variadic_using=201611L", - "__UINT_LEAST64_MAX__=0xffffffffffffffffULL", - "__INT_LEAST8_MAX__=0x7f", - "__cpp_attributes=200809L", - "__cpp_capture_star_this=201603L", - "__SHRT_MAX__=0x7fff", - "__LDBL_MAX__=1.7976931348623157e+308L", - "__cpp_if_constexpr=201606L", - "__XCHAL_ICACHE_LINESIZE=16", - "__LDBL_IS_IEC_60559__=1", - "__UINT_LEAST8_MAX__=0xff", - "__GCC_ATOMIC_BOOL_LOCK_FREE=2", - "__UINTMAX_TYPE__=long long unsigned int", - "__cpp_nsdmi=200809L", - "__FLT_EVAL_METHOD_TS_18661_3__=0", - "__UINT32_MAX__=0xffffffffUL", - "__GXX_EXPERIMENTAL_CXX0X__=1", - "__LDBL_MAX_EXP__=1024", - "__WINT_MIN__=0U", - "__FLT32X_IS_IEC_60559__=1", - "__XCHAL_HAVE_THREADPTR=1", - "__INT_LEAST16_WIDTH__=16", - "__SCHAR_MAX__=0x7f", - "__WCHAR_MIN__=0", - "__XCHAL_ICACHE_LINEWIDTH=4", - "__INT64_C(c)=c ## LL", - "__GCC_ATOMIC_POINTER_LOCK_FREE=2", - "__ATOMIC_SEQ_CST=5", - "__SIZEOF_INT__=4", - "__FLT32X_MANT_DIG__=53", - "__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2", - "__cpp_aligned_new=201606L", - "__XCHAL_HAVE_FP_RECIP=1", - "__FLT32_MAX_10_EXP__=38", - "__STDC_HOSTED__=1", - "__XCHAL_HAVE_MUL32=1", - "__XTENSA_EL__=1", - "__cpp_decltype_auto=201304L", - "__DBL_DIG__=15", - "__XCHAL_HAVE_MUL16=1", - "__FLT_EPSILON__=1.1920928955078125e-7F", - "__GXX_WEAK__=1", - "__SHRT_WIDTH__=16", - "__FLT32_IS_IEC_60559__=1", - "__LDBL_MIN__=2.2250738585072014e-308L", - "__DBL_IS_IEC_60559__=1", - "__cpp_threadsafe_static_init=200806L", - "__cpp_enumerator_attributes=201411L", - "__XCHAL_HAVE_MMU=0", - "__FLT32X_HAS_INFINITY__=1", - "__INT32_MAX__=0x7fffffffL", - "__XCHAL_HAVE_DIV32=1", - "__INT_WIDTH__=32", - "__XTENSA_MARCH_LATEST=260003", - "__DECIMAL_DIG__=17", - "__FLT64_EPSILON__=2.2204460492503131e-16F64", - "__INT16_MAX__=0x7fff", - "__FLT64_MIN_EXP__=(-1021)", - "__XCHAL_DCACHE_SIZE=0", - "__LDBL_HAS_QUIET_NAN__=1", - "__cpp_return_type_deduction=201304L", - "__XCHAL_HAVE_BOOLEANS=1", - "__FLT64_MANT_DIG__=53", - "__XTHAL_ABI_WINDOWED=0", - "__GNUC__=14", - "__GXX_RTTI=1", - "__FLT_HAS_DENORM__=1", - "__SIZEOF_LONG_DOUBLE__=8", - "__XCHAL_HAVE_CONST16=0", - "__BIGGEST_ALIGNMENT__=16", - "__STDC_UTF_16__=1", - "__FLT64_MAX_10_EXP__=308", - "__cpp_delegating_constructors=200604L", - "__DBL_MAX__=double(1.7976931348623157e+308L)", - "__cpp_raw_strings=200710L", - "__INT_FAST32_MAX__=0x7fffffff", - "__DBL_HAS_INFINITY__=1", - "__cpp_deduction_guides=201703L", - "__HAVE_SPECULATION_SAFE_VALUE=1", - "__cpp_fold_expressions=201603L", - "__INTPTR_WIDTH__=32", - "__UINT_LEAST32_MAX__=0xffffffffUL", - "__FLT32X_HAS_DENORM__=1", - "__INT_FAST16_TYPE__=int", - "__XCHAL_HAVE_RELEASE_SYNC=1", - "__LDBL_HAS_DENORM__=1", - "__cplusplus=201703L", - "__cpp_ref_qualifiers=200710L", - "__INT_LEAST32_MAX__=0x7fffffffL", - "__DEPRECATED=1", - "__cpp_rvalue_references=200610L", - "__DBL_MAX_EXP__=1024", - "__WCHAR_WIDTH__=16", - "__FLT32_MAX__=3.4028234663852886e+38F32", - "__GCC_ATOMIC_LONG_LOCK_FREE=2", - "__PTRDIFF_MAX__=0x7fffffff", - "__FLT32_HAS_QUIET_NAN__=1", - "__GNUG__=14", - "__LONG_LONG_MAX__=0x7fffffffffffffffLL", - "__SIZEOF_SIZE_T__=4", - "__SIZEOF_WINT_T__=4", - "__FLT32X_DIG__=15", - "__LONG_LONG_WIDTH__=64", - "__cpp_initializer_lists=200806L", - "__FLT32_MAX_EXP__=128", - "__XCHAL_HAVE_MINMAX=1", - "__cpp_hex_float=201603L", - "__XCHAL_NUM_IBREAK=2", - "__GXX_ABI_VERSION=1019", - "__FLT_MIN_EXP__=(-125)", - "__cpp_lambdas=200907L", - "__INT_FAST64_TYPE__=long long int", - "__FP_FAST_FMAF=1", - "__FLT64_DENORM_MIN__=4.9406564584124654e-324F64", - "__DBL_MIN__=double(2.2250738585072014e-308L)", - "__SIZEOF_POINTER__=4", - "__DBL_HAS_QUIET_NAN__=1", - "__FLT32X_EPSILON__=2.2204460492503131e-16F32x", - "__XSHAL_HAVE_TEXT_SECTION_LITERALS=1", - "__FLT64_MIN_10_EXP__=(-307)", - "__REGISTER_PREFIX__", - "__UINT16_MAX__=0xffff", - "__XSHAL_USE_ABSOLUTE_LITERALS=0", - "__LDBL_HAS_INFINITY__=1", - "__FLT32_MIN__=1.1754943508222875e-38F32", - "__UINT8_TYPE__=unsigned char", - "__FLT_DIG__=6", - "__NO_INLINE__=1", - "__DEC_EVAL_METHOD__=2", - "__FLT_MANT_DIG__=24", - "__LDBL_DECIMAL_DIG__=17", - "__VERSION__=\"14.2.0\"", - "__UINT64_C(c)=c ## ULL", - "__XCHAL_NUM_AREGS=64", - "__cpp_unicode_characters=201411L", - "__XCHAL_HAVE_XEA3=0", - "__GCC_ATOMIC_INT_LOCK_FREE=2", - "__XCHAL_HAVE_DENSITY=1", - "__FLT32_MANT_DIG__=24", - "__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__", - "__XCHAL_HAVE_CLAMPS=0", - "__XCHAL_HAVE_DFP_RSQRT=0", - "__cpp_aggregate_bases=201603L", - "__XCHAL_HAVE_NSA=1", - "__XCHAL_HAVE_WINDOWED=1", - "__SCHAR_WIDTH__=8", - "__INT32_C(c)=c ## L", - "__ORDER_PDP_ENDIAN__=3412", - "__INT_FAST32_TYPE__=int", - "__UINT_LEAST16_TYPE__=short unsigned int", - "__DBL_HAS_DENORM__=1", - "__XCHAL_HAVE_DEBUG=1", - "__cpp_rtti=199711L", - "__SIZE_TYPE__=unsigned int", - "__UINT64_MAX__=0xffffffffffffffffULL", - "__FLT_IS_IEC_60559__=1", - "__GNUC_WIDE_EXECUTION_CHARSET_NAME=\"UTF-16LE\"", - "__INT8_TYPE__=signed char", - "__cpp_digit_separators=201309L", - "__ELF__=1", - "__XSHAL_ABI=0", - "__xtensa__=1", - "__FLT_RADIX__=2", - "__INT_LEAST16_TYPE__=short int", - "__LDBL_EPSILON__=2.2204460492503131e-16L", - "__UINTMAX_C(c)=c ## ULL", - "__FLT32X_MIN__=2.2250738585072014e-308F32x", - "__XCHAL_HAVE_DFP_SQRT=0", - "__SIG_ATOMIC_MAX__=0x7fffffff", - "__XCHAL_HAVE_MAC16=1", - "__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2", - "__USER_LABEL_PREFIX__", - "__SIZEOF_PTRDIFF_T__=4", - "__XCHAL_MMU_MIN_PTE_PAGE_SIZE=1", - "__XCHAL_DCACHE_IS_WRITEBACK=0", - "__SIZEOF_LONG__=4", - "__LDBL_DIG__=15", - "__FLT64_IS_IEC_60559__=1", - "__XCHAL_MAX_INSTRUCTION_SIZE=3", - "__FLT32X_MIN_EXP__=(-1021)", - "__INT_FAST16_MAX__=0x7fffffff", - "__GCC_CONSTRUCTIVE_SIZE=32", - "__FLT64_DIG__=15", - "__UINT_FAST32_MAX__=0xffffffffU", - "__UINT_LEAST64_TYPE__=long long unsigned int", - "__FLT_HAS_QUIET_NAN__=1", - "__FLT_MAX_10_EXP__=38", - "__FLT_HAS_INFINITY__=1", - "__GNUC_EXECUTION_CHARSET_NAME=\"UTF-8\"", - "__CHAR_UNSIGNED__=1", - "__cpp_unicode_literals=200710L", - "__UINT_FAST16_TYPE__=unsigned int", - "__INT_FAST32_WIDTH__=32", - "__CHAR16_TYPE__=short unsigned int", - "__PRAGMA_REDEFINE_EXTNAME=1", - "__SIZE_WIDTH__=32", - "__INT_LEAST16_MAX__=0x7fff", - "__INT64_MAX__=0x7fffffffffffffffLL", - "__FLT32_DENORM_MIN__=1.4012984643248171e-45F32", - "__SIG_ATOMIC_WIDTH__=32", - "__INT_LEAST64_TYPE__=long long int", - "__INT16_TYPE__=short int", - "__INT_LEAST8_TYPE__=signed char", - "__cpp_structured_bindings=201606L", - "__INT_FAST8_MAX__=0x7fffffff", - "__INTPTR_MAX__=0x7fffffff", - "__cpp_sized_deallocation=201309L", - "__cpp_guaranteed_copy_elision=201606L", - "__FLT64_HAS_QUIET_NAN__=1", - "__FLT32_MIN_10_EXP__=(-37)", - "__EXCEPTIONS=1", - "__UINT16_C(c)=c", - "__XCHAL_M_STAGE=3", - "__PTRDIFF_WIDTH__=32", - "__LDBL_MANT_DIG__=53", - "__cpp_range_based_for=201603L", - "__FLT64_HAS_INFINITY__=1", - "__STDCPP_DEFAULT_NEW_ALIGNMENT__=8", - "__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)", - "__XCHAL_ICACHE_SIZE=0", - "__cpp_nontype_template_args=201411L", - "__INTPTR_TYPE__=int", - "__UINT16_TYPE__=short unsigned int", - "__WCHAR_TYPE__=short unsigned int", - "__XCHAL_HAVE_DEPBITS=0", - "__SIZEOF_FLOAT__=4", - "__UINTPTR_MAX__=0xffffffffU", - "__INT_FAST64_WIDTH__=64", - "__cpp_decltype=200707L", - "__FLT32_DECIMAL_DIG__=9", - "__INT_FAST64_MAX__=0x7fffffffffffffffLL", - "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1", - "__FLT_NORM_MAX__=3.4028234663852886e+38F", - "__XCHAL_HAVE_DFP=0", - "__FLT32_HAS_INFINITY__=1", - "__UINT_FAST64_TYPE__=long long unsigned int", - "__cpp_inline_variables=201606L", - "__INT_MAX__=0x7fffffff", - "__XCHAL_HAVE_EXCLUSIVE=0", - "__STDCPP_THREADS__=1", - "__INT64_TYPE__=long long int", - "__XCHAL_HAVE_DFP_DIV=0", - "__FLT_MAX_EXP__=128", - "__XCHAL_INST_FETCH_WIDTH=4", - "__DBL_MANT_DIG__=53", - "__cpp_inheriting_constructors=201511L", - "__INT_LEAST64_MAX__=0x7fffffffffffffffLL", - "__FP_FAST_FMAF32=1", - "__WINT_TYPE__=unsigned int", - "__UINT_LEAST32_TYPE__=long unsigned int", - "__SIZEOF_SHORT__=2", - "__FLT32_NORM_MAX__=3.4028234663852886e+38F32", - "__LDBL_MIN_EXP__=(-1021)", - "__XCHAL_HAVE_S32C1I=1", - "__FLT64_MAX__=1.7976931348623157e+308F64", - "__WINT_WIDTH__=32", - "__cpp_template_auto=201606L", - "__INT_LEAST64_WIDTH__=64", - "__FLT32X_MAX_10_EXP__=308", - "__cpp_namespace_attributes=201411L", - "__WCHAR_UNSIGNED__=1", - "__LDBL_MAX_10_EXP__=308", - "__ATOMIC_RELAXED=0", - "__DBL_EPSILON__=double(2.2204460492503131e-16L)", - "__XCHAL_HAVE_SEXT=1", - "__INT_LEAST32_TYPE__=long int", - "__XTENSA_WINDOWED_ABI__=1", - "__UINT8_C(c)=c", - "__FLT64_MAX_EXP__=1024", - "__SIZEOF_WCHAR_T__=2", - "__XCHAL_HAVE_FP_POSTINC=1", - "__FLT64_NORM_MAX__=1.7976931348623157e+308F64", - "__INTMAX_MAX__=0x7fffffffffffffffLL", - "__INT_FAST8_TYPE__=int", - "__XCHAL_HAVE_MUL32_HIGH=1", - "__GNUC_STDC_INLINE__=1", - "__FLT64_HAS_DENORM__=1", - "__FLT32_EPSILON__=1.1920928955078125e-7F32", - "__DBL_DECIMAL_DIG__=17", - "__STDC_UTF_32__=1", - "__XCHAL_HAVE_FP_DIV=1", - "__INT_FAST8_WIDTH__=32", - "__FLT32X_MAX__=1.7976931348623157e+308F32x", - "__DBL_NORM_MAX__=double(1.7976931348623157e+308L)", - "__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__", - "__GCC_DESTRUCTIVE_SIZE=32", - "__XTENSA__=1", - "__INTMAX_WIDTH__=64", - "__ORDER_BIG_ENDIAN__=4321", - "__XTHAL_ABI_CALL0=1", - "__cpp_runtime_arrays=198712L", - "__FLT32_DIG__=6", - "__UINT64_TYPE__=long long unsigned int", - "__UINT32_C(c)=c ## UL", - "__cpp_alias_templates=200704L", - "__FLT_DENORM_MIN__=1.4012984643248171e-45F", - "__INT8_MAX__=0x7f", - "__LONG_WIDTH__=32", - "__UINT_FAST32_TYPE__=unsigned int", - "__FLT32X_NORM_MAX__=1.7976931348623157e+308F32x", - "__CHAR32_TYPE__=long unsigned int", - "__FLT_MAX__=3.4028234663852886e+38F", - "__cpp_constexpr=201603L", - "__XCHAL_HAVE_FP_RSQRT=1", - "__INT32_TYPE__=long int", - "__SIZEOF_DOUBLE__=8", - "__cpp_exceptions=199711L", - "__FLT_MIN_10_EXP__=(-37)", - "__FLT64_MIN__=2.2250738585072014e-308F64", - "__INT_LEAST32_WIDTH__=32", - "__INTMAX_TYPE__=long long int", - "__XCHAL_HAVE_ABS=1", - "__FLT32X_HAS_QUIET_NAN__=1", - "__ATOMIC_CONSUME=1", - "__XCHAL_NUM_DBREAK=2", - "__XCHAL_HAVE_WIDE_BRANCHES=0", - "__GNUC_MINOR__=2", - "__INT_FAST16_WIDTH__=32", - "__UINTMAX_MAX__=0xffffffffffffffffULL", - "__FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x", - "__cpp_template_template_args=201611L", - "__DBL_MAX_10_EXP__=308", - "__LDBL_DENORM_MIN__=4.9406564584124654e-324L", - "__INT16_C(c)=c", - "__STDC__=1", - "__PTRDIFF_TYPE__=int", - "__LONG_MAX__=0x7fffffffL", - "__XCHAL_HAVE_FP_SQRT=1", - "__UINT32_TYPE__=long unsigned int", - "__FLT32X_MIN_10_EXP__=(-307)", - "__UINTPTR_TYPE__=unsigned int", - "__LDBL_MIN_10_EXP__=(-307)", - "__cpp_generic_lambdas=201304L", - "__SIZEOF_LONG_LONG__=8", - "__cpp_USER_defined_literals=200809L", - "__GCC_ATOMIC_LLONG_LOCK_FREE=1", - "__FLT_DECIMAL_DIG__=9", - "__UINT_FAST16_MAX__=0xffffffffU", - "__LDBL_NORM_MAX__=1.7976931348623157e+308L", - "__GCC_ATOMIC_SHORT_LOCK_FREE=2", - "__XCHAL_HAVE_BE=0", - "__UINT_FAST8_TYPE__=unsigned int", - "__cpp_init_captures=201304L", - "__ATOMIC_ACQ_REL=4", - "__ATOMIC_RELEASE=3", - "RMT_CLK_SRC_DEFAULT = SOC_MOD_CLK_APB", - "USBCON" - ] - }, - { - "name": "Arduino", - "compilerPath": "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++", - "compilerArgs": [ - "-MMD", - "-w", - "-Werror=return-type", - "-iprefix" - ], - "intelliSenseMode": "gcc-x64", - "includePath": [ - "/home/derdoktor667/Github/DShotRMT/examples/dshot300", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-b66b5448-v1/esp32/qio_qspi/include", - "/home/derdoktor667/.arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32", - "/home/derdoktor667/.arduino15/packages/esp32/hardware/esp32/3.3.0/variants/esp32", - "/home/derdoktor667/Arduino/libraries/DShotRMT/src", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/c++/14.2.0", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/c++/14.2.0/xtensa-esp-elf/esp32", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include/c++/14.2.0/backward", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/lib/gcc/xtensa-esp-elf/14.2.0/include", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/lib/gcc/xtensa-esp-elf/14.2.0/include-fixed", - "/home/derdoktor667/.arduino15/packages/esp32/tools/esp-x32/2411/xtensa-esp-elf/include" - ], - "forcedInclude": [ - "/home/derdoktor667/.arduino15/packages/esp32/hardware/esp32/3.3.0/cores/esp32/Arduino.h" - ], - "cStandard": "c11", - "cppStandard": "c++11", - "defines": [ - "F_CPU=240000000L", - "ARDUINO=10607", - "ARDUINO_ESP32_DEV", - "ARDUINO_ARCH_ESP32", - "ARDUINO_BOARD=\"ESP32_DEV\"", - "ARDUINO_VARIANT=\"esp32\"", - "ARDUINO_PARTITION_default", - "ARDUINO_HOST_OS=\"linux\"", - "ARDUINO_FQBN=\"esp32:esp32:esp32:JTAGAdapter=default,PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,LoopCore=1,EventsCore=1,DebugLevel=none,EraseFlash=all,ZigbeeMode=default\"", - "ESP32=ESP32", - "CORE_DEBUG_LEVEL=0", - "ARDUINO_RUNNING_CORE=1", - "ARDUINO_EVENT_RUNNING_CORE=1", - "ARDUINO_USB_CDC_ON_BOOT=0", - "__DBL_MIN_EXP__=(-1021)", - "__XCHAL_HAVE_FP=1", - "__cpp_nontype_template_parameter_auto=201606L", - "__UINT_LEAST16_MAX__=0xffff", - "__ATOMIC_ACQUIRE=2", - "__FLT_MIN__=1.1754943508222875e-38F", - "__GCC_IEC_559_COMPLEX=0", - "__XCHAL_HAVE_PREDICTED_BRANCHES=0", - "__cpp_aggregate_nsdmi=201304L", - "__UINT_LEAST8_TYPE__=unsigned char", - "__INTMAX_C(c)=c ## LL", - "__XCHAL_HAVE_ADDX=1", - "__CHAR_BIT__=8", - "__XCHAL_DCACHE_LINESIZE=16", - "__XTENSA_MARCH_EARLIEST=260003", - "__XCHAL_DCACHE_LINEWIDTH=4", - "__UINT8_MAX__=0xff", - "__WINT_MAX__=0xffffffffU", - "__FLT32_MIN_EXP__=(-125)", - "__cpp_static_assert=201411L", - "__ORDER_LITTLE_ENDIAN__=1234", - "__SIZE_MAX__=0xffffffffU", - "__WCHAR_MAX__=0xffff", - "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1", - "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1", - "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1", - "__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)", - "__GCC_ATOMIC_CHAR_LOCK_FREE=2", - "__GCC_IEC_559=0", - "__FLT32X_DECIMAL_DIG__=17", - "__FLT_EVAL_METHOD__=0", - "__cpp_binary_literals=201304L", - "__FLT64_DECIMAL_DIG__=17", - "__cpp_noexcept_function_type=201510L", - "__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2", - "__cpp_variadic_templates=200704L", - "__UINT_FAST64_MAX__=0xffffffffffffffffULL", - "__SIG_ATOMIC_TYPE__=int", - "__DBL_MIN_10_EXP__=(-307)", - "__FINITE_MATH_ONLY__=0", - "__cpp_variable_templates=201304L", - "__XCHAL_HAVE_L32R=1", - "__FLT32X_MAX_EXP__=1024", - "__GNUC_PATCHLEVEL__=0", - "__FLT32_HAS_DENORM__=1", - "__UINT_FAST8_MAX__=0xffffffffU", - "__cpp_rvalue_reference=200610L", - "__XCHAL_HAVE_LOOPS=1", - "__cpp_nested_namespace_definitions=201411L", - "__XCHAL_DEBUGLEVEL=6", - "__INT8_C(c)=c", - "__XCHAL_HAVE_DFP_RECIP=0", - "__INT_LEAST8_WIDTH__=8", - "__cpp_variadic_using=201611L", - "__UINT_LEAST64_MAX__=0xffffffffffffffffULL", - "__INT_LEAST8_MAX__=0x7f", - "__cpp_attributes=200809L", - "__cpp_capture_star_this=201603L", - "__SHRT_MAX__=0x7fff", - "__LDBL_MAX__=1.7976931348623157e+308L", - "__cpp_if_constexpr=201606L", - "__XCHAL_ICACHE_LINESIZE=16", - "__LDBL_IS_IEC_60559__=1", - "__UINT_LEAST8_MAX__=0xff", - "__GCC_ATOMIC_BOOL_LOCK_FREE=2", - "__UINTMAX_TYPE__=long long unsigned int", - "__cpp_nsdmi=200809L", - "__FLT_EVAL_METHOD_TS_18661_3__=0", - "__UINT32_MAX__=0xffffffffUL", - "__GXX_EXPERIMENTAL_CXX0X__=1", - "__LDBL_MAX_EXP__=1024", - "__WINT_MIN__=0U", - "__FLT32X_IS_IEC_60559__=1", - "__XCHAL_HAVE_THREADPTR=1", - "__INT_LEAST16_WIDTH__=16", - "__SCHAR_MAX__=0x7f", - "__WCHAR_MIN__=0", - "__XCHAL_ICACHE_LINEWIDTH=4", - "__INT64_C(c)=c ## LL", - "__GCC_ATOMIC_POINTER_LOCK_FREE=2", - "__ATOMIC_SEQ_CST=5", - "__SIZEOF_INT__=4", - "__FLT32X_MANT_DIG__=53", - "__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2", - "__cpp_aligned_new=201606L", - "__XCHAL_HAVE_FP_RECIP=1", - "__FLT32_MAX_10_EXP__=38", - "__STDC_HOSTED__=1", - "__XCHAL_HAVE_MUL32=1", - "__XTENSA_EL__=1", - "__cpp_decltype_auto=201304L", - "__DBL_DIG__=15", - "__XCHAL_HAVE_MUL16=1", - "__FLT_EPSILON__=1.1920928955078125e-7F", - "__GXX_WEAK__=1", - "__SHRT_WIDTH__=16", - "__FLT32_IS_IEC_60559__=1", - "__LDBL_MIN__=2.2250738585072014e-308L", - "__DBL_IS_IEC_60559__=1", - "__cpp_threadsafe_static_init=200806L", - "__cpp_enumerator_attributes=201411L", - "__XCHAL_HAVE_MMU=0", - "__FLT32X_HAS_INFINITY__=1", - "__INT32_MAX__=0x7fffffffL", - "__XCHAL_HAVE_DIV32=1", - "__INT_WIDTH__=32", - "__XTENSA_MARCH_LATEST=260003", - "__DECIMAL_DIG__=17", - "__FLT64_EPSILON__=2.2204460492503131e-16F64", - "__INT16_MAX__=0x7fff", - "__FLT64_MIN_EXP__=(-1021)", - "__XCHAL_DCACHE_SIZE=0", - "__LDBL_HAS_QUIET_NAN__=1", - "__cpp_return_type_deduction=201304L", - "__XCHAL_HAVE_BOOLEANS=1", - "__FLT64_MANT_DIG__=53", - "__XTHAL_ABI_WINDOWED=0", - "__GNUC__=14", - "__GXX_RTTI=1", - "__FLT_HAS_DENORM__=1", - "__SIZEOF_LONG_DOUBLE__=8", - "__XCHAL_HAVE_CONST16=0", - "__BIGGEST_ALIGNMENT__=16", - "__STDC_UTF_16__=1", - "__FLT64_MAX_10_EXP__=308", - "__cpp_delegating_constructors=200604L", - "__DBL_MAX__=double(1.7976931348623157e+308L)", - "__cpp_raw_strings=200710L", - "__INT_FAST32_MAX__=0x7fffffff", - "__DBL_HAS_INFINITY__=1", - "__cpp_deduction_guides=201703L", - "__HAVE_SPECULATION_SAFE_VALUE=1", - "__cpp_fold_expressions=201603L", - "__INTPTR_WIDTH__=32", - "__UINT_LEAST32_MAX__=0xffffffffUL", - "__FLT32X_HAS_DENORM__=1", - "__INT_FAST16_TYPE__=int", - "__XCHAL_HAVE_RELEASE_SYNC=1", - "__LDBL_HAS_DENORM__=1", - "__cplusplus=201703L", - "__cpp_ref_qualifiers=200710L", - "__INT_LEAST32_MAX__=0x7fffffffL", - "__DEPRECATED=1", - "__cpp_rvalue_references=200610L", - "__DBL_MAX_EXP__=1024", - "__WCHAR_WIDTH__=16", - "__FLT32_MAX__=3.4028234663852886e+38F32", - "__GCC_ATOMIC_LONG_LOCK_FREE=2", - "__PTRDIFF_MAX__=0x7fffffff", - "__FLT32_HAS_QUIET_NAN__=1", - "__GNUG__=14", - "__LONG_LONG_MAX__=0x7fffffffffffffffLL", - "__SIZEOF_SIZE_T__=4", - "__SIZEOF_WINT_T__=4", - "__FLT32X_DIG__=15", - "__LONG_LONG_WIDTH__=64", - "__cpp_initializer_lists=200806L", - "__FLT32_MAX_EXP__=128", - "__XCHAL_HAVE_MINMAX=1", - "__cpp_hex_float=201603L", - "__XCHAL_NUM_IBREAK=2", - "__GXX_ABI_VERSION=1019", - "__FLT_MIN_EXP__=(-125)", - "__cpp_lambdas=200907L", - "__INT_FAST64_TYPE__=long long int", - "__FP_FAST_FMAF=1", - "__FLT64_DENORM_MIN__=4.9406564584124654e-324F64", - "__DBL_MIN__=double(2.2250738585072014e-308L)", - "__SIZEOF_POINTER__=4", - "__DBL_HAS_QUIET_NAN__=1", - "__FLT32X_EPSILON__=2.2204460492503131e-16F32x", - "__XSHAL_HAVE_TEXT_SECTION_LITERALS=1", - "__FLT64_MIN_10_EXP__=(-307)", - "__REGISTER_PREFIX__", - "__UINT16_MAX__=0xffff", - "__XSHAL_USE_ABSOLUTE_LITERALS=0", - "__LDBL_HAS_INFINITY__=1", - "__FLT32_MIN__=1.1754943508222875e-38F32", - "__UINT8_TYPE__=unsigned char", - "__FLT_DIG__=6", - "__NO_INLINE__=1", - "__DEC_EVAL_METHOD__=2", - "__FLT_MANT_DIG__=24", - "__LDBL_DECIMAL_DIG__=17", - "__VERSION__=\"14.2.0\"", - "__UINT64_C(c)=c ## ULL", - "__XCHAL_NUM_AREGS=64", - "__cpp_unicode_characters=201411L", - "__XCHAL_HAVE_XEA3=0", - "__GCC_ATOMIC_INT_LOCK_FREE=2", - "__XCHAL_HAVE_DENSITY=1", - "__FLT32_MANT_DIG__=24", - "__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__", - "__XCHAL_HAVE_CLAMPS=0", - "__XCHAL_HAVE_DFP_RSQRT=0", - "__cpp_aggregate_bases=201603L", - "__XCHAL_HAVE_NSA=1", - "__XCHAL_HAVE_WINDOWED=1", - "__SCHAR_WIDTH__=8", - "__INT32_C(c)=c ## L", - "__ORDER_PDP_ENDIAN__=3412", - "__INT_FAST32_TYPE__=int", - "__UINT_LEAST16_TYPE__=short unsigned int", - "__DBL_HAS_DENORM__=1", - "__XCHAL_HAVE_DEBUG=1", - "__cpp_rtti=199711L", - "__SIZE_TYPE__=unsigned int", - "__UINT64_MAX__=0xffffffffffffffffULL", - "__FLT_IS_IEC_60559__=1", - "__GNUC_WIDE_EXECUTION_CHARSET_NAME=\"UTF-16LE\"", - "__INT8_TYPE__=signed char", - "__cpp_digit_separators=201309L", - "__ELF__=1", - "__XSHAL_ABI=0", - "__xtensa__=1", - "__FLT_RADIX__=2", - "__INT_LEAST16_TYPE__=short int", - "__LDBL_EPSILON__=2.2204460492503131e-16L", - "__UINTMAX_C(c)=c ## ULL", - "__FLT32X_MIN__=2.2250738585072014e-308F32x", - "__XCHAL_HAVE_DFP_SQRT=0", - "__SIG_ATOMIC_MAX__=0x7fffffff", - "__XCHAL_HAVE_MAC16=1", - "__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2", - "__USER_LABEL_PREFIX__", - "__SIZEOF_PTRDIFF_T__=4", - "__XCHAL_MMU_MIN_PTE_PAGE_SIZE=1", - "__XCHAL_DCACHE_IS_WRITEBACK=0", - "__SIZEOF_LONG__=4", - "__LDBL_DIG__=15", - "__FLT64_IS_IEC_60559__=1", - "__XCHAL_MAX_INSTRUCTION_SIZE=3", - "__FLT32X_MIN_EXP__=(-1021)", - "__INT_FAST16_MAX__=0x7fffffff", - "__GCC_CONSTRUCTIVE_SIZE=32", - "__FLT64_DIG__=15", - "__UINT_FAST32_MAX__=0xffffffffU", - "__UINT_LEAST64_TYPE__=long long unsigned int", - "__FLT_HAS_QUIET_NAN__=1", - "__FLT_MAX_10_EXP__=38", - "__FLT_HAS_INFINITY__=1", - "__GNUC_EXECUTION_CHARSET_NAME=\"UTF-8\"", - "__CHAR_UNSIGNED__=1", - "__cpp_unicode_literals=200710L", - "__UINT_FAST16_TYPE__=unsigned int", - "__INT_FAST32_WIDTH__=32", - "__CHAR16_TYPE__=short unsigned int", - "__PRAGMA_REDEFINE_EXTNAME=1", - "__SIZE_WIDTH__=32", - "__INT_LEAST16_MAX__=0x7fff", - "__INT64_MAX__=0x7fffffffffffffffLL", - "__FLT32_DENORM_MIN__=1.4012984643248171e-45F32", - "__SIG_ATOMIC_WIDTH__=32", - "__INT_LEAST64_TYPE__=long long int", - "__INT16_TYPE__=short int", - "__INT_LEAST8_TYPE__=signed char", - "__cpp_structured_bindings=201606L", - "__INT_FAST8_MAX__=0x7fffffff", - "__INTPTR_MAX__=0x7fffffff", - "__cpp_sized_deallocation=201309L", - "__cpp_guaranteed_copy_elision=201606L", - "__FLT64_HAS_QUIET_NAN__=1", - "__FLT32_MIN_10_EXP__=(-37)", - "__EXCEPTIONS=1", - "__UINT16_C(c)=c", - "__XCHAL_M_STAGE=3", - "__PTRDIFF_WIDTH__=32", - "__LDBL_MANT_DIG__=53", - "__cpp_range_based_for=201603L", - "__FLT64_HAS_INFINITY__=1", - "__STDCPP_DEFAULT_NEW_ALIGNMENT__=8", - "__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)", - "__XCHAL_ICACHE_SIZE=0", - "__cpp_nontype_template_args=201411L", - "__INTPTR_TYPE__=int", - "__UINT16_TYPE__=short unsigned int", - "__WCHAR_TYPE__=short unsigned int", - "__XCHAL_HAVE_DEPBITS=0", - "__SIZEOF_FLOAT__=4", - "__UINTPTR_MAX__=0xffffffffU", - "__INT_FAST64_WIDTH__=64", - "__cpp_decltype=200707L", - "__FLT32_DECIMAL_DIG__=9", - "__INT_FAST64_MAX__=0x7fffffffffffffffLL", - "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1", - "__FLT_NORM_MAX__=3.4028234663852886e+38F", - "__XCHAL_HAVE_DFP=0", - "__FLT32_HAS_INFINITY__=1", - "__UINT_FAST64_TYPE__=long long unsigned int", - "__cpp_inline_variables=201606L", - "__INT_MAX__=0x7fffffff", - "__XCHAL_HAVE_EXCLUSIVE=0", - "__STDCPP_THREADS__=1", - "__INT64_TYPE__=long long int", - "__XCHAL_HAVE_DFP_DIV=0", - "__FLT_MAX_EXP__=128", - "__XCHAL_INST_FETCH_WIDTH=4", - "__DBL_MANT_DIG__=53", - "__cpp_inheriting_constructors=201511L", - "__INT_LEAST64_MAX__=0x7fffffffffffffffLL", - "__FP_FAST_FMAF32=1", - "__WINT_TYPE__=unsigned int", - "__UINT_LEAST32_TYPE__=long unsigned int", - "__SIZEOF_SHORT__=2", - "__FLT32_NORM_MAX__=3.4028234663852886e+38F32", - "__LDBL_MIN_EXP__=(-1021)", - "__XCHAL_HAVE_S32C1I=1", - "__FLT64_MAX__=1.7976931348623157e+308F64", - "__WINT_WIDTH__=32", - "__cpp_template_auto=201606L", - "__INT_LEAST64_WIDTH__=64", - "__FLT32X_MAX_10_EXP__=308", - "__cpp_namespace_attributes=201411L", - "__WCHAR_UNSIGNED__=1", - "__LDBL_MAX_10_EXP__=308", - "__ATOMIC_RELAXED=0", - "__DBL_EPSILON__=double(2.2204460492503131e-16L)", - "__XCHAL_HAVE_SEXT=1", - "__INT_LEAST32_TYPE__=long int", - "__XTENSA_WINDOWED_ABI__=1", - "__UINT8_C(c)=c", - "__FLT64_MAX_EXP__=1024", - "__SIZEOF_WCHAR_T__=2", - "__XCHAL_HAVE_FP_POSTINC=1", - "__FLT64_NORM_MAX__=1.7976931348623157e+308F64", - "__INTMAX_MAX__=0x7fffffffffffffffLL", - "__INT_FAST8_TYPE__=int", - "__XCHAL_HAVE_MUL32_HIGH=1", - "__GNUC_STDC_INLINE__=1", - "__FLT64_HAS_DENORM__=1", - "__FLT32_EPSILON__=1.1920928955078125e-7F32", - "__DBL_DECIMAL_DIG__=17", - "__STDC_UTF_32__=1", - "__XCHAL_HAVE_FP_DIV=1", - "__INT_FAST8_WIDTH__=32", - "__FLT32X_MAX__=1.7976931348623157e+308F32x", - "__DBL_NORM_MAX__=double(1.7976931348623157e+308L)", - "__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__", - "__GCC_DESTRUCTIVE_SIZE=32", - "__XTENSA__=1", - "__INTMAX_WIDTH__=64", - "__ORDER_BIG_ENDIAN__=4321", - "__XTHAL_ABI_CALL0=1", - "__cpp_runtime_arrays=198712L", - "__FLT32_DIG__=6", - "__UINT64_TYPE__=long long unsigned int", - "__UINT32_C(c)=c ## UL", - "__cpp_alias_templates=200704L", - "__FLT_DENORM_MIN__=1.4012984643248171e-45F", - "__INT8_MAX__=0x7f", - "__LONG_WIDTH__=32", - "__UINT_FAST32_TYPE__=unsigned int", - "__FLT32X_NORM_MAX__=1.7976931348623157e+308F32x", - "__CHAR32_TYPE__=long unsigned int", - "__FLT_MAX__=3.4028234663852886e+38F", - "__cpp_constexpr=201603L", - "__XCHAL_HAVE_FP_RSQRT=1", - "__INT32_TYPE__=long int", - "__SIZEOF_DOUBLE__=8", - "__cpp_exceptions=199711L", - "__FLT_MIN_10_EXP__=(-37)", - "__FLT64_MIN__=2.2250738585072014e-308F64", - "__INT_LEAST32_WIDTH__=32", - "__INTMAX_TYPE__=long long int", - "__XCHAL_HAVE_ABS=1", - "__FLT32X_HAS_QUIET_NAN__=1", - "__ATOMIC_CONSUME=1", - "__XCHAL_NUM_DBREAK=2", - "__XCHAL_HAVE_WIDE_BRANCHES=0", - "__GNUC_MINOR__=2", - "__INT_FAST16_WIDTH__=32", - "__UINTMAX_MAX__=0xffffffffffffffffULL", - "__FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x", - "__cpp_template_template_args=201611L", - "__DBL_MAX_10_EXP__=308", - "__LDBL_DENORM_MIN__=4.9406564584124654e-324L", - "__INT16_C(c)=c", - "__STDC__=1", - "__PTRDIFF_TYPE__=int", - "__LONG_MAX__=0x7fffffffL", - "__XCHAL_HAVE_FP_SQRT=1", - "__UINT32_TYPE__=long unsigned int", - "__FLT32X_MIN_10_EXP__=(-307)", - "__UINTPTR_TYPE__=unsigned int", - "__LDBL_MIN_10_EXP__=(-307)", - "__cpp_generic_lambdas=201304L", - "__SIZEOF_LONG_LONG__=8", - "__cpp_user_defined_literals=200809L", - "__GCC_ATOMIC_LLONG_LOCK_FREE=1", - "__FLT_DECIMAL_DIG__=9", - "__UINT_FAST16_MAX__=0xffffffffU", - "__LDBL_NORM_MAX__=1.7976931348623157e+308L", - "__GCC_ATOMIC_SHORT_LOCK_FREE=2", - "__XCHAL_HAVE_BE=0", - "__UINT_FAST8_TYPE__=unsigned int", - "__cpp_init_captures=201304L", - "__ATOMIC_ACQ_REL=4", - "__ATOMIC_RELEASE=3", - "USBCON" - ] - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index b961c02..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "C_Cpp.errorSquiggles": "enabled", - "C_Cpp.default.compilerPath": "~/.arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++", - "files.associations": { - ".fantomasignore": "ignore", - "string_view": "cpp" - } -} \ No newline at end of file diff --git a/GEMINI.md b/GEMINI.md deleted file mode 100644 index b6d5112..0000000 --- a/GEMINI.md +++ /dev/null @@ -1,29 +0,0 @@ -# GEMINI.md - Arbeitsanweisungen für den KI-Assistenten - -Dieses Dokument beschreibt die Kernprinzipien und projektspezifischen Regeln, nach denen der KI-Assistent arbeitet. - -## 1. Allgemeine Prinzipien - -- **Kontext-Treue:** Ich halte mich strikt an die Konventionen des Projekts (Code-Stil, Bibliotheken, Architektur). Vor Änderungen analysiere ich den bestehenden Code. -- **Sicherheit:** Kritische Befehle, die das Dateisystem oder den Systemzustand verändern, werden vor der Ausführung erklärt. Ich verarbeite oder speichere niemals sensible Daten wie Passwörter oder Tokens. -- **Effizienz und Präzision:** Meine Antworten sind kurz und direkt. Ich nutze Werkzeuge für Aktionen und Text nur für die Kommunikation. - -## 2. Technische Arbeitsweise - -- **Dateisystem:** Ich verwende für alle Dateioperationen ausschließlich absolute Pfade. -- **Shell-Befehle:** Modifizierende Befehle werden erklärt. Langlaufende Prozesse starte ich als Hintergrund-Jobs (`&`). -- **Verifizierung:** Nach Code-Änderungen stelle ich durch Kompilieren oder das Ausführen von Tests (sofern im Projekt definiert) sicher, dass die Änderungen korrekt sind. - -## 3. Git-Workflow - -- **Analyse:** Vor einem Commit analysiere ich den Zustand des Repositories mit `git status`, `git diff` und `git log`, um Konsistenz zu gewährleisten. -- **Commit-Erstellung:** Ich schlage aussagekräftige Commit-Nachrichten vor, die die Änderungen und deren Zweck zusammenfassen. -- **Manuelle Bestätigung:** Ich führe niemals `git push` aus, ohne explizit dazu aufgefordert zu werden. - -## 4. Projektspezifische Konventionen (DShotRMT) - -- **Technologie-Stack:** C++, `arduino-cli` -- **Build-Befehl:** `arduino-cli compile --fqbn esp32:esp32:esp32 ` -- **Namenskonventionen:** `_private_var` für private Member, `camelCase` für öffentliche Funktionen. -- **Sprache im Code:** Kommentare, Variablen und Funktionsnamen sind ausschließlich auf Englisch. -- **Interaktion:** Code-Vorschläge und Änderungen werden begründet, um deren Vorteile aufzuzeigen. diff --git a/README.md b/README.md index 8e131dd..4ac852e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This library is a rewrite using the modern ESP-IDF 5 RMT encoder API (`rmt_tx.h` ## 🚀 Core Features - **Multiple DShot Modes:** Supports DSHOT150, DSHOT300, DSHOT600, and DSHOT1200. -- **Bidirectional DShot:** Full support for RPM telemetry feedback. +- **Bidirectional DShot:** Implemented, but currently not officially supported due to instability and external hardware requirements. - **Hardware-Timed Signals:** Precise signal generation using the ESP32 RMT peripheral, ensuring stable and reliable motor control. - **Simple API:** Easy-to-use C++ class with intuitive methods like `sendThrottlePercent()`. - **Efficient and Lightweight:** The core library has no external dependencies. @@ -100,12 +100,12 @@ lib_deps = The main class is `DShotRMT`. Here are the most important methods: -- `DShotRMT(gpio_num_t gpio, dshot_mode_t mode, bool is_bidirectional = false)`: Constructor to create a new DShotRMT instance. +- `DShotRMT(gpio_num_t gpio, dshot_mode_t mode, bool is_bidirectional = false)`: Constructor to create a new DShotRMT instance. (Note: Bidirectional DShot is currently not officially supported.) - `begin()`: Initializes the RMT peripheral and the DShot encoder. - `sendThrottlePercent(float percent)`: Sends a throttle value as a percentage (0.0-100.0). - `sendThrottle(uint16_t throttle)`: Sends a raw throttle value (48-2047) to the motor. - `sendCommand(uint16_t command)`: Sends a DShot command (0-47) to the motor. -- `getTelemetry(uint16_t magnet_count)`: Receives and parses telemetry data from the motor (for bidirectional DShot). +- `getTelemetry(uint16_t magnet_count)`: Receives and parses telemetry data from the motor (for bidirectional DShot, which is currently not officially supported). For more details, please refer to the `DShotRMT.h` header file. diff --git a/examples/dshot300/dshot300.ino b/examples/dshot300/dshot300.ino index 0de9d39..d13533c 100644 --- a/examples/dshot300/dshot300.ino +++ b/examples/dshot300/dshot300.ino @@ -21,7 +21,9 @@ static constexpr gpio_num_t MOTOR01_PIN = GPIO_NUM_27; static constexpr dshot_mode_t DSHOT_MODE = DSHOT300; // BiDirectional DShot Support (default: false) -static constexpr auto IS_BIDIRECTIONAL = true; +// Note: Bidirectional DShot is currently not officially supported +// due to instability and external hardware requirements. +static constexpr auto IS_BIDIRECTIONAL = false; // Motor magnet count for RPM calculation static constexpr auto MOTOR01_MAGNET_COUNT = 14; diff --git a/examples/throttle_percent/throttle_percent.ino b/examples/throttle_percent/throttle_percent.ino index 3d74d14..3cb4cf5 100644 --- a/examples/throttle_percent/throttle_percent.ino +++ b/examples/throttle_percent/throttle_percent.ino @@ -20,7 +20,9 @@ static constexpr gpio_num_t MOTOR01_PIN = GPIO_NUM_27; static constexpr dshot_mode_t DSHOT_MODE = DSHOT300; // BiDirectional DShot Support (default: false) -static constexpr auto IS_BIDIRECTIONAL = true; +// Note: Bidirectional DShot is currently not officially supported +// due to instability and external hardware requirements. +static constexpr auto IS_BIDIRECTIONAL = false; // Motor magnet count for RPM calculation static constexpr auto MOTOR01_MAGNET_COUNT = 14; diff --git a/examples/web_client/web_client.ino b/examples/web_client/web_client.ino index dcbad8b..41491f0 100644 --- a/examples/web_client/web_client.ino +++ b/examples/web_client/web_client.ino @@ -45,7 +45,7 @@ static constexpr auto MOTOR01_PIN = 17; static constexpr dshot_mode_t DSHOT_MODE = DSHOT300; // BiDirectional DShot Support (default: false) -static constexpr auto IS_BIDIRECTIONAL = false; +static constexpr auto IS_BIDIRECTIONAL = false; // Note: Bidirectional DShot is currently not officially supported due to instability and external hardware requirements. // Motor magnet count for RPM calculation static constexpr auto MOTOR01_MAGNET_COUNT = 14; diff --git a/examples/web_control/web_control.ino b/examples/web_control/web_control.ino index 07a8141..38b0915 100644 --- a/examples/web_control/web_control.ino +++ b/examples/web_control/web_control.ino @@ -44,7 +44,7 @@ static constexpr auto MOTOR01_PIN = 17; static constexpr dshot_mode_t DSHOT_MODE = DSHOT300; // BiDirectional DShot Support (default: false) -static constexpr auto IS_BIDIRECTIONAL = false; +static constexpr auto IS_BIDIRECTIONAL = false; // Note: Bidirectional DShot is currently not officially supported due to instability and external hardware requirements. // Motor magnet count for RPM calculation static constexpr auto MOTOR01_MAGNET_COUNT = 14; diff --git a/library.properties b/library.properties index 8dc6841..7ee1a53 100644 --- a/library.properties +++ b/library.properties @@ -4,7 +4,7 @@ author=Wastl Kraus maintainer=Wastl Kraus license=MIT sentence=DShotRMT Library supporting all DShot Types and speeds. Tested with BlHeli_S. -paragraph=This library can control a BlHeli_S by using encoded DShot commands. Features bidirectional DShot support for RPM telemetry. +paragraph=This library can control a BlHeli_S by using encoded DShot commands. category=Signal Input/Output url=https://github.com/derdoktor667/DShotRMT architectures=esp32 diff --git a/src/DShotRMT.cpp b/src/DShotRMT.cpp index d998cab..7c64131 100644 --- a/src/DShotRMT.cpp +++ b/src/DShotRMT.cpp @@ -133,11 +133,13 @@ dshot_result_t DShotRMT::begin() rmt_disable(_rmt_tx_channel); rmt_del_channel(_rmt_tx_channel); _rmt_tx_channel = nullptr; + if (_rmt_rx_channel) { rmt_disable(_rmt_rx_channel); rmt_del_channel(_rmt_rx_channel); _rmt_rx_channel = nullptr; } + return {false, ENCODER_INIT_FAILED}; } @@ -412,7 +414,8 @@ dshot_result_t DShotRMT::_initRXChannel() dshot_result_t DShotRMT::_initDShotEncoder() { - rmt_copy_encoder_config_t encoder_config = {}; + rmt_copy_encoder_config_t encoder_config = {}; + if (rmt_new_copy_encoder(&encoder_config, &_dshot_encoder) != DSHOT_OK) { return {false, ENCODER_INIT_FAILED};