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
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 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.
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:
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.
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.
I have had some progress today 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.
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:
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
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