ファームウェア書換

提供: 3D Printer Wiki
ナビゲーションに移動 検索に移動

【注意】 BS01のマニュアルはBonsaiLab社の許可を得て掲載しています。ブログ、ホームページなど一般公開する場合は最新版のマニュアルなど更新が発生する可能性もございますのでご一報ください。本マニュアルをご自身、組織で改変した場合の掲載については本BS01 WikiおよびBonsaiLab社は一切の責任は負いません。
また、ここに掲載されているファームウエア類は最新版がメーカーより提供されていないか確認の上利用してください。

■ファームウェアのアップグレード

◆自分でアップグレードする場合のファームウェアバージョンの確認方法

【デュアルモデルにご自身でアップグレードした方】

ファームの書き換えは済んでいるか、シングルモデルのファームのままBS01デュアルを稼働させていないか、の確認をすること。

《不具合が起こる条件》
デュアル対応セルフキットを購入された方で
D9の端子にヒーターを接続して、【シングルモデルのファームウェア】で運転し、ホスト上で冷却ファンを運転(手動・自動)した場合
シングルモデル用ファームウェアはD9の端子がFAN運転に割り当てられているため、制御不能な加熱動作をする可能性があります。

《不具合が起こらない条件》
シングルモデルを使用している場合。
D9の端子にヒーターを接続してデュアルモデルに変更し、ファームウェアを【デュアルモデル用ファームウェア】に更新している場合


上記のような不具合の報告があり、検証を行った結果
【BS01のファームウェアを更新】することにしました。

《更新内容》
◆ D9の端子を不使用にしました
◆ 接続時のログ欄にファームウェアのバージョンを表示するようにしました
◆2014年12月7日以降に出荷したモデルのファームウェアは更新後のファームを設定しました
◆次回ファームウェアを更新される場合は最新版を使用してください
(※シングルの方はすぐにアップグレードを推奨するものではありません)

media:ファームウェアバージョンの確認方法.pdf

●BS01シリーズファームウェア

BS01シリーズファームウェア

内容:
シングルモデル(2014-12-7以前出荷分)
シングルモデル(2014-12-7以降出荷分)*
デュアルモデル

【*】このファームウェアはシングルモデルユーザーがデュアルにアップグレードしてそのまま稼働させた場合に不具合が発生しないように対策をとったものですが、あくまでデュアルモデルを使用する場合はデュアルのファームに書き換えることが前提です。今シングルの方で2014年12月7日以前出荷分の方はすぐにアップグレードを推奨するものではありません

■書換手順

Arduino IDEをダウンロードしてインストール

下記サイトからArduino IDEをダウンロードしてインストールします。インストール時にドライバーが複数インストールされますが、すべてインストールしてください。

最新版:

https://www.arduino.cc/en/Main/Software

推奨版 ver 1.0.6:

https://www.arduino.cc/en/Main/OldSoftwareReleases

【注】対象OSをクリックした後に、[JUST DOWNLOAD]をクリックするとダウンロードが開始されます。

PCとArduinoの接続

ArduinoIDEを起動します。

①接続先のボードを設定します。「ツール→マイコンボード」で「Arduino Mega 2560 or Mega ADK」を選択します。(IDEのバージョンによって若干表示が異なります)

Arduino11.jpg

②Arduinoが接続されているUSB/シリアルポートを正確に設定します。USB/シリアルポートはWindowsですとCOM?、Macですと/usbmodem? になります。 「ツール→シリアルポート」でArduino Megaのポートを選択します。

Arduino2.jpg

Marlinの読み込み、書き込み

①ダウンロードしたファームウェアからMarlin.inoを読み込みます。(zip圧縮されている場合は解凍してください)

FW02.jpg

FW03.jpg

②読み込みが終わったら、画面の右矢印ボタンを押し、「マイコンボードに書き込む」と下に書き込み中と表示されます。 読み込み完了したら終了です。その際はRepetierHostやSImplify3Dをが起動しているとポートの競合により書き込みが出来なくなりますので、終了させてから書き込みをお願い致します。
FW04.jpg


BS01+用Marlinファームウェア解析

参考 https://github.com/MarlinFirmware/Marlin/tree/1.0.x

Configuration.h

https://github.com/MarlinFirmware/Marlin/blob/1.0.x/Marlin/Configuration.h

ボーレート

シリアルポート通信速度の設定。

#define BAUDRATE 115200 

BS01は115200がデフォルトです

マザーボード

RAMPS1.3/1.4のボードの設定

#define MOTHERBOARD 33

33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) 電源出力がシングルノズル、ファン、ベッド

34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) 電源出力がデュアルノズル、ベッド

35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) 電源出力がシングルノズル、ファンが2つ

36 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) + Servo on pin D40 + RRD Fan Extender (pin6 is fan) 電源出力がデュアルノズル、ベッド、pinD40にサーボ、pin6にファンエクステンダ

https://github.com/MarlinFirmware/Marlin/blob/1.0.x/Marlin/boards.h

サーマルセッティング(サーミスタ)

サーミスタの設定

#define TEMP_SENSOR_0 5 
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 5

// 5は100Kサーミスタである - (ParCan&J-ヘッドに用いる)ATC SEMITEC 104GT-2(4.7Kプルアップ)

// 0 はOFF

//ヒートベッドなしは TEMP_SENSOR_BED 0で指定

エクストルーダ(ノズル数)設定

#define EXTRUDERS 1

エクストルーダの数 シングル=1 デュアル=2

最小温度の設定

サーミスターの最低温度の設定。サーミスタの断線がある場合この温度以下になります。

#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 5

最大温度の設定

温度が最高温度を超えた場合、ヒーターがオフになります。この機能は、誤って過熱からあなたのhotendを保護するために存在します。

#define HEATER_0_MAXTEMP 260
#define HEATER_1_MAXTEMP 260
#define HEATER_2_MAXTEMP 260
#define BED_MAXTEMP 150

射出可能最小温度

射出が可能になる最小温度を設定します。溶融温度の低い材料を使う場合は、この温度を下げてください。

#define EXTRUDE_MINTEMP 170

デフォルトでは170℃から射出可能です。

PID

PIDの設定をします。PIDはノズル温度、またはベッド温度を一定にするための制御indexです。

#define  DEFAULT_Kp 12.7
#define  DEFAULT_Ki 0.62
#define  DEFAULT_Kd 64.49

// BS01のPIDは上記の通りです。

// ホットエンド周りを改造した場合、M303をコマンドで送ってPIDの自動設定を行う必要があるかもしれません。

//BS01ではベッドはONOFF制御でPIDを使用していません。

//#define PIDTEMPBED

ホーミング後のXYZのトラベル制限

ホーミング後にXYZ軸の移動距離を制限します。これは必然的にプリントエリアになります。

#define X_MAX_POS 150
#define X_MIN_POS 0
#define Y_MAX_POS 130
#define Y_MIN_POS 0
#define Z_MAX_POS 100
#define Z_MIN_POS 0

//上記 #define Z_MAX_POS 100 の数字を変更するとZ=0 のテーブルの高さが変わります。数字が大きいほどノズルに近くなります。

//PLAモデルの初期値は100です。ABSの初期値は102です。

//あまり大きくするとノズルとテーブルが衝突します。この値を変更する場合は注意してください。