takashiskiのブログ

覚書の殴り書き

fly-geminiのメモリ不足を何とかする

メモ書き程度。

経緯

  • 共振周波数を測定しようとした
  • numpyのインストールやapt updateなどがこけてるように見えた
  • free -mでメモリを確認したら、512MBだった
  • インストール時に食いつぶしてるようだったので、原因はメモリ不足のようだった

やったこと

  • USBメモリを接続する
  • USBメモリに対してswapfileを作成する
  • 固まってないことを確認しながら辛抱強く待つ

swapfileの作成

denor.jp

  • USBメモリに作るので、あらかじめ以下のコマンドでマウントして /mnt 以下にswapfile作った
    • USBストレージ接続するとだいたい /dev/sda1 になるっぽいけど各環境で要確認・調整
sudo mount /dev/sda1 /mnt

途中のトラブル

  • LAN側の下段がcore-MCU間の接続と共有バスで死んでるって話だったけど、上段も死んでるようにしか見えない
  • ddコマンドがほっとくと結果返ってこないのでCtrl+Cで終了したけどファイルできたっぽいのでそのまま続行した
  • chmodで0600にしたつもりだけど、0755だって警告され続けた
    • 個人利用だし権限は足りてるだろうからまぁいいやで続けた

感想

  • fly-gemini coreは価格なりに削れるとこを削ってるっぽい
    • 初代RPiをちょっと思い出してた
    • 色々手軽にやっていこうとするとRPi3/4じゃないとやっぱ厳しそう
      • ハードウェア的にもノウハウ的にも

ヒートベッドの加熱前に位置を変える

印刷開始時に、前の状態によってはフィラメントが垂れる場合があります。 垂れた場所がベッドの中央付近だと、セットアップ時にベッド上にフィラメントが残ってしまい、印刷時に巻き込んで印刷の欠陥の原因になります。

Curaで加熱開始前にあらかじめ隅に移動する方法があるのではないかと調べました。

続きを読む

klipperでレベリングを簡単にする

ベッドとノズルの水平を確保するのは非常に大変です。 0.1のシックネスゲージやコピー用紙を動かしながら前後させるのは、姿勢も含めて非常につらかったです。 何より辛かったのが、marlinでノズル位置を変更することでした。

klipperでは、ある程度事前に仕込みをすることでこれらを簡便化することができます。 bed_screwsという設定項目とBED_SCREWS_ADJUSTコマンド、そしてACCEPT/ADJUSTEDでコーナーレベリング相当のものを簡便化することができます。

www.klipper3d.org

レベリングセンサーを使ったベッドレベリング

しかし、bed screwsをあえて使う必要はないでしょう。 いまどき、klipperを入れる人であればBLTouchなどのレベリングセンサーを取り付けた構成が当たり前です。 人間の感覚という不確かなものではなく、レベリングセンサーを使ってある程度精度よくレベリングを自動化する機能がklipperにはあります。

www.klipper3d.org

screws_tilt_adjust

[screws_tilt_adjust]は以下の情報を与える必要があります。

  • ねじの座標(レベリングセンサ位置)
  • 移動時にどれくらい持ち上げてから移動するか
  • 移動速度
  • ねじの種類

これらを適切に設定したあとに以下のコマンドを実行します。

SCREWS_TILT_CALCULATE

すると、指定したねじの座標に対して測定を実施し、その結果を返してきます。 その際に、合わせて基準高さにそろえるにはねじをどう回せばいいかを教えてくれます。 ねじ1が基準高さです。

  • CW/CCWは時計回り/反時計回り
  • nn:mmは時計読み。nn周と、mm/60周させろということ

調整後に再度コマンドを実行して再測定し、基準の高低差に収められていれば完了です。

基準高さはコマンドのオプションとして設定可能です。

SCREWS_TILT_CALCUILATE MAX_DEVIATION=0.01

ねじ位置の決定

これが思いのほかめんどくさかったので私は計算機組みました。エクセルなんかでやってもいいでしょう。

  1. probe offsetが適切に設定されている必要がある
  2. ベッドの原点が適切に設定されている必要がある
  3. できれば設計情報から正確なネジ位置を知る必要がある
  4. 1,2,3を加味した座標を用意する必要がある

理想的な条件は以下です。

  • ベッドの原点と原点からの最遠点がベッドの対角と一致している
  • ヘッドの実可動域が十分に広く、probe offsetだけずらしても原点と最遠点に収まる

実際はそうではないことが多いと思います。

  • 原点は角から何mmか余裕を持たせた内側である
  • リミットスイッチがトリガーされる位置は原点よりも外側である
  • probe位置がノズルから大きくずれているため、いずれかの辺に対してprobeが大きく内側にいることになる

このため、以下の情報を基にベッド座標上でどこであるかを計算する必要があります。

  • 設計情報から読み取れる情報
    • ベッドの実寸
    • ベッドの実寸に対するネジ位置
  • ファームウェア情報から読み取れる情報
    • リミット位置からベッド原点までの距離
    • リミット位置から仮想ベッド原点までの距離
    • 仮想ベッドの寸法
    • probe offset

適切に値を設定・計算できれば、ねじの真上にプローブが来ます。

実際にはprobeの最小位置と最大位置で座標を挟み込んで制限をする必要があります。 余白大きめに設計したcorexyなんかでなければ、だいたいいずれかの辺からはみ出し防止で内側に収めることになるかと思います。

今まで苦労していたのが何だったのか不思議なくらい一瞬でレベリングが終わります。是非試してみてください。

自転車・徒歩の夜間照明

自転車

夜間に走り回ることが増えたので、夏くらいに買い換えました。

前回からすでに充電池内蔵のものを選択していて、今回も充電池内蔵のものを選びました。

結論から言うと、予算は1万円くらいは用意しましょう。それだけで相当明るいモデルが購入できます。 「ただ光るだけ」の製品であれば、前照灯赤色灯合わせて3000円程度で揃えられなくもないですが、それはあなたの安全性と、夜間走行の体験を大きく損なっています。 夜間に爆走できることと、怪我をしにくい、させられにくいことを考えるとケチらずとっとと買ったほうがいいです。

前照灯

まず、カンデラ表記のものをすべて除外しました。 何故かというと、カンデラで表記する理由がルーメン表記をすると非常に小さくなるからであるとしか考えられないためです。

例えば、定番のキャットアイのURBANは800カンデラと書いてありますが、よーくみると50ルーメンとも記載されています。

同じキャッツアイの製品のルーメン表記モデルでは比較写真があります。 一目瞭然で、50ルーメンは明らかに暗く、200ルーメン程度は欲しいように思います。なお、カンデラも併記されていますが、数千カンデラからと、文字通り桁が一つ違います。

結果として、GVOLT70を選定しました。

下持ちで、上側がカットされていて、他のモデルに比べてより水平寄りの遠くまで見える角度によせやすいということで購入しました。

下持ちなので、たとえ前転しても破壊されない、というのもいいと思いました。

唯一の不満点は、microUSB端子が充電端子であることです。

実際の走行した感じは、最大でも30km/h程度しか出していませんが、過去のライトを思うと相当快適に走行できています。 段差は確実に見えるし、転がっているゴミや枝の回避も速度を出していても十分避けられる程度に見えます。

見え方に関しては、amazonの販売ページに写真が載っているのでそちらを見るといいと思います。

テールライト

正直つけて常時点灯しているのであれば何でもいいと思います。

私は車道走行の機会が増えることと、比較的暗い場所が多くなりそうなことを見越して、はっきり視認できるものを選びました。

使ってみた感想は、「とてもよい」と言いたいところですが、正直わかりません。 何故なら、基本的に相手からどう見られるかの道具なので自分では判断つかないからです。 一応、夜間にどこかに立てかけておいて、離れてみてみると「とにかく目立つなぁ」ということはわかりますので発見してもらいやすいとは思います。 後方だけではなく、側方からもはっきり見えるのがよいですね。

おまけ:徒歩

無灯火の歩行者はどう見えるか?

夜間の歩行者の無灯火・無反射は本人が思っている以上に自転車や自動車からすると怖いです。 「自分から見えてるから相手からも見えているだろう」は大間違いです。 意外に思うかもしれませんが、自動車の交通量が多い街灯が少ないところのほうが正直怖いです。

何故かというと、道路と歩道のあいだに何かあると自動車のヘッドライトで歩道に影ができます。 ヘッドライトである程度目が明るい状態に慣らされてしまう状態で、影の中にいるものは全く見えません。 特に、ヘッドライトを背負われてしまうと、突然目の前に出現されたようにすら見えます。

自動車の「蒸発現象」が比較的わかりやすいんじゃないかとおもいます。

www.youtube.com

また、反射板だけ巻いて歩いている方もいらっしゃいますが、これも実は危険だと感じています。 何故ならば、反射板は光を当てられないと存在がわからないからです。

相手も無灯火であれば、直前まで気づかれずに激突されます。

また、早期発見のためにはハイビームのような歩行者にとって非常に眩しい角度で光を当てられる必要があります。

というわけで、自己発光する装備を何かしら持つべきだと実感しています。ただし、点滅はNGです。

買ったライト

私も何がいいか悩んでたんですが、ワゴンセールでこれを見つけたのでこの機会しかない、と購入しました。

www.dcm-ekurashi.com

めっちゃ明るいですが、後方に知らせるライトがないので、赤色灯を何か買わないといけないかなぁ、と考えています。 明るすぎるので、ライトは常に真下に近い角度で向けています。

副作用で、夜間に外で何かものを確認しないといけないときや、家で影になる場所での作業をするときにめっちゃ便利になりました。

夜間に高速移動するものが多い現代では、自衛のために自己発光することは非常に重要です。

いらない怪我をしたり、怪我をさせたりしないためにいい感じの装備を整えましょう。

3Dプリンタのステッピングモーターの結線

ステッピングモーター

詳しいことは省略しますが、見かけ上は2つのコイルを持っていて、そのコイルと制御基板をケーブルで接続して操作することになります。

この際、結線をどうするかがしばしば問題となります。

コネクタ

モーター側はPH 6pin, 制御基板側はXH 4pinが採用されることが多いです。

モーター側と制御基板側でピン数が異なりますが、これはモーター側の2番と5番ピンを接続しないからです。

モーター側ピンアサイ

基本的に1番と4番、3番と6番がペアになっています。 世に出回っているものの大半はこれじゃないかとおもいます。

1 2 3 4 5 6
コイル1 NC コイル2 コイル1 NC コイル2

しかし、例外的に1-3, 4-6がペアになっているモーターがあります。 今のところ、このピンアウトのモーターはTRONXYのX5SAの付属モーターでのみ確認しています。

1 2 3 4 5 6
コイル1 NC コイル1 コイル2 NC コイル2

制御基板側ピンアサイ

基本的には、1-2, 3-4がそれぞれペアになっています

1 2 3 4
コイル1 コイル1 コイル2 コイル2

f:id:takashiski:20220102161302p:plain
コイルAとコイルB

また、creality系ボードや、creality系ボードへそのまま置き換えさせることを目的としたSKR mini E3などは、エクストルーダだけコイル1,2が逆になっています。

動作はしますが、エクストルーダだけXYZと回転の仕方が異なる可能性が発生します。

1 2 3 4
コイル2 コイル2 コイル1 コイル1

f:id:takashiski:20220102161037p:plain
数字がコイルを示すので、1Aと1Bで一つのペア

github.com

今のところ、隣り合ったピンがペアの基板しかみたことがありませんが、ひょっとしたら一つ飛ばしの基板が世間には存在する可能性があります。なので、念のためピンアウトの図は確認してください。

ケーブル

察しのいい方はもう気づいているかもしれません。 モーターから素直に引き出して制御基板まで引っ張ると、ペアが1-3,2-4となってしまい、動作しなくなってしまいます *1

ではどうするかというと、だいたいケーブルのモーター側で内側二つの線を入れ替えて結線しています。

github.com

しかし、tronxyの例があるように、そのままで問題ないモーターが存在します。 そんなモーター向けに、入れ替えを行っていないケーブルが存在します。

エクストルーダをダイレクトドライブにするときなどにモーターケーブルの長さが足りなくなるので以下のケーブルを重宝しているのですが、これは入れ替え無し結線です。よく見ると、画像のうちの一枚がその説明をしています。

特に工具はついていませんので、細くて頑丈な板や以下のような工具を調達して、ピンの返しを抑えながらハウジングからピンを抜いてケーブルを入れ替えて差しなおすことをしないといけません。

ピン抜き工具は忘れたころに必要になるので、一つ手元にあると便利です。

チェックシート

丁寧なほう

  1. モーターのピンにテスターを抵抗測定モードであてて、抵抗が出るペアを調べる
  2. ケーブルがストレートかクロスか確認する
  3. 1,2 を踏まえて必要ならばケーブルのピンの入れ替えを行う
  4. 結線する

乱暴なほう

  1. とりあえず結線してホーミングなり適当に動かす
  2. 動いたらそのまま使う、動かなかったら電源を落としてからケーブルのピンの入れ替えをする

*1:異音を立てて震えるだけなので直ちに問題はないですが、原因調査が必要になってめんどくさいです

CR-30 bed leveling覚書

この記事は「3Dプリンター Advent Calendar 2021」の19日目の記事ということにしました。

adventar.org

ベッドレベリング(Y=0のみ)を完全に理解したので記録します。

ただ、今ヒートブレイクがへし折れてしまったので修理してから写真など追記したいと思います。

続きを読む

X5SAをましにするプロジェクト"Pooron"

この記事は3DプリンターAdvent Calendar 2021の13日目の記事にしました。

adventar.org

過去に散々酷評する記事を書いた通り、X5SAはそのままでは非常に良くないです。

takashiski.hatenablog.com

それをましにするプロジェクトが立っているのを見つけたので覚書をします。

続きを読む