OnStepX icon indicating copy to clipboard operation
OnStepX copied to clipboard

BTT_SKR_PRO, the new HAL / Analog library breaks

Open xer0-1ne opened this issue 4 months ago • 4 comments

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."

xer0-1ne avatar Dec 07 '25 17:12 xer0-1ne

I'd say update and try again now.

hjd1964 avatar Dec 11 '25 15:12 hjd1964

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 :-/

Jimbob-B avatar Dec 14 '25 18:12 Jimbob-B

Patched that little issue but made a ton of other changes; so let me know.

hjd1964 avatar Dec 24 '25 19:12 hjd1964

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.

Jimbob-B avatar Dec 28 '25 11:12 Jimbob-B