日常の過ごし方~ゆるい決定という考え~

もう秋なのに暑いですね。20℃くらいの涼しいときもあれば、30℃を超えるような暑さがまだ残っています。毎日過ごしているだけで、それなりに疲れてしまいますね。

さて、今日は久々に更新するのですが、思ったことを書きたいと思います。

毎日をゆるく過ごしたいと思った

最近、どうも毎日身が入らないと言うか、軸がぶれたような毎日を過ごしています。仕事はそこそここなしていますし、生活リズムは整っています。金銭的にめちゃくちゃ困っているわけではないし、プレッシャーになるようなことも少ないです。

そんな中、自分の中にある、思いがどうしても抜けなかった。

「毎日を今よりもっと良く出来ないか?」

「更に最適な決断はできないだろうか?」

この考え自体は悪いことではないと思うのですが、一種の自分に対するプレッシャーですよね。この考えが残っている理由は、多分これまでの人生が関わってきます。特に社会人になった13年前から、つい去年くらいまでの過ごし方がこの考えを作っていると思います。

以前までの私の生活は、実に落ち着きのないものでした。社会人になって数年で休職や離職を経験し、転職をいくつかして、恋人と同棲して、別れて、引っ越して…。会社員ではなく、個人事業主のときもありました。常にイベントがあり、しかも悪いイベントのほうが多かったように感じます。その時迫られる決断は苦しさの中にあり、ひねり出すようにして決断をしていました。

そのおかげなのか、ここ10年くらいで随分まともな人間になれたような気がします。それまでの私はひどいもんでした。振り返ってみても、まあひどい。状況が悪くなるのも納得の毎日でした。でも、昨年から実家に帰ってきて、1年過ごした結果、いろいろな状況が変わりました。そして、以前より、遥かにまともな生活をしています。実家にいるので、家事のほとんどは両親が肩代わりしてくれます。

また、10年以上悩まされた心身の不調も昨年から治療方針がはっきりして、毎日を過ごす難易度が下がりました。双極性障害Ⅱ型だとわかったのも去年の夏頃です。区切りをつけて福祉をより活用する意味で、障害者手帳も取りました。結果、症状は安定し、仕事も続けることが出来ています。

この状況変化の中、先程のようなプレッシャーは無用の産物だと感じてきました。それまでの切迫した生活とは全く異なる日常が、今の日常です。つまり、ゆるく過ごしても大丈夫なのです。そして、今の日常を認めて毎日を肯定できればよいのです。

ゆるく決定するということ

ゆるく過ごすイメージは、ぐーたらすることや、暇を持て余すこととはちょっと異なります。毎日を規則正しく過ごしつつ、生活に余裕を作り、自分自身の余裕を取り戻す、そんなイメージです。具体的には、3食をきちんと食べる、夜はたくさん寝る、部屋が散らかったら整理する、そんなイメージです。

それをするうえで大事だろうと思ったのは、ゆるい決定です。ゆるい決断と言ってもいいかもしれません。今までの決断は、考えを絞り出し、苦しくても決めていく、そんなきつい決定・決断だと思っています。これからはその逆、ふわっとグレーな部分を認めつつ、最適化せず、なんとなく決定する、そんなスタンスにしようと思っています。

つまり、3食をきちんと食べるといいつつ、食べられない日は諦める。夜寝れないときにあたふたしない、部屋が散らかったら片付けるけど、放置することも認める。一見矛盾しているかのような状況を許容していく。今まではそれがどうにも腑に落ちなかった。いや、今でも腑に落ちていません。でも、おそらく、このゆるい決定が今後のキーになると思っています。

人生を最適化しようなんて思わないこと

結局のところ、きつい決定というのは、人生を最適なものにしようとするプレッシャーから生まれるものです。どうでもよかったら、そんな決定をしません。でもそれが、かえって邪魔になっていている。現状が、ある意味での最適解に入っているので、それより最適にしようなんて、土台無理な話です。というか無駄ですらあります。

悪い生活にはなりたくありませんが、環境の変化や時間の経過でどうしても悪くなる瞬間はあります。それを、自分の決定のせいだと思わないことです。それは裏を返せば、人生は自分の意図した通りに動くと思っていることになります。それは間違いですから、むしろ自分の決定なんて大した事ない、基本的にゆるく考え、ゆるく決定し、毎日の余裕を作っていく。そういう時間の使い方が大事だと思えてきました。

どうしても避けて通れない重大かつ悪い決断は必ずどこかでやってきます。だからこそ、日常的にきつい決定をしないことが自分の余裕を作り、重要な局面で意味を持ちます。

なるようにしかならないという現実

結局はこれに尽きると思うんです。どうにかなると思って悪戦苦闘することに意味はありますが、どうしようもない外力や環境により、いとも簡単に覆ります。努力することで、自分の可能性を広げて、強くなっていくことも大事ですが、それで人生が思い通りになると思ったら、それは思い上がりです。

なるようにしかならない。

だからこそ、毎日をゆるく決定し、日常を蓄積し、重要な局面に備えていく。

私の考える日常とゆるい決定とは、そういった繰り返しです。

毎日に絶望せず、ゆるく行きましょう。

2024年~新年あけて~

このブログも開設して5年以上が経過しました。早いものですね。あまり記事が投降できていませんが。

さて、今年はすでに大変なことが起こっていますね。

能登半島地震

1月1日の午後4時ごろ、能登半島で震度7の大地震が発生しました。

この記事を書いているのは1月3日の夕方です。まだ震災が発生して間もないわけです。この規模の地震は数年ごとにある気がしますが、規模的には311を思い出すものです。

調べてみるとこんな感じ。

2011年3月11日 東日本大震災(M9・0)

2016年4月14日 熊本地震(M6・5) 16日 熊本地震(M7・3)

2018年9月6日 北海道胆振東部地震(M6・7)

2024年1月1日 能登半島地震(M7・6)

311が突出して大きなマグニチュードですが、次に大きいのは今回の能登半島地震ですね。

日本は地震大国といいますが、それにしても近年は多い気がしてならない。しかも、津波が絡むと耐震対策どころの話ではないので、これからの暮らし方を考えざるを得ません。

と、1日の時点ではこう思っていたのですが、2日に次の事象が

羽田空港 日本航空516便と海保機体の衝突事故

前の日に震災があったのに、次の日はこれです。

幸いなことに日本航空の機体に乗ってた乗客は全員無事だそうですが、海保機体については搭乗者全員が殉職とのことです。

こんな事故もめったに起こることはない。しかも海保機体は先日の地震の災害支援物資の輸送機だったそうです。原因についてはいろいろ言われています。でもわからないですね。

これだけの事象が2024年の正月に発生するとは思いませんでした。

いや、だれも予想してなかったでしょう。大変な年明けです。ぶっちゃけ4日からの仕事始めに身が入らない。昨年、何があったかすっかり忘れてしまうほどの衝撃ですよ。

わたくしとしては、今年は復活の年にしたいです。2023年は、個人的に大きな出来事があり、さらに引っ越しやらいろいろありました。2022年もいろいろありましたが。。。

今のところ、いろいろ安定しているので、この調子で1年過ごしたいところです。

まあ、世間というか、地球というか、世界がそれを許してくれるかどうかは運次第ですが。全く読めませんよ。一年間、平和に過ごしたいだけです。

今年は皆様にとってもよい年になりますように。

曇り空の心情

ここ最近、どうもすっきりしない日が続いてた。仕事が忙しいから?プライベートの動きがルーティンで固定されてるから?

いろいろ考えに耽ってしまったのだが、どうも直接的な理由はないように感じている。普通なら結果があるならば原因があるはず。でもおそらく、今の現状を指し示すには因果という言葉だけでは説明しきれない何かがある。

立ち返ってみると、7月から生活環境が大きく変わっている。基本的には良い方向に変わっているはずだ。生活全般は楽になったし、寂しさもあまり感じない。ただ、どうも心の中で拘束されているような感覚がある。自分で手足を縛っているかのような、何とも言い難い不快感のようなもの。

自分でその縄を振りほどけばいいはずなのだが、これが非常に抵抗感がある。自由にできるようになると、それはそれで自分を傷つけることがあるので、制約しておきたいのだ。

何かに夢中になり必死になるほど、自分を追いつめて傷つける。楽しいという感覚と傷ついていくことが同時に起こりえるので、非常に怖いのだ。楽しければ楽しいほど怖い。反動があるから。

おおむね自分自身の特性であることは理解している。でも、コントロールなんてものはできない領域の話で、成り行きに任せるしかない。せめて自制することくらいしかできない。

本心は解放されたいと思っている。思い切って羽を伸ばしていたいと。それと相反する形で自分を制約し続けてる。ここら辺に今の自分の中の苦しさや居心地の悪さがあると思う。

ビジネスライクに「じゃあどうするか?」と考えがちなのだが、そもそも相反する二つの思いがぶつかってる状況で、それをどうにかなんてできない。どっちも本音だから。

おそらくどこかで転機があり、とっかかりがあり、くるっと方針転換できるタイミングがあると思う。必ずそうなるというわけではないけれど、何事も変化するのが世の常だから、期待するのは悪くない。

まずはじっとこらえて、じっくりと虎視眈々と機会をうかがうのが良いかもしれない。その間に自分の中の変化もくみ取れるだろう。時間はかかるけれど、悪いことじゃない。

行き急ぐ人が多い現代で、取り残されるのが怖いのもあるが、まずは自分の中の本音同士が解決に向かう時間を見つけたい。

S.M.S.L DO400 レビュー

久々にオーディオ製品を買いました。

SMSL製のDO400というDAC兼ヘッドホンアンプです。

公式サイトはこちらから。

S.M.S.L Audio

2023/10/10
なぜか192kHz 24bitなどのハイレゾ音源がUSB経由で再生できない不具合がある状態と判明。光入力、同軸入力など他の入力の確認はできていない。個体差なのかこのモデルの問題なのか不明だが、メーカーに問い合わせ中

2023/10/28
上記の状態は現在も継続中。調査してもらったが原因不明。その代わりTOSLINK(光同軸入力)なら192kHz24bitまでのハイレゾ再生は可能であると確認取れたので、USBからTOSLINKへ移行しました。私のPC環境にも問題があるかもしれませんが、フルスペックでUSBを使用したい購入検討中の方は要注意です。

2024/10/24
購入して1年以上経ち、SMSLの公式HPからSupportのFirmwareからDO400用の最新ファームウェアを導入したところ、USBのハイレゾ再生の問題は解決されていました。384kHz32bitまで再生確認済みです。安心して導入できると思います。

概要

 DO400は$499(日本円で70,000円弱)という中価格帯のモデルです。安くもなく、高くもない、中価格帯ど真ん中の価格設定だと思います。日本だとAmazonから購入可能です(23年10月現在)

 為替の影響で少し値が張っているような印象を受けますが、100円/$で換算すれば5万円ですからね。

 このモデルは、基本的な機能が豊富に取り揃えられています。詳細は製品ページを見てほしいですが、デジタル入力端子がUSB、光、同軸、I2S、AESときっちりそろっています。さらにBluetoothもあります。出力はRCA、XLRのライン出力とあります。ヘッドホンもバランス、アンバランス出力がライン出力と独立して装備されており、入出力で困ることはないと思います。

特徴

 中価格帯ながら、DACはESSのES9039MSPROというMQA対応のフラッグシップクラスのものが装備されています。オペアンプもOPA1612Aを使用しており抜かりありません。ヘッドホンアンプ部分はPLFCという名の回路になっているそうです。PLFCは海外の情報だとTPA6120Aと書いてありまして、もしかしたら何らかのカスタムを施したTPA6120Aかもしれません。

 これらの装備から発揮されるスペックは市場で出回ってるほとんどのDACとヘッドホンアンプの中でもトップクラスの性能です。小音量から大音量までの無歪み出力、きわめて低いノイズフロア(高能率なイヤホンでも全くノイズがありません)が揃っています。

 インターフェイスはデジタルボリュームノブと専用のリモコンがついており、操作は快適そのものです。とくにボリュームノブは非常によくできており、微調整から大雑把な操作までストレスがありません。また、ライン出力にプリアンプ機能があるので、パワーアンプに直結できます。

 デザインもよいと感じます。高級感とまではいきませんが、十分に質の高いものです。ディスプレイも視野性が良く、見やすいです。

 強いて言えば、付属の電源ケーブルが所謂アース付きの3pinとなっているので、必要に応じてアースなしの電源ケーブルを買うとよいと思います。

サウンド

 最初に断っておくと、私のオーディオ歴は長いですが、さほど深いものではないです。一般的な愛好家レベルの耳の持ち主だと思って、このサウンド評価を見ていただければと思います。

 まずRCA出力からです。アンプにFX-AUDIOのFX502J-S、スピーカーはONKYO D-D2Eをつなぎました。どちらも廉価なものですね。DO400の前は、FX-AUDIOのDAC-SQ4Jをつないでいました。

 実は一聴してわかる変化は少ないものでした。ただ、しばらく音出ししていたところ、明らかに違う点をいくつか見つけました。まず、極端にノイズフロアが低く感じます。そのため、音の実体感が増しているというものです。それも、音色は少ない状態でスムーズかつソリッドです。一音あたりの輪郭をはっきりとらえることができます。暗闇から音が浮き上がるという印象が強いですね。安物のアンプと、コンパクトなブックシェルフでかなりレベルの高い音が出てくるので、よりよいスピーカーとパワーアンプがあればなおさら実力は出ると思います。

 次に私の本命であるヘッドホン出力です。ヘッドホンは、オーディオテクニカのATH-AD2000X(バランス改造済み)、HiFiMANのHE400i(バランス接続)、Beyerdynamic DT880 Edition 250Ω(バランス改造済み)を聞き分けてみました。イヤホンはTRN ST5です。

 意外だったのは、どのヘッドホン、イヤホンでも傾向は同じであったことです。スピーカーのつないだ時と同様、スムーズかつソリッドな音です。それが、どのボリューム位置でも成り立ちます。小音量でも大音量でもです。これは立派ではないでしょうか。左右のセパレーションやノイズフロア、歪み感、どれも文句のない領域で、さらに音量にかかわらず、その性能を発揮します。強いて言えば、Chord Hugoのような熱の入った音や、ReLeaf E1Rのような強烈なスピード感はないです。ReLeafに関しては1時間ほどの視聴経験があるだけですが。そういう意味でいうと、DO400の音色は皆無です。本当に無色透明です。

総評

 正直言って、7万円でこの出音なら全く文句がありません。というか、利便性も考えると極めてよくできています。これ以上の出音を求める場合、間違いなく周辺機器にも相当な投資が必要でしょう。カジュアルに使いたいならこれ以上にない音です。

 ただ、音に特徴はないので、何かキャラクターを求める方には向かないでしょう。DACのキャラクターを極力排除したい、無色透明がいい、そういう方にはぴったりだと思います。

 こういう音が手に届く価格であることは、幸せですね。

機械式腕時計を着けたら、私の”時間”が自由になった

この間、機械式の腕時計を買いました。オリエントのBambinoシリーズのRN-AG0005Sです。定価は36,000円強ですが、セールで2万円でした。

ORIENT Bambino

もう購入してからかれこれ2週間くらいになります。2万円でしたが日差プラス4秒くらいで動いていて、想像以上に正確でした。

最近の私は普段腕時計はしなくなっていました。スマートフォンがあるので。でも、これを購入してからは日中はほぼ身に着けています。夏場なので汗ばむときは外しますが。

そもそもなんでこの時計を購入したのか?

端的に言えば気分転換のつもりで購入しました。この数か月、いろいろあり、心ここにあらずといった日々が続いていました。なので一つの区切りとして、昔から欲しかった機械式の腕時計を買おうと。

腕時計というくくりでは、実は以前から、流行りのスマートウォッチ(特にGARMIN)が気になっていました。ストレスメーターや心拍、睡眠まで管理できる、まさにスマートな時計。自分の体調管理の面でもこういったツールは有効だろうと思ったからです。

でも買ったのは、昔ながらの機械式時計。機械式なので、正確とはいえ1日で数秒のズレが必ず生じ、週に一回くらいは時刻合わせの必要があります。また最長の稼働時間は40時間。自動巻きが付いているので、日中動いていれば自然とゼンマイがまかれていますが、なにもしなければ2日経たずに止まります。

時計の用途としてスマートウォッチと機械式、どっちが優れているか?

明白なのは、正確な時が知れてさらに追加情報もとれるスマートウォッチの優秀さです。バッテリーも充電式ながら10日くらいは平気で持ちますし。

でも、この機械式時計を買って気が付きました。

正確な”時間とは何だろう?”と。

「そりゃ日本標準時と一致していることでしょう」

というのは正しいと思います。でも、”主体的な時間”はどうでしょうか。

主体的な時間と不要な束縛からの解放、そしてより今にシビアになれるということ

自分自身に流れている時間、過去そして未来を感じること、そして時計を見たときにそれが時を刻んでいる感覚。そして、不正確な機械式時計のほうがより時間にシビアになれるということ。でも同時に、不用意な時間的束縛から自由になれること。

時間にシビアになれるとはどういうことでしょうか?

デジタル時計のほうが圧倒的に正確になのに?

答えは意識にありました。デジタル時計は正確無比な故、疑うことがありません。

19:58:24

この現在時刻の表示を見たとして「これはずれているかもしれない」「まったく不正確かも」そう思う方がどれほどいるでしょうか。私もデジタル時計の表示を見る限り、このような情動は起こりません。

でも、機械式時計となるとこの意識や情動が異なります。

まず数字ではなく、流れる秒針を眺めて、例えば「この間見たときは15秒ほど遅れていたな」と意識します。そして、現在時刻を確認する間も刻一刻とテンプは振動し、秒針は進みます。この流れを意識できることがとても良いことだと気が付きました。デジタル時計で「あと3分しかない」と感じることが、機械式時計だと「まだ3分はある」とその時間意識の正確さを増すのです。

そして月に何度も「この機械式時計はどれくらいずれているのか」意識します。そのたびに日本標準時を表示し、大きくずれていれば時刻合わせします。デジタル時計で、ここまでシビアに時間を意識できるでしょうか。

そして同時に、時間にシビアになれる、主体的な時間を正確に感じ取れることは、それは不用意な時間的束縛から解き放たれることを意味します。秒針を見ながら、いまから何ができるのか、どれくらい誤差を含むことができるのか、どれくらい余裕を持てばいいのか、秒単位で思慮できます。そして不要な未来への不安を捨てて、今に集中できるのです。

正確さとは何か?

結局、主体的な時間に絞って話せば、機械式時計はとても優れていると感じます。電波式デジタル時計が正確無比であるがゆえに、思慮の余地がないことがそれを表しています。

デジタル時計の正確である表示を見るががゆえに、自分自身の”秒針”があいまいになる、そんなトリックがあると感じます。

疑いの目で見て、時間を感じながら、その表記を再確認する。この流れこそ、正確さとシビアさにつながると思います。

でも忘れてはいけない。これは時間に束縛されるのではなく、シビアになれるがゆえに解放されるのです。だから、とても心地よいものなのです。

時を刻むのは今を見つめること

刻一刻と物事が変わりゆくこの世の中で。

自分の今を見つめることができる、とても良い品を手にれることができました。

きっとこの先も、この時計を身に着けるでしょう。

TRONXY X5SA Pro 3Dプリンター ~Klipper化~

2021年8月ごろ、TronXY X5SA Proという3DプリンターをAMAZONで買いました。

当時割引が利いてて、33,000円でおつりが来ました。かなり安かったです。

Amazon : TronXY X5SA Pro

スペック

成形技術FDM(熱溶解積層法)
印刷サイズ330*330*400mm
印刷速度20〜100mm / s
印刷色単色
位置決め精度X / Y:S0.00625mm、Z:S0.00125mm
電源AC 110-220V、DC 24V 360W
接続方法SDカードとUSBケーブル
スライスソフトウェアCura、Repetier-Host
推奨フィラメント直径1.75mm、PLA/TPU/ABS/PETG/HIPS/WOOD

こんな感じ。

330x330x400mmの大きなビルドスペースと、CoreXY、4本のリニアロッドと2本のZ軸。

この組み合わせは大変よさげだったので、くそやすったし衝動買いしました。

最初の組み立ては6時間ぐらいかな。

標準のファームが気に入らず、すぐにMarlin化しようとしました。

が、ここからが苦難の連続。。。

Marlinを入れるだけで一苦労

この3Dプリンター、実はかなり曲者です。

まず、ハード的は組み方が少し工夫が必要です。

スライドレールの押さえつけるテンション調整と、ABモーターのプーリーの位置が肝です。うまくいかない時は、抵抗がありすぎてレイヤーシフトします。

問題は使用しているボードにあります。

Chitu V6 というボードを使用しているのですが、これ普通にアップデートすると起動不能にります。

Marlinを出力すると、frimware.binというのができるので、普通はSTM32CubeProgで書き込むわけですが、Bootloaderが入っており、これが消えると起動しなくなります。

なので、Marlin化するときはupdate.cbdというファイルをSDにいれて、bootloaderによる書き換えが必要です。

参考URL:https://angryadmin.sesc.dev/posts/tronxy-marlin/

上のリンクにもありますが、まずバックアップを推奨します。

私はBootloaderがぶっ飛んで、かなり苦労しました。

ぶっ飛んじゃった方はこちらのYOUTUBE参照:https://youtu.be/N1FaKO5QziE

この方がbootloaderとか初期のファームウェアのバックアップを公開してくれてます。ただし、X5SAでもバージョンが違うので、上のリンクのAmazonのプリンターに入ってるファームと異なります。Bootloaderだけ救助するのが良いでしょう。

そして次なる問題が。

レイヤーシフトが収まらない

レイヤーシフトとは、XYZのどれかの軸がステップを見失ってどんどんずれていく現象です。Marlin化したら一瞬大丈夫なのですが、1時間も出力すると全然ダメ。

こんなイメージ。

これから泥沼に入ってしまい、速度を落としても加速度を落としても駄目で、3カ月ぐらい放置していました。

粗大ごみに出そうと思ったが、何気なくKlipper化

もうあきらめてて、捨てようにも捨てられなくて、ずっと放置してたんですが、本日何気なく余ってるRaspberry pi 400 (キーボード一体のRaspberry pi 4みたいなやつ)があったので、こいつにMainsailOSをインストール、Klipper化することにしました。

そもそもKlipper化とは、Raspberry piを主に計算として使い、メインのコントロールボードの制御を補助してやろうという代物です。検索するとたくさん事例が出てくると思います。

これも実は一苦労しました。

最初はBootloaderの件忘れて、またぶっ飛ばしてしまい、出戻り。

次にオフセットして書き込んでもうまくいかず。

原因はKlipperをビルドするときのオプションにありました。

Klipperのビルドオプションで、STM32F103を選択後、BootloaderにChitu V6 Bootloaderを選択、さらに、USBをSerial on USART1 PA10/PA09に変更します。

その次に、Klipperフォルダの下で、

./scripts/update_chitu.py ./out/klipper.bin ./out/update.cbd

を実行、update.cbdをコンバートして作ります。

これをbootloaderが生きているボードにSDカードを差し込んでアップデートします。

2回ビープ音が鳴ったら成功です。

がここにも罠が。

メインボードにはスーパーキャパシタが入ってるようで、電源を切っても30秒ほど電源が落ちません!余裕を見て、電源を落としてから3分ほどしてから再起動してください。

この情報はどこにも書いておらず、気が付くのが遅れました。

そこまできて、やっとKlipperの設定です。

printer.cfgはこのページを参考に作りました。参考URL:https://gist.github.com/cab404/b7bcbb0cd592a14515493694719de59b

printer.cfg

# This is a Klipper configuration for TronXY X5SA, with CXY-V6
# motherboard.

#            === FLASHING WITH STOCK BOOTLOADER ===
# You should make firmware for STM32F103 with bootloader offset
# at 0x8008800 (Chitu v6 Bootloader) and serial (on USART1 PA10/PA9)
# communication.

# Use "./scripts/update_chitu.py ./out/klipper.bin ./out/update.cbd"
# after make to generate update.cbd.  Put `update.cbd` onto SD card,
# and reboot the printer.  It will be automatically installed, and you
# will be able to update it this way.

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command

[printer]
kinematics: corexy
max_velocity: 300
max_accel: 5000
max_accel_to_decel : 5000
max_z_velocity: 25
max_z_accel: 30

[stepper_x]
step_pin: PE5
dir_pin: !PE6
enable_pin: !PC13
microsteps: 16
rotation_distance: 20
endstop_pin: !PG10
position_endstop: -1
position_min: -1
position_max: 330
homing_speed: 50
homing_retract_dist: 10
second_homing_speed: 10.0

[stepper_y]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PE4
microsteps: 16
rotation_distance: 20
endstop_pin: !PA12
position_endstop: 0
position_max: 330
homing_retract_dist: 10
homing_speed: 50.0
second_homing_speed: 10.0

[stepper_z]
step_pin: PB9
dir_pin: PE0
enable_pin: !PE1
microsteps: 16
rotation_distance: 4
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: -2

[extruder]
step_pin: PB4
dir_pin: !PB5
enable_pin: !PB8
microsteps: 16
rotation_distance: 3.855
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PG12
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA1
control: pid
pid_Kp: 18.831
pid_Ki: 0.821
pid_Kd: 108.044
min_temp: 0
max_temp: 250
max_extrude_only_distance: 300
pressure_advance: 0.5
pressure_advance_smooth_time: 0.1

[heater_bed]
heater_pin: PG11
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
min_temp: 0
max_temp: 130
pid_Kp: 73.932
pid_Ki: 1.521
pid_Kd: 898.279

[heater_fan hotend_fan]
pin: PG14

[fan]
pin: PG13

[controller_fan drivers_fan]
pin: PD6

[filament_switch_sensor sentinel]
pause_on_runout: True
runout_gcode:
  M25
switch_pin: PA15

[output_pin beeper]
pin: PB0

[safe_z_home]
home_xy_position: 165, 165
speed: 50
z_hop: 10
z_hop_speed: 5

[bed_screws]
screw1: 5, 5
screw2: 165, 5
screw3: 325, 5
screw4: 5, 325
screw5: 165, 325
screw6: 325, 325

[bed_mesh]
speed: 120
probe_count: 5, 5
horizontal_move_z: 5
algorithm: lagrange
mesh_min : 20, 20
mesh_max : 290, 310
mesh_pps: 0

[probe]
x_offset: -40
y_offset: 0
pin: !PG9
speed: 30
#z_offset: 2

[input_shaper]
shaper_freq_x: 54  # frequency for the X mark of the test model
shaper_freq_y: 40  # frequency for the Y mark of the test model

[virtual_sdcard]
path: ~/gcode_files

[display_status]

[pause_resume]

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
    ##### set defaults #####
    {% set x = params.X|default(180) %}      #edit to your park position
    {% set y = params.Y|default(200) %}      #edit to your park position
    {% set z = params.Z|default(10)|float %} #edit to your park position
    {% set e = params.E|default(1) %}        #edit to your retract length
    ##### calculate save lift position #####
    {% set max_z = printer.toolhead.axis_maximum.z|float %}
    {% set act_z = printer.toolhead.position.z|float %}
    {% set lift_z = z|abs %}
    {% if act_z < (max_z - lift_z) %}
        {% set z_safe = lift_z %}
    {% else %}
        {% set z_safe = max_z - act_z %}
    {% endif %}
    ##### end of definitions #####
    SAVE_GCODE_STATE NAME=PAUSE_state
    BASE_PAUSE
    G91
    G1 E-{e} F2100
    G1 Z{z_safe}
    G90
    G1 X{x} Y{y} F6000
	
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
    ##### set defaults #####
    {% set e = params.E|default(1) %} #edit to your retract length
    G91
    G1 E{e} F2100
    G90
    RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
    BASE_RESUME
	
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
    TURN_OFF_HEATERS
    CLEAR_PAUSE
    SDCARD_RESET_FILE
    BASE_CANCEL_PRINT

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [probe]
#*# z_offset = 2.800
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	-0.076250, -0.007500, -0.061250, -0.101250, -0.108750
#*# 	0.036250, 0.088750, -0.001250, -0.042500, -0.060000
#*# 	0.053750, 0.071250, -0.023750, -0.052500, -0.093750
#*# 	0.036250, 0.072500, -0.036250, -0.056250, -0.082500
#*# 	-0.316250, -0.256250, -0.330000, -0.313750, -0.313750
#*# tension = 0.2
#*# min_x = 20.0
#*# algo = lagrange
#*# y_count = 5
#*# mesh_y_pps = 0
#*# min_y = 20.0
#*# x_count = 5
#*# max_y = 310.0
#*# mesh_x_pps = 0
#*# max_x = 290.0

おおむねこんな感じです。

そのままでも動くと思いますが、私は責任取れませんので慎重にお願いします。

Klipperにしたら、突然の快調プリント

最新のKlipperにしたら、いきなり快調です。

レイヤーシフトもなにもなく、Pressure Advanceも効きます。

Pressure Advanceは解説によると、ボードにはんだされているTMC2225ドライバーを外部からserialで書き換えろとありましが、何もしなくても大丈夫です。MarlinのLinearAdvanceだとモーターが止まるので必要っぽいです。

脱調するかなと思って速度を200mm/sec、加速度を5000mm/sec^2まで上げましたが、全然大丈夫でした。

筐体の剛性が思いのほか高く、リギングも出にくいです。input shaperなしでも4000mm/sec^2まで出てきません。共振点もX軸が54Hz、Y軸が40Hzとでかい割にかなり高いです。

いつものお船を印刷しましたが、1時間ジャストでこの仕上がりです。

あんまりきれいじゃない写真ですいません。PolymakerのPolylite PLAで出してみました。ノズル温度200度、ベッド温度50度、送りは60-100mm/secあたりです。

細いところこそボーデン式の影響で多少荒れてますが、外周の送りは100mm/secも出てるので、十分だと思います。

Pressure Advanceのおかげで、ライン同士の隙間も少ないです。

買ってから8カ月かけて実用的になった

まとめです。

  • TornXY X5SA Proは安いが、初心者向きじゃない。少なくともKlipper化は必要。
  • ハードウェア的には大きな問題はないが、細かいところは工夫必要。
  • Marlin化は上手くいかない。やめた方が良い。
  • Bootloaderをぶっ飛ばさないように注意。
  • 最終的にはきれいに出るが、上級者向け
  • 安いからって手を出すと後悔する(自戒)

以上です。

参考になれば幸いです。

Emuflight 0.4.0 チューニングメモ 2 ~Tinywhoop~

先日のメモに引き続き、今日はEmuflightをセットした機体で4時間飛ばしまくったので、それをまとめます。

前回のはこちら

今日の内容としては、タイムアップに必要なセットアップ項目です。

いろいろ試していたらけっこう癖がつかめてきました。

基本はPIDとフィルター

なんだかんだ言っても、基本のPIDとフィルターが決まってないと他をいじっても駄目ですね。フィルターを極力高い周波数・高いQでセットし、Pを振動ギリギリまで上げて、Dも以上発熱までいかないくらいまで上げる。これはどっちにしても必要でした。

私はフィルターが

  • IMUF Q : 12000
  • IMUF W : 8
  • Gyro Filter : 150Hz PT1
  • D Fiter : 150Hz PT2 (セカンドフィルターなし)

PIDがおおむね

  • P : 70から90
  • I : 70から90
  • D :40から60

の間でセットしました。

仕様がまだ煮詰まってないので具体的な数字は載せていませんが、モーターはHappymodel 0802 22000KV、プロペラがGemfun 31mm 4prop、あとはMobula 6 の仕様です。

最初は19000KVで粘ってたんですが、どうしてもウォッシュアウトするため、22000KVに引き上げました。燃費はそこまで悪くないです。Happymodel 300mAh 1sで2分は飛びます。

Pの値は19000でも22000でもそんな変わらなくてよい感じでした。Iの値は19000でめっちゃ高めにしておいてコーナーでの落ち込みを抑止してたんですが、22000だと浮き上がっちゃうので上の数字にしました。

Dも最初かなり高かったんですが、ちょっと機体のバランスが崩れると異常に電気を食うのでさげて60以下にしました。ただ30だと応答性がわるいので40-60というところです。

このセットアップでおおむねきれいに飛ぶようになりました。

i decay のセットアップ

前回も説明した通り、i decayはI値の蓄積を早く開放するオプションです。最初はMAXの10にしてたんですが、どうも曲がりが悪く、6に落としたところ、踏ん張ってほしいところで舵が抜ける現象に直面、Iの開放が速すぎると判断し、最終的には標準値の4になりました。

この舵の抜け方が独特で、トレースしたいラインに乗ってるのに急にウォッシュアウトしたかのようなラインに切り替わるんです。i decayが高すぎるとそうなるみたいです。結構難しい。

Rate Dynamicsのセットアップ

私はアクロで飛ばしてるので、ここも入れてみました。

でもいまいちどうセットしたらよいかわからなかったので、公式WIKIの値を入れました

Racing – These settings should smooth center-stick a little while still providing an aggressive and responsive feel overall.

# racing
set rate_center_sensitivity = 130
set rate_center_correction = 35
set rate_center_weight = 30
set rate_end_sensitivity = 115
set rate_end_correction = 20
set rate_end_weight = 10

これですね。

このオプション不思議な効果があり、標準値の値より舵が滑らかにつながります。かといってレートを落としてるわけではないです。なので旋回速度を落とさず、滑らかなターンができます。これはいい感じ。

飛びはこんな感じ

最速クラスは13秒台らしいです…

がんばろ…

Emufilght 0.4.0 チューニングメモ ~Tinywhoop~

お久しぶりです。

ブログ放置気味でしたがちょっとチューニングについてメモ書きしようと思いまして、つらつら書きます。

あくまでメモ書きレベルですが、Emuflight 0.4.0のチューニングについてある程度参考になればと思います。

ちなみにMobula 6 のレギュラーエディションでいろいろテストしてます。

Emuflight 0.4.0ってぶっちゃけどうなの?

ここではBetaflightを普段使っている人向けに書くと、Emuflightはちょっとセットアップに苦戦すると思います。なぜなら単純にパラメーターが多くて、考え方がBetaflightとちょっと異なるからです。

Betaflightと比べて、Emuflightはスティックの入力のフィーリングを細かく変化させることができます。その分、セットアップに迷いやすいです。私はEmuflightの旧バージョンまで好きになれなったのですが、それはセットアップが決まらないことにありました。

主にBetaflightにない項目として、

  • SPA
  • i-Decay
  • Feathered PIDs
  • Motor Mixers / Thrust Linearization
  • Smith Predictor
  • IMUF
  • Rate Dynamics

ざっと私のわかる範囲でもこれだけあります。もっと他にもありますが、EmuBoostなんかはFeedforwardと目的は同じですし、I-term Relaxは同じ役割です。

が、改めていじってみると、部分的な機能だけ使ってもかなりいい感じに仕上がります。

順に私のわかる範囲で解説します。

SPA:スティック入力に対するPID変化

スティックのセンターと端でPIDを乗算できます。

SPAが1なら特に変化なし。Betaflightと同じです。SPA-Roll-P-0.80ならロール軸の入力がマックスのとき、P値を現在値×0.8にできます。これは各軸とPIDそれぞれセットアップできるので9個のマトリクスになります。

これはまだ私は使いこなせていません。なのですべて1にしています。利用用途としては、フリースタイルの時の激しい動きと緩やかな動きでPID変化させられるので、いいところどりができそうです。Rate Dynamicsもあるのでここらへんうまく組み合わせると非常に柔軟なセットアップができそうです。

i-Decay:I値の高い時のネガを消しつつ高い値を実行できるようにする

ちょっと動作を追い切れていませんが、要するに「素早い動作の時のI値の蓄積(i-trem windup)を参照して素早くI値を減少させる係数」らしいです。I-trem Relaxとちょっと似てますが、Relaxが溜まるのを抑制するのに対し、Decayは減少を加速させます。

I値が過剰にたまると、動きを収束させるのに余計に時間がかかるので、適切に下げたいという目的です。逆にI値が十分に高くないと、動きが一向に収束せず、不安定な動きにつながります。

これを二次的にDecayとRelaxで制御できるわけです。

私はDecayは8と高めのほうが良い気がします。(10がマックス)

高くしてもそんなにネガを感じませんし、下げると激しい動きの際に動きがバタつきます(Iの蓄積が開放されていないとこうなる)

基本的には4~8で好みのセットアップでいいと思います。

Feathered PIDs:D値の挙動の調整

よくKISSはなめらかでBetaflightはそうではない、と言われるポイントはここだと思われます。Feathered PIDsが0のときKISSの計算(エラーベース)、100のときBetaflightの計算(測定ベース)になるそうです。

コードをみてみると(src/main/flight/pid.cのcalculate D component)、Gyroベースでの計算がエラーベース、Setpointベースでの計算が測定ベースと思われます。

細かい話を抜きにすると、原理的に素早く応答するのはFeathered PIDsが0のときですが、細かな動きに反応しすぎるかもしれません。100の時はセットポイントの差が生まれてから動くので若干鈍いはずですが、滑らかになりそうです。

私は0がいいですね。KISSとおなじ計算方法です。ちなみに50は半々になりミックスできます。これは言葉だとフィーリングが伝わりずらいのでぜひ0と100で飛ばして比較してください。

Motor Mixers / Thrust Linearization:モーターのミキサーを最適化する/推力の線形化

これかなりトピックだと思います。

Motor Mixerは通常のミキサーの問題点をいくつかのアプローチから解決します。詳しくは調べ切れていませんが、ミキサーが飽和するゼロスロットル付近とフルスロットル付近の挙動がかなり変わります。2PASSを使っていますが、Legacyと比較してよりスムーズにつながる印象です。

Thrust Linearizationは推力線形化という形で、スロットルに対してリニアな推力を提供します。実は、プロペラとモーターの組み合わせによって、スロットルはエキスポがかかった状態になっており、まっすぐではありません。これをあらかじめ補正し、直線的にします。

なので、どのスロットル位置でも立ち上がりがリニアになり、操作性が向上します。

もう一つは、2PASS時にmixer_lazinessオプションをつけることで、推力線形化とミキサーの双方でいいことがあるようです。解説読んでもよくわからんので、誰か教えて…

Smith Predictor:スミス予測器を使用

スミス予測器って何ぞや?

って疑問には、文献調べてくださいってしか言えない(制御工学の知識がいるし僕も説明しきれない)ですが、具体的にはIMUの実際の入力値と出力されるデジタル値の間に遅延があり、これを見かけ上PIDループから切り離すことができます。

つまるところ、Gyroのもともと持っている遅延がPIDループに入っちゃうとデメリットなので、それを分離することでよりよいPID計算しましょう、ってことです。

基本的にはONですね。OFFとの差が微妙ですが、動きの正確性が増すイメージです。デメリットを感じません。

IMUF:カルマンフィルターベースのIMUフィルター

これもちょっと知識不足で申し訳ない、通常のLPFとIMUFの関係性が整理しきれていません。

つまるところ、Gyroの値をカルマンフィルターかけるってことです。値が高いほどGyroを信頼しフィルタリングが薄くなります。低いと強いフィルターがかかり滑らかになります。

結構飛びが変わりまして、3000と12000だと全然違います。ぱっきぱっきに動くのが12000で、3000はかなりなだらかです。

Tinyは高めが合うと思います。私は12000です。

その他Wの値の調整とかもありますが、これはフィーリングなのでいろいろ試してほしいです。

Rate Dynamics:スティックレートのダイナミックな変化

これもちょっと私は追い切れていませんが、要するにスティックのセンターとエンドで動的にレートを変化させるオプションです。

いわば、プロポのスティックの動きそのものを仮想的に変化させます。

なので、PIDやフィルターと分離して動きのチューニングが可能です。

難しくてまだいいセットアップが見つかりませんが、公式のWIKIにいくつか凡例があるので試してみてください。

とりあえず、Betaflightと全然違うけど、うまく決まるとすげー滑らかに飛ぶ

これがEmufightの特色ではないでしょうか。

特に上で説明した特徴的なセットアップを活用できると、Betaflightでは絶対できない動きを実現できます。

弱点は答えが多数ありすぎて迷子になることです。難しい。

また分かったことあったら追記します。

Polymaker CoPAフィラメント~造形条件がわかった~

最近、マイクロドローンの造形を10種類くらいのフィラメントで試しまくってるshyachiです。

さて、表題の通りなのですが、Polymaker CoPAフィラメントの造形条件がやっと出ました!二ヶ月くらい試行錯誤した気がする。

まずはフィラメントの紹介。

PolyMide CoPA (Nylon) フィラメント

いわゆるナイロンのフィラメントで、高い靱性・強度・耐熱性を持ちます。通常のナイロンのフィラメントは高温のノズル温度、保温チャンバーがないといけないのですが、このフィラメントは基本不要です。

主な造形条件は以下の通り。

推奨プリント温度260 °C
推奨プリント速度40 mm/s
推奨ホッドヘッド温度20~50 °C
Polymaker HPから引用

この数字、なんで温度範囲と速度が非常に狭いのかなと思ってたんですが、理由がありました。

温度と冷却と湿気に極めて敏感なフィラメント

実は上記の数字、速度とホッドベッド温度は多少のずらしが効くのですが、ノズル温度は極めて精密に決める必要あります。

具体的には255℃だと積層間の接着が甘くて使い物にならず、265℃だと強すぎてサポートが剥がれません。

なので、温度は精度良く260℃固定です。

次に冷却ファンですが、環境によりますがこの強さで積層の剥離性を調整します。私の環境だと0-25%だと冷却が弱すぎて剥離性がなく、100%だとパキパキになってしまいます。

なので50%前後で微調整します。

速度は40mm/sec以下が良いと思います。それより早く造形できますが、剥離性と温度の関係がシビアすぎて高速な造形に向きません。

湿気にも注意が必要とHPにも記載があるとおり、常時10%以下の絶乾状態をキープする必要があります。私はPolyboxにオゾという超強力乾燥剤を2個突っ込んだ上、隙間をテープでぐるぐる巻きにしてあります。

オゾ

この方法で3~4週間、湿度を10%以下に保つことが可能です。

ちなみにどれくらい湿度に鋭敏かというと、外気に触れてるフィラメントは2時間くらいでふにゃふにゃに湿気るくらいです。

では長所は?

微細な造形でもきっちり層間の接着が可能、かつ強度と靱性が高く、耐熱性もある超強力フィラメント

これはマイクロドローンのフレーム製作ですべての条件を満たした唯一のフィラメントでした。PEEKとかRENYとかスーパーエンプラが使えればそれが良いはずですが、ご家庭では利用不能なので…

マイクロドローンは細い立体的な造形部分が多く、直径2mmの柱が靱性を持っていないといけません。これを満たすフィラメントはかなり少ないです。ほとんど積層間で折れちゃいます。

また、電波の送信部の温度が80度を超えることもあり、PLAなどは耐熱において耐えきれません。さらに極力軽量にしなくてはいけません。

これらをすべて満たすフィラメントを散々探しましたが、PolymakerのPolymax PLAがかなりいいところまで行っていました。でも、最終的には靱性が高いPolymide CoPAが最高です。

いやー、ここまで温度にシビアなフィラメントを扱ったのは初めてですが、決まるとすげーいい感じです!

おすすめですよ。