3D Cantilever Marlin 1.1.9 Configuration

Uit MAT'54 Hondekop in 3D
Ga naar: navigatie, zoeken
Crystal Clear action run.png
Cantilever 3D printer

Release status: Concept

MARLIN.png
Description
MARLIN Configuration
License
Author
Contributors
Based-on
Categories
CAD Models
none
External Link


Inleiding

Voor een juiste werking van deze printer in combinatie met de MARLIN 1.1.9 FirmWare dienen een aantal aanpassing gemaakt te worden. Deze worden in dit document beschreven.

Hiervoor gebruiken we de standaard bestanden die na de installatie van MARLIN 1.1.9 in de ARDUINO IDE omgeving zijn geinstalleerd.

Een waarschuwing is hierbij op zijn plaats.

De hier opgesomde wijzigingen zijn specifiek bedoeld voor dit ontwerp en een aantal persoonlijke voorkeuren en zijn daarom uitsluitend te gebruiken als lijdraad.

configuration.h

eind schakelaars

Na het opstarten van een 3D-printer weet de controllerkaart van de printer niet op welke positie zijn assen staan. Marlin geeft dit aan door knipperende vraagtekens in plaats van X, Y en Z op het LCD-scherm (v1.1.8 en ouder) of knipperend '?' In plaats van de coördinaten naast X, Y en Z (Marlin v1.1.9 / v2.0.0 en nieuwer).
Not homed.jpg
Dit betekent dat het systeem eerst zijn beginpunt van het fysieke (machine) coördinatensysteem moet bepalen, een proces dat Homing wordt genoemd. De homing kan worden gestart via de G28 G-code of via de LCD-controller. Hardware-eindstoppen zijn elektrisch verbonden met de eindstoppoorten van de printer-besturingskaart en zullen een signaal afgeven wanneer aan de eindstop-voorwaarde is voldaan.

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.

stappen/mm

Het aantal stappen per millimeter waarbij de driver is ingesteld op 1/16 en een tandwiel met 16 tanden. De extruder is een MK8

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 100, 92.6 }

JERK

Since the bed is only supported by the linear slider, there will be more vibrations. The Jerk needs to be pushed down (maybe even further than the numbers shown)

/**
 * Default Jerk (mm/s)
 * Override with M205 X Y Z E
 *
 * "Jerk" specifies the minimum speed change that requires acceleration.
 * When changing speed and direction, if the difference is less than the
 * value set here, it may happen instantaneously.
 */
#define DEFAULT_XJERK                 10.0
#define DEFAULT_YJERK                 10.0
#define DEFAULT_ZJERK                  0.4
#define DEFAULT_EJERK                  5.0

draairichting stappen motor

based on current build (this may differ based on stepper wiring)

/**
// @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 false

Print oppervlakte

// The size of the print bed
#define X_BED_SIZE 200
#define Y_BED_SIZE 200

Temperatuur opnemers

Normaal gesproken heeft men voor het printen met PLA geen verwarmd bed nodig, maar staat de printer in een koude ruimte is het aan te raden dit wel te doen voor een betere hechting aan het print oppervlakte.

Pas daarvoor deze waarde aan vlgs de tabel: #define TEMP_SENSOR_BED 0

 *
 * :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950  1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
 */
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_BED 0
#define TEMP_SENSOR_CHAMBER 0

Bewegingsruimte

based on the current build and it’s dimension I had to set the X Y and Z boundaries

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -17
#define Y_MIN_POS -37
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 270

handmatige eindstops

Since my end stop are outside the bounds of the bed I need to change the manual home settings

// The center of the bed is at (X=0, Y=0)
#define BED_CENTER_AT_0_0

// Manually set the home position. Leave these undefined for automatic settings.
// For DELTA this is the top-center of the Cartesian print volume.
#define MANUAL_X_HOME_POS -17
#define MANUAL_Y_HOME_POS -37
#define MANUAL_Z_HOME_POS 0

LCD 12864

verwijder de // aan het begin) Bij gebruik van dit type display dient men ook de U8glib bibliotheek te installeren in uw ARDUINO bibliotheekmap:

// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

SD kaart

Dit is verplicht in 1.1 en verder

In oudere releases kan het voldoende zijn om een ​​dislay / pannel met een SD-kaartlezer te uncommenteren. Zonder opmerkingen van SDSUPPORT is er geen schade.

De SD- of MMC-kaart moet zijn geformatteerd als FAT en moet een MMC-interface hebben. Dit is waarschijnlijker bij kaarten <= 2 GB

/**
 * SD CARD
 *
 * SD Card support is disabled by default. If your controller has an SD slot,
 * you must uncomment the following option or it won't work.
 *
 */
#define SDSUPPORT

Persoonlijke voorkeuren

In deze sectie vindt U een aantal aanpassingen om de printer gepersonaliseerd te maken.


configuration_adv.h

Because the Z-axis is belt driven (whereas most are lead screw driven) I end up with an issue when a print is stopped. If I click STOP PRINT (or even if a print is done) the Z-Axis will loose power and drop like a rock. This can damage your print or in worse case shatter your bed. For this I made some changes to the more hidden code.

Whenever a SD_FINISHED_RELEASECOMMAND is issued power is dropped to all stepper which for this printer can be bad (dropping Z-axis). I expanded the code in Configuration_adv.h to add to more command in that event.

  #define SD_FINISHED_STEPPERRELEASE true          // Disable steppers when SD Print is finished
  //compact
  #define SD_FINISHED_XYHOMECOMMAND  "G28 X0 Y0"  
  #define SD_FINISHED_ZHOMECOMMAND  "G0 Z0"  
  #define SD_FINISHED_RELEASECOMMAND "M84 X Y E" // You might want to keep the z enabled so your bed stays in place.

stepper.ccp

Tevens ook het vrijgavekommando gewijzigd om de Z-asstepper NIET te laten vallen. Wanneer het stopcommando wordt uitgevoerd, zal de printer eerst de thuishaven van X0Y0 zijn (wat uit de weg van elke afdruk zou moeten komen.) Vervolgens huisvest de printer naar Z0 en laat vervolgens de stroom naar X en Y (niet Z).

 #ifdef SD_FINISHED_RELEASECOMMAND
      if (!cleaning_buffer_counter && (SD_FINISHED_STEPPERRELEASE)) {
        enqueue_and_echo_commands_P(PSTR(SD_FINISHED_XYHOMECOMMAND));
        enqueue_and_echo_commands_P(PSTR(SD_FINISHED_ZHOMECOMMAND));
        enqueue_and_echo_commands_P(PSTR(SD_FINISHED_RELEASECOMMAND));
        
      }
    #endif
    _NEXT_ISR(200); // Run at max speed - 10 KHz
    _ENABLE_ISRs(); // re-enable ISRs
    return;
  }