pcb2gcode のオートレベリングを使ってみる | tech - 氾濫原 というエントリを書いた。この方法は楽なのだけど、リカバリしにくいという欠点がある。

ということで、Autoleveller を使ってみる。

Autoleveller を使ってリカバリ可能なオートレベリングをする

Autoleveller のビルド方法

hg clone https://bitbucket.org/daedelus1982/autoleveller

IntellIJ で autoleveller.iml か pom.xml を開くとプロジェクトが開かれる。
pom.xml を認識するように設定し、maven の依存が解決するまでしばし待つ。

依存が解決すれば com.cncsoftwaretools.autoleveller.Autoleveller の main メソッドを Run することでとりあえず動かしたりデバッグしたりはできる。

jar に固める場合、Cmd-; で Project Structure を開き、Artifact として JAR を追加する。

  • Artifact → JAR → From modules and dependencies...

ここで Main Class に com.cncsoftwaretools.autoleveller.Autoleveller を入力し、JAR files from libraries は extract to the target JAR にしておく (fat JARとする)

これでOKを押す。

Artifact の設定画面で Build on make にチェックをいれておく。

なぜか MANIFEST.MF の場所がおかしい (main/java/META-INF にある) ので、main/resources/META-INF に移動する。

これで make すれば実行可能な jar ができる。MANIFEST.MF が正しくなくても、メインクラスを指定すれば実行はできるのでどっちでもよい。ただ、Finder からダブルクリックしたときにちゃんと起動するようにしたい場合は MANIFEST.MF の設定が必要。

# ちゃんとできてたら動く
java -jar autoleveller.jar

# MANIFEST.MF がうまく設定できない場合
java -cp autoleveller.jar com.cncsoftwaretools.autoleveller.Autoleveller 

使いかた

ここでは

  1. Probe する gcode をつくる
  2. Probe 結果をもとに切削用の gcode をつくる

というステップを踏む。2段階だと面倒だが、こうすることで安全目にパラメータをふって切削すれば、Probe 結果を使いまわして何度か試行錯誤することができる。

Probe する gcode をつくる

切削する gcode を読みこむ。pcb2gcode で作った back.gcode を読みこむ。

自動的に設定が埋まるので、必要なところを変える。Probe Clearance は 0.5〜1、Z Safe Height は 1 とかでいい。無駄に動かすと時間がかかる。Z feed は 50 ぐらいにしておく。

create probe file only にチェックを入れて、Create Levelled Gcode ボタンを押すと、ALProbeback.ngc ができる。

Probe する

ALProbeback.ngc を Machinekit で読みこむ。原点を適当に設定して Touch Off する。Z 座標も Probe して Touch Off したほうが良い。

実行開始すると Probe される。

終わったら、.ini と同じディレクトリに RawProbeLog.txt というのができているので、コピーしてどこかに置いておく。

Probe はまだ付けたままで良い。

Probe 結果をもとに切削用の gcode をつくる


切削する gcode を読みこんだうえで、Browse for Probe Log ボタンから RawProbeLog.txt を選択する。

create probe file only のチェックをはずし、Create Levelled GCode ボタンを押す。これで ALback.ngc ができる。

切削

ALback.ngc を Machinekit に読みこませる。実行開始すると「Probe をつけろ」と言われるので付けて Resume する。これで原点がセットされる。「Probe をはずせ」と言われるので、外して Resume すると切削がはじまる。

やってみたもの

(エントリ冒頭の写真と一緒)

かなり細いラインも切れずに一応再現することができた。ただ、extra-passes が少なすぎるせいでヒゲが多い。とはいえ自力でカッター使えば対応できる範囲なのでやりなおしてはいない。

実装

カッターで修正のうえ部品をのせたもの

注意点

基板を両面テープで固定するとき、しっかり貼り付けること。捨て板の面出しできていればこれだけで±0.1にはおさまるはず。

オートレベリングしたあとは一切基板に手を触れないこと。特に抑えつけたりしないこと。

誤差発生要因

  • Vカッターの先端精度
    • 最小 0.2mm ぐらいだと思ったほうが良い
  • オートレベリングのとき多少基板に食いこむ?
    • 直接接触させているので数μmは食いこむはず…
    • 無視できるレベルかは微妙
  • オートレベリング後の環境変化
    • 接着したときの歪みの戻りなど
    • 切削開始すると基板がエンドミルの影響をうけるので、あらかじめ強く接着するのがとても大事

今のところ、Vカッターは 0.2mm 程度であるとして、pcb2gcode 実行時にoffset=0.1267949192431123 を指定するのでうまくいく感じ。また、extra-passes は最低でも2は必要。でも2だと結構細かい削り残しが多いので、3〜5 ぐらいにはしたい。加工時間がかなり増えてしまうけど、2倍になっても増やす価値はある気がする。

  1. トップ
  2. tech
  3. Autoleveller を使ってリカバリ可能なオートレベリングをする

要約:これらには ミニHDMI (HDMI Cタイプコネクタ)がついており、HDMI 出力ができる。ただし、この映像は背面液晶に映るものと全く一緒で、それ以上のものではない。

HDMI 経由で Full HD で出せないの?

5D Mark II では出せない。EOS M でも無理。

なお 5D Mark III だとファームウェアアップデートで HDMI 出力が強化されており、非圧縮 YCbCr 422 で出せるようになっている。

そして 5D Mark III はおいそれ買える値段ではない……

Canon デジタル一眼レフカメラ EOS 5D Mark III ボディ EOS5DMK3 -

5.0 / 5.0

  1. トップ
  2. tech
  3. EOS 5D MarkII や EOS M (初代) での HDMI 出力

いつのまにかPS2アーカイブにグラディウスVが追加されていた。といってもPS3からしかできないという……

しかし久しぶりにどうしてもやりたくなって PS3 を起動して

  • PS3 自体のシステムアップデート
  • PS Store のアップデート
  • グラVの決済
  • グラVのダウンロード
  • インストール

あたりに1〜2時間ぐらいかけた…… 決済中に「メンテ中です」みたいなこと言われて???ってなった。そんなわけねーだろって感じ。たぶん 50x が全部メンテ中なんだろうなー。コントローラからの操作が一切効かなくなったので決済途中にも関わらず PS Store アプリを終了したりする必要があってクソだった。再度起動してみたら決済終わってた。は〜

それはともかく、Very Easy + コナミコマンドでやっても3面ぐらいまでしかいけない。ヘタクソすぎる…… すくなくとも最後まで1周はしたことあるはずなんだよな…… というか1周しないとウェポンエディットできないんだよなあ。

面の攻略方法はかなり忘れてるのにコナミコマンドは覚えていた。グラVはL1R1とL2R2でやるかでウェポン選べるんだよなみたいなのも覚えていた。攻略忘れてると初見殺しに必ずひっかかる。つらい。

PlayStation3 チャコール・ブラック 500GB (CECH4300C) -

3.0 / 5.0

PS3 ってまだ売ってるんだなあ。PS4 と併発したままなんだろうか?

前々から準備していて、いよいよ新しく契約を追加してリストアするぞ! と思ったらできませんでしたので顛末を記す。敗戦は惨め。

Ubuntu 12.04 で生成

バックアップをとったサーバは大阪リージョン、HDD 100GB メモリ1GB (さくらのVPS(v3) 1G) です。

sudo mondoarchive -O -i -N -d /tmp/backup -s 30g

こんな感じで生成しました。HDD 100GB ですが Used: 12GB です。

$ mondoarchive -v 
mondoarchive v3.2.2-r3578

$ uname -a
Linux stfuawsc.com 3.2.0-88-generic #126-Ubuntu SMP Mon Jul 6 21:33:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

さくらのVPSで復元する

東京リージョン、SSD 30GB、メモリ 1GB プランを申し込みました。お試し期間での操作です。

VPSのコントロールパネルに行き、該当するホストの「OSインストール」から「ISOイメージインストール」を選択します。

公式のサポート情報を見ながら sftp でアップロードします。

元々さくらのVPS 上で mondo のイメージを作っているので旧サーバから直接 sftp しました。だいたい 10MB/s ぐらいでコピーできました (80Mbps)。

$ sftp user@xxxx.sftp.sakura.ad.jp:/iso
$ put /tmp/backup.iso
$ bye

これでインストールを開始します。VirtIO はオンでもオフでも関係ないようでしたので無視します。

このあと、まず Mondo Rescue のブートローダが起動します。nuke とか interactive とか選択できる画面です。まぁ何を入力しても、その後 Linux のブートで死にます。

initrd.img をロードしたあと、スタックトレースと共に Fixing recursive fault but reboot is needed というメッセージがでてしばらく止まり、再起動したあとに再度スタックトレースが出て止まります。

原因を探すために

VNC コンソールだとログが流れてしまって原因がわかりません。スタックトレースの最後だけ表示されてる状態です。これではどうしよもないので以下のようにしました。

ブートオプションにシリアルポートの設定を加えます。

boot: interactive console=ttyS0,115200n8

これで起動直後に VPS の管理画面から「シリアルコンソール (β版)」を起動しておきます。boot ローダが表示されているときにやればよさそうです。これでカーネルメッセージが全てシリアルコンソールのほうに出るようになるので、ログの履歴が辿れるようになります。

原因

以下のようなカーネルパニックでした。ググっても解決しそうな情報がありませんでし た。BUG で明示的に死んでるなのでカーネルに問題がありそうですがよくわかりません……

なおブートオプションに acpi=off とか ramdisk_blocksize=1024 をつけても無駄でした。

[    0.071064] Trying to unpack rootfs image as initramfs...                    
[    0.072286] BUG: unable to handle kernel NULL pointer dereference at 00000000
00000008                                                                        
[    0.074357] IP: [<ffffffff811a4c76>] __mark_inode_dirty+0x186/0x2a0          
[    0.076004] PGD 0                                                            
[    0.076004] Oops: 0002 [#1] SMP                                              
[    0.076004] CPU 0    

露頭に迷う

とりあえず申し込みを即日キャンセルして対策を考えています。

  • Mondo Rescue のカーネルバージョンを変える?
    • Mindi のカーネル? わからない → Mindi は実行中システムのカーネルをデフォルトで使う。システムにまずインストールされていないとカーネルを変えられない
  • そもそも Mondo 使うのをやめてイチからセットアップする?
    • そんな気力はない…

備考:シリアルコンソール(β版)

スクロールするとDOMの内容が全て入れ替わるためコピペが異常にやりにくい…… そして使ってる JS のオブジェクトが関数スコープで閉じているので Developer Console からも手が出せずめんどうくさい。

備考:さくらのVPSのVNCが繋げないとき

ISO インストール前に管理画面を一旦リロードしないと、VNC がちゃんと開けない。

正確にはマシンの強制停止をしたあと、リロードしたあと再度起動させると VNC が開けない? っぽい。よくわからんけど小まめにリロードしたほうが安心。これだから SAP は……

  1. トップ
  2. tech
  3. さくらのVPSにMongo Rescueのリストアができなかった (未解決)