Aycubic 4MAXpro2.0のファームウェアを作る作業
作業履歴として残します。
今回はメーカー配布とか個人配布とか改変してある物では無くて、2021/09/21日現在のMarlin bugfix-2.0.xからクリーンインストール的な感じで作成します。
何故か?bugfixの方が先に 2.0.9.2にバージョンが上がったみたいですね。
作業の流れ
1、configuration.h の編集
2、configuration_adv.h の編集
3、pins_TRIGORILLA_14.h の編集
4、pins_RAMPS.h の編集
で行って見たいと思います。
1、Configuration.h の編集
142 #define MOTHERBOARD BOARD_TRIGORILLA_14//BOARD_RAMPS_14_EFB
366 #define PSU_CONTROL
490 #define TEMP_SENSOR_0 5//1
498 #define TEMP_SENSOR_BED 5//0
604 #define DEFAULT_Kp 15.96//22.20
605 #define DEFAULT_Ki 0.41//1.08
606 #define DEFAULT_Kd 58.49//114.00
832 #define X_MIN_ENDSTOP_INVERTING true
833 #define Y_MIN_ENDSTOP_INVERTING true
834 #define Z_MIN_ENDSTOP_INVERTING true
864 #define X_DRIVER_TYPE TMC2208_STANDALONE
865 #define Y_DRIVER_TYPE TMC2208_STANDALONE
875 #define E0_DRIVER_TYPE TMC2208_STANDALONE
930 #define DEFAULT_AXIS_STEPS_PER_UNIT { 100.06,80.06,800,392.16 }//{ 80, 80, 400, 500 } NORMAL IS 100,80,800,400 2019.6.10修改,为了测试
937 #define DEFAULT_MAX_FEEDRATE { 150, 150, 20, 80 }//{ 300, 300, 5, 25 }
950 #define DEFAULT_MAX_ACCELERATION { 700, 700, 70, 15000 }//{ 3000, 3000, 100, 10000 }
965 #define DEFAULT_ACCELERATION 700//3000 // X, Y, Z and E acceleration for printing moves
966 #define DEFAULT_RETRACT_ACCELERATION 700//3000 // E acceleration for retracts
967 #define DEFAULT_TRAVEL_ACCELERATION 700//3000 // X, Y, Z acceleration for travel (non printing) moves
977 #define CLASSIC_JERK
979 #define DEFAULT_XJERK 8.2//10.0
980 #define DEFAULT_YJERK 8.2//10.0
981 #define DEFAULT_ZJERK 0.2//0.3
994 #define DEFAULT_EJERK 10//5.0 // May be used by Linear Advance
1004 #define JUNCTION_DEVIATION_MM 0.013 ※// (mm) Distance from real junction edge
1017 //#define S_CURVE_ACCELERATION ※
1033 //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
1067 #define PROBE_MANUALLY
1288 //#define PREHEAT_BEFORE_PROBING ※
1334 #define INVERT_E0_DIR true
1372 #define X_BED_SIZE 270//200
1373 #define Y_BED_SIZE 210//200
1376 #define X_MIN_POS -8.5//0
1399 //#define MIN_SOFTWARE_ENDSTOPS
1410 //#define MAX_SOFTWARE_ENDSTOPS
1437 #define FILAMENT_RUNOUT_SENSOR
1442 #define FIL_RUNOUT_STATE HIGH//LOW // Pin state indicating that filament is NOT present.
1541 #define MESH_BED_LEVELING
1554 #define PREHEAT_BEFORE_LEVELING
1569 #define MANUAL_PROBE_START_Z 0.2 ※
1578 #define DEFAULT_LEVELING_FADE_HEIGHT 10.0//M420 ※
1658 #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed
1659 #define GRID_MAX_POINTS_X 4 // Don't use more than 7 points per axis, implementation limited.
1660 #define GRID_MAX_POINTS_Y 3//GRID_MAX_POINTS_X
1825 #define EEPROM_SETTINGS // Persistent storage with M500 and M501
1881 #define NOZZLE_PARK_FEATURE
2177 #define SPEAKER
・変更点のみを抽出しました。
・※は変更は無いですが主要項目のため書き出しました。
・977行目の CLASSIC_JERKの宣言をコメントアウトすると、1004行目の JUNCTION_DEVIATIONが有効になります。
Configuration_adv.h の編集
397 //#define AUTOTEMP
475 #define HOTEND_IDLE_TIMEOUT
477 #define HOTEND_IDLE_TIMEOUT_SEC (15*60)//(5*60)
499 #define USE_CONTROLLER_FAN
489 #define CONTROLLERFAN_IDLE_TIME 10//60 // (seconds) Extra time to keep the fan running after disabling motors
501 #define CONTROLLER_FAN_PIN FAN1_PIN//-1 // Set a custom pin for the controller fan
587 #define E0_AUTO_FAN_PIN FAN2_PIN//-1
620 #define CASE_LIGHT_ENABLE
625 #define CASE_LIGHT_DEFAULT_BRIGHTNESS 255//105 // Set default power-up brightness (0-255, requires PWM pin)
984 #define DISABLE_INACTIVE_Z false//true // Set 'false' if the nozzle could fall onto your printed part!
1125 #define ADAPTIVE_STEP_SMOOTHING
1863 //#define BABYSTEPPING ※
11910 //#define LIN_ADVANCE ※
1975 //#define G29_RETRY_AND_RECOVER ※
2055 //#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
2097 #define MIN_STEPS_PER_SEGMENT 1//6
2166 #define MAX_CMD_SIZE 128//96
2167 #define BUFSIZE 8//4
2176 #define TX_BUFFER_SIZE 4//0
2182 #define RX_BUFFER_SIZE 256//1024
2214 #define EMERGENCY_PARSER
2391 #define ADVANCED_PAUSE_FEATURE
3600 //#define AUTO_REPORT_TEMPERATURES
4184 #define DIRECT_PIN_CONTROL
4189 #define PINS_DEBUGGING
・変更点のみを抽出しました。
pins_TRIGORILLA_14.h の編集
修正なし
pins_RAMPS.h の編集
89 #define X_MAX_PIN -1//2
94 #define Y_MIN_PIN 19//14
97 #define Y_MAX_PIN -1//15
105 #define Z_MAX_PIN -1//19
113 #define Z_MIN_PROBE_PIN -1//32
149 #define E1_STEP_PIN -1//36
150 #define E1_DIR_PIN -1//34
151 #define E1_ENABLE_PIN -1//30
153 #define E1_CS_PIN -1//44
247 #define LED_PIN 45//13
250 #define FILWIDTH_PIN -1//5 // Analog Input on AUX2
255 #define FIL_RUNOUT_PIN 33//4
259 #define PS_ON_PIN 21//12
264 #define CASE_LIGHT_PIN 45//6 // Hardware PWM
421 #define E_MUX0_PIN -1//40 // Z_CS_PIN
424 #define E_MUX1_PIN -1//42 // E0_CS_PIN
427 #define E_MUX2_PIN -1//44 // E1_CS_PIN
・変更点のみを抽出しました。
・PS_ON_PIN 21 は、不勉強のためパワーOFFの機能が動作出来ていません。
上記のファイルに変更を行い Buildを行えば、素Marlin2.0.x + TRIGOLLIRA + 4MAXpro2.0のHardWear での印刷が、USB経由でのみですが可能になります。(SDカードも使えません。)
Marlinはヘッダーファイルのシステムが良く出来ているので(ヘッダーファイル自体はもう少し整頓して頂けると助かるけど、、)、これだけの変更で自分のプリンターに合わせたファームウェアが完成してしまいます。
編集のコンセプトは 8bitCUP、16MHz駆動の計算能力を考慮してあれこれ機能を有効にしない。というか可能な限り機能を殺していく。
そしてCPUパワーを比較的軽量な CLASSIC_JERK制御に全集中させる。
印刷品質向上の手法は、JDとか S_Curveとか LIN_ADVANCEとかややこしい物を使用しない。
MIN_STEPS_PER_SEGMENT を1に設定して演算結果を全て実行させながら印刷を行う。
「基本的な動作をしっかり行う。」 そんなコンセプトです。
ビルドした物を残しておきます。
私の手元にあった4MAXは、縁が無かったのか? 手元を離れました。。。
この記事が気に入ったらサポートをしてみませんか?