Hey, don’t discount it… I could still have stuffed something up… it got even weirder when I realised they were lib_ignoring Adafruit_Neopixel and SPI… so I tried commenting that out and I thing it got even more entertaining.
Against maple, it fails at
Compiling .pio/build/STM32F103RC_btt/libf84/U8glib-HAL/clib/u8g_virtual_screen.c.o
Compiling .pio/build/STM32F103RC_btt/lib990/Adafruit BusIO/Adafruit_BusIO_Register.cpp.o
Compiling .pio/build/STM32F103RC_btt/lib990/Adafruit BusIO/Adafruit_I2CDevice.cpp.o
Compiling .pio/build/STM32F103RC_btt/lib990/Adafruit BusIO/Adafruit_SPIDevice.cpp.o
.pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_I2CDevice.cpp: In member function 'bool Adafruit_I2CDevice::read(uint8_t*, size_t, bool)':
.pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_I2CDevice.cpp:160:79: error: no matching function for call to 'TwoWire::requestFrom(uint8_t, uint8_t, uint8_t)'
size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len, (uint8_t)stop);
^
In file included from /home/pfeerick/.platformio/packages/framework-arduinoststm32-maple/STM32F1/libraries/Wire/Wire.h:42:0,
from .pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_I2CDevice.h:1,
from .pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_I2CDevice.cpp:1:
/home/pfeerick/.platformio/packages/framework-arduinoststm32-maple/STM32F1/libraries/Wire/utility/WireBase.h:101:11: note: candidate: uint8 WireBase::requestFrom(uint8, int)
uint8 requestFrom(uint8, int);
^~~~~~~~~~~
/home/pfeerick/.platformio/packages/framework-arduinoststm32-maple/STM32F1/libraries/Wire/utility/WireBase.h:101:11: note: candidate expects 2 arguments, 3 provided
/home/pfeerick/.platformio/packages/framework-arduinoststm32-maple/STM32F1/libraries/Wire/utility/WireBase.h:106:11: note: candidate: uint8 WireBase::requestFrom(int, int)
uint8 requestFrom(int, int);
^~~~~~~~~~~
/home/pfeerick/.platformio/packages/framework-arduinoststm32-maple/STM32F1/libraries/Wire/utility/WireBase.h:106:11: note: candidate expects 2 arguments, 3 provided
*** [.pio/build/STM32F103RC_btt/lib990/Adafruit BusIO/Adafruit_I2CDevice.cpp.o] Error 1
.pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_SPIDevice.cpp: In member function 'void Adafruit_SPIDevice::transfer(uint8_t*, size_t)':
.pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_SPIDevice.cpp:119:31: error: no matching function for call to 'SPIClass::transfer(uint8_t*&, size_t&)'
_spi->transfer(buffer, len);
^
In file included from .pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_SPIDevice.h:1:0,
from .pio/libdeps/STM32F103RC_btt/Adafruit BusIO/Adafruit_SPIDevice.cpp:1:
Marlin/src/HAL/STM32F1/SPI.h:268:11: note: candidate: uint8_t SPIClass::transfer(uint8_t) const
uint8_t transfer(uint8_t data) const;
^~~~~~~~
Marlin/src/HAL/STM32F1/SPI.h:268:11: note: candidate expects 1 argument, 2 provided
*** [.pio/build/STM32F103RC_btt/lib990/Adafruit BusIO/Adafruit_SPIDevice.cpp.o] Error 1
So it’s something to do with Wire and SPI tripping it up there…
With board_build.core = stm32
it borks way eariler, with confetti like
Compiling .pio/build/STM32F103RC_btt/src/src/HAL/shared/HAL_spi_L6470.cpp.o
Compiling .pio/build/STM32F103RC_btt/src/src/HAL/shared/backtrace/backtrace.cpp.o
In file included from Marlin/src/HAL/STM32F1/dogm/../../../inc/../HAL/./STM32F1/HAL.h:36,
from Marlin/src/HAL/STM32F1/dogm/../../../inc/../HAL/HAL.h:26,
from Marlin/src/HAL/STM32F1/dogm/../../../inc/MarlinConfig.h:30,
from Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp:29:
Marlin/src/HAL/STM32F1/dogm/../../../inc/../HAL/./STM32F1/fastio.h:30:10: fatal error: libmaple/gpio.h: No such file or directory
30 | #include <libmaple/gpio.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/STM32F103RC_btt/src/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp.o] Error 1
In file included from Marlin/src/HAL/STM32F1/../../inc/../HAL/./STM32F1/HAL.h:36,
from Marlin/src/HAL/STM32F1/../../inc/../HAL/HAL.h:26,
from Marlin/src/HAL/STM32F1/../../inc/MarlinConfig.h:30,
from Marlin/src/HAL/STM32F1/onboard_sd.cpp:15:
Marlin/src/HAL/STM32F1/../../inc/../HAL/./STM32F1/fastio.h:30:10: fatal error: libmaple/gpio.h: No such file or directory
30 | #include <libmaple/gpio.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/STM32F103RC_btt/src/src/HAL/STM32F1/onboard_sd.cpp.o] Error 1
In file included from Marlin/src/HAL/shared/../../inc/../HAL/./STM32F1/HAL.h:36,
from Marlin/src/HAL/shared/../../inc/../HAL/HAL.h:26,
from Marlin/src/HAL/shared/../../inc/MarlinConfig.h:30,
from Marlin/src/HAL/shared/HAL_spi_L6470.cpp:28:
Marlin/src/HAL/shared/../../inc/../HAL/./STM32F1/fastio.h:30:10: fatal error: libmaple/gpio.h: No such file or directory
30 | #include <libmaple/gpio.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/STM32F103RC_btt/src/src/HAL/shared/HAL_spi_L6470.cpp.o] Error 1
In file included from Marlin/src/HAL/shared/backtrace/../../../core/../inc/../HAL/./STM32F1/HAL.h:36,
from Marlin/src/HAL/shared/backtrace/../../../core/../inc/../HAL/HAL.h:26,
from Marlin/src/HAL/shared/backtrace/../../../core/../inc/MarlinConfig.h:30,
from Marlin/src/HAL/shared/backtrace/../../../core/serial.h:24,
from Marlin/src/HAL/shared/backtrace/backtrace.cpp:29:
Marlin/src/HAL/shared/backtrace/../../../core/../inc/../HAL/./STM32F1/fastio.h:30:10: fatal error: libmaple/gpio.h: No such file or directory
30 | #include <libmaple/gpio.h>
| ^~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/STM32F103RC_btt/src/src/HAL/shared/backtrace/backtrace.cpp.o] Error 1
Since …
lib_ignore = Adafruit NeoPixel, SPI
seemed to, well, be getting ignored, I thought, let’s comment that out then… well, that broke Maple even quicker!
At that point, I’d had enough poking around… Either way… it seems something has changed in the eight months since they wrote the code…