2020年3月26日木曜日

ファームウェア更新 - Marlin 2.0.5.1 (未)

2.0.4.4 で割と満足していたので、Marlinの更新もチェックしていなかった。
いつの間にか 2.0.5 を通り越して 2.0.5.1 が出ていたので、コンパイルを試みた。

ヘッダーファイル内で定義されるバージョン番号が1つ繰り上がったのと
シンボル名の変更のみで、コンパイルは通ったが、プリンターへのアップロードするには至っていない。
2.0.4.4 で普通に動いてるように見えるし特に困ってる訳でもないから
あえて急ぐこともないよねー、といういつもの調子。

で、今、Marlinの公式ページ見に行ったら 2.0.5.2 が出てた。

2020年3月11日水曜日

ESP32に手を出す

イマサラ感が半端ないけど、買い置きで積みっぱなしになっていたESP32を消化すべくイロイロ。
大体なんでも忘れてしまうのでメモを残しておく、

今回引っ張り出してきたのは、ESP32が載ったArduinoっぽいワンボード。
aitendo で売ってる → https://www.aitendo.com/product/16899 コレ。
シールドが挿さるけど、電源は3.3Vだし、完全互換って訳でない点に多少の注意が必要。
ArduinoIDEで開発する方法は商品の紹介ページでも説明されているし、他にもググれば、いくらでも(とは言い過ぎだが)出てくるので省略。

MicroPython に関しては http://micropython.org/ から。
日本語のドキュメントも https://micropython-docs-ja.readthedocs.io/ja/latest/index.html に用意されているので、おおよそ、その手順に従うだけで何とかなる。

ESP32に固有の情報は
https://micropython-docs-ja.readthedocs.io/ja/latest/esp32/tutorial/intro.html
急いでいる人は、ここから下を読むのは時間の無駄。

まずはWindows(またはMacなりLinux)側にPythonをインストールしておく。
もう 3系でいいよね?
ボードにはUSBで接続する事になってて、繋げばシリアルポートが追加される。
または、デバイスドライバーのインストールを促される。
そんなのの手順まで逐一書き留めるほど暇でもないので、ここも割愛。
追加されたシリアルポートは COM3 だった。このCOMポートの番号は重要。

PC側のPythonでESP32に書き込むのに、esptool を使う。
これは、普通に? pip でインストールする。
pip install esptool とか何とか。

フラッシュを消去
esptool.py --port com3 erase_flash

ボードに書き込むべきファームウェアは
http://micropython.org/download#esp32
に、ESP32向けにコンパイル済みのものが用意されているので、ありがたくDLさせてもらう。
ESP32の公式開発ツールであるESP-IDFでビルドされているらしいのだけど、 v3.x でビルドしたものとESP-IDF v4.x でビルドしたものの2つの系列が用意されている。
なんだか分からないけど、v3.x系は BLEとLAN、PPP(要はWiFi?)をサポートしているのに対して、v4.x系ではBLEのみのサポートという事になっている模様。
欲張りなので、v3.x系を選ぶ事にした。
2020/03/10 時点で、最新の安定版は esp32-idf3-20191220-v1.12.bin らしい。

ファームウェアの書き込み
esptool.py --chip esp32 --port com3 write_flash -z 0x1000 書き込むファームウェアのファイル名

ターミナルを準備する。日本だとTERA TERMとかがメジャーなんだろうけど、ここは uPyCraftを使う。
COMポートとボーレートを設定する。

こんな感じで MicroPythonを使う準備ができたので、そこから先はチュートリアルに任せる

2020年2月29日土曜日

ファームウェア更新 - Marlin 2.0.4.4

Marlin 2.0.4.4 がリリースされていたのでアップデートしてみた。
2.0.4.3 で、自動キャリブレーションが失敗するのを、DELTA_HEIGHT の設定値を変更することで回避したが、それに関連すると思われる M33 周りになんか修正が入っているようだ。

が、DELTA_HEIGHT の値が適切なら自動キャリブレーションも動いてしまっていたので、今回も同じ設定でコンパイルして、そのまま普通に動いているように見える。
気付いてないだけで他にも何かバグってたりしたのかも知れないけど、気付かないバグはバグじゃないから、今日のところはコレでヨシとする。

2020年2月27日木曜日

ファームウェア更新 - Marlin 2.0.4.3

Marlin-bugfix-2.0.x.zip を試してみたが挙動が変で、どうしたものか悩んでいるうちに時間が経って、いつの間にやら 2.0.4.3 がリリースされていたので、そちらを試してみる事にした。

コンフィグレーションファイル も、Configrations-release-2.0.4.zip をダウンロード/展開して
config/examples/delta/Anycubic/Kossel にある
Configration.h と Configration_adv.h を使用する。

Configration.h で書き換えたのは、以下の3行分
#define ANYCUBIC_KOSSEL_PLUS
#define ANYCUBIC_PROBE_VERSION 2
#define ANYCUBIC_KOSSEL_ENABLE_BED 2

これをコンパイルして書き込んでも、自動キャリブレーションには失敗したので
さらに、1行変更した。

#define DELTA_HEIGHT 280.00             // (mm) Get this value from G33 auto calibrate

必要なら
#define DEBUG_LEVELING_FEATURE でデバッグ情報を表示可能にする
 実際に表示させるには  'M111 S32'. を発行する必要がある

まあ、今回の肝は DELTA_HEIGHT の値が正しくない事なので、非があるとすれば Anycubic がマニュアルやカタログに記載している公称値が、そもそも間違っている事にある。

とりあえず、これで自動キャリブレーションまでは動作した。

2020年2月10日月曜日

ファームウェア更新 - Marlin 2.0.3

Marlin がバージョンアップしてたので、ちょっと作業。

Configuration_adv.h が結構変更されてるので、元となった 2.0.0 から引き継ぐよりも、変更点だけ洗い出して書き換えることにした。

Configuration.h は、それほど変更すべき点は無さそうなので、追加された項目について数カ所変更した。

ホームポイントへの移動の時点で何かおかしい。
奥と手前右のキャリッジはストップスイッチの所まで上がるが
左のキャリッジは動いていない。
そのまま、少し下げてパーキングするのだけど、その際には左のキャリッジも下がる。
設定のミスだろうけど、どこで何を間違うとこうなるのか…。

で、ググってみたら
https://github.com/MarlinFirmware/Marlin/issues/16736
が見つかった。

TriGorilla に固有の問題?

bugfix-2.0.x ブランチで対策されたら、Isuueをクローズして、という書き込みのあとに、報告者がクローズにしているので、対策されたのだろう。

結局、bugfix ブランチを追いかける事になるのか…。

2020年1月17日金曜日

RepRap Snappy

久しぶりに RepRap のサイト を見に行った。

このブログは個人的なメモ用なので、あまり説明らしい説明をするつもりはないのだけれど、RepRap を知らない人もいるかも知れないので、一応、私の知る範囲での説明を試みるが、伝わるかどうか…。

現在の3Dプリンタ関連の技術は、何年だか前に期限が切れた特許技術を利用している。
その際に、技術的な情報を集約し公開し、普及の弾みを付けたのが、reprap.org だ。
個人で購入しやすい低価格帯の3Dプリンタは多かれ少なかれ、reprap の恩恵を受けている。

ハードウェアもソフトウェアも公開されたので、小規模なメーカーあるいは個人が、こぞってキット化した。
初期の設計では、何もない所から3Dプリンタを作る必要があったので、フレームにずん切りネジ(アタマのないボルト)とナットの組み合わせで、締め込み加減で寸法を微調整できるような構造になっていた。
まあ、見た目は、なんというか…アレな感じで、あんまり褒められたものでは無いけれど、ちょっとした金物屋で買える材料を、さほど精密な加工をせずに用意できる、というのは画期的だと思った。
金切りノコとドリル、スパナとドライバーぐらいがあれば形にはなる。
どのみち、ステッピングモーターと制御用のマイコンボードは、普通の金物屋では滅多にお目にかかれないとは思うので、そこで通販とか使うなら…みたいな事を言ってはいけない。
ステッピングモーターはジャンクのプリンターとかスキャナーから取り出すとか、先人達は色々と苦労したようで頭が下がる。

昔話は、このぐらいにして、現状どうなっているか?っていうと




こんな感じでフレームも送りネジも3Dプリンタで作ってしまう方向に振っている模様。
テーブル下のラック&ピニオンの摩耗が激しそうで気になるもののZ軸はそれほど激しく振らないから、これはこれでアリなのかも知れない。

否定的な事を言えば、なんでもかんでも3Dプリントするよりも、金型を起こして量産する方が価格は下げられるし、これを作る、という事は、すでに3Dプリンタを所有していて、それなりの精度で出力できる環境がある、という事だから、2台目以降にコレを作りたい人がどの位居るのか?って話ではある。

私は酔狂なので、一回ぐらいは試してみたいと思っている。

2020年1月10日金曜日

ファームウェア更新 - Marlin 2.0.1

リリースノートをみると、あちこち変更が加わっているようだけど、コンパイル手順などに変更はない模様。
サクッとビルドして、SDメモリカードからのアップデートを試してみたい。

Configration_adv.h でシンボル名が変更されてるのに合わせて書き換えないとコンパイルエラーが出る。

FILAMENT_UNLOAD_RETRACT_LENGTH が
FILAMENT_UNLOAD_PURGE_RETRACT に

FILAMENT_UNLOAD_DELAY が
FILAMENT_UNLOAD_PURGE_DELAY  に

それぞれ変更された。
名前から推測するに、フィラメントを引き戻すときの引き戻し量と、その後のちょっとした待ち時間のための定数の定義だと思う。

場合(機種?)によってはコメントアウトされていて変更不要かもしれないし、別のケースでは、もっと他にも書き換えるべき所があるのかもしれないけど、私の手元の Anycubic Kossel Linear Plus では、この2つを定義してあるのが引っ掛かった。

まあ、コンパイル時のエラーメッセージで「これを修正しなさい」みたいな親切な指示が出てたので、それに従って修正するだけでビルドは通った。
もう、修正箇所まで分かってるんなら自動で修正してくれればイイのに、ぐらいの事は思った。

感謝が足りないね。