はじめに idbox!のファームウェアを最新のMalineに入れ替えます。また、X,Y軸の移動量を調整し、Repetier-HostでX,Y軸の倍率調整しなくても、正確なサイズの印刷ができるようにします。
(!)FWを書き込みは危険を伴いますので自己責任で、心配な人は予備のCPUボードを用意するか、自信のある人に頼んで下さい。
必要レベル ★★★★☆
概算 0円~3000円
手順
idbox!のX,Y軸がモデルよりも小さく造形されてしまう問題の根本を解決します。 またidbox!のFWは古くなっているため、最新のFWに変更します。 FWの書き込みは危険を伴いますので自己責任となります。 心配な人はマイ3Dプリンター 37号の予備のCPUボードを用意して下さい。 または、同等品であるArudinoMega2560 R3 の互換品で練習してからトライして下さい。
1 ArduinoIDEをダウンロードしてインストールする。
Arudio IDEとは、Arudinoの開発環境のことで、Arudinoをプログラミングする為のソフトウェアで無償で公開されています。 ここかここからダウンロードしてきて、Windows10のパソコンにインストールします。 私が使っているのは、バージョン1.7.10ですが、2017/10/20 の最新版は、1.8.5 です。
ArduinoIDEをインストールしたら、USBでパソコンと繋いでArudio IDEを起動します。 そして、
ツール→ボード から、[Arduino Mega or Mega 2560] を選択します。
ツール→プロセッサ が、[AT Mega 2560(Mega 2560) ]を選択します。
ツール→ポートから、COM3(Arudino Mega or Mega 2560) を選択します。 (!)接続によっては、ポート名が異なる場合はがあります。COMn のnは変わります。
--------------------------------
CASE1: デアゴスティーニのFWを使用する場合
2.FW Malineをダウンロードする
idbox!のFWをデアゴスティーニの公式サポートページからダウンロードしてきます。
注意事項をよく読んでおきましょう。 直接は、以下のURLからダウンロードできます。 <https://deagostini.jp/site/mtp/pretop/download/images/idbox.zip>
3 設定ファイルを編集する
ダウンロードしたファイル idbox.zip を展開します。
(展開したフォルダ)\idbox\idbox\Marlin-Marlin_v1\Marlin のMarlin.INOというファイルをダブルクリックすると、ArudinoIDEが起動します。
そのタブで、idbox!のFWの設定ファイル Configurtion.h のモーターの設定値を変更します。
330行目くらいの
#define DEFAULT_AXIS_STEPS_PER_UNIT {71.1111,71.1111,3200,173.6236}
// default steps per unit for Ultimaker
をコメントアウトして、コピーして設定を書き換えます。
//#define DEFAULT_AXIS_STEPS_PER_UNIT {71.1111,71.1111,3200,173.6236}
// default steps per unit for Ultimaker
#define DEFAULT_AXIS_STEPS_PER_UNIT { 71.7, 71.7, 3200, 173.6236}
// default steps per unit for idbox!
--------------------------------
CASE2 本家のMarlineFWを使う場合
注意: 必要な設定が抜けていたりすると、最悪idbox!を破損しますので、MarlineFWが初めての人は、まずCASE1を実行してから慎重にトライして下さい。
2.FW Malineをダウンロードする
MarlineFWを本家からダウンロードしてきます。
3 設定ファイルを編集する
ダウンロードしたファイルを展開し、Marlin.INOというファイルをダブルクリックすると、ArudinoIDEが起動します。
Configurtion.h 設定ファイルを、idbox!のFWに合わせて編集します。(結構変える必要があります)
Configuration.h
-----ここから
// idbox! PLA ---(中略)---
//#define BAUDRATE 250000
#define BAUDRATE 115200 // idbox!
---(中略)---
#ifndef MOTHERBOARD
//#define MOTHERBOARD BOARD_RAMPS_14_EFB
#define MOTHERBOARD BOARD_RAMPS_13_EFB
// idbox! #endif
---(中略)---
//#define CUSTOM_MACHINE_NAME "3D Printer"
#define CUSTOM_MACHINE_NAME "idbox!"
// idbox! ---(中略)---
// #define TEMP_SENSOR_0 1
#define TEMP_SENSOR_0 5 // idbox!
---(中略)---
//#define TEMP_SENSOR_BED 0
#define TEMP_SENSOR_BED 5 // idbox!
---(中略)---
//#define HEATER_0_MAXTEMP 275
//#define HEATER_1_MAXTEMP 275
//#define HEATER_2_MAXTEMP 275
//#define HEATER_3_MAXTEMP 275
//#define HEATER_4_MAXTEMP 275
#define HEATER_0_MAXTEMP 260 // idbox!
#define HEATER_1_MAXTEMP 260 // idbox!
#define HEATER_2_MAXTEMP 260 // idbox!
#define HEATER_3_MAXTEMP 260 // idbox!
#define HEATER_4_MAXTEMP 260 // idbox!
---(中略)---
(!) 昇温設定は、テストして近いUltimakerのを使っています。
// Ultimaker #define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114 // idbox!
// #define DEFAULT_Kp 12.7
// #define DEFAULT_Ki 0.62
// #define DEFAULT_Kd 64.49
---(中略)---
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
//#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG // idbox!
---(中略)---
(!)モーターの設定を変えて、X,Y軸の造形サイズを調整します。
//idbox
//#define DEFAULT_AXIS_STEPS_PER_UNIT { 71.1111, 71.1111, 3200, 173.6236 } #define DEFAULT_AXIS_STEPS_PER_UNIT { 71.7, 71.7, 3200, 173.6236 }
---(中略)---
//idbox
//#define DEFAULT_MAX_FEEDRATE { 300, 300, 3, 50 }
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 50 }
---(中略)---
// 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
//idbox
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
---(中略)---
// The size of the print bed
//#define X_BED_SIZE 200
//#define Y_BED_SIZE 200
//idbox #define X_BED_SIZE 150
#define Y_BED_SIZE 130
---(中略)---
(!)Z軸のHOME高さを調整するならここを変えます。
//#define Z_MAX_POS 200
//idbox
#define Z_MAX_POS 100
---(中略)---
(!)使ってないけど自動レベル設定するかもという事で変えてあります。 #define UBL_PROBE_PT_1_X 39
// Probing points for 3-Point leveling of the mesh
// #define UBL_PROBE_PT_1_Y 180
#define UBL_PROBE_PT_1_Y 110
// idbox!
#define UBL_PROBE_PT_2_X 39
#define UBL_PROBE_PT_2_Y 20
// #define UBL_PROBE_PT_3_X 180
#define UBL_PROBE_PT_3_X 130
// idbox!
#define UBL_PROBE_PT_3_Y 20
---(中略)---
// Preheat Constants
#define PREHEAT_1_TEMP_HOTEND 180
//#define PREHEAT_1_TEMP_BED 70
#define PREHEAT_1_TEMP_BED 60
// idbox!
#define PREHEAT_1_FAN_SPEED 0
// Value from 0 to 255
//#define PREHEAT_2_TEMP_HOTEND 240
//#define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_TEMP_HOTEND 230
// idbox!
#define PREHEAT_2_TEMP_BED 80
// idbox!
#define PREHEAT_2_FAN_SPEED 0
// Value from 0 to 255
---(中略)---
#endif
// CONFIGURATION_H
// idbox! PLA End.
-----ここまで モーターの設定値を変更します。
#define DEFAULT_AXIS_STEPS_PER_UNIT { 71.7, 71.7, 3200, 173.6236}
// default steps per unit for idbox!
--------------------------------
4 FWをidbox!に書き込みます。
ArduinoIDEから、書き込みを押し、変更したFWを書き込みます。 設定ファイルの変更が終わったらマイコンボードに書き込む(コンパイル)ボタンを押すと、スケッチをコンパイルしCPUボードに内臓されたフラッシュメモリにプログラムが書き込まれます。
--------------------------------
動作確認 テストプリントして修正が正しく行われているかを確認します。 10cmの棒を印刷して10cmになっていることを確認します。 造形誤差が1mm以内ならOKとしましょう。 2cmの四角形を印刷して2cmになっていることを確認します。 造形誤差が0.2mm以内ならOKとしましょう。 つまり、誤差が1%程度であれば、idbox!が造形できる範囲であれば、ねじ穴とかなんとか合うでしょう。 また、この程度であれば他のプリンタで印刷した部品とも勘合することができます。 解説 ファームウェアの設定値を変更し、Repetier-Hostで毎回サイズを調整しなくても、モデリングしたサイズ通りに印刷できるようになります。
最新のMarlineFWでは、バグが色々修正されているようです。 デアゴスティーニのHPからFWが提供されなくなってもこれで大丈夫です。 一番大きいのは旧FWでは緊急停止を押しても止まらないことがありましたが、新FWでは直ぐにプリントを中止出来るようになっています。 参考:BS01のWikiに詳しく乗っていました! こちらも参考にして下さい。 (早く気づいていれば・・・・)
おわりに
毎回X,Yの造形寸法を設定しなくても、設計したサイズで印刷できるようになるプチ改造でした。 緊急停止も効くので、安心して印刷できるようになりました。 (修正に気づく前に印刷した部品や調整したモデルが無駄になってしまいましたが、モデリングしたサイズ通りにプリントが出来上がると、なにより気分が良いですね。) 購入品