2019年8月12日月曜日

3D プリンター Alunar-M508 Marlin ソースコードの修正箇所確認

はじめに

3D プリンター Alunar-M508 のファームウェア Marlin と、GitHub で公開されてるオリジナル Marlin のソースコードの違いを確認してみました。

なお、この Alunar-M508 は 2018年 5月頃に Amazon で購入しました。購入先や時期により修正箇所に違いがあるかもしれないので注意が必要です。

M508 のファームウェアのバージョン確認

OctoPrint で M508 に接続した時のコンソール出力を確認すると Marlin version 1.1.1 でした。

また M508 を購入した時に SD カードが付属しており、この中に入っていた Marlin ソースコードのバージョンも 1.1.1 でした。このソースコードと GitHub で公開されているオリジナル Marlin version 1.1.1 のソースコードを比較してみました。

比較方法

まず以下のように GitHub で公開されているソースコードと SD カードの中の M508 Marlin ソースコードを同じディレクトリに置きました。

$ ls -l
total 0
drwxrwxr-x 1 worker worker 4096 May 12  2017 Marlin-1.1.1
drwx------ 1 worker worker 4096 Dec 21  2017 Marlin-alunar-m508-1.1.1

このディレクトリで diff コマンドで再帰的に比較してみました。

$ diff -NarU 0 Marlin-1.1.1/ Marlin-alunar-m508-1.1.1/

比較結果

以下が diff コマンドの出力結果の内容です。ソースコードの該当箇所を参照すると各設定内容に関する説明がコメントして書かれていました。

Marlin/Configuration.h

@@ -121 +121 @@
-  #define MOTHERBOARD BOARD_RAMPS_14_EFB
+  #define MOTHERBOARD BOARD_MKS_BASE

@@ -243 +243 @@
-#define TEMP_SENSOR_BED 0
+#define TEMP_SENSOR_BED 1

@@ -308 +308 @@
-  #define  DEFAULT_Kd 114
+  #define  DEFAULT_Kd 144

@@ -442,3 +442,3 @@
-#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_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.

@@ -479 +479 @@
-#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
+#define DEFAULT_AXIS_STEPS_PER_UNIT   { 100, 100  , 400, 96 }

@@ -697 +697 @@
-#define INVERT_X_DIR false
+#define INVERT_X_DIR true

@@ -707 +707 @@
-#define INVERT_E0_DIR false
+#define INVERT_E0_DIR true

@@ -727,2 +727,2 @@
-#define X_MIN_POS 0
-#define Y_MIN_POS 0
+#define X_MIN_POS -10
+#define Y_MIN_POS -15

@@ -991,2 +991,2 @@
-#define PREHEAT_1_TEMP_HOTEND 180
-#define PREHEAT_1_TEMP_BED     70
+#define PREHEAT_1_TEMP_HOTEND 200
+#define PREHEAT_1_TEMP_BED     50

@@ -995 +995 @@
-#define PREHEAT_2_TEMP_HOTEND 240
+#define PREHEAT_2_TEMP_HOTEND 250

@@ -1172 +1172 @@
-//#define SDSUPPORT
+#define SDSUPPORT

@@ -1316 +1316 @@
-//#define REPRAP_DISCOUNT_SMART_CONTROLLER
+#define REPRAP_DISCOUNT_SMART_CONTROLLER

Marlin/Configuration_adv.h

@@ -85,2 +85,2 @@
-  #define THERMAL_PROTECTION_BED_PERIOD 20    // Seconds
-  #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
+  #define THERMAL_PROTECTION_BED_PERIOD 180    // Seconds
+  #define THERMAL_PROTECTION_BED_HYSTERESIS 5 // Degrees Celsius

@@ -771 +771 @@
-//#define FILAMENT_CHANGE_FEATURE
+  #define FILAMENT_CHANGE_FEATURE

Marlin/Version.h

@@ -92 +92 @@
-  #define WEBSITE_URL "http://marlinfw.org"
+  #define WEBSITE_URL ""

Marlin/ultralcd_impl_HD44780.h

@@ -416,3 +416,3 @@
-    lcd.setCursor(indent, 0); lcd.print('\x00'); lcd_printPGM(PSTR( "------" ));  lcd.print('\x01');
-    lcd.setCursor(indent, 1);                    lcd_printPGM(PSTR("|Marlin|"));  lcd_printPGM(extra);
-    lcd.setCursor(indent, 2); lcd.print('\x02'); lcd_printPGM(PSTR( "------" ));  lcd.print('\x03');
+    lcd.setCursor(indent, 0);                      lcd_printPGM(PSTR( "   welcome" ));
+   // lcd.setCursor(indent, 1);                    lcd_printPGM(PSTR("|Marlin|"));  lcd_printPGM(extra);
+   // lcd.setCursor(indent, 2); lcd.print('\x02'); lcd_printPGM(PSTR( "------" ));  lcd.print('\x03');
  • M508 電源投入時に LCD に「welcome」って表示されるんですが、これで変更できるかな。。。

その他

M508 SD カードのソースコードには以下のファイルが含まれていたんですが、GitHub のオリジナルソースコードには含まれておらず、とりあえず無視しました

  • Marlin/Marlin.ino.mega.hex
  • Marlin/Marlin.ino.with_bootloader.mega.hex

参考

  • http://www.handy-dandy.net/archives/3562.html

0 件のコメント:

コメントを投稿