-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Creality Ender 3 V2 with SKR Mini E3 V2.0 #535
Comments
Installation is very easy and board has exactly same dimmensions as Creality v4.2.2 and v4.2.7, connector layout is also very similar. Only hardware modification required is a display cable adapter made with 8 dupont F-M cables. Wiring diagram: below are all required modifications to Ender 3 V2 configurations (thanks @jernejp21, bigtreetech/BIGTREETECH-SKR-mini-E3#424 (comment)): --- ../Configurations/config/examples/Creality/Ender-3 V2/Configuration.h 2021-07-02 10:58:20.000000000 +0200
+++ Marlin/Configuration.h 2021-07-02 12:38:43.000000000 +0200
@@ -104,7 +104,7 @@
*
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
-#define SERIAL_PORT 1
+#define SERIAL_PORT -1
/**
* Serial Port Baud Rate
@@ -141,9 +141,17 @@
// Choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
- #define MOTHERBOARD BOARD_CREALITY_V4
+ #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V2_0
#endif
// Name displayed in the LCD "Ready" message and Info menu
#define CUSTOM_MACHINE_NAME "Ender-3 V2"
@@ -833,9 +841,9 @@
* TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
* :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
*/
-#define X_DRIVER_TYPE TMC2208_STANDALONE
-#define Y_DRIVER_TYPE TMC2208_STANDALONE
-#define Z_DRIVER_TYPE TMC2208_STANDALONE
+#define X_DRIVER_TYPE TMC2209
+#define Y_DRIVER_TYPE TMC2209
+#define Z_DRIVER_TYPE TMC2209
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
@@ -844,7 +852,7 @@
//#define I_DRIVER_TYPE A4988
//#define J_DRIVER_TYPE A4988
//#define K_DRIVER_TYPE A4988
-#define E0_DRIVER_TYPE TMC2208_STANDALONE
+#define E0_DRIVER_TYPE TMC2209
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
@@ -1293,9 +1301,9 @@
// @section machine
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
-#define INVERT_X_DIR false
-#define INVERT_Y_DIR false
-#define INVERT_Z_DIR true
+#define INVERT_X_DIR true
+#define INVERT_Y_DIR true
+#define INVERT_Z_DIR false
//#define INVERT_I_DIR false
//#define INVERT_J_DIR false
//#define INVERT_K_DIR false
@@ -1303,7 +1311,7 @@
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
-#define INVERT_E0_DIR false
+#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
--- ../Configurations/config/examples/Creality/Ender-3 V2/Configuration_adv.h 2021-07-02 10:58:20.000000000 +0200
+++ Marlin/Configuration_adv.h 2021-07-02 15:13:14.000000000 +0200
@@ -469,7 +469,7 @@
* The fan turns on automatically whenever any driver is enabled and turns
* off (or reduces to idle speed) shortly after drivers are turned off.
*/
-//#define USE_CONTROLLER_FAN
+#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
//#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered
@@ -2550,7 +2550,7 @@
#define INTERPOLATE true
#if AXIS_IS_TMC(X)
- #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current.
+ #define X_CURRENT 580 // (mA) RMS current. Multiply by 1.414 for peak current.
#define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.11
@@ -2568,7 +2568,7 @@
#endif
#if AXIS_IS_TMC(Y)
- #define Y_CURRENT 800
+ #define Y_CURRENT 580
#define Y_CURRENT_HOME Y_CURRENT
#define Y_MICROSTEPS 16
#define Y_RSENSE 0.11
@@ -2586,7 +2586,7 @@
#endif
#if AXIS_IS_TMC(Z)
- #define Z_CURRENT 800
+ #define Z_CURRENT 580
#define Z_CURRENT_HOME Z_CURRENT
#define Z_MICROSTEPS 16
#define Z_RSENSE 0.11
@@ -2649,7 +2649,7 @@
#endif
#if AXIS_IS_TMC(E0)
- #define E0_CURRENT 800
+ #define E0_CURRENT 700
#define E0_MICROSTEPS 16
#define E0_RSENSE 0.11
#define E0_CHAIN_POS -1
@@ -2813,7 +2813,7 @@
* Define your own with:
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
*/
- #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below)
+ #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below)
//#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below)
//#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X
//#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) Note that enabling SERIAL_PORT_2 will cause compilation errors, this is due to: |
Env used in BTT repo, i.e. With |
At the moment enabling serial port simultaneously on USB (serial port -1) and TFT pins (serial port 2) is impossible due to: MarlinFirmware/Marlin#22299 |
You can get serial to work by editing the STM32Duino code and changing the USB_EP to single buffer instead of double buffer. |
@blazewicz Did u test this combo long enough to tell for sure it does not create freeze issues on the printer anymore? Have it up and running now, but getting random freezes... :-( (have created a new issue ticket with more description today. I know this has been a subject in the past already, but latest fixes in serial comm should have fixed it, but apprently haven't for me... my env is STM32F103RC_btt_512K) |
@RipperDrone I'm not sure if this is the same issue you're refering to, but every few hours USB serial connection resets and so I can't run longer prints from Octoprint. It might be related to USB serial buffer, but I haven't verified it yet. Also once in a while I get random Z offset error. Once it prints perfect and at next print, after homing nozzle is too high and I get no adhesion. Only full printer restart helps. I use standard Z stop, no ABL. |
@RipperDrone have you checked whether your board has original ST chip or GigaDevice clone? |
@blazewicz Thank you for following up.
|
Oh, ok, I was able to successfully run 10h+ prints from SD card so I guess its not related to the firmware, maybe your hardware is faulty.
Sadly now, during the chip shortage its a lottery what you get.
I don't think it matters, nothing in linker script is aligned to the end of flash, so as long as binary is <256k there's no difference. Of course its better when linker knows actual size of target flash. BTW I think |
@looxonline: true, I changed following and USB serial works. I wish there was a switch. --- ~/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32/usb/usbd_ep_conf.c 2021-07-19 00:26:39.000000000 +0200
+++ ~/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32/usb/usbd_ep_conf.c 2021-07-19 00:26:30.000000000 +0200
@@ -37,7 +37,7 @@
#else
{0x00, PMA_EP0_OUT_ADDR, PCD_SNG_BUF},
{0x80, PMA_EP0_IN_ADDR, PCD_SNG_BUF},
- {CDC_OUT_EP, PMA_CDC_OUT_ADDR, PCD_DBL_BUF},
+ {CDC_OUT_EP, PMA_CDC_OUT_ADDR, PCD_SNG_BUF},
{CDC_IN_EP, PMA_CDC_IN_ADDR, PCD_SNG_BUF},
{CDC_CMD_EP, PMA_CDC_CMD_ADDR, PCD_SNG_BUF}
#endif |
I can confirm above solution works: Ender 3 Pro, SKR Mini E3 v2.0, chipset GigaDevice GD32F103RET6. |
I have followed this mod to the T for a Voxelab Aquila but I'm having issues with freezing and resetting when I home Z. I am using a 3D touch setup on the probe port of the BTT SKR mini e3 v2. I've triple checked all the pins are connected correctly and figure it is something in the firmware. EDIT: Never mind, signal line on probe is PC14 not PA14. Another issue is that the input on the screen is backward. Previously I would rotate the knob clockwise to increase numbers ie nozzle temp, or to scroll down the menus, Now I have to rotate counter clockwise. Not a huge issue but it is annoying. How can I change that as well? |
Update: Turns out the screen freezing and reset was happening after completion of homing any axis. Home X only... freeze. Home All, it homes all axis then freezes. However, I tried applying blazewicz changes (including those found here https://github.com/MarlinFirmware/Marlin/pull/22288/files#diff-5a0102cf6df090779b130b924a2511da4922373bfc60c8c4eca427343ba6cc73R120-R124) to Alexqzd's fork V1.3.5 for the Aquila and everything seems to be working fine on the initial testing. I'll go ahead and finish applying my personal settings and run some test prints. |
Is the freezing issue fixed and USB issue fixed now? If so, what changes need to be made to fix those issues. I am planning on ordering an SKR Mini E3 V2 for my Ender 3 v2 to use with separate Dual Z and Octoprint. Thank you |
I'll be going through this process in the coming days as my SKR mini has arrived this week. Are these steps still accurate for the latest revision or is it now easier to use the SKR |
Update Got there in the end. Soon I'll upload a colour chart for the stock display/IDC cable. |
FWIW, I found the following from @Damquis to be very helpful: I now have a fully working Ender3v2 with the following configured:
A big thanks to everybody for their help and contribution! |
Thank you! Mine was slightly different. It was As it was my first time crimping an IDC connector there was a bit of confusion as to what the orientation was of the diagrams. In the end I managed to crimp a cable and the printer is now up and running with BLTouch, just have to calibrate again and shift my calibration to the Conf file do I don't have to do that every time. Also, a big thank you to everybody who has been looking at this! |
How can I go about local adruino framework? I can not compile my firmware with flashing from SD, I get an error saying SD flashing was only compatible with atmega2560 boards so I suspect this might fix my issue |
Duplicate of #649 |
Updates
Description
The BIGTREETECH SKR Mini E3 V2.0 board is viable drop-in replacement for Creality's v4.2.2 board. Mine got fried (bed heater MOSFET blew up) and SKR seemed to be the best alternative to buying new board from Creality.
Unlike previous versions of Ender 3 (1, 2), the V2 doesn't have upstream configurations for this board. It was already discussed in MarlinFirmware/Marlin#19858, but at that point adding support for DWIN display wasn't possible without modifications to Marlin's code.
One culprit is that SKR display port has slightly different pinout than DWIN and requires slight modification to the ribbon cable. There is an
#error
added to Marlin source that needs to be commented out, above that line there is graphical instruction on how to modify the connection. (MarlinFirmware/Marlin#22288)Full board documentation can be found in BIGTREETECH's GitHub, there is active discussion with success stories here:
Configuration Details
STM32F103RC_btt
,STM32F103RC_btt_USB
,STM32F103RE_btt
,STM32F103RE_btt_USB
Note about build environments
The
_btt_USB
variants seems to work out-of-the box but USB connection might be unstable (see MarlinFirmware/Marlin#22431).Variants without
_USB
i.e.STM32F103RC_btt
andSTM32F103RE_btt
are stable but require slight modification to local Arduino framework files:The text was updated successfully, but these errors were encountered: