Aycubic 4MAXpro2.0のファームウェアを作る作業

作業履歴として残します。

今回はメーカー配布とか個人配布とか改変してある物では無くて、2021/09/21日現在のMarlin bugfix-2.0.xからクリーンインストール的な感じで作成します。
何故か?bugfixの方が先に 2.0.9.2にバージョンが上がったみたいですね。

画像1


作業の流れ

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は、縁が無かったのか? 手元を離れました。。。


この記事が気に入ったらサポートをしてみませんか?