Raspberry Pi Zero専用UPS、 UPS-Liteを買った

UPS-LiteっていうRaspberry Pi Zero専用UPSを買った。
バッテリーも付属しており送料込みで$18.99。これ一つで停電対策ができる。
コンパクトにまとまっていて3時間程度は持ち、下側に重なるのでGPIOなどは空いたままになりなかなか完成度が高い。

インターホンの信号線をRaspberry Pi ZeroのGPIOに繋いでピンポンが鳴るとDiscordへ通知するという運用をしており、
そのためにリビングに設置してあるのだがちょくちょくブレーカーを落とすやつが居てファイルシステムが壊れるのでそれを防ぐ目的。

バッテリーの状態などはi2cでRaspberry Piから取得できるようになっているがイマイチ情報が無くよくわからない。
減っていくはずの残容量が増えていくという怪現象もありマジ混乱したが消費と充電を繰り返していたら安定した。
davidem/UPS-Lite: UPS-Lite for Raspberry Pi Zero by XiaoJ - Modified API by Zontexが詳しいがこの人も困っているようだ。

短時間の停電対策が目的なので特に必要ないのだがせっかくなのでMackerel用プラグインを書いて電池が危うくなったら通知するようにしてみた。
バッテリー残容量のグラフ

999円のIKEA LACK サイドテーブルを使ったエンクロージャ

How to build a simple, cheap enclosure for your 3D printer - Prusa Printersを読んでThingiverseを検索し、
Anycubic i3 mega Enclosure by JAfonso - Thingiverseの制作を試みたがなかなか苦労したのでまとめておく。

買い物メモ

Amazon.jp

その他

目的

  • 振動対策
  • 扇風機やエアコンなどの風を遮断する
  • 発生するガスのろ過
  • ホコリの軽減

振動対策は耐震ジェルを試したがこれだけでは不十分だったのでゴム板を併用している。
静音化も求める場合は重量のある側板と吸音材が必要になるはず。

作ってみて

IKEA LACK サイドテーブルはゴツくて安っぽいが999円というのが素晴らしい。

脚を3Dプリンタで印刷すると時間もフィラメントもかかるので覚悟が必要。
USB接続トラブルとフィラメント切れで2回も失敗していてつらみが高まりすぎた。
形状的にサポートが必要なのでそのあたりがうまくいくかどうかの問題もある。

側板は完全な透明でなくても良いなら中空のポリカーボネート板が安い。
しかしだいたい4mm厚なのでThingiverseで一般的な3mm向けのモデルをそのまま使えない。
何も考えずに3mm用のモデルを出力してしまったので切ったり削ったり4mmへ改変して出力し直しになった。
磁石穴も丸穴に変更したりと地味に手間がかかっている。

結局のところ脚は角材を接ぐかゴムのブロックを接着するかして側板は接着剤か木ネジなどで直接固定してしまい、扉が必要な面にはトルクヒンジを使うというのが手っ取り早そう。
お金がかかっても良いならIKEAのSTUVAを使ったエンクロージャというのもあり買ってきて組み立てるだけでガラス扉のエンクロージャを作れる。

側板の一枚に穴を開けて120 25ファンと吸収缶を取り付けて綺麗な空気を排気するようにした。
PLAやPETGでも稼働中は呼吸器にダメージがありちょっとしんどいという感じだったのがだいぶましになった。

目的は果たせたし、上にも物を置けるようになったのが狭い部屋では助かる。
暖かい空気が普段座ってるところに流れてきていたのも無くなったのでこれからの季節はありがたい。

付録: 排気ろ過装置のファン制御

12cmファンが思いの外うるさかったので手持ちのMOSFET(IRLU3410PBF)を使ってRaspberry PiのGPIO(BCM 18)へ繋いでPWM制御することにした。
MOSFETとの接続は適当なケーブルとQIコネクタを使いピン左からGPIO、ファンのマイナス、電源のマイナスに繋いだ。

pigpioのpigsコマンドが本当に便利でお手軽にGPIOを制御できる。
Raspbianではpigpioのpigsコマンドがエラーを吐くのでRaspbian Stretch Liteのセットアップ - おいら屋ファクトリー参照のこと。

~/.octoprint/config.yaml

events:
  enabled: true
  subscriptions:
    - event: PrintStarted
      command: pigs hp 18 25 700000
      type: system
    - event: PrintDone
      command: sleep 1h; pigs hp 18 25 0
      type: system

3Dプリンタで使うファンを調べたり買ったりした記録

4010 ブロアファン

3D Matadors Store

小さいが風は出る。騒音レベルは26dbの表記どおりの感じで回転開始時などのノイズが無いので高品質に思える。
HI-flow Extruder-Head For ANYCUBIC i3 MEGA by N3wSp3ak - Thingiverseの印刷物冷却ファンとしての役割は果たせそう。

5015 ブロアファン

delta BFB0512HH 12V 0.32A

静かだが風量・静圧も低い。優しい風と言った感じ。
Anycubic i3 Mega - AIO Stepper Cooling Duct for 5015 by ITLogic - ThingiverseとともにTMC2208(spreadCycle 1.2V)を冷却するのに使っている。
一時期Anycubic I3 Mega Improved Hotend Fanbox by Renba - Thingiverseの印刷物冷却ファンに使っていたがダクト形状の問題もあって最終的な風量に不安があった。
そのあとHI-flow Extruder-Head For ANYCUBIC i3 MEGA by N3wSp3ak - Thingiverseに乗り換えたので印刷部冷却ファンとしては使っていない。

3D-FANS

ブーンという高回転系の音とともに結構な風を吹き出す。
うるさいとまでは行かないが一般の静音ファンと比べると音はするので騒音レベルの25dbは合ってそう。
先に買ったdelta BFB0512HHより冷やせるのが欲しくて買ったが届いた頃には5015ブロアファンは使わなくなっていた。

4010 ファン

Ainex (CFZ-4010SA) Noctua (NF-A4x10 FLX) Owltech (SF4-S5)
風量(CFM) 4.81 4.82 4.1
ノイズ(db) 12.3 17.9 21
静圧(Pa) 不明 17.5 27
価格 800円程度 2000円以上 1500円程度

ホットエンドのヒートシンク冷却ファンとしてAinexのCFZ-4010SAを使っていたが静圧不足を感じたのでOwltechのSF4-S5に替えた。

Anycubic Mega-S(i3 Mega)

雑感

楽しいおもちゃで実用品も作れるが本体代以外にも割と金がかかる。
専用の部屋を用意できない場合は騒音と振動への対策と換気が必要。

  • ヒートベッドとUltrabaseの組み合わせは素晴らしく、定着においてのトラブルは皆無。
  • とにかくうるさくそれなりに揺れるので自室に置く場合はお金と時間をかけて改造する必要がある。
  • 狭い自室で動かしていると呼吸器にダメージが来る感じがあるので換気かろ過かなんらかの対策をとらないとしんどい。

詳細など

改造記録

ヒートベッド断熱

コントロールユニットを熱から守り冷却効率を高める。
ヒートベッドの加熱効率も上がる。
コルクシートを貼るだけのお手軽改造。

モータードライバ静音化

TMC2208をspreadCycle 1.2V(±0.005)でインストールして冷却のためにダクト追加とファン交換をした。
spreadCycle化にははんだ付けとWindowsマシンとのシリアル接続が必要。
stealthChop(出荷状態)の方が静かだそうだがトルク不足との話を見かける。

激しく動いて騒音の元となるXY軸はstealthChopの方が良さそうなのでいつか十分な熱対策の上で入れ替えてみたい。

ファームウェア

モータードライバを交換したときにdavidramiro/Marlin-Ai3M: Marlin firmware optimized for the Anycubic i3 Mega 3D printerに変更した。
TMC2208を使っていてもコネクタを差し替えなくて良いし、他にも便利な機能が詰め込まれている。

ファン静音化

冷却能力は重要なので冷却を強化するパーツの追加とファンの静音化を同時にやることになる。
静音と風量・静圧どれも十分なのはNoctua。
少々うるさくても良いならOwltech
AinexのOmega Typhoonは安くて静かで素晴らしいファンなのだが静圧が低いので使いにくい。
ブロアファンをどうするかは悩ましい。
ホットエンド(PH)とコントロールユニット(XH)でコネクタが違うので要注意。

3Dプリンタ

結構な振動があるので専用の場所が欲しくなる。
ヒートベッドとUltrabaseを活用するなら囲いもあって損はしない。
IKEA LACK サイドテーブル(999円)が3Dプリンタのためにあるようなサイズで安くて良い。
複数積んでエンクロージャ化したり収納スペースの拡張をしたりとできることは多い。

ベルトテンショナー

PETGで印刷したものを使っていたがトーションバネのものに替えた。

フィラメントホルダー

Mega-Sには本体に取り付けるフィラメントホルダーが付属する。
手軽で便利なのだがスプールが削れてゴミが発生するしコントロールユニットを開けるときには邪魔になる。
608ベアリングで滑らかに回転するホルダーに乗り換えた。

オートレベリング

BLTouchクローンを使ったオートレベリングを追加した。
四隅の手動レベリングが不要になるわけではないが毎回神経質にやる必要はなくなる。
マザーボードがTrigorilla 1.1の場合はChanges for Trigorilla 1.1 · MNieddu91/Marlin-AI3M-BLTouch Wikiに従ってサーボピンの設定を変更する必要がある。

空間に余裕がないので実装難易度が高く、手動レベリングとヒートベッド(Ultrabase)で定着には問題がないので優先度は低い。
ホットエンドの基板に繋ぐ信号線を強く固定する手段がないのでファンボックス取り付け時に折れてしまいテストで数回試しただけになってしまった。
基板から取らなくてもその手前の配線から分岐すれば良いのではとちょっと試したがうまく行かなかった。何か勘違いしていそう。

OctoPrint

Raspberry Piなどを3Dプリンタに繋ぐことで制御や監視をするシステム。
CuraにOctoPrint Connectionというプラグインを入れるとCuraからOctoPrintに印刷を委託してCura自身は終了できるようになりすごく便利。
PSUから電源を取り5Vに降圧してGPIOに繋いで運用している。

カメラを繋いでいれば遠隔から印刷状態の確認も可能。
curl -s "http://localhost/webcam/?action=snapshot" | identify -format "%[mean]" jpg:- | cut -d . -f 1で明るさも取れる。

見た目

OctoPrint用のRaspberry Piやカメラをケースに入れてフレームにマウントした。
黒いフレームに黒いフィラメントで周辺機器を搭載していくと一体感がすごい。
ほぼ不要になったタッチパネルをスライド式のカバーで隠したりもした。

白いテーブルに白いフィラメントのパーツでエンクロージャを作ったので外側は白くなった。

印刷前と印刷後

フィラメントにPETGを使っていると印刷開始時の垂れが気になるのでフィラメントの初期垂れを拭うスクリプト – Make.oldcyclist.comを参考にベッドの端で拭うGcodeを追加した。

G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G0 X50 Y0 F5000
G0 Z0.300 F200
G1 X100 E12 F500.0
G1 X150 E18 F500.0
G92 E0 ;zero the extruded length again

davidramiro/Marlin-Ai3M: Marlin firmware optimized for the Anycubic i3 Mega 3D printerのファンの風をUltrabaseに吹きかけて冷やす機能を印刷後に使うようにしていたが仕組み上あまり冷えないのでやめた。
扇風機とかサーキュレーターとかそういうのを使えば数分で冷却完了で造形物も勝手に剥がれてくるし良い。

エクストルーダー、ホットエンドの冷却性能と静粛性能の両立

HI-flow Extruder-Head For ANYCUBIC i3 MEGA by N3wSp3ak - Thingiverseを導入し、4010ファンをオウルテック PCケース用山洋電気製静音ファン 4cm 10mm厚 5000rpm SF4-S5に変更した。
造形物冷却ファンは付属のものをそのまま使い、ファン速度は25(通常)-50(最大)%としている。

取り付け難易度はそこそこ高く、ベルトは一度取り外した後ラジオペンチなどで掴んで差し込む必要がある。

静音化のあまり冷却性能が犠牲になりすぎて糸引きが酷かったのがとてもよくなった。
印刷物の冷却は過剰になりがちで特に印刷開始時にファンがブン回ると定着に失敗するのでそこは注意が必要。

Z軸調節ネジを固定する

I3MEGAのカチャカチャ音を止める|はるかぜポポポ|noteを読んでなるほどーとなったので。
Twitterから引用している動作音動画のカチャカチャ音はこれっぽい。

エンクロージャ

ネットで見かけたものを真似てIKEA LACK サイドテーブルを2段にして中空のポリカーボネート板を側板として囲いを作った。
ヒートベッドをエアコンの風から守り、部屋の温度上昇も和らげる。
120 25ファンと吸収缶を使った排気装置も付けた。

できあがった物自体は良かったのだが部品を3Dプリンタで出力するのはなかなか大変だった。
IKEAのSTUVAを使ったエンクロージャというのもある。

フィラメント

安いPLAを普段使いし、靭性が必要な部品にPETGを使っている。
PETGは優れた素材なのだがとにかくお手軽なPLAに比べると手間がかかるのが難しい。
安さに釣られて2回も黒いフィラメントを買っているが、日常的に使う道具や部屋に設置するようなものに黒色は向かない。

使用歴

  1. 付属のPLA White
  2. SainSmart PETG Black ¥2999
  3. Createbot Official Store PETG White ¥2519
    • 巻き終わりの処理が甘く使い始めに引っかかって出てこないことがあった
  4. ELEGOO PLA Black ¥1399

トラブル

  • 届いた時点でファン裏などにはホコリが溜まっていて少なくとも一部は中古
  • 買って3週間でベッド中央にでかい傷を作った
    • 見た目以外の問題はなく運用できている
  • いつのまにかZ軸左だけ下がりすぎてる感じでレベリングが厳しくなった
    • Z軸のリミットスイッチを押すネジで調整できた
  • やや詰まり気味と感じた時にコールドプルを試みてうまく行かずあちこち触って完全に詰まらせた
    • 付属してきた予備のホットエンドに丸ごと交換して事なきを得たが素直にノズルの交換などで様子を見るべきだった

おすすめ工具とか

樹脂製スクレイパー INOUE カーボンはがしヘラ 65mm

強度には欠けるので消耗品になるがUltrabaseを傷だらけにするよりはまし。
剥がしやすくするためにはUltrabaseをしっかり冷やすことも重要。

スティックのり トンボ鉛筆 シワなしピット G

ヒートベッドとUltrabaseで基本的には問題ないがスティックのりを併用することで底面が少ないものもラフト無しで印刷できるようになる。

紙ウエス 毛羽立たないラボワイプ モノタロウ

ベッドやノズルの清掃に。安くて惜しみなく使えるのが良い。
アルコールでベッドを綺麗にするのはもちろん水でスティックのりを塗り広げたりできるのも便利。

アクリル接着剤 光 アクリル接着剤 ABN-1

手軽かつ強力で便利。外す予定のないものは全部これでOK。割れも直せる。
付属のスポイトでは厳しいのでインジェクターブラシが欲しい。

リューター Dremel(ドレメル) ペン型ミニルーター FINO(フィーノ)

雑にモデリングして雑に印刷して現物合わせに削って完成させるというのができるようになり捗る。
軸付砥石などのリューター用先端工具はモノタロウが強い。
ホイールやディスクで切断もできる。樹脂はもちろん金属も切れるので便利。

デザインナイフ タミヤ クラフトツールシリーズ No.40 モデラーズナイフ

リューターと併用する。バリ取りをしたりサポートやブリムを剥がすときはナイフのほうが使いやすい。

インサートナット インサートナット100個入り

付けたり外したりするものはこれを使う。
普通のナットよりネジのつけ外しが楽になり、はみ出し無く仕上げることもできる。
AliExpressで買えばとにかく安く送料を払っても1個3円とかなので良い。

ボルトとナットのセット

家にネジ類のストックがないならM2, M3, M4あたりのボルト・ナットセットを買っておくとホームセンター通いをしなくて済む。
リンクのものは種類・量・価格的に良い感じだがステンレス製なので磁石に付かないという問題がある。

ウィッシュリスト

良ければなんか買ってください。

Anycubic Mega-S(i3 Mega)のPSUから電源をとってOctoPrintと照明を設置する

OctoPrintRaspberry Piなどを使って3Dプリンタの制御や監視を行うシステム。
ブラウザから3Dプリンタを操作できるようになり、カメラを繋げば監視もできる。

Curaから印刷するが実際の作業はOctoPrintに任せることのできるOctoPrint ConnectionをCuraのMarketplaceからインストールしておくと便利。

更にスマートプラグを使うことでコンセントの一本化をしつつ自宅サーバからOctoPrintとスマートプラグを順番にシャットダウンすることで遠隔での電源オフを可能にする。

買い物メモ

電源取り出し

PSUの空いている端子から12Vをとって分岐し片方を5Vに降圧してOctoPrint(Raspberry Pi 3 B+)と照明(12V テープLED)の電源を用意する。

手軽に済ませたかったので分岐ケーブルで2つに分けた。
片方に5V降圧DC-DCコンバータを繋ぎ、もう片方はそのまま12Vで使う。

PSUの端子台へ接続する圧着端子は1.25-4が使える。

せっかく分岐したのだが部屋の照明がスマート化済みで必要ならそっちを付ければ良いということで結局テープLEDは付けなかった。
もし付けるならオンオフをどうするかということになる。
適当な物理スイッチを挟むのかMOSFETなどでRaspberry Piから制御するのか。

電源制御

電源を切るときはOctoPrintをシャットダウンしてから、点けるときはスマートプラグを直接操作するスクリプトを書いた。
OctoPrintとスマートプラグをオンオフするスクリプト
APIキーはOctoPrintの設定からコピーできる。
スマートプラグはルータのDHCP固定割当でIPを固定しておく。

これをRaspberry Pi 3 B+でスマートリモコンを作る - おいら屋ファクトリー経由で呼び出すようにした。
ブラウザやAmazon Echoから3Dプリンタの電源を操作できるようになる。

OctoPrint

OctoPrintはRaspbianにインストール済みのイメージが提供されているのでセットアップは簡単。
OctoPrint.org - Download & Setup OctoPrintに詳しく書かれている。

今後の作業のためにRaspbian Stretch Liteのセットアップ - おいら屋ファクトリーを見ていつもの環境も整えておいた。

インストールしたプラグイン

OctorantでDiscordへ通知が飛ぶ時に部屋が暗いと様子がわからないので暗いときは30秒だけ明かりをつけるOctoPrint用スクリプトを書いた。

Anycubic Mega-S(i3 Mega) の静音化改造


初期状態では耳栓していてもうるさく自室に置くの厳しい…という感じだったが、
静音化の結果うるさくてゲームもできないという状況は脱したし耳栓すれば同じ部屋で眠れるレベルにはなった。

追記

ホットエンドのヒートシンク冷却にAinex Omega Typhoon CFZ-4010SAを使うと冷却力が不足気味になり特にPETGでは糸引きが激しくなってしまう。
3Dプリンタに使うファン選びには3Dプリンタで使うファンを調べたり買ったりした記録を書いた。

買い物メモ

ヒートベッド断熱

ANYCUBIC i3 MEGAをアップデート  ヒートベッド断熱材|はるかぜポポポ|noteのとおりにした。
ヒートベッドの加熱効率化とコントロールユニットを熱源から保護する効果もあり、手軽な割に良さそう。
コルクシートはAliExpressで調べると折れ曲がったのが届いた報告がいっぱいあったのでリンク先のAmazon.jpで買ったが結局中国から届いたので運が試される。

モータードライバ交換

モーター駆動の騒音を低減できるとのことだったのでAnycubic i3 Mega TMC2208 Silent Modで予習して3Dプリンタと同時に注文していた。
しかしデフォルトでは超静音化モードであるstealthChopに設定されていて静音化と印刷速度(トルク)を両立するならspreadCycleにする必要があり、
そのためにははんだ付けとWindowsマシンとシリアル接続しての設定変更する必要があったので一仕事だった。
このあたりはTMC2208 - YouTubeがとても詳しく素晴らしい。
Configurator for TMC2208 | SilentStepStick | Watterott electronicも参考になる。
電圧は1.2V(±0.005)に揃えたが根拠があるわけでは無く、0.85Vで組み立てたら左右のZ軸がずれる感じになったので上げてみただけ。
ググると0.85Vの例が多いが stealthChopとspreadCycleの区別が無いし、初期のモータードライバは0.9V前後だが結構な差があり統一されてないしでよくわからない。
TMC2208を実装するとコネクタを反対向きに刺し直す必要があるがファームウェアMarlin-Ai3MのTMC2208対応版にすることで手間を省ける。
Marlinのセットアップでターミナルからコマンド入力する部分はArduino IDEのシリアルモニタ(CR, 250000bps)が手軽で良かった。

また、マザーボードのバージョンによってはモータードライバがはんだ付けされていて交換がとても難しいとの情報を見かけたがまだ数が出回ってないのか一時期だけだったのか詳細を見つけられずよくわからなかった。
TMC2208とWindowsマシンとの接続は専用のUSBシリアルアダプタも売られているのでそういうのを使うと楽。

ファン交換

とにかくNoctuaのファンに交換すれば静かだけど十分冷えるという状態にできそう。
しかしそうするとファン代だけで10000円とかになるので安く済ませたい。
AliExpressで買えるとすごく安く済んでありがたいのだが詳細なスペックがわからないのでなかなか難しい。
日本で買うならAinexのOmega Typhoonは性能が明確で安いのでこれで統一したい。
しかし静音ファンのシリーズなので静圧が欲しい場合には使いにくかったり、3Dプリンタ向けではないので欲しいサイズが無いという問題もある。

3ピンのファンは2ピン化する必要があるのでXH(コントロールユニット) or PH(ホットエンドユニット)コネクタのコンタクトと2Pハウジングが必要になり、更には圧着工具が必要で3500円はする。
慣れないとピンをいくつも潰すことになるしなかなか大変。 差し込み式のコネクタを使うべきだったのだとすべて終わってから気づいた。

モータードライバ

モータードライバの冷却ファンは5015ブロアファンとAnycubic i3 Mega Stepper Driver 5015 fan duct by PapaSean - Thingiverseに変更した。
実際に印刷したのはRemixの1パーツ化された方。
サポートを剥がす過程で割れたし微妙にサイズが大きかったが、二塩化メチレンで接着して紙ヤスリで削って押し込んだ。
元は5010ファンの片持ちマウントなのでみんな困っているらしく色んな情報が出てくる。
5010ファンを横並びに設置するやつが無難そうには見えるが、モータードライバを冷やすためなら今回のはめちゃ効率が良い。
場所をとらないし設置も楽。
ファンのケーブルは全然足りなかったので手持ちのものを継ぎ足して延長した。

PSU

6015ファンから6010ファンになるがヒートベッド断熱をしたしこれで様子を見る。
公式の解説動画を見ながら開けたがMega-Sだとフィラメントホルダーが邪魔になってやりにくい。

ホットエンド

ホットエンド周りにはAnycubic I3 Mega Improved Hotend Fanbox by Renba - Thingiverseを採用して静音化しつつ効率良い冷却を目指す。
PETGの場合ヒートベッドを十分に加熱してにシワなしPiTを塗ればラフト無しで印刷できたがノズルだけは底面が平らでは無いので荒れてしまった。
ブロアファンの固定にはM4 x 20mmのボルトとナット、パーツの組み立てにM2 x 6mmのさらタッピングねじ、3Dプリンタへの固定にM3ナットを使った。

Raspbian Stretch Liteのセットアップ

次回インストール時に困らないためのメモ

SDカードの準備

  1. Download Raspbian for Raspberry Piから落としたイメージをbalenaEtcherで焼く。
  2. /boot/sshを作る。
  3. /boot/wpa_supplicant.confWifi設定を書き込む。

/boot/wpa_supplicant.conf

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
  ssid="foo"
  psk=bar
}
network={
  ssid="baz"
  psk=qux
  priority=1
}

本編

ssh pi@raspberrypi.localで繋がる。デフォルトのパスワードはraspberry
適当なタイミングでssh-keygen -t ed25519してGitHubに登録しておく。

初期設定

passwd
sudo apt update && sudo apt upgrade

echo "NTP=ntp.nict.jp" | sudo tee -a /etc/systemd/timesyncd.conf

curl -s https://github.com/ebith.keys | tee -a ~/.ssh/authorized_keys

sudo tee -a /etc/ssh/sshd_config << EOM > /dev/null
PasswordAuthentication no
PermitRootLogin no
EOM

sudo tee -a /etc/dhcpcd.conf << EOM > /dev/null
interface wlan0
static ip_address=192.168.0.81/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
EOM

sudo raspi-config

raspi-config

  • 2: N1 Hostname
  • 4: I1 Change Locale
  • 4: I2 Change Timezone
  • 7: A3 Memory Split

いつもの環境をつくる

母艦からscpで常用ツールのARMv6バイナリを送りつけておく。peco, ghq, exaとか。

sudo apt install git zsh vim tmux gawk
sudo update-alternatives --config editor
chsh -s /bin/zsh

sudo ln -s /usr/share/doc/git/contrib/diff-highlight/diff-highlight /usr/local/bin/diff-highlight
sudo chmod 755 /usr/local/bin/diff-highlight

~/bin/ghq get ebith/dotfiles
cd ~/.ghq/github.com/ebith/dotfiles && ./create_link.py .config .vim .gitconfig .zshenv .zshrc .tmux.conf .yarnrc
mkdir -p ~/.vimlocal/{backup,swap,undo}

curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
exec zsh -l
zplug install
exec zsh -l
cd && rm .bash_history .bash_logout .bashrc .profile

Mackerel

Latest release · mackerelio/mackerel-agent

sudo mkdir /etc/mackerel-agent/
wget https://github.com/mackerelio/mackerel-agent/releases/download/v0.59.1/mackerel-agent_linux_arm.tar.gz
tar xvf mackerel-agent_linux_arm.tar.gz
mv mackerel-agent_linux_arm/mackerel-agent ~/bin/mackerel-agent
sudo ~/bin/mackerel-agent init -apikey="xxxxxxxx"
wget https://raw.githubusercontent.com/mackerelio/mackerel-agent/master/packaging/deb-systemd/debian/mackerel-agent.service
sed -ie "s/ExecStart=\/usr\/bin\/mackerel-agent/ExecStart=\/home\/pi\/bin\/mackerel-agent/" mackerel-agent.service
sudo mv mackerel-agent.service /etc/systemd/system/network-online.target.wants/mackerel-agent.service
sudo systemctl daemon-reload
sudo systemctl start mackerel-agent

CPU温度の監視を追加する

sudo apt install bc
wget https://raw.githubusercontent.com/ymyzk/mackerel-plugins/master/raspberrypi/temp.sh
chmod 755 temp.sh
mv temp.sh ~/bin/temp.sh
sudo tee -a /etc/mackerel-agent/mackerel-agent.conf  << EOM > /dev/null
[plugin.metrics.temp]
command = "/home/pi/bin/temp.sh"
EOM
sudo systemctl restart mackerel-agent

Node.js

1 or Zero

ダウンロード | Node.js

wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-armv6l.tar.xz
tar xvf node-v10.15.3-linux-armv6l.tar.xz
sudo cp -r node-v10.15.3-linux-armv6l/* /usr/local/

2以降

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install nodejs

yarn

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install --no-install-recommends yarn

pigpio

sudo apt install pigpio
sudo systemctl enable pigpiod
sudo systemctl start pigpiod

pigsコマンドでsocket connect failedする

"socket connect failed" but only if starting pigpiod via systemctl · Issue #203 · joan2937/pigpio

sudo sed -ie 's/pigpiod -l$/pigpiod -l -n 127.0.0.1/g' /lib/systemd/system/pigpiod.service
sudo systemctl daemon-reload
sudo systemctl restart pigpiod