Lowrider 2 - SKR Mini 2.0 - Need help with configuration

Hello good people,

All the mechanical parts are done for my Lowrider 2 build, but I’m stuck at the electronics.

I have tried to configure my SKR Mini 2.0 board for a good part of the day, but can’t get it compiled. I’ve tried to use the V1CNC_SKR_Pro_Dual firmware as base and made some changes (motherboard, enviroment etc), but it doesn’t work at all. There are so many errors and warnings that I can’t figure out were to start :frowning:

If someone could compile a SKR Mini 2.0 firmware (with dual X and dual Y steppers, 12864 screen and without end stops) I would be very grateful :slight_smile: I can also send you some beer money for your efforts!

I’ve not seen much about the SKR Mini 2.0 on this forum. Based on a quick look at the specs for the board, I think you would be better off starting with one of the V1CNC_Skr1p3 versions rather than the Pro as the basis for your firmware. When I have problems like your, I make one small change at a time and compile to verify. That way I know what I did when things went wrong.

so many errors and warnings that I can’t figure out were to start

Just assume the first error message or two are valid and the rest are bogus. A simple programming mistake can often generate a huge number of errors and warnings. And even if some of the rest are valid, dealing with the first error and then recompiling will get you to your goal.

Are you using 2209 drivers?

When dealing with errors in C++, the quantity doesn’t matter. Always start at the top, because once the compiler finds the first error, it tries to read the rest of the code with the wrong information. One error can easily show 100s of errors, and when you fix the first, the rest may go away.

Feel free to paste the first error (or few) and I will take a look.

If you aren’t using TMC drivers, then start with the skr1p3 8825 version. Or even the ramps version .

The board have 5x 2209 integrated/nonremovable drivers. More information on the board can be found on BigTreeTechs github page.

I got an error stating that SKR Mini E3 2.0 is not compatible with the 12864 LCD, only the MKS_MINI_12864 (does this mean that the display will not work?). I changed to the MKS display to remove the error message.

I have tried some new stuff today, and the “only” errors I get are with end stops and steppers. I hope any of this make sense:

Executing task: C:\Users\fedda.platformio\penv\Scripts\pio.exe run<

Processing STM32F103RC_btt_512K (platform: ststm32@<6.2.0; board: genericSTM32F103RC; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: Redirecting...
PLATFORM: ST STM32 (6.1.1) > STM32F103RC (48k RAM. 256k Flash)
HARDWARE: STM32F103RCT6 72MHz, 48KB RAM, 512KB Flash
DEBUG: Current (blackmagic) External (blackmagic, jlink, stlink)
PACKAGES:

  • framework-arduinoststm32-maple 2.10000.200103 (1.0.0)
  • tool-stm32duino 1.0.2
  • toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
    Converting Marlin.ino
    LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 38 compatible libraries
    Scanning dependencies…
    Dependency Graph
    |-- 1.5.0
    | |-- 1.0
    |-- 0.7.1
    | |-- 1.0.0
    |-- 1.1.0
    |-- 0.4.1
    | |-- 1.0
    |-- 0.8.0
    |-- 1.0.0
    |-- 1.2.7
    | |-- 1.0
    |-- 0.0.0+20210131175438
    |-- 1.0.0
    |-- 1.0
    |--
    |-- 0.91
    |-- 1.0
    |--
    |-- <Servo(STM32F1)> 1.1.2
    Building in release mode
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduinoVariant\board.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduinoVariant\wirish\boards.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduinoVariant\wirish\boards_setup.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduinoVariant\wirish\start.S.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduinoVariant\wirish\start_c.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduinoVariant\wirish\syscalls.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\HardwareSerial.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\HardwareTimer.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\IPAddress.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\Print.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\Stream.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\WString.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\avr\dtostrf.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\cxxabi-compat.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\ext_interrupts.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\hooks.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\itoa.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\adc.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\adc_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\bkp_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\dac.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\dma.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\dma_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\exc.S.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\exti.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\exti_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\flash.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\fsmc_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\gpio.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\gpio_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\i2c.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\i2c_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\iwdg.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\nvic.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\pwr.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\rcc.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\rcc_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\spi.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\spi_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\stm32f1\performance\isrs.S.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\stm32f1\performance\vector_table.S.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\systick.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\timer.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\timer_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usart.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usart_f1.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usart_private.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\stm32f1\usb.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\stm32f1\usb_cdcacm.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\stm32f1\usb_reg_map.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\usb_lib\usb_core.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\usb_lib\usb_init.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\usb_lib\usb_mem.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\usb\usb_lib\usb_regs.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\libmaple\util.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\main.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\new.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\pwm.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\sdio.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\stm32f1\util_hooks.c.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\stm32f1\wiring_pulse_f1.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\stm32f1\wirish_debug.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\stm32f1\wirish_digital_f1.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\tone.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\usb_serial.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\wirish_analog.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\wirish_digital.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\wirish_math.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\wirish_shift.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\FrameworkArduino\wirish_time.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\HAL.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\HAL_SPI.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\SPI.cpp.o
    Compiling .pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\Servo.cpp.o
    In file included from Marlin\src\HAL\STM32F1../…/inc/MarlinConfig.h:32:0,
    from Marlin\src\HAL\STM32F1\HAL.cpp:30:
    Marlin\src\HAL\STM32F1../…/inc/…/pins/pins.h:1302:8: error: #error “No E stepper plug left for Y2!”
    #error “No E stepper plug left for Y2!”
    ^~~~~
    In file included from Marlin\src\HAL\STM32F1../…/inc/MarlinConfig.h:32:0,
    from Marlin\src\HAL\STM32F1\HAL_SPI.cpp:35:
    Marlin\src\HAL\STM32F1../…/inc/…/pins/pins.h:1302:8: error: #error “No E stepper plug left for Y2!”
    #error “No E stepper plug left for Y2!”
    ^~~~~
    In file included from Marlin\src\HAL\STM32F1../…/inc/MarlinConfig.h:41:0,
    from Marlin\src\HAL\STM32F1\HAL.cpp:30:
    Marlin\src\HAL\STM32F1../…/inc/SanityCheck.h:1938:6: error: #error “X2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    #error “X2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    ^~~~~
    Marlin\src\HAL\STM32F1../…/inc/SanityCheck.h:1959:6: error: #error “Y2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    #error “Y2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    ^~~~~
    In file included from Marlin\src\HAL\STM32F1../…/inc/MarlinConfig.h:41:0,
    from Marlin\src\HAL\STM32F1\HAL_SPI.cpp:35:
    Marlin\src\HAL\STM32F1../…/inc/SanityCheck.h:1938:6: error: #error “X2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    #error “X2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    ^~~~~
    Marlin\src\HAL\STM32F1../…/inc/SanityCheck.h:1959:6: error: #error “Y2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    #error “Y2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    ^~~~~
    In file included from Marlin\src\HAL\STM32F1../…/inc/MarlinConfig.h:32:0,
    from Marlin\src\HAL\STM32F1\Servo.cpp:25:
    Marlin\src\HAL\STM32F1../…/inc/…/pins/pins.h:1302:8: error: #error “No E stepper plug left for Y2!”
    #error “No E stepper plug left for Y2!”
    ^~~~~
    In file included from Marlin\src\HAL\STM32F1../…/inc/MarlinConfig.h:41:0,
    from Marlin\src\HAL\STM32F1\Servo.cpp:25:
    Marlin\src\HAL\STM32F1../…/inc/SanityCheck.h:1938:6: error: #error “X2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    #error “X2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    ^~~~~
    Marlin\src\HAL\STM32F1../…/inc/SanityCheck.h:1959:6: error: #error “Y2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    #error “Y2_USE_ENDSTOP has been assigned to a nonexistent endstop!”
    ^~~~~
    *** [.pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\HAL_SPI.cpp.o] Error 1
    *** [.pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\HAL.cpp.o] Error 1
    *** [.pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\Servo.cpp.o] Error 1
    ==================================================================== [FAILED] Took 10.05 seconds ====================================================================
    Environment Status Duration

STM32F103RC_btt_512K FAILED 00:00:10.049
=============================================================== 1 failed, 0 succeeded in 00:00:10.049 ===============================================================The terminal process “C:\Users\fedda.platformio\penv\Scripts\pio.exe ‘run’” terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

:+1: That looks very helpful. Thank you.

Set EXTRUDERS=0.

This is a bigger problem. The skr turbo also doesn’t assign xmax or ymax endstops. Are there enough pins? If not, you’ll need to disable the dual endstop in configuration_adv.h. If there are enough pins, then they might have a different name.

Nope. Now that I read that doc, this onky has 4 drivers, and no max endstops, so start from the V1CNC_Skr1p3_2209 (not dual) and change it to the mini. This won’t do dual endstops, but it will work fine in serial.

Yes you are correct. It is only 4x 2209 drivers, but connections for 5x steppers. I just assumed it to be 5x individual drivers…sneaky.

I will try out V1CNC_Skr1p3_2209. Thank you!

Be careful of the extra port. It is probably wired in parallel and that will cut your torque in half.

The skr pro is the only board I have seen with a series Z and it came with the second port jumpered.

I have had some progress today :slight_smile: Based the build on BBT Ender 3 config, with inspiration from V1CNC_Skr1p3_2209-2.0.7.2-src. At least the thing can be compiled and flashed! I have only connected one stepper to each of X, Y and Z.

Some issues:

1) The boot screen seems to only show the original (“Marlin bugfix” etc). I replaced the _Bootscreen.h with the one from V1.

#define SHOW_BOOTSCREEN
#define SHOW_CUSTOM_BOOTSCREEN

How to get it to display V1 engineering bootscreen?

2) The only LCD I have that seems to be supported by the SKR Mini e3 V2.0 is the one used in my Ender 3 Pro (CR10_STOCKDISPLAY), so I was at least able to test the LCD. It says that only the following screens are supported:

CR10_STOCKDISPLAY
ZONESTAR_LCD
ENDER2_STOCKDISPLAY
MKS_MINI_12864
TFTGLCD_PANEL_(SPI|I2C)

Which one of these do you recommend that I buy?

3) When connected to the CR10_STOCKDISPLAY, I can move the steppers. But when I connect to the computer in Pronterface, I can send command but the steppers don’t move. The board think it moves (, but nothing actually happens.

#define SERIAL_PORT 2
#define SERIAL_PORT_2 -1

From Pronterface:

M503
SENDING:M503
echo: G21 ; Units in mm (mm)
echo: M149 C ; Units in Celsius
echo:; Filament settings: Disabled
echo: M200 S0 D1.75
echo:; Steps per unit:
echo: M92 X200.00 Y200.00 Z800.00 E200.00
echo:; Maximum feedrates (units/s):
echo: M203 X50.00 Y50.00 Z15.00 E25.00
echo:; Maximum Acceleration (units/s2):
echo: M201 X180.00 Y180.00 Z80.00 E180.00
echo:; Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
echo: M204 P180.00 R3000.00 T180.00
echo:; Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> J<junc_dev>
echo: M205 B20000.00 S0.00 T0.00 J0.08
echo:; Home offset:
echo: M206 X0.00 Y0.00 Z0.00
echo:; Material heatup parameters:
echo: M145 S0 H185 F255
echo: M145 S1 H240 F255
echo:; PID settings:
echo: M301 P21.73 I1.54 D76.55
; Controller Fan
echo: M710 S255 I0 A1 D60 ; (100% 0%)
echo:; Stepper driver current:
echo: M906 X580 Y580 Z580
echo: M906 T0 E650
echo:; Driver stepping mode:
echo: M569 S1 X Y Z
echo: M569 S1 T0 E
echo:; Linear Advance:
echo: M900 K0.00
echo:; Filament load/unload lengths:
echo: M603 L350.00 U400.00

m119
SENDING:M119
Reporting endstop status
x_min: open
y_min: open
z_min: open

g1 x50
SENDING:G1 X50
m114
SENDING:M114
X:50.00 Y:0.00 Z:0.00 E:0.00 Count X:10000 Y:0 Z:0

Any suggestions?

The serial connection is fine. Did you have the 12V unplugged or something?

Yes, the 12V (PSU) was unplugged, I assued since it started via USB that the power would be sufficient, buy maybe not then!

Anyway, I got tired of all this firmware problems, and ordered a SKR Pro 1.2 with TFT35, so hopefully it will just be plug (and flash) and play (later, when the slow boat from China arrives…).

I was planning on buying it from Ryan, but 70 USD shipping was just too much :frowning:

Anyway, thank you @jeffeb3 for all your help!

You are so close!

The 5V USB doesn’t power the motors. Or the drivers, so they need that 12V before they will even try.

Yeah maybe, but I needed a LCD anyway so I just ordered a board as well :blush: Thank you anyway!