Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save tidalvirus/43543aed4ceda6c1dda651f2b5235539 to your computer and use it in GitHub Desktop.
Save tidalvirus/43543aed4ceda6c1dda651f2b5235539 to your computer and use it in GitHub Desktop.

WIP - Still tuning (2022-04-18)

Configuring and Compiling Marlin for the Bigtreetech SKR Mini E3 V3 board in a Sovol SV03

All items in the Sovol are stock, except the filament sensor is going to be replaced with a Bigtreetech Smart Filament Sensor.

Initially will just match the Sovol stock config, and will then enable things like UBL, and linear advance - and this will be updated as I experiment with these. There might be minor changes for things that do not seem critical - e.g. PREHEAT levels. I also enabled some smaller things that didn't seem to fundamentally alter things - except BLTouch levelling - I modified that from defaults, because it was INSANELY slow - I previously used TH3Ds firmware, and the 5x5 probing with that was probably twice as fast or more than what the default was on stock Marlin.

I'm also disappointed. I misread that this board had dual Z axis. But it's actually no different from the stock Sovol setup - it uses one driver for both Z motors. The old board actually had another stepper, but I originally purchased this board thinking it would get me linear advance, and as a bonus, I could do G34 gantry levelling. I cannot do the latter, unfortunately :(.

My own little repo

I forked Marlin's repo just to make it easier to keep my config handy. Perhaps it might be handy for you too. No promises that this will be kept up to date as time goes on though.

My thoughts about the upgrade process

  • The BTT SKR Mini E3 V3 is a nice little unit. Looks well made.
  • Why didn't they just add a 5th driver, damn them.
  • Sovol's weird wiring for the BLTouch drove me nuts for far too long. Diagram will come in about how I wired it up with the 4 wire setup. I plugged ground into the z-stop, as well as the data wire.
  • Z homing with BLTouch gave me some trouble, until I worked out that wiring was a problem - my Z axis was unable to go down, but could go up. Thanks to some random Internet searches, I found somewhere that mentioned it was due to Z homing config/electronics.
  • Not realising that a single EXP3 was able to replace EXP1 and EXP2 connections on the old board took some time. I could plug EXP on the BTT board into EXP3 on my display/controller, and it was just fine. Until I figured this out, I was struggling to work out what display I needed in Marlin's config and went off on a bit of a hunt to work out what boards might have the same wiring as the Sovol display. Some random comment on a random page mentioned that just EXP3 is needed, and I was good!
  • The documentation is lacking for how BTT themselves think we should configure Marlin, and what's in stock Marlin and what isn't.
  • I was able to use entirely stock Marlin.
    • But I was unable to enable PINS_DEBUGGING - there's an error at the compile step, and I wasn't too clear how to fix it, so just disabled it again. I'm hoping a future update will fix this.
  • I don't understand how Sovol's config worked with the TMC2208s, but never mentioned TMCs in the config. Is it something to do with the TMC drivers being in the wrong mode (non UART?) which means Marlin treats them as A4988s by default?
  • Are there really no wiring guides for the Creality 2.2.1 Silent board out there? What are all the pins, etc. Especially the ones used for BLtouch.

I used the following to guide me:

Setup Marlin to compile in PlatformIO on VSCode

  • Download marlin (I forked the git repo, cloned, and created my own branch tidalvirus-skr-mini-e3-v3-sovol-sv03) - feel free to use it if you don't want to start from scratch. But my suggestion is that you do start from scratch, so you learn as you go.
  • In root of the repo, edit platform.io as follows:
-default_envs = mega2560
+default_envs = STM32G0B1RE_btt

Configuration.h Modifications

Initial test to see if compilation works

  • Edit the following lines as follow
    • Motherboard
      •   #define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V3_0
    • Serial port
      •   #define SERIAL_PORT 2
  • Try a compile now (hit the small 'tick' next to the home icon on the bottom statusbar on VS Code)
  • If you don't have success, retry the steps above, check your platformio install, etc.

Main Configuration.h

@section machine

  • #define BAUDRATE 115200
  • #define SERIAL_PORT_2 -1
  • #define CUSTOM_MACHINE_NAME "SOVOL SV03"

@section extruder

  • No changes

@section machine (again)

  • #define PSU_NAME "MEAN WELL"

@section temperature

  • #define TEMP_SENSOR_BED 1
  • #define TEMP_WINDOW                  2  // (°C) Temperature proximity for the "temperature reached" timer
    #define TEMP_HYSTERESIS              4  // (°C) Temperature proximity considered "close enough" to the target
  • #define BED_MAXTEMP      125
  • #define DEFAULT_Kp  29.76
    #define DEFAULT_Ki   2.93
    #define DEFAULT_Kd  75.58
    • The above will actually be different for you, I'm sure - do your own PID tuning! The values above are from the SV03 stock Marlin code.

@section extruder (again)

  • Comment out the following
  • //#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber
    //#define THERMAL_PROTECTION_COOLER  // Enable thermal protection for the laser cooling
    • Might be safe to keep in.

@section machine (again)

  • No changes

@section homing

  • #define X_DRIVER_TYPE  TMC2209
    #define Y_DRIVER_TYPE  TMC2209
    #define Z_DRIVER_TYPE  TMC2209
    #define E0_DRIVER_TYPE TMC2209

@section motion

  • // #define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
    // #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
    // #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
  • // #define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
    // #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
    // #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
    • Again, these might be safe to keep in, but for now, I've got them commented out.
  • #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 415 }
  • #define DEFAULT_MAX_FEEDRATE          { 500, 500, 5, 25 }
  • #define DEFAULT_MAX_ACCELERATION      { 500, 500, 100, 1000 }
  • #define DEFAULT_ACCELERATION          500    // X, Y, Z and E acceleration for printing moves
    #define DEFAULT_RETRACT_ACCELERATION  500    // E acceleration for retracts
    #define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration for travel (non printing) moves
  • #define JUNCTION_DEVIATION_MM 0.08 // (mm) Distance from real junction edge

@section probes

  • #define USE_PROBE_FOR_Z_HOMING
  • #define BLTOUCH
  • #define NOZZLE_TO_PROBE_OFFSET { -31, -10, 0 }
  • #define Z_PROBE_FEEDRATE_FAST (8*60)
    • This is optional - I was hitting the bltouch stuff until it worked, because it was so insanely slow. Bed levelling still seems to work fine with this speed. Default was 4*60 in Sovol config.
  • #define MULTIPLE_PROBING 2
    #define EXTRA_PROBING    1
    • You can adjust this if you like
  • #define Z_MIN_PROBE_REPEATABILITY_TEST

@section extruder (again)

  • No changes

@section machine (again)

  • #define INVERT_X_DIR true
    #define INVERT_Y_DIR true
    #define INVERT_Z_DIR false
    • In default Marlin, only the X needed switching. Posting all three, so it's clear! This is the exact opposite of the Sovol config.

@section extruder (again)

  • #define INVERT_E0_DIR false
    • This is default, but being specific here - in case you compare to Sovol's config.

@section machine (again)

  • #define X_BED_SIZE 360
    #define Y_BED_SIZE 360
  • #define Z_MAX_POS 410
  • // #define MIN_SOFTWARE_ENDSTOP_I
    // #define MIN_SOFTWARE_ENDSTOP_J
    // #define MIN_SOFTWARE_ENDSTOP_K
  • // #define MAX_SOFTWARE_ENDSTOP_I
    // #define MAX_SOFTWARE_ENDSTOP_J
    // #define MAX_SOFTWARE_ENDSTOP_K
  • #define FILAMENT_RUNOUT_SENSOR
    • My original filament sensor is no longer in use - I've upgraded to the BTT Smart Filament Sensor, and have no desire to go back to the old one (it was flaky for me - the filament sometimes didn't hit the switch). If you also have the BTT filament sensor, this should work. I've had no false alarms, but then, I've also not tested it to see if it actually works!
  • #define FILAMENT_RUNOUT_DISTANCE_MM 70
  • #define FILAMENT_MOTION_SENSOR

@section calibrate

  • #define AUTO_BED_LEVELING_UBL
    • Switched to UBL (Unified Bed Levelling)
  • #define RESTORE_LEVELING_AFTER_G28
  • #define G26_MESH_VALIDATION
    • One of these days, I should actually use this :)
  • #define GRID_MAX_POINTS_X 5
    • It's a large bed, probe it in more points! a 5x5 grid makes sense here.
  • #define LCD_BED_LEVELING
  • #define LEVEL_BED_CORNERS

@section homing

  • //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y15\nG1 Z0.5\nG1 Z10"
    • UNTESTED! Use the above to get the nozzle near where the wipe line starts after probing. I actually have this sort of thing set in my start G-CODE in prusaslicer.
  • #define Z_SAFE_HOMING
  • #define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (8*60) }
    • This might not be required to be so fast - default is 4*60

@section calibrate (again)

  • No changes

@section extras

  • #define EEPROM_SETTINGS

@section temperature (again)

  • #define PREHEAT_1_LABEL       "PLA"
    #define PREHEAT_1_TEMP_HOTEND 200
    #define PREHEAT_1_TEMP_BED     60
    // #define PREHEAT_1_TEMP_CHAMBER 35
    #define PREHEAT_1_FAN_SPEED     0 // Value from 0 to 255
    
    #define PREHEAT_2_LABEL       "ABS"
    #define PREHEAT_2_TEMP_HOTEND 240
    #define PREHEAT_2_TEMP_BED    100
    // #define PREHEAT_2_TEMP_CHAMBER 35
    #define PREHEAT_2_FAN_SPEED     0 // Value from 0 to 255
    • This section is up to you really - you can modify the figures above. Stock sovol sets the fan to full (255). TH3D and stock marlin have them at 0.
  • #define NOZZLE_PARK_FEATURE

@section lcd

  • #define SDSUPPORT
    • I won't actually be using the SD card except for firmware updates.
  • #define SPEAKER
    • There are some comments around that enabling the speaker will mess up the Z homing - but it works fine for me. Perhaps an old bug?
  • #define CR10_STOCKDISPLAY
    • Use the EXP3 port on your SV03 display, and just connect that to EXP1.

@section extras (again)

  • No changes

Configuration_adv.h Modifications

@section temperature

  • #define THERMAL_PROTECTION_PERIOD 60        // Seconds
  • #define WATCH_TEMP_PERIOD  40
  • #define THERMAL_PROTECTION_BED_PERIOD        60 // Seconds

@section extruder

  • #define E0_AUTO_FAN_PIN PC7

@section homing

  • No changes

@section extras

  • No changes

@section homing

  • No changes

@section bltouch

  • //#define BLTOUCH_DELAY 500
    • I had issues with my BLtouch - could be my wiring on the new board. So I disabled this, and made other modifications. It's working again now, but I'm not prepared to toy with it too much, so am not re-enabling this.
  • #define BLTOUCH_SET_5V_MODE
  • #define BLTOUCH_HS_MODE true
    • This seemed to work intermittently for me - it's off (via LCD settingsb) at the moment, but enabled in this config - turn it off if you have issues.

@section motion

  • // #define INVERT_I_STEP_PIN false
    // #define INVERT_J_STEP_PIN false
    // #define INVERT_K_STEP_PIN false
  • #define DISABLE_INACTIVE_Z false  // Set 'false' if the nozzle could fall onto your printed part!
    // #define DISABLE_INACTIVE_I true
    // #define DISABLE_INACTIVE_J true
    // #define DISABLE_INACTIVE_K true
    • If this isn't the way to make sure Z-motor keep their steppers on, please let me know :) My X gantry can get misaligned when the Z steppers are off.

@section stepper motor current

  • No changes

@section lcd

  • #define PROBE_OFFSET_WIZARD
    • This is a super useful feature! Enable it!
  • #define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
  • #define LCD_INFO_MENU
  • #define STATUS_MESSAGE_SCROLLING
  • #define LCD_SET_PROGRESS_MANUALLY
    • This seems to be a nice to have - not enabled in Sovol's
  •   #define POWER_LOSS_RECOVERY
    • I won't actually be using this, but Sovol had it, so leaving it in. I print with octoprint, and serial USB.
  • #define LONG_FILENAME_HOST_SUPPORT
  • #define SCROLL_LONG_FILENAMES

@section safety

  • No changes

@section lcd (again)

  • #define BABYSTEPPING
    #if ENABLED(BABYSTEPPING)
      #define INTEGRATED_BABYSTEPPING         // EXPERIMENTAL integration of babystepping into the Stepper ISR
      #define BABYSTEP_WITHOUT_HOMING
      #define BABYSTEP_ALWAYS_AVAILABLE       // Allow babystepping at all times (not just during movement).
      //#define BABYSTEP_XY                     // Also enable X/Y Babystepping. Not supported on DELTA!
      #define BABYSTEP_INVERT_Z false           // Change if Z babysteps should go the other way
      //#define BABYSTEP_MILLIMETER_UNITS       // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps
      #define BABYSTEP_MULTIPLICATOR_Z  1       // (steps or mm) Steps or millimeter distance for each Z babystep
      #define BABYSTEP_MULTIPLICATOR_XY 1       // (steps or mm) Steps or millimeter distance for each XY babystep
    
      #define DOUBLECLICK_FOR_Z_BABYSTEPPING  // Double-click on the Status Screen for Z Babystepping.
      #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
        #define DOUBLECLICK_MAX_INTERVAL 1250   // Maximum interval between clicks, in milliseconds.
                                                // Note: Extra time may be added to mitigate controller latency.
        //#define MOVE_Z_WHEN_IDLE              // Jump to the move Z menu on doubleclick when printer is idle.
        #if ENABLED(MOVE_Z_WHEN_IDLE)
          #define MOVE_Z_IDLE_MULTIPLICATOR 1   // Multiply 1mm by this factor for the move step size.
        #endif
      #endif
    
      //#define BABYSTEP_DISPLAY_TOTAL          // Display total babysteps since last G28
    
      #define BABYSTEP_ZPROBE_OFFSET          // Combine M851 Z and Babystepping
      #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
        //#define BABYSTEP_HOTEND_Z_OFFSET      // For multiple hotends, babystep relative Z offsets
        #define BABYSTEP_ZPROBE_GFX_OVERLAY   // Enable graphical overlay on Z-offset editor
      #endif
    #endif
    • This isn't in Sovol's config, but this is very handy - came across it via TH3D's firmware.

@section extruder (again)

  • #define LIN_ADVANCE
    #if ENABLED(LIN_ADVANCE)
      //#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants
      #define LIN_ADVANCE_K 0    // Unit: mm compression per 1mm/s extruder speed
      //#define LA_DEBUG            // If enabled, this will generate debug information output over USB.
      //#define EXPERIMENTAL_SCURVE // Enable this option to permit S-Curve Acceleration
      #define ALLOW_LOW_EJERK     // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends.
    #endif

@section leveling

  • #define PROBING_MARGIN_LEFT 36
    #define PROBING_MARGIN_RIGHT PROBING_MARGIN
    #define PROBING_MARGIN_FRONT 20
    #define PROBING_MARGIN_BACK 20

@section extras

  • No changes

@section temperature (again)

  • No changes

@section motion

  • No changes

@section serial

  • No changes

@section extras (again)

  • #define FWRETRACT
    • I didn't even realise the stock sovol config had this... hmm
  • #define ADVANCED_PAUSE_FEATURE
      #if ENABLED(ADVANCED_PAUSE_FEATURE)
        #define PAUSE_PARK_RETRACT_FEEDRATE          3  // (mm/s) Initial retract feedrate.
        #define PAUSE_PARK_RETRACT_LENGTH            4  // (mm) Initial retract.
                                                        // This short retract is done immediately, before parking the nozzle.
        #define FILAMENT_CHANGE_UNLOAD_FEEDRATE      3  // (mm/s) Unload filament feedrate. This can be pretty fast.
        #define FILAMENT_CHANGE_UNLOAD_ACCEL        25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
        #define FILAMENT_CHANGE_UNLOAD_LENGTH      100  // (mm) The length of filament for a complete unload.
                                                        //   For Bowden, the full length of the tube and nozzle.
                                                        //   For direct drive, the full length of the nozzle.
                                                        //   Set to 0 for manual unloading.
        #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   3  // (mm/s) Slow move when starting load.
        #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0  // (mm) Slow length, to allow time to insert material.
                                                        // 0 to disable start loading and skip to fast load only
        #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   3  // (mm/s) Load filament feedrate. This can be pretty fast.
        #define FILAMENT_CHANGE_FAST_LOAD_ACCEL     25  // (mm/s^2) Lower acceleration may allow a faster feedrate.
        #define FILAMENT_CHANGE_FAST_LOAD_LENGTH     0  // (mm) Load length of filament, from extruder gear to nozzle.
                                                        //   For Bowden, the full length of the tube and nozzle.
                                                        //   For direct drive, the full length of the nozzle.
        //#define ADVANCED_PAUSE_CONTINUOUS_PURGE       // Purge continuously up to the purge length until interrupted.
        #define ADVANCED_PAUSE_PURGE_FEEDRATE        2  // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
        #define ADVANCED_PAUSE_PURGE_LENGTH         25  // (mm) Length to extrude after loading.
                                                        //   Set to 0 for manual extrusion.
                                                        //   Filament can be extruded repeatedly from the Filament Change menu
                                                        //   until extrusion is consistent, and to purge old filament.
        #define ADVANCED_PAUSE_RESUME_PRIME          0  // (mm) Extra distance to prime nozzle after returning from park.
        //#define ADVANCED_PAUSE_FANS_PAUSE             // Turn off print-cooling fans while the machine is paused.
      
                                                        // Filament Unload does a Retract, Delay, and Purge first:
        #define FILAMENT_UNLOAD_PURGE_RETRACT       13  // (mm) Unload initial retract length.
        #define FILAMENT_UNLOAD_PURGE_DELAY       3000  // (ms) Delay for the filament to cool after retract.
        #define FILAMENT_UNLOAD_PURGE_LENGTH         8  // (mm) An unretract is done, then this length is purged.
        #define FILAMENT_UNLOAD_PURGE_FEEDRATE      25  // (mm/s) feedrate to purge before unload
      
        #define PAUSE_PARK_NOZZLE_TIMEOUT           45  // (seconds) Time limit before the nozzle is turned off for safety.
        #define FILAMENT_CHANGE_ALERT_BEEPS         10  // Number of alert beeps to play when a response is needed.
        #define PAUSE_PARK_NO_STEPPER_TIMEOUT           // Enable for XYZ steppers to stay powered on during filament change.
        //#define FILAMENT_CHANGE_RESUME_ON_INSERT      // Automatically continue / load filament when runout sensor is triggered again.
        //#define PAUSE_REHEAT_FAST_RESUME              // Reduce number of waits by not prompting again post-timeout before continuing.
      
        #define PARK_HEAD_ON_PAUSE                    // Park the nozzle during pause and filament change.
        //#define HOME_BEFORE_FILAMENT_CHANGE           // If needed, home before parking for filament change
      
        #define FILAMENT_LOAD_UNLOAD_GCODES           // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
        #define FILAMENT_UNLOAD_ALL_EXTRUDERS         // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
      #endif
    • Lots of changes here - thought I'd just include the whole section so it's easier to read. Only FILAMENT_UNLOAD_PURGE_FEEDRATE didn't exist in Sovol - so I kept the Marlin default

@section tmc

  • No changes

@section tmc_smart

I set the motor currents to 580 - which was the same as Ender 3 and Ender 5 in BTT's sample configs. The Ender 6 was set to 800, but that's a corexy, so slightly different build type.

The Sovol config had no drivers set in the config, so I'm really not sure how this aspect is meant to work. Plus the old board had resistors for each stepper, which I never touched.

I intend to learn a bit more about this aspect, but it's not something I'm aware of much at present.

  • #define X_CURRENT       580        // (mA) RMS current. Multiply by 1.414 for peak current.
  • #define Y_CURRENT       580
  • #define Z_CURRENT       580
  • #define E0_CURRENT      580
  • // #define STEALTHCHOP_I
    // #define STEALTHCHOP_J
    // #define STEALTHCHOP_K
  • #define CHOPPER_TIMING CHOPPER_DEFAULT_24V        // All axes (override below)
  • // #define I_HYBRID_THRESHOLD       3
    // #define J_HYBRID_THRESHOLD       3
    // #define K_HYBRID_THRESHOLD       3
  • #define CHOPPER_TIMING CHOPPER_DEFAULT_24V
  • #define TMC_DEBUG

@section L64XX

  • No changes

@section i2cbus

  • No changes

@section extras

  • #define HOST_ACTION_COMMANDS
    #if ENABLED(HOST_ACTION_COMMANDS)
      #define HOST_PAUSE_M76
      #define HOST_PROMPT_SUPPORT
      #define HOST_START_MENU_ITEM      // Add a menu item that tells the host to start
    
    • I only did this because octoprint was complaining. I have not used this feature yet, but it's something on my todo list to learn about. I'm hoping there is no downside to enabling this!

@section develop

  • No changes
@Asta71
Copy link

Asta71 commented Jun 21, 2022

Why UNL and not BILINEAR?
did you keep the BLTOUCH wiring or replace it?

@illigtr
Copy link

illigtr commented May 30, 2023

I don't think you can use #define Z_STEPPER_AUTO_ALIGN, as the BTT SKR MINI E3 V3 has only 4 stepper motor drivers. Although there are connectors for both Z1 and Z2 steppers (if you have dual Z axis) they are actually connected in parallel on the controller board to the same stepper driver. You'd need a 5 driver board to use G34. If however, you are getting this to work with the MINI E3 V3, let me know!

@tidalvirus
Copy link
Author

I don't think you can use #define Z_STEPPER_AUTO_ALIGN, as the BTT SKR MINI E3 V3 has only 4 stepper motor drivers. Although there are connectors for both Z1 and Z2 steppers (if you have dual Z axis) they are actually connected in parallel on the controller board to the same stepper driver. You'd need a 5 driver board to use G34. If however, you are getting this to work with the MINI E3 V3, let me know!

You're absolutely right! I need to go and update this to match reality. I just checked, and the repo where I store my config does not have this defined. I thought I had cleaned this up when I realised the board does NOT have 5 steppers... d'oh. https://github.com/tidalvirus/Marlin/blob/tidalvirus-skr-mini-e3-v3-sovol-sv03/Marlin/Configuration_adv.h#L931

@tidalvirus
Copy link
Author

Why UNL and not BILINEAR? did you keep the BLTOUCH wiring or replace it?

Sorry, I never responded to this. I chose UBL because I thought that was meant to be a good method - do you think it's not?

And yes, I managed to keep the Sovol BLTouch wiring. However, I have noticed that occasionally my levelling (especially a full mesh check with UBL) can crash the printer. I think it might be due to the crappy cabling, and more noise potentially, due to not having all the wires that you'd normally have on a BLTouch?

@madflower
Copy link

Thank you. I acquired a SV03 for extremely cheap because the owner screwed up the wiring, and I am not going to deal with a 8-bit board. I went with the mkr monster8 v2 because of the lack fet drivers, and I eventually I want a dual extruder and separate z-axis drivers. But I needed some of the default values. I didn't know about the bltouch wiring issue so I have to figure out what they did.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment