본문 바로가기
3D프린팅

Marlin 2.0.1 펌웨어 올리기(SKR V1.4)

by YJHTPII 2022. 5. 26.
반응형

https://blog.naver.com/ktdong61/221764619147

 

Marlin 2.0.1 펌웨어 올리기(SKR V1.4)

프린터 사양(Ultimaker2 extended clone) - 보드 : Bigtree SKR V1.4 - 모터 드라이브 :TMC 2209 ...

blog.naver.com

 

 

 

프린터 사양(Ultimaker2 extended clone)

- 보드 : Bigtree SKR V1.4

- 모터 드라이브 :TMC 2209 4개(X,Y,Z,E)

- LCD : REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

- 파워 : 24V

* 기존 12V 전원을 24V로 변경하여 쿨링 팬 및 히터를 24V용으로 교체, 챔버에 설치한 LED는 12V로 사용

- extruder : 1개

- 베드 레벨링 : 수동

- 출력물 사이즈 : 240(X)*210(Y)*298(Z)

- Endstop : Stallguard2

- 핫엔드 Led : 5V Neo Pixel Led

- Case Led : 12V Led strip

- 팬 (5) : 파트, 익스트루더 , 보드, 파워 (24V)

open project로 다운 받은 펌웨어를 로드한 다음 configuration.h 와 configuration_adv.h를 수정한다.

< configuration.h >

serial port는 0 으로 둔다. -1 로 변경시 WiFi 모듈이 인식되지 않는다.

/** * Select the serial port on the board to use for communication with the host. * This allows the connection of wireless adapters (for instance) to non-default port pins. * Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader. * * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ #define SERIAL_PORT 0

제품 매뉴얼에 따라 115200 으로 변경

/** * This setting determines the communication speed of the printer. * * 250000 works in most cases, but you might try a lower speed if * you commonly experience drop-outs during host printing. * You may try up to 1000000 to speed up SD file transfer. * * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ #define BAUDRATE 115200 //250000 --> 115200

marlin/src/core/boards.h 에서 LPC1768 보드중 이름을 복사하여 붙여 넣기

* 최신 펌웨어(2.0.6)에서는 보드이름이 BOARD_BIGTREE_SKR_V1_4(2.0.1펌웨어) 에서 BOARD_BTT_SKR_V1_4 로 변경되었다.

// Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_BIGTREE_SKR_V1_4 #endif

필라멘트 직경을 1.75로 변경

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 // 3.0 --> 1.75

히트베드가 설치되어 있으므로 1로 변경

//=========================================================================== //============================= Thermal Settings ============================ //=========================================================================== #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_5 0 #define TEMP_SENSOR_BED 1 // 0 --> 1 #define TEMP_SENSOR_CHAMBER 0

히터 최고온도 조정

// Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) #define HEATER_0_MAXTEMP 230 // 275 --> 230 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 #define HEATER_5_MAXTEMP 275 #define BED_MAXTEMP 150

기존 PID 값으로 변경

//=========================================================================== //============================= PID Settings ================================ //=========================================================================== // PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning // Ultimaker #define DEFAULT_Kp 22.2 #define DEFAULT_Ki 1.08 #define DEFAULT_Kd 114

기존 PID 값으로 조정

//=========================================================================== //====================== PID > Bed Temperature Control ====================== //=========================================================================== #define PIDTEMPBED // 주석제거 #if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Sends debug data to the serial port. //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) #define DEFAULT_bedKp 10.00 #define DEFAULT_bedKi .023 #define DEFAULT_bedKd 305.4 //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //from pidautotune //#define DEFAULT_bedKp 97.1 //#define DEFAULT_bedKi 1.41 //#define DEFAULT_bedKd 1675.16 // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #endif // PIDTEMPBED

엔드스톱 위치 설정

//=========================================================================== //============================== Endstop Settings =========================== //=========================================================================== // @section homing // Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and non-probe purposes. #define USE_XMIN_PLUG //#define USE_YMIN_PLUG // 주석처리 //#define USE_ZMIN_PLUG // 주석처리 //#define USE_XMAX_PLUG #define USE_YMAX_PLUG // 주석해제 #define USE_ZMAX_PLUG // 주석해제
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). #define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MIN_ENDSTOP_INVERTING false // 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.

스테퍼 드라이브 설정

/** *Stepper Drivers */ #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 //#define Z3_DRIVER_TYPE A4988 #define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 //#define E4_DRIVER_TYPE A4988 //#define E5_DRIVER_TYPE A4988

기존 값 입력

/** * Default Axis Steps Per Unit (steps/mm) * Override with M92 * X, Y, Z, E0 [, E1[, E2...]] */ #define DEFAULT_AXIS_STEPS_PER_UNIT { 80*2, 80*2, 796/2, 230 }
// @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 true #define INVERT_Z_DIR false // @section extruder // For direct drive extruder v9 set to true, for geared extruder set to false. #define INVERT_E0_DIR true // false #define INVERT_E1_DIR false #define INVERT_E2_DIR false #define INVERT_E3_DIR false #define INVERT_E4_DIR false #define INVERT_E5_DIR false
// @section homing //#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed //#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off. //#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. // Direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 #define Y_HOME_DIR 1 // -1 #define Z_HOME_DIR 1 // -1
// @section machine // The size of the print bed #define X_BED_SIZE 240 // 200 #define Y_BED_SIZE 210 // 200 // Travel limits (mm) after homing, corresponding to endstop positions. #define X_MIN_POS 0 #define Y_MIN_POS 0 #define Z_MIN_POS 0 #define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE #define Z_MAX_POS 298 // 200
// Preheat Constants #define PREHEAT_1_LABEL "PLA" #define PREHEAT_1_TEMP_HOTEND 195 // 180 #define PREHEAT_1_TEMP_BED 55 // 70 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
/** * 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 // 주석해제

엔코더 방향 변경

/** * Encoder Direction Options * * Test your encoder's behavior first with both options disabled. * * Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION. * Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION. * Reversed Value Editing only? Enable BOTH options. */ // // This option reverses the encoder direction everywhere. // // Set this option if CLOCKWISE causes values to DECREASE // #define REVERSE_ENCODER_DIRECTION // 주석해제

LCD 창에서 한글메뉴를 사용하려면 en ---> ko_KR 로 변경하면 되는데 글꼴이 예쁘지 않다.

/** * LCD LANGUAGE * * Select the language to display on the LCD. These languages are available: * * en, an, bg, ca, cz, da, de, el, el_gr, es, eu, fi, fr, gl, hr, it, jp_kana, * ko_KR, nl, pl, pt, pt_br, ru, sk, tr, uk, vi, zh_CN, zh_TW, test * * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek', 'el_gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ru':'Russian', 'sk':'Slovak', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)', 'test':'TEST' } */ #define LCD_LANGUAGE ko_KR

한글화가 안된 메뉴는 src/lcd/language_ko_KR.h 에서 추가하면 될 듯

/** * Korean * * LCD Menu Messages * See also http://marlinfw.org/docs/development/lcd_language.html * */ namespace Language_ko_KR { using namespace Language_en; // Inherit undefined strings from English constexpr uint8_t CHARSIZE = 1; PROGMEM Language_Str LANGUAGE = _UxGT("Korean"); PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" 준비."); PROGMEM Language_Str MSG_BACK = _UxGT("뒤로"); PROGMEM Language_Str MSG_MEDIA_INSERTED = _UxGT("카드 삽입됨"); PROGMEM Language_Str MSG_MEDIA_REMOVED = _UxGT("카드 제거됨"); PROGMEM Language_Str MSG_LCD_ENDSTOPS = _UxGT("엔드스탑"); PROGMEM Language_Str MSG_LCD_SOFT_ENDSTOPS = _UxGT("소프트 엔드스탑"); PROGMEM Language_Str MSG_MAIN = _UxGT("뒤로"); PROGMEM Language_Str MSG_ADVANCED_SETTINGS = _UxGT("고급 설정"); PROGMEM Language_Str MSG_CONFIGURATION = _UxGT("설정"); PROGMEM Language_Str MSG_AUTOSTART = _UxGT("자동 시작"); PROGMEM Language_Str MSG_DISABLE_STEPPERS = _UxGT("모터 정지"); PROGMEM Language_Str MSG_DEBUG_MENU = _UxGT("디버깅 메뉴"); PROGMEM Language_Str MSG_PROGRESS_BAR_TEST = _UxGT("프로그레스바 테스트"); PROGMEM Language_Str MSG_AUTO_HOME = _UxGT("오토홈"); PROGMEM Language_Str MSG_AUTO_HOME_X = _UxGT("X 홈으로"); PROGMEM Language_Str MSG_AUTO_HOME_Y = _UxGT("Y 홈으로"); PROGMEM Language_Str MSG_AUTO_HOME_Z = _UxGT("Z 홈으로"); PROGMEM Language_Str MSG_LEVEL_BED_HOMING = _UxGT("XYZ 홈으로"); PROGMEM Language_Str MSG_LEVEL_BED_WAITING = _UxGT("누르면 시작합니다"); PROGMEM Language_Str MSG_LEVEL_BED_NEXT_POINT = _UxGT("다음 Point"); PROGMEM Language_Str MSG_LEVEL_BED_DONE = _UxGT("레벨링 완료!"); PROGMEM Language_Str MSG_PREHEAT_1 = _UxGT("예열하기 - ") PREHEAT_1_LABEL; PROGMEM Language_Str MSG_PREHEAT_1_H = _UxGT("예열하기 - ") PREHEAT_1_LABEL " ~"; PROGMEM Language_Str MSG_PREHEAT_1_END = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐"); PROGMEM Language_Str MSG_PREHEAT_1_END_E = _UxGT("예열하기 - ") PREHEAT_1_LABEL _UxGT(" 노즐 ~"); PROGMEM Language_Str MSG_PREHEAT_2 = _UxGT("예열하기 - ") PREHEAT_2_LABEL; PROGMEM Language_Str MSG_PREHEAT_2_H = _UxGT("예열하기 - ") PREHEAT_2_LABEL " ~"; PROGMEM Language_Str MSG_PREHEAT_2_END = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐"); PROGMEM Language_Str MSG_PREHEAT_2_END_E = _UxGT("예열하기 - ") PREHEAT_2_LABEL _UxGT(" 노즐 ~"); PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Custom 예열"); PROGMEM Language_Str MSG_COOLDOWN = _UxGT("식히기"); PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("스위치 전원 켜기"); PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("스위치 전원 끄기"); PROGMEM Language_Str MSG_EXTRUDE = _UxGT("밀어내기"); PROGMEM Language_Str MSG_RETRACT = _UxGT("당기기"); PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("축 이동"); PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("베드 레벨링"); PROGMEM Language_Str MSG_IDEX_MODE_MIRRORED_COPY = _UxGT("미러 사본"); PROGMEM Language_Str MSG_UBL_DOING_G29 = _UxGT("오토레벨링 하기"); PROGMEM Language_Str MSG_NOZZLE = _UxGT("노즐"); PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("노즐 ~"); PROGMEM Language_Str MSG_BED = _UxGT("베드"); PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("펜 속도"); PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("펜 속도 ="); PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("엑스트라 펜 속도"); PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("엑스트라 펜 속도 ="); PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("온도"); PROGMEM Language_Str MSG_MOTION = _UxGT("동작"); PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("설정 저장하기"); PROGMEM Language_Str MSG_LOAD_EEPROM = _UxGT("설정 읽어오기"); PROGMEM Language_Str MSG_RESTORE_FAILSAFE = _UxGT("설정 되돌리기"); PROGMEM Language_Str MSG_INIT_EEPROM = _UxGT("EEPROM 초기화"); PROGMEM Language_Str MSG_REFRESH = LCD_STR_REFRESH _UxGT("새로고침"); PROGMEM Language_Str MSG_WATCH = _UxGT("처음으로"); PROGMEM Language_Str MSG_PREPARE = _UxGT("준비하기"); PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("일시정지"); PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("

LCD 타입 입력

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

핫엔드에 설치할 LED 설정

// Support for Adafruit Neopixel LED driver #define NEOPIXEL_LED // 주석해제 #if ENABLED(NEOPIXEL_LED) #define NEOPIXEL_TYPE NEO_GRB // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h) #define NEOPIXEL_PIN P1_24 // LED driving pin //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_PIN 5 #define NEOPIXEL_PIXELS 6 // Number of LEDs in the strip, larger of 2 strips if 2 neopixel strips are used //#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) #define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup // Use a single Neopixel LED for static (background) lighting //#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W #endif

< Configuration_adv.h >

// @section extruder /** * Extruder cooling fans * * Extruder auto fans automatically turn on when their extruders' * temperatures go above EXTRUDER_AUTO_FAN_TEMPERATURE. * * Your board's pins file specifies the recommended pins. Override those here * or set to -1 to disable completely. * * Multiple extruders can be assigned to the same pin in which case * the fan will turn on when any selected extruder is above the threshold. */ #define E0_AUTO_FAN_PIN P2_04 //핀지정 #define E1_AUTO_FAN_PIN -1 #define E2_AUTO_FAN_PIN -1 #define E3_AUTO_FAN_PIN -1 #define E4_AUTO_FAN_PIN -1 #define E5_AUTO_FAN_PIN -1 #define CHAMBER_AUTO_FAN_PIN -1 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50 #define EXTRUDER_AUTO_FAN_SPEED 200 // 255 == full speed #define CHAMBER_AUTO_FAN_TEMPERATURE 30 #define CHAMBER_AUTO_FAN_SPEED 200 // 255

/** * Controller Fan * To cool down the stepper drivers and MOSFETs. * * The fan will turn on automatically whenever any stepper is enabled * and turn off after a set period after all steppers are turned off. */ #define USE_CONTROLLER_FAN // 주석해제 #if ENABLED(USE_CONTROLLER_FAN) #define CONTROLLER_FAN_PIN P1_26 // Set a custom pin for the controller fan #define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled #define CONTROLLERFAN_SPEED 255 // 255 == full speed //#define CONTROLLERFAN_SPEED_Z_ONLY 127 // Reduce noise on machines that keep Z enabled #endif
/** * M355 Case Light on-off / brightness */ #define CASE_LIGHT_ENABLE // 주석해제 #if ENABLED(CASE_LIGHT_ENABLE) #define CASE_LIGHT_PIN P1_00 // Override the default pin if needed #define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW #define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin) //#define CASE_LIGHT_MAX_PWM 128 // Limit pwm #define CASE_LIGHT_MENU // Add Case Light options to the LCD menu //#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting. //#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED. #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } #endif #endif

파일 이름이 길어서 LCD화면에 짤릴 경우 파일 이름이 스크롤 된다.

// Enable this option to scroll long filenames in the SD card menu #define SCROLL_LONG_FILENAMES

stallguard2 설정

// @section homing // Homing hits each endstop, retracts by these distances, then does a slower bump. #define X_HOME_BUMP_MM 0 // 5 #define Y_HOME_BUMP_MM 0 // 5 #define Z_HOME_BUMP_MM 0 // 2 #define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) #define QUICK_HOME // If homing includes X and Y, do a diagonal move initially //#define HOMING_BACKOFF_MM { 2, 2, 2 } // (mm) Move away from the endstops after homing

전원을 24V를 사용할 경우 24V 로 변경

/** * Optimize spreadCycle chopper parameters by using predefined parameter sets * or with the help of an example included in the library. * Provided parameter sets are * CHOPPER_DEFAULT_12V * CHOPPER_DEFAULT_19V * CHOPPER_DEFAULT_24V * CHOPPER_DEFAULT_36V * CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V) * CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9 * * Define you own with * { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] } */ #define CHOPPER_TIMING CHOPPER_DEFAULT_24V
/** * Use StallGuard2 to home / probe X, Y, Z. * * TMC2130, TMC2160, TMC2209, TMC2660, TMC5130, and TMC5160 only * Connect the stepper driver's DIAG1 pin to the X/Y endstop pin. * X, Y, and Z homing will always be done in spreadCycle mode. * * X/Y/Z_STALL_SENSITIVITY is the default stall threshold. * Use M914 X Y Z to set the stall threshold at runtime: * * Sensitivity TMC2209 Others * HIGHEST 255 -64 (Too sensitive => False positive) * LOWEST 0 63 (Too insensitive => No trigger) * * It is recommended to set [XYZ]_HOME_BUMP_MM to 0. * * SPI_ENDSTOPS *** Beta feature! *** TMC2130 Only *** * Poll the driver through SPI to determine load when homing. * Removes the need for a wire from DIAG1 to an endstop pin. * * IMPROVE_HOMING_RELIABILITY tunes acceleration and jerk when * homing and adds a guard period for endstop triggering. */ #define SENSORLESS_HOMING // StallGuard capable drivers only 주석해제
#if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING) // TMC2209: 0...255. TMC2130: -64...63 #define X_STALL_SENSITIVITY 8 #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY #define Y_STALL_SENSITIVITY 8 #define Z_STALL_SENSITIVITY 8 // 주석해제 //#define SPI_ENDSTOPS // TMC2130 only //#define IMPROVE_HOMING_RELIABILITY #endif
/** * Use StallGuard2 to probe the bed with the nozzle. * * CAUTION: This could cause damage to machines that use a lead screw or threaded rod * to move the Z axis. Take extreme care when attempting to enable this feature. */ #define SENSORLESS_PROBING // StallGuard capable drivers only
/** * Enable M122 debugging command for TMC stepper drivers. * M122 S0/1 will enable continous reporting. */ #define TMC_DEBUG

TMC 드라이버 모니터링

/** * Monitor Trinamic drivers for error conditions, * like overtemperature and short to ground. * In the case of overtemperature Marlin can decrease the driver current until error condition clears. * Other detected conditions can be used to stop the current print. * Relevant g-codes: * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. * M911 - Report stepper driver overtemperature pre-warn condition. * M912 - Clear stepper driver overtemperature pre-warn condition flag. * M122 - Report driver parameters (Requires TMC_DEBUG) */ #define MONITOR_DRIVER_STATUS // 주석해제

핀 설정 상태 모니터링

/** * M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins */ #define PINS_DEBUGGING // 주석해제
>>> M43 SENDING:M43 PIN: 0.00 <unused/unknown> Input = 1 PIN: 0.01 <unused/unknown> Input = 1 PIN: 0.02 (A 2) <unused/unknown> Analog in = 1010 Input = 1 PIN: 0.03 (A 3) <unused/unknown> Analog in = 832 Input = 0 PIN: 0.04 <unused/unknown> Input = 1 PIN: 0.05 <unused/unknown> Input = 1 PIN: 0.06 <unused/unknown> Output = 1 PIN: 0.07 <unused/unknown> Input = 0 PIN: 0.08 <unused/unknown> Input = 1 PIN: 0.09 <unused/unknown> Input = 1 PIN: 0.10 <unused/unknown> Input = 1 PIN: 0.11 E0_DIR_PIN protected PIN: 0.15 DOGLCD_SCK Input = 0 . SCK_PIN Input = 0 PIN: 0.16 LCD_SDSS Output = 1 . SDSS Output = 1 . SS_PIN Output = 1 PIN: 0.17 MISO_PIN Input = 1 PIN: 0.18 DOGLCD_MOSI Output = 1 . MOSI_PIN Output = 1 PIN: 0.19 Y_STEP_PIN protected PIN: 0.20 Y_DIR_PIN protected PIN: 0.21 Z_ENABLE_PIN protected PIN: 0.22 Z_STEP_PIN protected PIN: 0.23 (A23) <unused/unknown> Analog in = 0 Input = 0 PIN: 0.24 (A24) <unused/unknown> Analog in = 1023 Input = 0 PIN: 0.25 (A25) <unused/unknown> Analog in = 1023 Input = 0 PIN: 0.26 (A26) <unused/unknown> Analog in = 840 Input = 0 PIN: 0.27 <unused/unknown> Input = 0 PIN: 0.28 BTN_ENC Analog in = 0 PIN: 0.29 <unused/unknown> Input = 1 PIN: 0.30 <unused/unknown> Input = 0 PIN: 1.00 CASE_LIGHT_PIN Input = 0 PIN: 1.01 E1_CS_PIN Input = 1 . Z2_SERIAL_TX_PIN Input = 1 . Z2_SERIAL_RX_PIN Input = 1 . E1_SERIAL_TX_PIN Input = 1 . E1_SERIAL_RX_PIN Input = 1 PIN: 1.04 E0_CS_PIN Input = 1 . E0_SERIAL_TX_PIN Input = 1 . E0_SERIAL_RX_PIN Input = 1 PIN: 1.08 Z_CS_PIN Input = 1 . Z_SERIAL_TX_PIN Input = 1 . Z_SERIAL_RX_PIN Input = 1 PIN: 1.09 Y_CS_PIN Input = 1 . Y_SERIAL_TX_PIN Input = 1 . Y_SERIAL_RX_PIN Input = 1 PIN: 1.10 X_CS_PIN Input = 1 . X_SERIAL_TX_PIN Input = 1 . X_SERIAL_RX_PIN Input = 1 PIN: 1.14 E1_DIR_PIN Input = 1 PIN: 1.15 E1_STEP_PIN Input = 1 PIN: 1.16 E1_ENABLE_PIN Output = 1 PIN: 1.17 <unused/unknown> Input = 1 PIN: 1.18 LCD_PINS_ENABLE Output = 0 PIN: 1.19 LCD_PINS_RS Output = 0 PIN: 1.20 LCD_PINS_D4 Analog in = 0 PIN: 1.21 LCD_PINS_D5 Analog in = 0 PIN: 1.22 LCD_PINS_D6 Analog in = 0 PIN: 1.23 LCD_PINS_D7 Analog in = 0 PIN: 1.24 <unused/unknown> Output = 0 PIN: 1.25 FIL_RUNOUT2_PIN Input = 1 PIN: 1.26 CONTROLLER_FAN_PIN protected . FIL_RUNOUT_PIN protected PIN: 1.27 Z_MAX_PIN protected . Z_STOP_PIN protected PIN: 1.28 Y_MAX_PIN protected . Y_STOP_PIN protected PIN: 1.29 X_MIN_PIN protected . X_STOP_PIN protected PIN: 1.30 (A62) BEEPER_PIN Output = 0 PIN: 1.31 (A63) SD_DETECT_PIN Input = 1 PIN: 2.00 SERVO0_PIN Input = 1 PIN: 2.01 X_ENABLE_PIN protected
PIN: 2.02 X_STEP_PIN protected PIN: 2.03 FAN_PIN protected PIN: 2.04 E0_AUTO_FAN_PIN protected . FAN1_PIN protected PIN: 2.05 HEATER_BED_PIN protected PIN: 2.06 X_DIR_PIN protected PIN: 2.07 HEATER_0_PIN protected PIN: 2.08 Y_ENABLE_PIN protected PIN: 2.09 <unused/unknown> Input = 0 PIN: 2.10 <unused/unknown> Input = 1 PIN: 2.11 Z_DIR_PIN protected PIN: 2.12 E0_ENABLE_PIN protected PIN: 2.13 E0_STEP_PIN protected PIN: 3.25 BTN_EN2 Analog in = 0 PIN: 3.26 BTN_EN1 Input = 1 PIN: 4.28 <unused/unknown> Input = 1 PIN: 4.29 <unused/unknown> Input = 1

visual studio code 하단부에 있는 Build 버튼을 클릭하여 컴파일을 한다.

컴파일이 성공적으로 완료되어도 problems 에 건수가 표시되면

해당 라이브러리를 검색하여 설치한 후 다시 컴파일 한다.

에러없이 컴파일이 완료되면 하단부에 있는 업로드 버튼을 클릭하여 보드의 SD카드로 업로드 한다.

SD 카드에 컴파일 완료된 firmware 가 업로드 되어 있음을 확인할 수 있다.

보드의 reset 버튼을 누르면 firmware.bin 이 FIRMWARE.CUR 로 변경되면서 펌업이 완료된다.

 

반응형

댓글