BTT_SKR_PRO, the new HAL / Analog library breaks
For the BTT_SKR_PRO, the new HAL / Analog library breaks.
In file included from /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:2: /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.h:32:4: error: #error "ANALOG_WRITE_RANGE exceeds platform PWM resolution limits." 32 | #error "ANALOG_WRITE_RANGE exceeds platform PWM resolution limits." | ^~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.h:35:4: error: #error "ANALOG_READ_RANGE exceeds platform ADC resolution limits." 35 | #error "ANALOG_READ_RANGE exceeds platform ADC resolution limits." | ^~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp: In member function 'bool AnalogClass::pwmInit(int16_t, const AnalogPwmConfig&)': /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:82:19: error: 'HAL_PWM_BITS_MIN' was not declared in this scope 82 | if (reqBits < HAL_PWM_BITS_MIN || reqBits > HAL_PWM_BITS_MAX) return false; | ^~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:82:49: error: 'HAL_PWM_BITS_MAX' was not declared in this scope 82 | if (reqBits < HAL_PWM_BITS_MIN || reqBits > HAL_PWM_BITS_MAX) return false; | ^~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:85:18: error: 'HAL_PWM_HZ_MIN' was not declared in this scope 85 | if (cfg.hz < HAL_PWM_HZ_MIN || cfg.hz > HAL_PWM_HZ_MAX) return false; | ^~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:85:45: error: 'HAL_PWM_HZ_MAX' was not declared in this scope 85 | if (cfg.hz < HAL_PWM_HZ_MIN || cfg.hz > HAL_PWM_HZ_MAX) return false; | ^~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:92:9: error: 'HAL_HAS_PER_PIN_PWM_FREQUENCY' was not declared in this scope 92 | if (HAL_HAS_PER_PIN_PWM_FREQUENCY) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:98:16: error: 'HAL_HAS_GLOBAL_PWM_FREQUENCY' was not declared in this scope 98 | } else if (HAL_HAS_GLOBAL_PWM_FREQUENCY) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:99:12: error: 'HAL_ALLOW_GLOBAL_PWM_RECONFIG' was not declared in this scope 99 | if (!HAL_ALLOW_GLOBAL_PWM_RECONFIG) return false; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:112:9: error: 'HAL_HAS_PER_PIN_PWM_RESOLUTION' was not declared in this scope 112 | if (HAL_HAS_PER_PIN_PWM_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:118:16: error: 'HAL_HAS_GLOBAL_PWM_RESOLUTION' was not declared in this scope 118 | } else if (HAL_HAS_GLOBAL_PWM_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:119:12: error: 'HAL_ALLOW_GLOBAL_PWM_RECONFIG' was not declared in this scope 119 | if (!HAL_ALLOW_GLOBAL_PWM_RECONFIG) return false; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp: In member function 'uint32_t AnalogClass::pwmRange(int16_t) const': /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:144:7: error: 'HAL_HAS_GLOBAL_PWM_RESOLUTION' was not declared in this scope 144 | if (HAL_HAS_GLOBAL_PWM_RESOLUTION && !HAL_HAS_PER_PIN_PWM_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:144:41: error: 'HAL_HAS_PER_PIN_PWM_RESOLUTION' was not declared in this scope 144 | if (HAL_HAS_GLOBAL_PWM_RESOLUTION && !HAL_HAS_PER_PIN_PWM_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp: In member function 'bool AnalogClass::adcInit(int16_t, const AnalogAdcConfig&)': /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:210:19: error: 'HAL_ADC_BITS_MIN' was not declared in this scope 210 | if (reqBits < HAL_ADC_BITS_MIN || reqBits > HAL_ADC_BITS_MAX) return false; | ^~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:210:49: error: 'HAL_ADC_BITS_MAX' was not declared in this scope 210 | if (reqBits < HAL_ADC_BITS_MIN || reqBits > HAL_ADC_BITS_MAX) return false; | ^~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:215:9: error: 'HAL_HAS_PER_PIN_ADC_RESOLUTION' was not declared in this scope 215 | if (HAL_HAS_PER_PIN_ADC_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:221:16: error: 'HAL_HAS_GLOBAL_ADC_RESOLUTION' was not declared in this scope 221 | } else if (HAL_HAS_GLOBAL_ADC_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:222:12: error: 'HAL_ALLOW_GLOBAL_ADC_RECONFIG' was not declared in this scope 222 | if (!HAL_ALLOW_GLOBAL_ADC_RECONFIG) return false; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp: In member function 'uint32_t AnalogClass::adcRange(int16_t) const': /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:246:7: error: 'HAL_HAS_GLOBAL_ADC_RESOLUTION' was not declared in this scope 246 | if (HAL_HAS_GLOBAL_ADC_RESOLUTION && !HAL_HAS_PER_PIN_ADC_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/roberts/Documents/Arduino/OnStepX/src/lib/analog/Analog.cpp:246:41: error: 'HAL_HAS_PER_PIN_ADC_RESOLUTION' was not declared in this scope 246 | if (HAL_HAS_GLOBAL_ADC_RESOLUTION && !HAL_HAS_PER_PIN_ADC_RESOLUTION) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit status 1 Compilation error: #error "ANALOG_WRITE_RANGE exceeds platform PWM resolution limits."
I'd say update and try again now.
I've just been testing my SKR Pro and tried to compile after a git pull and the errors I saw were reduced, it fails with this,
/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -DVECT_TAB_OFFSET=0x0 -DUSE_FULL_LL_DRIVER -mthumb @/Users/james/Library/Caches/arduino/sketches/F20FB3D692209BDE7CC5D77A8E193775/sketch/build.opt -c -Os -DNDEBUG -w -std=gnu++17 -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -MMD -I/Users/james/Desktop/OnStepX -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/avr -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32 -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/LL -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/usb -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/OpenAMP -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/usb/hid -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/usb/cdc -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/STM32F4xx_HAL_Driver/Inc -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/STM32F4xx_HAL_Driver/Src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/STM32F4xx -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP/open-amp/lib/include -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP/libmetal/lib/include -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP/virtual_driver -DSTM32F4xx -DARDUINO=10607 -DARDUINO_GENERIC_F407ZGTX -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"GENERIC_F407ZGTX\"" "-DVARIANT_H=\"variant_generic.h\"" -DSTM32F407xx -DUSBCON -DUSBD_VID=0 -DUSBD_PID=0 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DHAL_UART_MODULE_ENABLED -I/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/CMSIS/5.9.0/CMSIS/Core/Include/ -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include/ -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/ -I/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/CMSIS/5.9.0/CMSIS/DSP/Include -I/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/CMSIS/5.9.0/CMSIS/DSP/PrivateInclude -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/variants/STM32F4xx/F407Z(E-G)T_F417Z(E-G)T -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/Wire/src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/SoftwareSerial/src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/SrcWrapper/src -I/Users/james/Documents/Arduino/libraries/Rtc_by_Makuna/src /Users/james/Library/Caches/arduino/sketches/F20FB3D692209BDE7CC5D77A8E193775/sketch/src/telescope/focuser/Focuser.axis.cpp -o /Users/james/Library/Caches/arduino/sketches/F20FB3D692209BDE7CC5D77A8E193775/sketch/src/telescope/focuser/Focuser.axis.cpp.o
/Users/james/Desktop/OnStepX/src/telescope/Telescope.command.cpp: In member function 'bool Telescope::command(char*, char*, char*, bool*, bool*, CommandError*)': /Users/james/Desktop/OnStepX/src/telescope/Telescope.command.cpp:111:27: error: 'b' was not declared in this scope 111 | float duty = (float)b*(1.0F/255.0F); | ^ /Users/james/Desktop/OnStepX/src/telescope/Telescope.command.cpp:112:7: error: 'analog' was not declared in this scope 112 | analog.write(RETICLE_LED_PIN, RETICLE_LED_INVERT == ON ? duty : 1.0F - duty); | ^~~~~~
/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/xpack-arm-none-eabi-gcc/12.2.1-1.2/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -DVECT_TAB_OFFSET=0x0 -DUSE_FULL_LL_DRIVER -mthumb @/Users/james/Library/Caches/arduino/sketches/F20FB3D692209BDE7CC5D77A8E193775/sketch/build.opt -c -Os -DNDEBUG -w -std=gnu++17 -ffunction-sections -fdata-sections -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -MMD -I/Users/james/Desktop/OnStepX -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/avr -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32 -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/LL -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/usb -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/OpenAMP -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/usb/hid -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino/stm32/usb/cdc -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/STM32F4xx_HAL_Driver/Inc -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/STM32F4xx_HAL_Driver/Src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/STM32F4xx -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP/open-amp/lib/include -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP/libmetal/lib/include -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Middlewares/OpenAMP/virtual_driver -DSTM32F4xx -DARDUINO=10607 -DARDUINO_GENERIC_F407ZGTX -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"GENERIC_F407ZGTX\"" "-DVARIANT_H=\"variant_generic.h\"" -DSTM32F407xx -DUSBCON -DUSBD_VID=0 -DUSBD_PID=0 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DHAL_UART_MODULE_ENABLED -I/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/CMSIS/5.9.0/CMSIS/Core/Include/ -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include/ -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/ -I/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/CMSIS/5.9.0/CMSIS/DSP/Include -I/Users/james/Library/Arduino15/packages/STMicroelectronics/tools/CMSIS/5.9.0/CMSIS/DSP/PrivateInclude -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/cores/arduino -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/variants/STM32F4xx/F407Z(E-G)T_F417Z(E-G)T -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/Wire/src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/SoftwareSerial/src -I/Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/SrcWrapper/src -I/Users/james/Documents/Arduino/libraries/Rtc_by_Makuna/src /Users/james/Library/Caches/arduino/sketches/F20FB3D692209BDE7CC5D77A8E193775/sketch/src/telescope/focuser/Focuser.command.cpp -o /Users/james/Library/Caches/arduino/sketches/F20FB3D692209BDE7CC5D77A8E193775/sketch/src/telescope/focuser/Focuser.command.cpp.o
Using library Wire at version 1.0.0 in folder: /Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/Wire
Using library SoftwareSerial at version 1.0.0 in folder: /Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/SoftwareSerial
Using library SrcWrapper at version 1.0.1 in folder: /Users/james/Library/Arduino15/packages/STMicroelectronics/hardware/stm32/2.7.1/libraries/SrcWrapper
Using library Rtc by Makuna at version 2.5.0 in folder: /Users/james/Documents/Arduino/libraries/Rtc_by_Makuna exit status 1
Compilation error: 'b' was not declared in this scope
I mainly use platformio for compiling and uploading and saw the same error too.
Not sure the formatting helped with this ... I gave up trying to bold the main error messages :-/
Patched that little issue but made a ton of other changes; so let me know.
Just updated with a git clone and for me it fails to find the analog class used in src\telescope\Telescope.command.cpp. I fixed this by adding #include "../lib/analog/Analog.h" to the top of Telescope.command.cpp in src\telescope and then it compiles fine. I've not uploaded the build to the board yet.
I also did a dummy test for the FYSETC_E4 board on a fresh git clone and this compiles fine with no error reported for analog. Not sure if that helps at all or if that board doesn't use the new analog stuff.