Skip to content

SKR E3 Turbo (lpc1769) - compilation failure with binary file transfer enabled #21304

@LucienWells

Description

@LucienWells

Bug Description

Hardware: BigTreeTech SKR E3 Turbo (LPC1769)

I am trying to compile Marlin-bugfix-2.0.x for the BTT SKR E3 Turbo with binary file transfer enabled. The firmware compiles fine with binary file transfer commented out in Configuration_adv.h, but when the flag is enabled, the firmware fails to compile.

  • tested with latest bugfix-2.0.x (downloaded on 10 March 2021)
  • I could find no similar bug reports

Configuration Files

Configuration files.zip

Steps to Reproduce

  1. Set default_envs = LPC1769 in platformio.ini
  2. Set #define MOTHERBOARD BOARD_BTT_SKR_E3_TURBO in Configuration.h
  3. Uncomment #define BINARY_FILE_TRANSFER in Configuration_adv.h
  4. Build the Firmware in VS Code / PIO

Expected behavior:

Successful compilation of firmware.

Actual behavior:

Compile attempt errors with the following message:

Log Output
Processing LPC1769 (platform: https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.3.zip; board: nxp_lpc1769; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/nxplpc-arduino-lpc176x/nxp_lpc1769.html
PLATFORM: NXP Arduino LPC176x (0.1.3) > NXP LPC1769
HARDWARE: LPC1769 120MHz, 31.97KB RAM, 464KB Flash
DEBUG: Current (cmsis-dap) On-board (cmsis-dap) External (blackmagic, jlink)
PACKAGES: 
 - framework-arduino-lpc176x 0.2.6 
 - toolchain-gccarmnoneeabi 1.90301.200702 (9.3.1)
Converting Marlin.ino
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ strict
Found 3 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <Servo> 1.0.0
|-- <TMCStepper> 0.7.1
|-- <U8glib-HAL> 0.4.3
Building in release mode

Unable to find destination disk (Autodetect Error)
Please select it in platformio.ini using the upload_port keyword (https://docs.platformio.org/en/latest/projectconf/section_env_upload.html) or copy the firmware (.pio/build/LPC1769/firmware.bin) manually to the appropriate disk

Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/HAL.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/HAL_MinSerial.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/HAL_SPI.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/MarlinSerial.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/eeprom_flash.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/eeprom_sdcard.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/eeprom_wired.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/fast_pwm.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/include/digipot_mcp4451_I2C_routines.c.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/include/i2c_util.c.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/main.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/tft/tft_spi.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/tft/xpt2046.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/timers.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/u8g/LCD_I2C_routines.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_hw_spi.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_ssd_hw_i2c.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_st7920_hw_spi.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_st7920_sw_spi.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/u8g/u8g_com_HAL_LPC1768_sw_spi.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/usb_serial.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/LPC1768/watchdog.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/Delay.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/HAL_MinSerial.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/backtrace/backtrace.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/backtrace/unwmemaccess.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/eeprom_api.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/eeprom_if_i2c.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/esp_wifi.cpp.o
Compiling .pio/build/LPC1769/src/src/HAL/shared/servo.cpp.o
Compiling .pio/build/LPC1769/src/src/MarlinCore.cpp.o
Compiling .pio/build/LPC1769/src/src/core/serial.cpp.o
Compiling .pio/build/LPC1769/src/src/core/utility.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/babystep.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/bedlevel/abl/abl.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/bedlevel/bedlevel.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/binary_stream.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/bltouch.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/cooler.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/e_parser.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/pause.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/powerloss.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/tmc_util.cpp.o
Compiling .pio/build/LPC1769/src/src/feature/z_stepper_align.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/bedlevel/G42.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/bedlevel/M420.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/bedlevel/abl/G29.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/bedlevel/abl/M421.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/calibrate/G28.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/calibrate/G34_M422.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/calibrate/M48.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M200-M205.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M220.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M221.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M301.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M302.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M304.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M309.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/config/M92.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M108_M112_M410.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M111.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M120_M121.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M17_M18_M84.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M211.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M280.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M400.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M80_M81.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M85.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M993_M994.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M997.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/M999.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/control/T.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/eeprom/M500-M504.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/advance/M900.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/digipot/M907-M910.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/pause/G27.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/pause/M600.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/pause/M603.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/powerloss/M1000.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/powerloss/M413.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/trinamic/M122.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/trinamic/M569.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/trinamic/M906.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/feature/trinamic/M911-M914.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/gcode.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/gcode_d.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/geometry/G92.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/geometry/M206_M428.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/host/M110.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/host/M113.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/host/M114.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/host/M115.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/host/M118.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/host/M119.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/lcd/M0_M1.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/lcd/M117.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/lcd/M145.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/lcd/M300.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/lcd/M414.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/lcd/M73.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/motion/G0_G1.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/motion/G2_G3.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/motion/G4.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/motion/M290.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/parser.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/probe/G30.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/probe/M401_M402.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/probe/M851.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/queue.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M1001.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M20.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M21_M22.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M23.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M24_M25.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M26.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M27.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M28_M29.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M30.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M32.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M33.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M34.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M524.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/sd/M928.cpp.o
Compiling .pio/build/LPC1769/src/src/gcode/stats/M31.cpp.o
In file included from Marlin/src/gcode/sd/../../inc/../core/boards.h:24,
                 from Marlin/src/gcode/sd/../../inc/MarlinConfigPre.h:37,
                 from Marlin/src/gcode/sd/../../inc/MarlinConfig.h:28,
                 from Marlin/src/gcode/sd/M28_M29.cpp:23:
Marlin/src/gcode/sd/M28_M29.cpp: In static member function 'static void GcodeSuite::M28()':
Marlin/src/gcode/sd/M28_M29.cpp:52:88: error: cannot convert 'serial_index_t' to 'int8_t' {aka 'signed char'} in assignment
   52 |       TERN_(HAS_MULTI_SERIAL, card.transfer_port_index = queue.ring_buffer.command_port());
      |                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                                                                        |
      |                                                                                        serial_index_t
Marlin/src/gcode/sd/../../inc/../core/macros.h:477:26: note: in definition of macro 'THIRD'
  477 | #define THIRD(a,b,c,...) c
      |                          ^
Marlin/src/gcode/sd/../../inc/../core/macros.h:195:29: note: in expansion of macro '___TERN'
  195 | #define __TERN(T,V...)      ___TERN(_CAT(_NO,T),V)  // Prepend '_NO' to get '_NOT_0' or '_NOT_1'
      |                             ^~~~~~~
Marlin/src/gcode/sd/../../inc/../core/macros.h:194:29: note: in expansion of macro '__TERN'
  194 | #define _TERN(E,V...)       __TERN(_CAT(T_,E),V)    // Prepend 'T_' to get 'T_0' or 'T_1'
      |                             ^~~~~~
Marlin/src/gcode/sd/../../inc/../core/macros.h:193:29: note: in expansion of macro '_TERN'
  193 | #define TERN_(O,A)          _TERN(_ENA_1(O),,A)     // OPTION converted to A or '<nul>'
      |                             ^~~~~
Marlin/src/gcode/sd/M28_M29.cpp:52:7: note: in expansion of macro 'TERN_'
   52 |       TERN_(HAS_MULTI_SERIAL, card.transfer_port_index = queue.ring_buffer.command_port());
      |       ^~~~~
*** [.pio/build/LPC1769/src/src/gcode/sd/M28_M29.cpp.o] Error 1
======================================================= [FAILED] Took 66.37 seconds =======================================================

Environment    Status    Duration
-------------  --------  ------------
LPC1769        FAILED    00:01:06.368
================================================== 1 failed, 0 succeeded in 00:01:06.368 ==================================================

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions