3Dプリントサービス

FusionPCBで基板を発注したSeeedStudio.comを色々見ていたら、Open Geiger Projectというオープンハードウェアでガイガーカウンタを開発して世に出そう、というプロジェクトに出会いました。

その中でケースの製作でShapewaysという3Dプリントサービスを使っている記事がありました。

電子工作においてケースの製作は非常に面倒な作業の一つなので興味をもったので、3Dプリントサービスについて調べてみました。

Shapewaysを含めて3Dプリントサービスはこんなのがあるようです。

Shapewaysの中の「Easy Creaters」というページの中に「Community Creators」というリンクがあって、その中の「TinkerCad」というリンクを辿ると、誰かが作った3Dモデルのデザインが色々並んでいて、「Print 3D」というボタンを押すとプリントサービスにかけられるみたいなのですが、その中で選べるプリントサービスです。(きっと他にもそういうのがあるんだと思いますが、一例としてメモ)

当然、3Dとなるとソフトウェアが必要になるのですが、

  • trueSpace(マイクロソフトが無償提供しているらしい・・・・と思ったら、すでにマイクロソフトから切り捨てられているらしい・・・・)
  • Google SketchUp
  • Sculptris(フリーソフト?プロプラソフト?)

といったものがあるようです。(これらがShapeWaysで使えるかどうかまでは調べていませんが・・・)
また、オープンソースの3D CADという視点で見てみると、FreeCADというのが結構引っかかります。(FreeCADはマルチプラットフォームのようです)

プリント基板製造を個人で気楽に頼めるのもすごいと思いましたが、3Dプリントも手軽になってきているんですね。世の中いろいろ進んでいるようです。もうちょっと調べてみたいと思います。

#FusionPCBの基板の方は製造にかかったようです。

Core2Quadマシン静音化(FusionPCB発注編)

いよいよPayPalのアカウントを作って、さらに、Seeedstudioのアカウントを作って、FusionPCBに発注してみました。

先にSeeedstudioでPaypalを使って支払い(5cm角なので、送料込みで$14=1160円)をすると、オーダー番号がメールで通知されるので、それを tPlaceレイヤー(シルク)に書き込んでガーバーファイルを生成しました。

ガーバーファイル生成前に、ついでに以下の処理をしました。

  • 電源電圧を扱う信号だけど、電流が流れない箇所は線幅を細く変更
  • 信号パターンをちょっとみためきれいに修正
  • 文字がすべてProportinalフォントだったのをVectorフォントに変更
    (今思えば、大きさも変更できたのかもしれない。もしそうなら、ライブラリがばらばらなのをあまり気にせずにとにかく作って、PWBデザインの際にシルクなどの統一ができるのかもしれない)

修正後、FusionPCBのページから入手できるDRCファイルを使ってDRC実行。意図的に細くした電源配線でエラーが出ますが、狙ってやっていることなので無視します。その後、やはりFusionPCBのページから入手したCAM用のファイルを使ってガーバーファイルを生成しました。

生成したファイルは指示通りに簡単な英文メールで送信しました。さて、どうなることやら。

MPLAB-XをLinuxMint11 x64にインストールしてみると・・・

MPLAB-Xを試してみることにしました。

64bit環境で32bitバイナリを動かすため、ia32-libsパッケージをインストールします。

$ sudo aptitude install ia32-libs

次に、インストーラを起動します。

$ chmod 755 *.run
$ ls
mplabc18-v3.40-linux-full-installer.run mplabx-ide-v1.10-release-notes.01
mplabc30-v3.30c-linux-installer.run mplabx-ide-v1.10-release-notes.01.zip
mplabc32-v2.02-a-linux-installer.run picc-9.82.9453-linux.run
mplabx-ide-v1.10-linux-installer.run
$ ./mplabx-ide-v1.10-linux-installer.run
(main.tcl:3260): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libaurora.so: 間違った ELF クラスです: ELFCLASS64
$

・・・・がっくり。今日は諦めよう。

やっぱり、この手のツールはWindowsから離れられないんでしょうかねぇ・・・。

さくらのVPS乗り換え(3)

次に、DokanSSHFSを使う準備として、専用のユーザーとSSH接続の準備をします。

1)ユーザーの追加

システム管理の下のユーザー管理ではユーザーを追加できないようです。
かといって、adduserコマンドで暗号化オプションを追加してもNGでした。

で、結局、こうなりました。

$ sudo apt-get install ecryptfs-utils
$ sudo adduser --encrypt-home dokan

2)SSH接続する

まずサーバー側です。(本来はクライアント側で鍵生成した方が良さげな気もしますが、途中の経路はセキュアなはず・・・・なので、サーバー側で生成しました)

$ ssh-keygen -t dsa
$ cd ~/.ssh
$ cat id_dsa.pub > authorized_keys

次にクライアント側です。まず、UbuntuからSSH接続できることを確認します。

まず、何らかの方法でホスト側の秘密鍵(~/.ssh/id_dsa)をローカルホストの ~/.ssh/id_dsa.dokan として持ってきます。その後、

$ ssh -p (ポート番号) -l dokan -i ~/.ssh/id_dsa.dokan (ホストIPアドレス)

で鍵生成時のパスフレーズを入力することでSSH接続ができました。

3)追伸

・・・・と思ったら、ホスト側でログインしている dokan ユーザーがログアウトするとSSH接続できなくなってしまいます。 当然といえば当然ですが、~/.ssh/authorized_keys が見えなくなってしまうからのようです。ログインしていない状態(=暗号化されたままの状態)で、別のユーザーから

$ sudo sh
# cd /home/dokan
# mkdir .ssh
# chown dokan.dokan .ssh
# chmod 700 .ssh
# cp (どこか見える場所)/authorized_keys .ssh/.
# cd .ssh
# chown dokan.dokan authorized_keys
# ls -la
-rw-r--r-- 1 dokan dokan 608 2012-04-08 19:00 authorized_keys
# cd ..
# chmod 500 .ssh
# ls -la
dr-x------ 2 dokan dokan 4096 2012-04-08 19:00 .ssh

として、ホームディレクトリの復号化前に見える場所に .ssh ディレクトリを作ってやれば良いようです。(こちらを参考にしました)

この辺がややこしいのでさくらのインストールマニュアルでは暗号化ホームディレクトリは削除してあるのかもしれませんね。

4)さらに追伸

これでもまだダメっぽい。「ecryptfs-mount-private」コマンドで暗号化ホームディレクトリを可視化するのだけど、効果がない。調べると、当該ユーザーがecryptfsグループに属していないといけならしい。というわけで、

$ sudo groupadd -g 124 ecryptfs
$ sudo gpasswd -a dokan ecryptfs
ユーザ dokan をグループ ecryptfs に追加

で、この後、当該ユーザーから、

$ ecryptfs-mount-private

とすると、ホームディレクトリが切り替わりました。・・・が、ログインと同時には切り替わりません・・・(泣)

ドキュメントによれば、「~/.ecryptfs/auto-mount」を消して、touchで作り直せばできるようになるっぽいことを書いてあるんだけど、それもうまくいかないし。

さくらのVPS乗り換え(2)

1.OSの再インストール

とりあえず標準で入っているCentOSをちょっとだけ堪能したら、早速ですがOSを再インストールします。

OSはUbuntuにするので、カスタムOSインストールでUbuntu i386を選択します。

VNC上でインストーラ画面が表示されるので、カスタムOSインストールマニュアルとインストーラにしたがって進めます。

2.OpenSSH Serverのインストール

前回同様にOpenSSH Serverをインストールします・・・・と思ったら、はじめから標準で入っているようです。鍵の生成は前回同様実施します。ただし、1箇所間違いがありました。(赤字で直しちゃいました)

3.デスクトップ環境のインストール

これまた前回同様にインストールします。

4.FreeNXのインストール

これまた前回同様です。

・・・ということで、とりあえず、概ね環境構築しました。
あとは、アプリケーション類ですね。

 

さくらのVPS乗り換え(1)

これまで「さくらのVPS 512」を契約して、Ubuntu10.04のリモートデスクトップとして使っていたのですが、3/29にさくらのVPSがリニューアルされて、その乗り換えキャンペーンの案内が来ました。

旧契約は、

  • さくらのVPS 512 : 月額980円、メモリ512MB、HDD20GB

だったのですが、新しい契約メニューは、

  • さくらのVPS 1G : 月額980円、メモリ1GB、HDD100GB
  • さくらのVPS 2G : 月額1480円、メモリ2GB、HDD200GB
  • さくらのVPS 4G : 月額3980円、メモリ4GB、HDD400GB
  • さくらのVPS 8G : 月額7980円、メモリ8GB、HDD800GB

になっています。しかも4/20までに解約手続きと次の契約を完了すると、乗り換えキャンペーンで1ヶ月分の料金が割引されるようです。いわば、ちょっと乗り換え期間分の費用は出るけど、旧契約での上位契約相当に月額費用は変わらずに乗り換えできるイメージです。

なので、ちょっと面倒ですが、乗り換えてみることにして、素直に新しい「さくらのVPS 1G」の契約をしました。クレジットカードで決済しているので、例によって2週間のお試し期間があります。

・・・・が、ここでふと、HDDの容量に着目すると、非常に大容量になっています。

DropBoxと比較すると、

  • DropBox Pro 50 : 月額US$9.99(約800円)で50GB
  • DropBox Pro 100 : 月額US$19.99(約1600円)で100GB

と(DropBoxの使い勝手の部分はあるのですが)容量単価ではDropBoxを上回っています。そこで、障害の対策や災害の対策を兼ねて、ローカルの重要なファイル(といっても写真とか趣味のプログラムなどの成果物ですが)を暗号化+DokanSSHFSを使って預けてしまうことを考えました。そこで必要なHDD容量を見積もると100GBでは少し足りないことがわかりましたので、「さくらのVPS 1G」を速攻でキャンセルして、「さくらのVPS 2G」に変更しました。

早速改めて申し込みなおすと15分くらいで使えるようになりました。

Core2Quadマシン静音化(ガーバー生成編)

いよいよガーバーファイルを生成する。

このあたりは、FusionPCBのページからもリンクされている「A guide to SeeedStudio’s Fusion PCB Service」というページを参考(というかそのまんま)にした。下記は自分用のメモ。

(1)ガーバー生成用CAMファイルを入手する。

FusionPCBのWebページからDRCファイルをダウンロードした際に、「Seeed_Gerber_Generater_v0r95_DrillAlign.cam」というファイルがあるので、これをコントロールパネルの「CAM Jobs」というところにドラッグ&ドロップする。

この状態で、レイアウトエディタの左上のCAM(水色の紙テープっぽいボタン)を押す。

別のウインドウが開くので、「File」→「Open」→「Job」とすると、ファイル選択ダイアログが出るので先の「Seeed_Gerber_Generater_v0r95_DrillAlign.cam」を開く。

すると、ウインドウにタブがたくさん表示されるので、その状態で「Process Job」を押すと、プロジェクトディレクトリにGerberデータが出力される。

(2)ガーバーデータのチェック

ガーバービューアを使って内容をチェックする。

オープンソースのものではGerbvというソフトウェアが使える。これをインストールして、「File」→「Open layers」で、先ほど生成されたGerberデータを開く。必要なものは、

  • <pbname>.GTL  (top layer)
  • <pcbname>.GBL (bottom layer)
  • <pcbname>.GTS (solder stop mask top)
  • <pcbname>.GBS (solder stop mask bottom)
  • <pcbname>.GTO (silk top)
  • <pcbname>.GBO (silk bottom)
  • <pcbname>.TXT (drill sizes and positions)

の7つのみ。なお、ファイルを開く際はパス名に日本語が含まれているとエラーが出て動かないので要注意。

開くとこんな感じ。

塗りつぶしに筋が入っているのは表示の際の影響だと思う。(倍率を変えたり再表示したりすると消えたり出たりする)

さて、PayPalのアカウント作らなきゃ。

<追伸>
こちらのページこちらのページも参考にさせていただきました。

Core2Quadマシン静音化(レイアウト設計編)

回路図を入力したら、レイアウト設計を行う。

(1)外形線の修正

(20)Dimensionレイヤーに1.95inch×1.95inchの外形線を引いた。これで49.53mm四方のサイズになるはず。

(2)部品配置

ラッツネットを参考にしながら部品配置を決める。部品を移動する。移動するとラッツネットがこんがらがるので再度ラッツネットの引き直しをさせる。時々、オートルータを動かして、配線の具合をチェックしながら進める。配線をラッツネット状態に戻すには、コマンド手打ちで、「rip up;」で行える。

今回はほぼ全てをDIP品にしたので意外に大きくなってしまった。表面実装品にしたほうが小さくまとまるのだけど、手持ち部品の関係もあるのでこのまま進めることにします。

(3)シルクの調整

個々の部品IDのシルク位置はSmash状態にした上で、移動させることができるのだけど、部品ごと移動する場合と、シルクだけ移動する場合があって、今ひとつ法則がよくわからない。追加のシルクを(21)のtPLACE面に配置した。(よく考えたら、裏は何もないので、bPLACEに配置してもよかったかも)

※発注の際にオーダーをシルクで入れないといけないようだ。

(4)べたパターンの生成

ポリゴンを書くボタンで、部品面のベタは(1)TOPレイヤーに、半田面のベタは(16)BOTTOMレイヤーに多角形を書く(四角を描くコマンドではだめっぽい)。多角形は点線で表されるので、そこにNameコマンドでベタ信号にしたい信号名(例えばGND)を記載する。この状態でラッツネットコマンドを実行すると、ベタパターンが見えるようになる。

(5)DRCの実行

FusionPCBのWebページからDRCファイルをダウンロードする。(下のほうにある「Eagle Design Rule: click to download」と書いてある)

ダウンロードすると、「Fusion_eagle_rule_v1.1.dru」というファイルが入手できるので、Eagleのコントロールパネルの「Design Rules」のところにドラッグ&ドロップで入れる。

その後、DRCコマンドを実行すると、「Load」というボタンが表示されるので、「Fusion_eagle_rule_v1.1.dru」を開いて、「Check」を押す。

自分の場合は、なぜかベタパターンの外形線が線幅のエラーで引っかかってしまった。線幅を変えてもエラーが出続ける。が、あくまでベタ領域を指定する線がエラーを出しているだけなので、この際無視することにした。

<追伸>
ベタパターンの外形線の線幅とネットクラス(net class)を比較してエラーを出すようです。
『net classの線幅(width) < ベタパターンのPolygonの外形線の線幅』
を満たしていればエラーは出ないようです。

Core2Quadマシン静音化(回路図作成編)

実験で確認した回路をベースに、基板発注のためにEagleで回路図入力します。細かいところは端折って、自分のメモ中心です。

(1)図面準備

  1. 新規作成
  2. グリッドの表示
    「View」→「Grid」で「Display」をonにして表示させる。StyleはDotsにした。
  3. フレームの配置
    framesライブラリからA4L-LOCを使う。左下を原点に合わせた。

(2)回路図入力

前回とほぼ同じ回路を入力。ただ、パターンのライブラリがまともなピン互換品・類似品を選んで入力を実施。完全に基板作成用の回路図。なので、類似品を使った箇所はパターンで回路が正しいかを確認しないと危ない。

また、今回、FETはチップ品をパラ接続することにした。TO-251のPch PowerMOS FETは絶滅寸前のようなので。

(3)Net Classの設定

「Edit」→「Net classes…」で配線の条件付けを設定する。
例えば、電源のパターンは0.5mm以上、GNDやFANモータの電流が流れるパターンは1mm以上、など。
この設定をしてから、該当する配線を右クリックして、Net Classを設定する。

(4)ERCの実行

電気的エラーチェックを行う。部品定数などが入ってない箇所がある、ということだが、シルク印刷する気もないので無視することにした。

LinuxでOpenHardwareMonitorにトライ

Linuxでハードウェアのモニタをしたいと思っていたところ、OpenHardwareMonitorがLinuxに対応している・・・・ということで挑戦してみました。実際には.NETをLinuxで動かすMonoでの対応となっているようです。

1.MonoDevelopのインストール

Synapticパッケージマネージャで「MonoDevelop」を検索すると見つかりますのでインストールします。(実行環境でもいいと思うのですが、よくわからないので開発環境ごとインストールしてしまいました。実際はWinFormとかいうのに関連するライブラリだけでよかったみたい。)

2.OpenHardwareMonitor.exe の実行

ダウンロードしたパッケージを展開して実行します。

$ mono ./OpenHardwareMonitor.exe

でWarningが出るもののウインドウが開きます。しかし、表示される項目はごく限られてしまっています。gksudo でも root shell でも同じです。実質、CPUのクロックだけ。

Googleさんにちょっと聞いてみましたが、どうも解決できそうな答えは見つかりそうにありません・・・。