查看: 12915|回复: 3
打印 上一主题 下一主题

3D打印机——Sprinter固件全中文解析

[复制链接]

68

主题

115

帖子

5554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5554
跳转到指定楼层
楼主
发表于 2014-9-13 21:28:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*
    This file is part of Repetier-Firmware.

    Repetier-Firmware is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Repetier-Firmware is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Repetier-Firmware.  If not, see <http://www.gnu.org/licenses/>.

*/

#ifndef CONFIGURATION_H
#define CONFIGURATION_H

/**************** READ FIRST ************************

   This configuration file was created with the configuration tool. For that
   reason, it does not contain the same informations as the original Configuration.h file.
   It misses the comments and unused parts. Open this file file in the config tool
   to see and change the data. You can also upload it to newer/older versions. The system
   will silently add new options, so compilation continues to work.

   This file is optimized for version 0.91
   generator: http://www.repetier.com/firmware/v091/
*/

#define NUM_EXTRUDER 1//设置挤出头数量、一般设为1,我们常用的melzi、Sanguinololu等主控板是只支持单喷头的、其他常用的电路板如RAMPS电路设计上可支持双碰头。
#define MOTHERBOARD 63//设置主控板,具体主板型号及其对应编码可以查看pin.h。
//此处63为melzi和Sanguinololu。这两个板子是硬件兼容的、唯一的区别在于Sanguinololu无法通过Gcode控制风扇,也就是说风扇安装后只能全速转动。无法根据打印状态调速。

#include "pins.h"

// ################## EDIT THESE SETTINGS MANUALLY ################
// ################ END MANUAL SETTINGS ##########################

#define FAN_BOARD_PIN -1
//#define EXTERNALSERIAL  use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
// Uncomment the following line if you are using arduino compatible firmware made for Arduino version earlier then 1.0
// If it is incompatible you will get compiler errors about write functions not beeing compatible!
//#define COMPAT_PRE1


#define DRIVE_SYSTEM 0//Mendel型打印机、3为Delta
#define XAXIS_STEPS_PER_MM 100//x轴每毫米100步
#define YAXIS_STEPS_PER_MM 100//y轴每毫米100步
#define ZAXIS_STEPS_PER_MM 407//z轴每毫米407步
#define EXTRUDER_FAN_COOL_TEMP 50//冷却风扇开启挤出头温度?
#define EXT0_X_OFFSET 0//挤出机位置补偿?
#define EXT0_Y_OFFSET 0
#define EXT0_STEPS_PER_MM 95//挤出机每毫米407步
#define EXT0_TEMPSENSOR_TYPE 97//挤出机温度传感器(热敏电阻)类型选择
#define EXT0_TEMPSENSOR_PIN TEMP_0_PIN//挤出机温度传感器(热敏电阻)引脚设置
#define EXT0_HEATER_PIN HEATER_0_PIN//挤出机加热管控制引脚设置
#define EXT0_STEP_PIN E0_STEP_PIN//挤出机步进电机驱动脉冲引脚设置
#define EXT0_DIR_PIN E0_DIR_PIN//挤出机步进电机驱动方向引脚设置
#define EXT0_INVERSE 1//挤出机顺逆向设定???
#define EXT0_ENABLE_PIN E0_ENABLE_PIN//挤出机步进电机驱动使能引脚设置
#define EXT0_ENABLE_ON 0//引用处:#if EXT0_ENABLE_PIN>-1
                                                //WRITE(EXT0_ENABLE_PIN,EXT0_ENABLE_ON );
                                                //这里意思是如果挤出头步进电机驱动使能端是0使能则值设为0如果是1使能则设为1。3D打印机的驱动芯片一般为A4982(MAKERBOT)、A4988(其他开源项目采用)使能都是0有效。
#define EXT0_MAX_FEEDRATE 50//最大进料速度
#define EXT0_MAX_START_FEEDRATE 20//最大开始进料速度
#define EXT0_MAX_ACCELERATION 5000//最大进料加速度
#define EXT0_HEAT_MANAGER 3
#define EXT0_WATCHPERIOD 1
#define EXT0_PID_INTEGRAL_DRIVE_MAX 230//PID积分上限
#define EXT0_PID_INTEGRAL_DRIVE_MIN 40//下限
#define EXT0_PID_P 7//PID设置
#define EXT0_PID_I 2
#define EXT0_PID_D 40
#define EXT0_PID_MAX 255//挤出头加热管PWM波最大输出量
#define EXT0_ADVANCE_K 0//
#define EXT0_ADVANCE_L 0//
#define EXT0_ADVANCE_BACKLASH_STEPS 0//
#define EXT0_WAIT_RETRACT_TEMP 150//
#define EXT0_WAIT_RETRACT_UNITS 0
#define EXT0_SELECT_COMMANDS ""
#define EXT0_DESELECT_COMMANDS ""
#define EXT0_EXTRUDER_COOLER_PIN -1//设置挤出头散热器引脚(负数代表不使用此项)
#define EXT0_EXTRUDER_COOLER_SPEED 255//设置散热器速度为255(应该是最大)
#define RETRACT_DURING_HEATUP true
#define PID_CONTROL_RANGE 20//PID控制范围
#define SKIP_M109_IF_WITHIN 2
#define SCALE_PID_TO_MAX 0
#define TEMP_HYSTERESIS 0//温度滞后值
#define EXTRUDE_MAXLENGTH 160//挤出最大长度
#define NUM_TEMPS_USERTHERMISTOR0 0//留给用户设定的热敏电阻、为1的时候有效
#define USER_THERMISTORTABLE0 {}//对应的温度表、具体编写规则请查看Extruder
#define NUM_TEMPS_USERTHERMISTOR1 0
#define USER_THERMISTORTABLE1 {}
#define NUM_TEMPS_USERTHERMISTOR2 0
#define USER_THERMISTORTABLE2 {}
#define USE_GENERIC_THERMISTORTABLE_1//设定使用通用热敏电阻及其温度表
#define GENERIC_THERM1_BETA 3950//热敏电阻B值(材料常数)可以百度查看具体公式
#define GENERIC_THERM1_MIN_TEMP -20//最小温度
#define GENERIC_THERM1_MAX_TEMP 300//最大温度
#define GENERIC_THERM1_T0 25
#define GENERIC_THERM1_R0 100000
#define GENERIC_THERM1_R1 0
#define GENERIC_THERM1_R2 10000
#define GENERIC_THERM_VREF 5//热敏电阻分压电路的基准电压设置
#define GENERIC_THERM_NUM_ENTRIES 33
#define HEATER_PWM_SPEED 0

// ############# Heated bed configuration ########################

#define HAVE_HEATED_BED 1//热床使能位
#define HEATED_BED_MAX_TEMP 120//最大热床温度
#define SKIP_M190_IF_WITHIN 1
#define HEATED_BED_SENSOR_TYPE 97//热床温度传感器(热敏电阻)类型选择
#define HEATED_BED_SENSOR_PIN TEMP_1_PIN//温度传感器(热敏电阻)引脚设置
#define HEATED_BED_HEATER_PIN HEATER_1_PIN//热床控制端口设置
#define HEATED_BED_SET_INTERVAL 5000//热床设置间隔?
#define HEATED_BED_HEAT_MANAGER 0
#define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255//PID积分上限
#define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80//下限
#define HEATED_BED_PID_PGAIN   196//热床加热过程的PID参数设定
#define HEATED_BED_PID_IGAIN   33
#define HEATED_BED_PID_DGAIN 290
#define HEATED_BED_PID_MAX 255//热床加热最大输出
#define MIN_EXTRUDER_TEMP 150//最小挤出机温度,很多人反映在Repetier-Host的手动模式下操作挤出头没有动作,就是因为固件这里设定了最低挤出机温度,用来保护挤出机。在耗材没有完全融化时,挤出机不动。
#define MAXTEMP 275//挤出机最大温度
#define MIN_DEFECT_TEMPERATURE -10//最小缺陷温度,这里的理解可能是如果读取温度低于(下条语句高于)这个温度时,就认为温度故障。机器无法运行。
#define MAX_DEFECT_TEMPERATURE 290

// ################ Endstop configuration #####################
//这里和marlin的固件大体相同,主要是由限位开关的上拉电阻、开关信号正负配置、硬件开关的使能等配置组成
#define ENDSTOP_PULLUP_X_MIN true//X轴home是否有上拉电阻
#define ENDSTOP_X_MIN_INVERTING false//X轴home的限位开关信号正反配置//机械限位开关通常会把连线连在NC端,这就会有个一个数字信号1输入到主板中。如果你的机械限位开关的连线是连在NO端,这就需要ENDSTOP_INVERTING采用ture从而使数字信号0反向变为1。对于光学开关来说,则一般不用进行调整。(引用自:)
#define MIN_HARDWARE_ENDSTOP_X true//是否有硬件X轴home限位开关
#define ENDSTOP_PULLUP_Y_MIN true//同上
#define ENDSTOP_Y_MIN_INVERTING false
#define MIN_HARDWARE_ENDSTOP_Y true
#define ENDSTOP_PULLUP_Z_MIN true//同上
#define ENDSTOP_Z_MIN_INVERTING false
#define MIN_HARDWARE_ENDSTOP_Z true
#define ENDSTOP_PULLUP_X_MAX true
#define ENDSTOP_X_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_X false
#define ENDSTOP_PULLUP_Y_MAX true
#define ENDSTOP_Y_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_Y false
#define ENDSTOP_PULLUP_Z_MAX true
#define ENDSTOP_Z_MAX_INVERTING false
#define MAX_HARDWARE_ENDSTOP_Z false
#define max_software_endstop_r true//非线性系统用到的

#define min_software_endstop_x false//因为使用了硬件限位开关,所以无需软件限位开关。设置为false
#define min_software_endstop_y false//同上
#define min_software_endstop_z false//同上
#define max_software_endstop_x true//XYZ轴都分别只使用了一个限位开关,所以软件限位设置为真
#define max_software_endstop_y true//
#define max_software_endstop_z true//
#define ENDSTOP_X_BACK_MOVE 5//X轴触底后反向移动距离
#define ENDSTOP_Y_BACK_MOVE 5//
#define ENDSTOP_Z_BACK_MOVE 1//
#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3//X轴重新设定缩减系数???
#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
#define ENDSTOP_X_BACK_ON_HOME 1//打印完是否归位
#define ENDSTOP_Y_BACK_ON_HOME 1
#define ENDSTOP_Z_BACK_ON_HOME 0
#define ALWAYS_CHECK_ENDSTOPS 1//是否每次检查限位开关(这里可能是只打印作业前)

// ################# XYZ movements ###################

#define X_ENABLE_ON 0//和挤出机的设置相同//这里意思是如果X轴步进电机驱动使能端是0使能则值设为0如果是1使能则设为1。3D打印机的驱动芯片一般为A4982(MAKERBOT)、A4988(其他开源项目采用)使能都是0有效。
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define DISABLE_X 0//关闭X轴步进电机
#define DISABLE_Y 0
#define DISABLE_Z 0
#define DISABLE_E 0
#define INVERT_X_DIR 0//电机方向信号信号正反配置
#define INVERT_Y_DIR 0
#define INVERT_Z_DIR 0
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
#define X_MAX_LENGTH 200//打印机的打印尺寸设置
#define Y_MAX_LENGTH 200
#define Z_MAX_LENGTH 180
#define X_MIN_POS 0//XYZ的最小位置值设置
#define Y_MIN_POS 0
#define Z_MIN_POS 0

// ##########################################################################################
// ##                           Movement settings                                          ##
// ##########################################################################################


#define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
#define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves

// Delta settings
#define DELTA_HOME_ON_POWER 0

#define MAX_DELTA_SEGMENTS_PER_LINE 24
#define STEPPER_INACTIVE_TIME 360L
#define MAX_INACTIVE_TIME 0L
#define MAX_FEEDRATE_X 200
#define MAX_FEEDRATE_Y 200
#define MAX_FEEDRATE_Z 4
#define HOMING_FEEDRATE_X 40
#define HOMING_FEEDRATE_Y 40
#define HOMING_FEEDRATE_Z 2
#define HOMING_ORDER HOME_ORDER_XYZ
#define ENABLE_BACKLASH_COMPENSATION 0
#define X_BACKLASH 0
#define Y_BACKLASH 0
#define Z_BACKLASH 0
#define RAMP_ACCELERATION 1
#define STEPPER_HIGH_DELAY 0
#define STEP_DOUBLER_FREQUENCY 12000
#define ALLOW_QUADSTEPPING 1
#define DOUBLE_STEP_DELAY 1 // time in microseconds
#define MAX_HALFSTEP_INTERVAL 1999
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1000
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 100
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 1000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 100
#define MAX_JERK 20
#define MAX_ZJERK 0.3
#define MOVE_CACHE_SIZE 16
#define MOVE_CACHE_LOW 10
#define LOW_TICKS_PER_MOVE 250000
#define FEATURE_TWO_XSTEPPER 0
#define X2_STEP_PIN   E1_STEP_PIN
#define X2_DIR_PIN    E1_DIR_PIN
#define X2_ENABLE_PIN E1_ENABLE_PIN
#define FEATURE_TWO_YSTEPPER 0
#define Y2_STEP_PIN   E1_STEP_PIN
#define Y2_DIR_PIN    E1_DIR_PIN
#define Y2_ENABLE_PIN E1_ENABLE_PIN
#define FEATURE_TWO_ZSTEPPER 0
#define Z2_STEP_PIN   E1_STEP_PIN
#define Z2_DIR_PIN    E1_DIR_PIN
#define Z2_ENABLE_PIN E1_ENABLE_PIN
#define FEATURE_DITTO_PRINTING 0


// ################# Misc. settings ##################

#define BAUDRATE 115200//波特率设定
#define ENABLE_POWER_ON_STARTUP
#define POWER_INVERTING 0
#define KILL_METHOD 1//使用处:#if defined(KILL_METHOD) && KILL_METHOD==1
    HAL::resetHardware();
                     //应该是紧急关机使能
#define GCODE_BUFFER_SIZE 2//Gcode缓冲空间大小
#define ACK_WITH_LINENUMBER//确认行数
#define WAITING_IDENTIFIER "wait"//等待标示符
#define ECHO_ON_EXECUTE
#define EEPROM_MODE 1//是否支持EEPROM

/* ======== Servos =======
Control the servos with
M340 P<servoId> S<pulseInUS>   / ServoID = 0..3  pulseInUs = 500..2500
Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
*/
#define FEATURE_SERVO 0
#define SERVO0_PIN 11
#define SERVO1_PIN -1
#define SERVO2_PIN -1
#define SERVO3_PIN -1
#define FEATURE_WATCHDOG 0

// #################### Z-Probing #####################

#define FEATURE_Z_PROBE 0
#define Z_PROBE_PIN -1
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 0
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 0
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 1
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_HEIGHT 40
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 20
#define Z_PROBE_Y1 20
#define Z_PROBE_X2 160
#define Z_PROBE_Y2 20
#define Z_PROBE_X3 100
#define Z_PROBE_Y3 160

#ifndef SDSUPPORT  // Some boards have sd support on board. These define the values already in pins.h
#define SDSUPPORT 0
#define SDCARDDETECT -1
#define SDCARDDETECTINVERTED 0
#endif
#define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
#define ARC_SUPPORT 1
#define FEATURE_MEMORY_POSITION 1
#define FEATURE_CHECKSUM_FORCED 0
#define FEATURE_FAN_CONTROL 1
#define FEATURE_CONTROLLER 0
#define UI_LANGUAGE 0
#define UI_PRINTER_NAME "RepRap"
#define UI_PRINTER_COMPANY "Home made"
#define UI_PAGES_DURATION 4000
#define UI_ANIMATION 1
#define UI_DISABLE_AUTO_PAGESWITCH 1
#define UI_AUTORETURN_TO_MENU_AFTER 30000
#define FEATURE_UI_KEYS 0
#define UI_ENCODER_SPEED 1
#define UI_KEY_BOUNCETIME 10
#define UI_KEY_FIRST_REPEAT 500
#define UI_KEY_REDUCE_REPEAT 50
#define UI_KEY_MIN_REPEAT 50
#define FEATURE_BEEPER 0
#define CASE_LIGHTS_PIN -1
#define UI_START_SCREEN_DELAY 1000
/**
Beeper sound definitions for short beeps during key actions
and longer beeps for important actions.
Parameter is delay in microseconds and the secons is the number of repetitions.
Values must be in range 1..255
*/
#define BEEPER_SHORT_SEQUENCE 2,2
#define BEEPER_LONG_SEQUENCE 8,8
#define UI_SET_PRESET_HEATED_BED_TEMP_PLA 60
#define UI_SET_PRESET_EXTRUDER_TEMP_PLA   190
#define UI_SET_PRESET_HEATED_BED_TEMP_ABS 110
#define UI_SET_PRESET_EXTRUDER_TEMP_ABS   240
#define UI_SET_MIN_HEATED_BED_TEMP  30
#define UI_SET_MAX_HEATED_BED_TEMP 120
#define UI_SET_MIN_EXTRUDER_TEMP   170
#define UI_SET_MAX_EXTRUDER_TEMP   260
#define UI_SET_EXTRUDER_FEEDRATE 2
#define UI_SET_EXTRUDER_RETRACT_DISTANCE 3

#endif

回复

使用道具 举报

0

主题

10

帖子

36

积分

红蚂蚁

Rank: 1

积分
36
沙发
发表于 2014-10-29 09:31:07 | 只看该作者
谢谢楼主分享
回复 支持 反对

使用道具 举报

1

主题

5

帖子

60

积分

橙蚂蚁

Rank: 2

积分
60
板凳
发表于 2014-11-4 00:26:31 | 只看该作者
谢谢楼主分享,赞一个
回复 支持 反对

使用道具 举报

0

主题

11

帖子

87

积分

橙蚂蚁

Rank: 2

积分
87
地板
发表于 2014-12-9 19:18:56 | 只看该作者
刚好想研究一下Sprinter,在网上看到可以控制DLP
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|3D小蚂蚁工作室 ( 赣ICP备13006545号 )

GMT+8, 2024-11-23 21:47 , Processed in 0.080511 second(s), 23 queries .

Powered by 版权所有 X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表