3Dプリンター作る!

3Dプリンターを作る。3Dプリンターで作る。

  • HOME
  • 3Dプリンタ
  • プリントアウト
  • Delta作る
  • Mendel作る
  • その他
Here: Home > 3Dプリンタ > Marlin_v1の設定

Marlin_v1の設定

29 May 2014 Categories: 3Dプリンタ / Tags: Arduino, Marlin

Aruduino-IDEでmarlin-v1の設定 Marlinの設定とConfiguration.hの変更内容。
 前回のブログでMarlin_v1の導入までいったので、今回はMarlinのconfiguration.hの設定変更です。行数を入れてありますが、コメントや改行だけの行も入れた行数です。configuration.hはArduino IDEから”Marlin.ino”を開いて、上に並んでいるタブの右から4つ目を選択します。
 設定を変更するのに下記のブログを参考にしました。僕も使っているエクストルーダー”Airtripper”のページです。ちょっと古いかもしれないけど分かりやすかったです。

http://airtripper.com/1145/marlin-firmware-v1-basic-configuration-set-up-guide/
Marlin Firmware v1, Basic Configuration Set-up Guide

Boudtrate

28行目

#define BAUDRATE 115200

 PrintrunでBaudrateのエラーが出たのでまず250000→115200に変更。これできちんとconnect出来た。

【6月6日追記】ボーレート250000で接続出来ましので、デフォルトにもどしました。
(次のエントリーMarlin_v1のボーレートは250,000でOK参照)

#define BAUDRATE 250000

制御基板

76行目

#ifndef MOTHERBOARD
#define MOTHERBOARD 33
#endif

 35~73行目にある制御基板のリストから自分が使っているRamps1.4の番号に書き換える。
 Ramps1.4は3つあるけどそのうち33番の(Power outputs: Extruder, Fan, Bed)を選びました。

サーミスタ

135~138行目

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

 こちらもサーミスタのタイプを105~133行目のリストの中から選びます。
 TEMP_SENSOR_0はホットエンドのサーミスタ、TEMP_SENSOR_BEDはヒートベッドのサーミスタです。どちらも100kΩのサーミスタということは分かっているけど型番とかは分からないからリストの”1″を設定。TEMP_SENSOR_1とTEMP_SENSOR_2は使わないので”0″。

ヒートベッドの最高温度

163行目

#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 120

 Airtripperのブログにはホットエンドやヒートベッドには定格温度があるからその最高温度を設定するようにと書いてある。自分のヒートベッドを調べて見たけど分からなかったのでブログに載ってたように120℃に設定しました。ホットエンドの方(HEATER_0_MAXTEMP)は300℃以下だしそのまま。

エンドストップ

282~289行目

const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;
#define DISABLE_MAX_ENDSTOPS ←コメントアウト(//)を取る
//#define DISABLE_MIN_ENDSTOPS

 接点式のメカニカルエンドストップとセンサー式のオプティカルエンドストップとのどちらを使っているかで設定は変わります。今回は接点式であるマイクロスイッチを使っています。もしオプティカルエンドストップを使っている場合は260行目のエンドストップ用プルアップの行をコメントアウトします。
 マイクロスイッチにも押すと”閉”になるのと”開”になるのがあるのでそれを設定します。使っているのは押すと”開”(OFF)になるものなのでconst bool ○_MIN_ENDSTOP_INVERTINGを”false”します。分かったように書いてしまったけど、これは実際にPrintrunでヘッドの位置のX軸とY軸を原点方向(HOME方向)に動かそうとした時に動かず、逆の方向には動く、すなわちヘッドが端まで行ってないのにエンドストップが作動している状態だったので、デフォルトの設定とは反対にしたというだけです。
 そして、原点とは逆の端のMAX_ENDSTOPはつけてないので288行目のコメントアウトを外しておきます。後で出てきますがX,Y,Z軸の作動範囲を設定でき、原点を指定すれば(ヘッドをHOMEポジションに移動させれば)作動範囲外に出ることは無いので逆の方には付けてません。

モーターの方向

308~313行目

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false

 コメントにMendelではfalseにしなさいとか書いてあるけど、これは各軸とエクストルーダーのモーターを実際に動かしてみて、逆に回っているところを変更するのが確実です。E0はエクストルーダーのモーター。

トラベル・リミット

325~330行目

#define X_MAX_POS 170
#define X_MIN_POS 0
#define Y_MAX_POS 180
#define Y_MIN_POS 0
#define Z_MAX_POS 105
#define Z_MIN_POS 0

 各軸の移動距離で単位はmm。Printrunで1mm単位づつ動かして限界の長さを測りそれぞれの軸のMAX_POSを入れています。MIN_POSは0のまま。ちなみにz軸の長さは、Bowdenタイプのエクストルーダーに変えたら20mm位伸びました。

単位当たりのステップ数

443行目

#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,2560,146}

 それぞれ1mm動くのに必要なステッピングモーターのステップ数を記入。カッコ内は{X軸,Y軸,Z軸,エクストルーダー}の順です。これらは計算しても出せるけど、”RepRap Calculator3″を使うのが簡単です。

http://calculator.josefprusa.cz/
RepRap Calculator3

 僕のPrusa Mendel i2の場合、ステッピングモーターはステップ角1.8°、1/16のマイクロステップです。X,Y軸のベルトはGT2なのでピッチは2mm、プーリーは20歯。それらの数字を入れると結果は80と出てきます。
Z軸にはM8の寸切りボルトを使っているのでピッチは1.25で、ダイレクトドライブなので”Gear Ratio”は”1:1″のまま。結果は2560です。
 そして問題なのがエクストルーダーのステップ数。これは使っているギアの径や歯の形状などによって数値は変わるので、もう実際に測ってみるしか無いと思います。例えばPrintrun上でフィラメントを50mm送ってみたとします。その時に実際にフィラメントが送り出された長さを測って、もともと書いてあった数値と比較して正しいステップ数を入力します。
 例えば、今回デフォルトでは”760*1.1 (=836)”とあり、Printrunで10mmフィラメントを送ってみたところ、実際の長さを測ってみたら57mmでした。なので
 836 : A = 57 : 10
となるので”A=146″としました。(計算上Aは146.6666…)
 本当に正確な値を測って入れるのは難しいし、スライサー(僕はslic3rを使っています。)でフィラメントの送り量を調節出来るのでキリの良い数字でもいいのではないかとも思います。

以上です。

 以上がMarlin_v1のconfiguration.hの設定を変更した箇所です。
 Arduinoのファイルって名前を変えて保存していいのか良く分からないし、そのうち変更した箇所が分からなくなったりしてしまい、再度設定をするときに面倒ですよね。そんな時は”WinMerge”を使うと便利です。2つのファイルを左右に並べて変更がある行をハイライトしてくれるので、どこを変更したかすぐに分かります。このブログの内容もWinMergeを使いながら書きました。

http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html
WinMerge日本語版

Rlated Posts:

PrintrunとMarlinの再インストール
Marlin_v1のボーレートは250,000でOK
LCDコントロールパネルをRamps1.4で使ってみた
full-graphic-smart-controllerFull Graphic Smart Controller フルグラフィック・スマート・コントローラー

Categories: 3Dプリンタ / Tags: Arduino, Marlin

« PrintrunとMarlinの再インストール
Marlin_v1のボーレートは250,000でOK »

Comments

  1. 頑張りさん says

    2018年6月25日 at 10:04 PM

    自作3Dを作って、ArduinoボードにRamps1.4をつけて、Marlinソフトをダウンロードをしてから、
    説明のように、変更をして、書き込みをしたら、

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    のように、エラーが出ていました。

    どうしたらよいですか?

    私はC言語のプログラムを作るの初めてなので、わかりやすく
    教えていただけませんか?

    お願いいたします。

    返信
    • AKIRAAKIRA says

      2018年6月25日 at 11:14 PM

      頑張りさんさんこんばんは。コメントありがとうございます。
      エラー内容からすると、X_MAX_LENGTHがX_BED_SIZE(もしくはY_MAX_LENGTHがY_BED_SIZE)よりも大きくなっているから同じか小さくしてくださいっていうことじゃないでしょうか。
      ・X_MAX_LENGTH と X_BED_SIZE
      ・Y_MAX_LENGTH と Y_BED_SIZE
      の設定値を確認してみてください。
      ただこの記事が古いから最近のMarlinにきちんと対応している分かりません。
      Marlinに詳しい訳ではありませんが、またエラーが出るようならばコメントください。
      よろしくお願いします。

      返信
  2. 頑張る says

    2018年10月24日 at 5:59 AM

    LCDの表示が出るようになりました。しかし、設定でつまみを回すと、ガタガタになります。

    下記のプログラムの内容です。 教えてください。
    お願いいたします。
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0
    #define X_MAX_POS 170
    #define Y_MAX_POS 180
    #define Z_MAX_POS 105
        *
        *
        *
    #define HOMING_FEEDRATE_XY (50*60)
    #define HOMING_FEEDRATE_Z (4*60)

    返信
  3. 頑張る says

    2018年10月24日 at 6:05 AM

    ARDUINOボードに書き込みをしたら、エラーが出ました。

    黄色の表示が出てました。

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    その下に、
    赤の表示が出ました。

    Arduino:1.8.7 (Windows Store 1.8.15.0) (Windows 10), ボード:”Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    In file included from sketch\MarlinConfig.h:42:0,

    from sketch\vector_3.cpp:42:

    SanityCheck.h:378:1: error: static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    ^

    In file included from sketch\MarlinConfig.h:42:0,

    from sketch\enum.h:26,

    from sketch\parser.h:32,

    from sketch\parser.cpp:27:

    SanityCheck.h:378:1: error: static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    ^

    In file included from sketch\MarlinConfig.h:42:0,

    from sketch\power.cpp:27:

    SanityCheck.h:378:1: error: static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    ^

    exit status 1
    In file included from sketch\MarlinConfig.h:42:0,

    from sketch\fwretract.cpp:27:

    SanityCheck.h:378:1: error: static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    ^

    In file included from sketch\MarlinConfig.h:42:0,

    from sketch\ubl.cpp:23:

    SanityCheck.h:378:1: error: static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    ^

    In file included from sketch\MarlinConfig.h:42:0,

    from sketch\Marlin.h:35,

    from sketch\Marlin_main.cpp:257:

    SanityCheck.h:378:1: error: static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,

    ^

    static assertion failed: Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.

    返信

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。

CAPTCHA


Follow Me on Twitter
Follow Me on Twitter
Follow Me on Instagram
Follow Me on Instagram

Instagram

Sorry:

- Instagram feed not found.

Slic3r日本語マニュアル

Slic3r日本語マニュアル

Latest Posts

  • AutodeskのFusion360で”ローレット加工”を作るAutodeskのFusion360で”ローレット加工”を作る
  • デルタ型3Dプリンターを作る。(5) -フレーム完成デルタ型3Dプリンターを作る。(5) -フレーム完成
  • 100円ショップのアクリルスタンドでLCDコントローラーのケースを作る100円ショップのアクリルスタンドでLCDコントローラーのケースを作る
  • デルタ型3Dプリンターを作る。(4) -垂直キャリッジ完成(←まだココ)デルタ型3Dプリンターを作る。(4) -垂直キャリッジ完成(←まだココ)
  • 新しいフィラメントを買いました(4) VerbatimバーベイタムPLA 1.75mm 1kg シルバー新しいフィラメントを買いました(4) VerbatimバーベイタムPLA 1.75mm 1kg シルバー

Popular Posts

  • 接着剤をいろいろ試す -PLAの接着 接着剤をいろいろ試す -PLAの接着
  • AutodeskのFusion360で"ローレット加工"を作る AutodeskのFusion360で”ローレット加工”を作る
  • 強力・瞬間-PLAにはアクリル用接着剤がベスト!アクリサンデー接着剤 強力・瞬間-PLAにはアクリル用接着剤がベスト!アクリサンデー接着剤
  • 3Dプリンターの動きをスムーズに!Marlinの加速度AccelerationとジャークJerkの変更・調整 3Dプリンターの動きをスムーズに!Marlinの加速度AccelerationとジャークJerkの変更・調整
  • Marlin_v1の設定 Marlin_v1の設定

Tags

123D Design A4988 Arduino Arduino MEGA fill pattern Fusion360 g-code Hobbed Bolt INDIEGOGO J-head hotend LCDコントロールパネル Marlin OpenSCAD Printrun Prusa Mendel Python Ramps Reprap Silentstepstick slic3r STLファイル Thingiverse Xキャリッジ アイコン アルミフレーム エクストルーダー クラウドファンディング ステッピングモーター タイミングベルト ノズル パーツ ヒートベッド ビット ファン フィラメント ベアリング ホットエンド リニアシャフト リニアベアリング ルーター 充填パターン 塗料 寸切りボルト 接着剤 改良

PROFILE

AKIRA
AKIRA

 3Dプリンターを自作したり、改良したり、それで好きなモノをプリントしたりして遊んでいます。
 なかなか上手く行かないことが多くて試行錯誤してます。

このサイトについて

Popular Posts in 30days

  • 接着剤をいろいろ試す -PLAの接着 接着剤をいろいろ試す -PLAの接着
  • AutodeskのFusion360で"ローレット加工"を作る AutodeskのFusion360で”ローレット加工”を作る
  • 3Dプリンターの動きをスムーズに!Marlinの加速度AccelerationとジャークJerkの変更・調整 3Dプリンターの動きをスムーズに!Marlinの加速度AccelerationとジャークJerkの変更・調整
  • 強力・瞬間-PLAにはアクリル用接着剤がベスト!アクリサンデー接着剤 強力・瞬間-PLAにはアクリル用接着剤がベスト!アクリサンデー接着剤
  • Z軸の不調→解決 Z軸の不調→解決
  • Marlin_v1の設定 Marlin_v1の設定
  • スライスソフトSlic3rのFill Pattern充填パターンの比較 スライスソフトSlic3rのFill Pattern充填パターンの比較
  • スライサーが出力するGコードのパスと実際のプリントを比較 スライサーが出力するGコードのパスと実際のプリントを比較
  • Prusa Mendelの躯体(7) ~プーリーとタイミングベルト Prusa Mendelの躯体(7) ~プーリーとタイミングベルト
  • 100円ショップのアクリルスタンドでLCDコントローラーのケースを作る 100円ショップのアクリルスタンドでLCDコントローラーのケースを作る
Copyright © 2017 3Dプリンター作る! All Rights Reserved.
Powered by Genesis Framwork ・ WordPress