Giter Club home page Giter Club logo

droxey / droxeybot Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 0.0 113.51 MB

Ender 3 build featuring SKR Mini E3 V2.0 / Hemera / Filament Detection / BLTouch / UPS / Power Relay

Home Page: https://droxey.com/droxeybot

License: GNU General Public License v3.0

C++ 65.49% C 30.08% Makefile 0.25% Objective-C 2.56% Python 0.54% Shell 0.75% OpenSCAD 0.07% JavaScript 0.04% G-code 0.03% PHP 0.10% Assembly 0.04% CMake 0.06%
bigtreetech skr-mini-e3 e3d-hemera ender3 custom-firmware bltouch ups power-relay filament-detection ender-3

droxeybot's Introduction

droxeybot

@droxey's customized Ender 3 build featuring SKR Mini E3 V2.0 / Hemera / Filament Detection / BLTouch / UPS / Power Relay.

Component Part Repo
Motherboard BTT SKR MINI E3 V2.0 BIGTREETECH-SKR-mini-E3
Extruder Hemera Direct Drive -
Power Supply MeanWell LRS-350-24U -
Filament Sensor BTT Smart Filament Detection smart-filament-detection-module
Relay BTT Relay v1.2 BIGTREETECH-Relay-V1.2
UPS BTT UPS 24V V1.0 BIGTREETECH-MINI-UPS-V2.0
Leveling /
Z Endstop
BLTouch v3.1 -
Dual Z Axis ExoSlide XZ Kit -
Upgraded Y Axis ExoSlide Y Bed Kit -

Table of Contents

Configure Firmware

$ git clone [email protected]:MarlinFirmware/Marlin.git
$ cd Marlin
$ git checkout bugfix-2.0.x
$ curl -o 1_UpdateFirmware.patch https://raw.githubusercontent.com/linsomniac/MarlinSKRMiniE3v2.0Files/master/essential_changes.patch
$ curl -o 2_BLTouch.patch https://raw.githubusercontent.com/linsomniac/MarlinSKRMiniE3v2.0Files/master/bltouch.patch
$ patch -p1 <1_UpdateFirmware.patch
$ patch -p1 <2_BLTouch.patch

Connect Hardware & Add Features

Step Daemon

Step Daemon (stepd) is an external planner for 3d printers that utilizes Marlin compatible firmware to allow direct step processing by an external computer and enables the use of complex pre-processing.

Set it up on your Raspberry Pi by following the instructions in the project's README.

Jumpers

  1. Remove the jumper from Z_DIA3 to use the BLTouch as the Z endstop.
  2. Remove the jumper above Z_PROBE to enable the onboard 5v power supply.

BLTouch

Connect the BLTouch to Z_PROBE on the motherboard.

UPS

img Connect the UPS module to the PWR_DE pin on the motherboard.

Open Configuration_adv.h and modify the following settings to match the following snippet:

 #define POWER_LOSS_RECOVERY
 #if ENABLED(POWER_LOSS_RECOVERY)
   #define PLR_ENABLED_DEFAULT   false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500)
   #define BACKUP_POWER_SUPPLY       // Backup power / UPS to move the steppers on power loss
   #define POWER_LOSS_ZRAISE       10 // (mm) Z axis raise on resume (on power loss with UPS)
   #define POWER_LOSS_PIN         PC12 // Pin to detect power loss. Set to -1 to disable default pin on boards without module.
   #define POWER_LOSS_STATE       HIGH // State of pin indicating power loss
   #define POWER_LOSS_PULL           // Set pullup / pulldown as appropriate
   #define POWER_LOSS_PURGE_LEN   20 // (mm) Length of filament to purge on resume
   #define POWER_LOSS_RETRACT_LEN 10 // (mm) Length of filament to retract on fail. Requires backup power.

   // Without a POWER_LOSS_PIN the following option helps reduce wear on the SD card,
   // especially with "vase mode" printing. Set too high and vases cannot be continued.
   #define POWER_LOSS_MIN_Z_CHANGE 0.05 // (mm) Minimum Z change before saving power-loss data
 #endif

Relay

img Connect the relay to your power supply according to the diagram. Connect the relay to the PS_ON pin on your motherboard.

Open Configuration.h and make the following modifications to the firmware:

/**
 * Power Supply Control
 *
 * Enable and connect the power supply to the PS_ON_PIN.
 * Specify whether the power supply is active HIGH or active LOW.
 */
#define PSU_CONTROL
#define PSU_NAME "Power Supply"

#if ENABLED(PSU_CONTROL)
  #define PSU_ACTIVE_HIGH true     // Set 'false' for ATX, 'true' for X-Box

  //#define PSU_DEFAULT_OFF         // Keep power off until enabled directly with M80
  //#define PSU_POWERUP_DELAY 100   // (ms) Delay for the PSU to warm up to full power

  // #define AUTO_POWER_CONTROL      // Enable automatic control of the PS_ON pin
  #if ENABLED(AUTO_POWER_CONTROL)
    #define AUTO_POWER_FANS         // Turn on PSU if fans need power
    #define AUTO_POWER_E_FANS
    #define AUTO_POWER_CONTROLLERFAN
    #define AUTO_POWER_CHAMBER_FAN
    //#define AUTO_POWER_E_TEMP        50 // (°C) Turn on PSU over this temperature
    //#define AUTO_POWER_CHAMBER_TEMP  30 // (°C) Turn on PSU over this temperature
    #define POWER_TIMEOUT 30
  #endif
#endif

Finally, in your slicing software, add M81 to the bottom of your end script.

Smart Filament Detection Module

  1. To configure the Smart Filament Runout Sensor, open Configuration.h and uncomment #define FILAMENT_RUNOUT_SENSOR. Then, ensure your settings match the following:

    /**
     * Filament Runout Sensors
     * Mechanical or opto endstops are used to check for the presence of filament.
     *
     * RAMPS-based boards use SERVO3_PIN for the first runout sensor.
     * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
     * By default the firmware assumes HIGH=FILAMENT PRESENT.
     */
    #define FILAMENT_RUNOUT_SENSOR
    #define FIL_RUNOUT_PIN PC15 // Filament detection pin for BTT SKR Mini E3 v2.0
    #if ENABLED(FILAMENT_RUNOUT_SENSOR)
        #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
        #if ENABLED(INVERT_FS_LOGIC)
            #define FIL_RUNOUT_INVERTING true // Trigger's alternative as soon as invert filamentsensor logic is activated
        #else
            #define FIL_RUNOUT_INVERTING false // Logic inverting is automatically taken care in section 13
        #endif
        // Set to true to invert the logic of the sensor.
        #if ENABLED(INVERTL_PINPULLUP_LOGIC)
            #define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.
        #else
            #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
        #endif
    
        // Set one or more commands to execute on filament runout.
        // (After 'M412 H' Marlin will ask the host to handle the process.)
        #define FILAMENT_RUNOUT_SCRIPT "M600"
    
        // After a runout is detected, continue printing this length of filament
        // before executing the runout script. Useful for a sensor at the end of
        // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
        #define FILAMENT_RUNOUT_DISTANCE_MM 7
    
        #ifdef FILAMENT_RUNOUT_DISTANCE_MM
        // Enable this option to use an encoder disc that toggles the runout pin
        // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
        // large enough to avoid false positives.)
            #define FILAMENT_MOTION_SENSOR
        #endif
    #endif
  2. In Configuration_adv.h, make the following changes:

    1. To enable runout detection on serial LCDs, uncomment #define M114_DETAIL. This allows runout detection to function in Marlin Mode.
    2. To add filament change support, uncomment #define ADVANCED_PAUSE_FEATURE. This feature also enables nozzle park when paused without further firmware modifications.

Resources & Credits

droxeybot's People

Contributors

alexborro avatar anhardt avatar bgort avatar bkubicek avatar bob-the-kuhn avatar boelle avatar croadfeldt avatar daid avatar ejtagle avatar epatel avatar erikzalm avatar gmagician avatar insanityautomation avatar jbrazio avatar ludy87 avatar marcio-ao avatar nothinman avatar p3p avatar rmoravcik avatar robbycandra avatar roxy-3d avatar sjasonsmith avatar stv0g avatar tcm0116 avatar teemuatlut avatar thinkyhead avatar thisiskeithb avatar tpruvot avatar wackerbarth avatar wurstnase avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.