If that is truely the only difference, and no other difference in peripherals etcs., then you can use as documented a platformio.ini
instruction to modify this base paremeter.
; limit flash to 256kB
board_upload.maximum_size = 262144
(implies an otherwise normal platformio.ini
with board = nucleo_l476rg
)
If using Arduino, you can additional tell the Arduino core that you’re not using the Nucleo variant but the ARDUINO_NUCLEO_L476RC
variant, there are macros for that, see here.
; deselect old Nucleo macro
build_unflags = -DARDUINO_NUCLEO_L476RG
; inject correct one
build_flags = -DARDUINO_GENERIC_L476RCTX
When you look at the clock_generic.c
and variant_NUCLEO_L476RG.cpp
the referenced link, you’ll see that the clock is MSI+PLL, so it should all work without a crystal. .
You can also create a new board definition per docs based on the existing one and modifying the crucial values, this would be usually called genericSTM32L476RC.json
. That would give you a cleaner way of saying board = genericSTM32L476RC
without all these other modifications, because now they’re all applied in the board manifest directly.