2024/09/10 (2024年09月 のアーカイブ)
NT 東京 2024 に出展しました
かつて開催されていたシンセビルダーズサミット常連の山下さんからお誘いがあったので、先週末 9月7~8日は東京都千代田区北の丸公園の科学技術館で NT 東京というイベントに出展してきました。
イベント名称 : NT 東京 2024
日時 : 2024年9月7日 (土)・8日 (日) 開催 両日とも 10:00 ~ 17:00
会場 : 科学技術館 イベントホール
主催 : NT 東京実行委員会
「NT」というのは「なんか作ってみた」という意味でこだわりがありつつも割と緩目のモノづくりの成果物を展示するイベントで全国各地で開催されています。会場の空気としてはメイカーフェアに近いのだけどよりももう少し緩い感じ。ジャンルはロボット関係、音関係、光りもの関係、3Dプリンタ等多岐にわたります。
という事で音関係のものなど、気になったものをざっと紹介 :
会場が 1F ホールなのでふらっと気軽に入れるのが良いですね。盛況でした。
今回、荷物を運ぶ衝撃に耐えられずハーディーガーディーが破損して修理に手間取ったり。筐体は木質 PLA を 3D プリンターで出力してアクリル用接着剤で組み立てたものだったのだけど、木質繊維の含有量によって接着力が弱くなったりするのだろうか。未検証。
Posted by g200kg : 10:41 PM : PermaLink
2024/08/08 (2024年08月 のアーカイブ)
今年の出展予定
ここ何年か謎楽器でメイカーフェア東京(MFT)に出展していたのですが、今年はエントリーはしたものの出展の抽選に漏れてしまったので出展できません。
そのかわりと言ってはなんですが、9月にNT東京、11月に大垣ミニメイカーフェア(OMMF)に出展する予定です。
NT東京
URL : https://nt-tokyo.org/日時 : 2024/9/7(土) 10:00~17:00、 9/8(日) 10:00~17:00
会場 : 東京都千代田区北の丸公園2-1 科学技術館 催事場2~4
見学者出入り自由
大垣ミニメイカーフェア
URL : https://www.iamas.ac.jp/ommf2024/
日時 : 2024年11月23日(土・祝)12:00 〜 17:00、2024年11月24日(日)10:00 〜 16:00
会場 : ソフトピアジャパン・センタービル(岐阜県大垣市加賀野4-1-7)
入場についての詳細は未発表、以前の通りなら無料・要予約
Posted by g200kg : 11:39 PM : PermaLink
2024/05/31 (2024年05月 のアーカイブ)
3Dプリンター用ミニヒーター
Creality K1 は総合的には充分優秀でもちろん形状によるのだけど、収縮の大きい ABS での造形はやはり反り(ワーピング)が完全には解消できない。
K1 にはチャンバー全体を加熱するヒーターがないため、造形済みの部分の冷却が速すぎて歪みが発生するという現象です。
という事で役に立つかどうかはわからないけど Amazon で 3D プリンター用のミニヒーターが売っていたので買ってみた。
一応 3D プリンター向けと銘打たれているのだけどこれの主目的は光造形プリンターのレジンを暖める用みたいです。設定した温度の温風を出すようなので FDM 用チャンバーヒーターとしても使えなくはないだろうという目論見です。
どう設置するかを全然考えていなかったのでとりあえず筐体内にころがしてテストします。
ABS を造形する場合はチャンバー内の理想的な温度は 70℃ くらいらしいのだけど、そう簡単には温度が上がりません。まあそこまで上がらなくも良いかとは思っていたのだけど 30 分程稼働させてもこのヒーター単体だと 42℃ 程度で頭打ちになってしまいます。室温 + 15℃くらいが限界かな。まあヒートベッドとホットエンドを稼働させればもう少し上がりますがちょっとパワー不足感はあります。
それでも何もないよりは多少ましになる感じはします。色々とパラメータが多すぎて感じだけであまり定量的な測定ができているわけではないですが。
左はヒーター無し、右がヒーターありでキャリブレーションキューブを出力した所。ヒーター無しの場合の左下隅が微妙に浮いているのがわかります。
先日発表された新機種 K2 ではチャンバーヒーターが装備されているらしいのでこの辺りはだいぶ良くなるのではないかなあ......。まあそんなにほいほいと新機種は買わないけどね。マルチマテリアルユニットは K1 向けに出るなら欲しいな。
Posted by g200kg : 10:14 PM : PermaLink
2024/05/20 (2024年05月 のアーカイブ)
3Dプリンターのマルチカラー対応
ここ数年で家庭用の 3D プリンター界隈はマルチカラー対応に本気になってきましたね。
3D プリンターのマルチカラー対応と言っても色々な方式がありますが、現在各社から一斉に出始めたのは FDM (FFF) 方式で色の異なる複数のフィラメントを必要に応じて自動的に切り替える機構のものです。「マルチマテリアル」と呼ばれたりします。
今まではただでさえノズル詰まりやらベッドへの定着不良やらのトラブルが発生しがちだった 3D プリンターですが、フィラメントの切り替えという結構複雑な仕組みを商品レベルで組み込めるくらいには次の段階に入ったという事かと思います。
既に製品として流通している機種としては PRUSA の MMU (Multi Material Upgrade)、Bambu Lab の AMS (Automatic Material System)、VORON プロジェクトの ERCF (Enraged Rabbit Carrot Feeder)などがあり、私が使用している Creality でも CMS (Creality Material System) が開発中と発表されています。各製品のレビューとかを見ているとやはり Bambu Lab が一歩抜きんでているかなと思いますが Creality の今後の発表にも期待したい所です。
Creality CMS ↓
また今までの機種に追加可能なオプションとしてサードパーティー製品を開発/販売している所もあります。
1つは「3D chameleon」という製品でこれは 3D プリンターの機種を問わず 4 色のフィラメントを自動切り替えする機能を追加するというのが謳い文句で切り替えのためのコードを追加するのがちょっと面倒くさそうですが、色々な機種で実際に動かしてみたという例がそれなりにあるようです。
3D Chameleon ↓
他には Creality 公式のマルチカラーサポートに先立ってサードパーティとして作ってみたという Digital Inventor の FMS (Filament Management System)というものもあります。
3 色まで対応で K1 / K1 Max をターゲットに絞っている分これもなかなか良さそうに見えます。
Digital Inventor : FMS ↓
とまあ業界全体の方向性としてマルチカラーに向かっている感じはありますが、同時に問題として挙がっているのが、マルチカラー対応をするためにはフィラメントの切り替えにとにかく時間がかかる、更にフィラメントを切り替える度にノズル内に残っている色と混ざるのを避けるためにかなりの量のフィラメントを余分に捨てないといけないという事です。どのようなモデルを出力するかによりますが、単色での出力に比べて時間もフィラメントの消費も倍くらいかかるという事も珍しくはありません。公式ドキュメント等では見た事がないですが、フォーラム等では発生するゴミは poop と不名誉な名前を付けられていてそれが一般名称として使われています。
またもう少し以前の話ですが、KickStarter で「Swapper 3D」というものが発表されています。これは通常の 3D プリンターに取り付けて(当面 PRUSAがターゲットらしい)多数のノズルを切り替えられるというもので、これにより poop を発生させずに色の切り替えができるという触れ込みだったのですが、あまりにも機構が複雑すぎ、どうやら開発は予定通りには進んでいないようで先月あたりから金を返せと言うような事を言い始めている人もいます。
まあ取り合えず Creality オフィシャルの製品もそろそろ出てくると思うのでもう少し待ちましょうかね。
Posted by g200kg : 10:00 AM : PermaLink
2024/05/03 (2024年05月 のアーカイブ)
3Dプリンター Creality K1 のルート化とは何なのか?
高速 3D プリンター、Creality K1 を導入して 1 年程使ってきたのですが、最近ファームウェアを最新版にアップデートしました。それで知ったのですが 2023 年末頃に公開されたファームウェアのバージョン V1.3.2.1 以降で公式にルート化ができるようになっていたようです。以前見た時には中身をハックして自己責任でこの辺りをいじっている人はいるようでしたけど、今回は Creality 公式なので安心ですね。
さて、このルート化って何なんでしょうか? というあたりの説明を。
2023 年辺りから高速動作を謳った機種が各メーカーから一斉に発表されているのですが、これらの機種は揃って「Klipper 搭載」が売り文句になっています。Klipper というのは 3D プリンターのファームウェアの事で、これまで 3D プリンター では Marlin と呼ばれるファームウェアが広く使用されていましたが、Klipper はこれを代替するものになります。
Marlin も Klipper もオープンソースのプロジェクトとして開発が進められています。低価格な家庭用の 3D プリンターが急激に普及したのもこれらのソフトウェアを使用しているからこそなのですが Klipper ではこれまでの一般的な 3D プリンターのハードウェア構成に比べると Raspberry Pi 相当の MCU が追加されてそちらでモーターを直接駆動する MCU の前段でより高度な計算処理を行います。
例えば 3D プリンターを高速動作させると避けられない問題となってくるのが振動が発生する事で、造形物の壁に「リンギング」とか「ゴースト」と呼ばれる壁が波打つ現象が発生しますが Klipper ではあらかじめプリンターの機械的な振動を測定してリンギングを軽減する補正を行う事が可能になります。
さて Klipper はオープンソースの GPL ライセンスで開発されていますので、ソースコードが公開されなくてはならないのですが、ここに少し問題があって Creality K1 は Klipper 採用を謳っているにもかかわらず発売以来、必要な情報が完全に公開されていない、と 3D プリンター界隈では今までツッコミが入っていたわけです。
それがまあ前述のファームウェアのバージョンアップと共に公開されるようになった、と。
また、GitHub 上でも K1_Series_Annex というリポジトリがあり、ここに色々と情報が出てくるようになりました。ここにある 「K1 Series root guide」 という説明の通り、新しいファームウェアを入れると本体の設定メニューに下の写真のように「Root account information」という項目が現れます。
https://github.com/CrealityOfficial/K1_Series_Annex
この設定で Klipper が走っている K1 本体の IP アドレスに対して root 権限で SSH ログインする事ができるようになります。ログインしてみると Klipper の動作設定は
/usr/data/printer_data/config/printer.cfg
にあり、エディタとしては vi が使用可能なようです。
なお、この設定をいじる時にも Warning 画面が表示されますが root 権限でなんでもできてしまいますので使い方を間違えると K1 本体を壊してしまう可能性もある事には注意が必要です。
K1 でいじりたくなる部分については Guilouz さんという方が GitHub 上で便利なヘルパースクリプトを公開されていますのでこれを使用するのが良さそうです。
https://guilouz.github.io/Creality-Helper-Script-Wiki/
ネットワーク経由で Klipper に接続する Web インターフェースとして使用される Fluidd や Mainsail などのインストール等、役に立ちそうなものが一通りメニューで選択するだけで操作できるようになります。
これで何ができるようになるのかというと色々あるのですが、例えば下は インストールした Klipper の Web インターフェースである fluidd を OrcaSlicer の Device タブで表示できるように設定した所です。
Posted by g200kg : 9:45 PM : PermaLink
2024/04/30 (2024年04月 のアーカイブ)
引き続き Creality K1 で試行錯誤
ちょっと ABS フィラメントで作りたいものがあって設定を詰めるためにキャリブレーションキューブを量産してしまっている。
それなりのものは作れるのだけど、もう少し精度を上げたい所。どうしても多少の反りが発生するのを抑えきれない。いわゆるワーピングという現象。結局一番効果があったのはビルドプレートの表面を1000番くらいのサンドペーパーで良い感じに荒らす事とオブジェクトに大きめのブリムを付ける事。
これ以上を望むとするとエンクロージャー内部にヒーターを仕込んで温度を上げる事かなあ。やっぱり ABS は扱いにくいし PLA で何とかするかと諦めかけてる。
ついでにこれ。
曲線はベッド(奥行の中央)を前から見た時の高さの歪み。
色は青→赤に向けて温度を上げて行った場合の変化。
ベッドはアルミなのでスチール製のフレームとの熱膨張率の差で反るという話もあるのだけど、それだけではないような気がする。そもそも高さのセンサー自体も温度でドリフトしないのだろうか?
ファームウェアのバージョンが上がっていつの間にか(時間短縮のため?)印刷の度にベッドレベリングをやり直さなくなったみたいだけどフィラメント材質を変えて温度プロファイルが変わったらレベリングをやり直さないと駄目じゃないかなと思っている。
Posted by g200kg : 2:24 PM : PermaLink
2024/04/19 (2024年04月 のアーカイブ)
Creality K1 のベッドのレベリング
3D プリンタのプラットフォームのレベル調整というと少し前まではなかなか厄介な代物でしたけど、今はソフトウェア的に補正を行うオートレベリングを搭載した機種が多くなりました。ノズルとベッドの間に紙をはさんで硬さを確認しながらマニュアルで調整していた時代から進歩し、Creality K1 も当然オートレベリングなのでレベル調整についてはそれほど気にしなくてもあまり問題にはなりません。とは言えある程度はちゃんとベッドの水平が取れている必要があり Creality 公式に物理的にベッドのレベル調整を行うチュートリアル動画が公開されています。
Service Tutorial K1 How Bed Leveling
この動画を見るとわかるとおり、物理的にベッドのレベル調整をするのは割と面倒そうです。なんとなくのイメージですが物理的な調整でベッド各部の誤差を 1mm 以下程度に抑えれば後はオートレベリングのソフトウェア的な手法で補正すれば良いというのが本来の姿ではないかと思います。
しかしですね。どうせならもっと高精度に物理的な調整を仕上げたい、と。こういうのが 3D プリンターの沼の入り口だとは思うのだけど、気持ちはわかりますね。3D プリンターで何かを作ろうと思っていたはずなのに気が付くと 3D プリンターを作っていた、みたいな話はよくあるようです。
現状を確認する方法
まずは Chrome や Edge 等のブラウザで Creality K1 の IP アドレスにアクセスします。単にブラウザで 192.168.xxx.xxx 等の割り当てられている IP アドレスにアクセスすると Web インターフェースが表示され、その中に Bed Mesh の表示があります。これがベッドの現在の物理的な傾きで X=0、Y=0 の点が前面の左端、全体で 5 x 5 の25点が計測された結果となっています。
このデータを基にオートレベリングの補正が行われるわけです。この辺りは SSH で K1 にルートアクセスして設定を弄ると計測点数を変えたり補間のアルゴリズムを変えたりもできるようです。
スペーサーを追加する
このグラフでは左右方向では左が、前後方向では前方が高くなっています。一番高い点と低い点で 1mm 近い差があるようなので、できれば物理レベルでもう少し水平に近づけておきたい、と言う事で、おすすめはこれです↓。
Bed Shims - Fits Creality K1 and K1 Max
これは 0.1mm 刻みの厚さを持つスペーサーです。ベッドは前方の左右と後方の中央の 3 点で支えられていますので、一番高い点に合わせて差を埋めるようにスペーサーを噛ませる事で全体の水平度が改善されます。なお材料は熱に弱い PLA は避けた方が良さそうです。
ベッド内の凸凹
スペーサーを噛ませて、今回はついでにベッド内の高さの誤差を埋めるため、テープで凹んでいる所を多少埋めてみました。ヒートベッドに直接貼るので耐熱性のあるポリイミドテープが必要だと思います。厚さは 0.05mm 程度なのでまあざっくり 0.1mm 程度に誤差が収まれば充分ですかね。
こうやって再度オートレベリングを実行した結果が下の図です。これくらいの誤差はベッド上で造形物をごそごそやっているだけで変化してしまったりするのでこんなもんじゃないでしょうか。大体誤差 0.1mm 範囲内に収まっています。
Posted by g200kg : 6:36 PM : PermaLink
2024/04/08 (2024年04月 のアーカイブ)
Creality K1 のフィラメント折れを対策したり色々
現在私が 3D プリンタのメイン機として使用しているのは Creality K1 です。ほぼ 1 年ほど使いましたが、今でもかなりの人気機種です。
プリントヘッドの奥の方にあるヒートシンクファンというちょっとやっかいな部分の故障があって修理に手こずったりもしましたが、それ以外は重大な問題もなく十分に満足できるものでした。敢えて指摘するなら、フィラメントを供給する PTFE チューブ内で時々フィラメント折れが発生して印刷に異常が発生するのが問題ですかね。
これもまあ原因はわかっていて、良好な状態のフィラメントなら問題はないのだけど多少湿気を吸って脆くなっているものなんかを使っていると折れてしまう、という事です。というのも K1 は本体をできるだけコンパクトにするためエクストルーダーに接続する PTFE チューブの取り回しのカーブが結構きついんです。
下の写真、エクストルーダーへの入り口のカーブ、
それから背面のフィラメントセンサーからトップカバーを抜けて本体内に入る部分、ですね。
脆くなったフィラメントを使っても良い事はないので、使う前にちゃんとフィラメントドライヤーで乾かすというのが正しい対処法だとは思いますが、ついついそのまま印刷しようとした結果余計な手間がかかるのは嫌なのでこの急カーブをなんとか対策します。
エクストルーダー入口のカーブは PTFE チューブをガイドチェーンから抜いてチェーンの上側に適当に結束バンド等で固定すれば単純簡単で微妙な違いですがカーブのストレスは改善できます。これは適当に工作してますけど K1 MAX なんかでは最初から同じように PTFE チューブはガイドチェーンの上側に付いているという話を聞いた事があるので、対処としては順当なのではないかと思います。
また、チューブのアプローチを更にもう少し高い位置からにしたい場合、トップカバーが邪魔になりますのでカバーに下駄を履かせるためのパーツを有志の方々が思い思いに作成してデータを公開しています。「Creality K1 riser」とかで検索するとたくさんでてきます。
私の場合は凝ったものはいらなくて少しだけ下駄を履かせるために一番シンプルそうなものを使用しています。なお、この下駄は置くだけだといまいち安定しないので、各パーツを接着したのですが、接着時のパーツ間のギャップの調整はちょっと面倒です。
さて、それからフィラメントセンサーから本体内への導入部分ですが、これはセンサーを本来の状態から少し斜めに固定し、ついでにフィラメントホルダーを側面に付けるという方法を取る事にします。本来はフィラメントホルダーは背面にあるのですが、これはフィラメントの入れ替えのための余裕を考えるとそもそもあまり壁の近くに置けなくなるのでレイアウト的にもホルダーを側面にするのは使いやすくなります。それに必要なパーツの類も有志の方々がデータを公開されています。さすがは人気機種ですね。
フィラメントセンサー部は下の写真。なお、センサーとその出口のガイドのネジ穴の位置がちょっと合わなかったのでセンサー出口の出っ張りを削り取ったりはしました。これは K1 のロットの違いとかで微妙に形状が変わったりしているのかも知れません。固定するためにM3の短いタッピングネジが必要です。
これはサイドのフィラメントホルダー。側面に引っ掛けるだけという単純で使いやすい設計。ホルダーの軸は本来背面に付ける純正のものを使用します。ホルダー軸との篏合部は多少調整は必要かも知れません。
ついでに、これは実際に問題を起こした事はないのだけど余分にエクストルードしたフィラメントをサイドファンが吸い込んだりしそうなのでこれも追加しました。サイドファンプロテクターです。
使用したデータは次の通りです。ちょっと気になる部分がある時に探せば対策部品が沢山あるのが人気機種の良い所ですね。
トップカバーに履かせる下駄
https://www.printables.com/model/560850-minimalist-k1-riser/
フィラメントセンサーの斜め固定用
https://www.printables.com/model/535464-creality-k1-filament-sensor-mod/
側面のフィラメントホルダー
https://www.printables.com/model/673377-upgraded-side-spool-holder-k1k1-max-remix/
サイドファンプロテクター
https://www.printables.com/model/513040-side-fan-protector-for-creality-k1/
Posted by g200kg : 10:44 AM : PermaLink
2024/03/18 (2024年03月 のアーカイブ)
PCB製造業者 PCBWay のご紹介
基板作ってますか?
今回中国の基板製造業者である PCBWay 様よりお話があり、クーポンを頂いたりしたのでご紹介します。
最近だと小規模なハードウェアの試作でも基板製造業者に依頼するケースが多くなりましたよね。個人でもハードウェア DIY をやっている人ならば、基板 CAD を使って自分で基板のガーバーデータを作り、業者に基板を発注して試作するなんていうのも普通に行われています。
中国深圳あたりには多くの基板製造を行う業者があり、それぞれ特長もありますので、試作を何度も経験している人なら既にお気に入りの業者があるかも知れません。今回は PCBWay 様に試作基板の製造と部品の調達/実装をお願いしてみました。
サイトは↓の通りです。
PCBWay のページ : https://www.pcbway.jp/
しっかりした日本語のページで安心感がありますね。
このページでとりあえず基板のサイズと枚数や層数を設定するとインスタンス見積もりというページで詳細データを入力できる見積もりページに遷移しますので、後は基板のガーバーデータさえあればすぐに発注できます。
今回は↓の基板を発注します。これは電子カリンバの試作品です。
CAD は KiCad を使用しています。基板 CAD ツールにも色々ありますが、現在、個人が基板試作のために使用するツールという事ならやはり KiCad がおすすめだと思います。
KiCad : https://www.kicad.org/
PCBWay : KiCad 7.0 でガーバー ファイルとドリル ファイルを生成する方法?
KiCad からガーバーを出力する際の手順は上のページに解説がありますが、PCBWay に簡単に発注するための KiCad 用プラグインもあります。使用するには KiCad の 「Plugin and Content Manager」を起動し「PCBWay Plug-in for KiCad」を探してインストールします。
これをインストールして PCB Editor を開くとツールバーに「PCBWay」のアイコンが追加されています。
このアイコンを押すと必要なガーバーデータを作成して直接 PCBWay の見積もりページに飛び、すぐに発注できる状態になります。
それからもう一つこれは私が個人的に作成している KiCad 用のプラグインですが、様々な基板製造業者を選択するだけでその業者向けのガーバーデータを作成して Zip 化する「GerberZipper」というプラグインを公開していますので、こちらもよろしければ使ってください。GitHub においてあります。
https://github.com/g200kg/kicad-gerberzipper
さて、基板の製造だけならガーバーデータを送って発注すれば届くのを待つだけですが、今回は手差し部品は自分で作業する事にして SMT 部品の調達と実装までをお願いしたいと思いますので、SMT 部品の部品表 (BOM)や部品配置のポジションファイル (Pick&Place とか Centroid File 等とも呼ばれます) の準備が必要です。
フォーマットは↓のページに説明がありますが、決められた固定のフォーマットしか受け付けないという感じではなく、人間が見てちゃんとわかるようになっていれば大丈夫です。
https://www.pcbway.jp/assembly-file-requirements.html
GerberZipper ではこれをサポートするために 「Make BOM/POS file」を選択すると雛型となるファイルが出力されますので、これを基に実装を依頼する部品の正確な型番等を追記すると必要なファイルはそろいます。
雛型の「mpn」の項目が型番(Manufacturer Part Number)で部品メーカーにおける型番です。部品調達を含めて依頼する場合は、良く使用される受動部品や IC 等はどのような部品かがわかれば PCBWay 側で適切な代替部品なんかも探してくれます。
部品調達/実装まで依頼するなら実際に使用する部品のリストの確認など、この後も多少のメールのやり取りはあります。必須ではないですが Fab 関係のデータを見やすく出力した PDF なんかを添付すると余計な勘違いを防ぐという意味では良いかも知れません。今回は下のような PDF をついでに添付しました。
レビューは丁寧な印象です。NPTHデータを追加し忘れたら「ここにドリル穴抜けてないですか」みたいな事も指摘してくれます。下のような感じで実際に使用する部品リストが送られてきました。
時間的な面では、今回のように部品調達/実装まで依頼するとなると基板製造や実装自体よりも部品調達に必要な時間に依存しますので使う部品次第ですね。時間を短縮したい場合は調達しやすい部品を選択する事が重要です。今回は発注してから3週間程度でしたが基板製造のみの依頼ならばずっと早いはずです。
さて、しばらく待って基板が届きました。
発送はDHL、Fedex等が選べますが今回は OCS です。
SMT部品の実装まで終わっています。
細かい部分の拡大。問題なさそうですね。
という事で基板製造業者 PCBWay のご紹介でした。
今回は調達/実装含めてでメールのやり取りでデータを送り直したり、余計な手間をかけてしまったりもしたのですが、丁寧なレビューが好印象でした。KiCad用プラグイン GerberZipper の PCBWay 用データも準備しましたので、よろしければ使ってください。
https://github.com/g200kg/kicad-gerberzipper
Posted by g200kg : 12:12 AM : PermaLink
2024/03/16 (2024年03月 のアーカイブ)
Synth Meetup #2
本日、大田区池上の Channel for Rent (C4R) で Synth Meetup #2 が開催されました。
謎楽器を作ったりしている人向けのシンセDIY系のイベントです。
少人数の集まりですが、今回は2回目という事で様子を覗いてきました。
イベント名称 : Synth Meetup #2
日時 : 2024年3月16日(土) 13:00-
会場 : 大田区池上5丁目6-20 Channel for Rent
主催 : https://twitter.com/tekitounix
かつてはシンセDIY系としては「アナログシンセ・ビルダーズ・サミット」というイベントがあり、最近は諸般の事情により開催されなくなったのですが、それでもこういう分野はやってる人はやってるんだよね。
スタンスとしては一般的な楽器としてのプロモーションをしたい訳ではなく、純技術的な紹介とかでもなく、自分でライブをやる時に自分が欲しいものを自分で作ったので見て欲しい、という感じです。
という事で、これからも続けて行ってほしいですね。
Posted by g200kg : 10:26 PM : PermaLink
2024/01/16 (2024年01月 のアーカイブ)
KiCad Version 8
基板 CAD のKiCad の Ver.8 RC1 が1月14日に公開されています。
Features List が見つからないのでどこが変わったのかまだよくわかっていないけど、大体は今までと同じようには使える感じです。Ver.7で作ったデータを開くと基板エディタで Fab レイヤーに置いた文字列のフォントサイズがなんか想定通りに表示されなくて見にくくなったりはしているのだけど、普通に再設定はできるようだしまあそこまで重大な問題ではなさそう。
ただし、Python scripting の API が少し変わっているようで Gerber Zipper プラグインにちゃんと動かない所がありますので後で修正しておきます。
https://www.kicad.org/blog/2024/01/KiCad-Version-8-Release-Candidate-1/
Posted by g200kg : 8:35 AM : PermaLink
2024/01/01 (2024年01月 のアーカイブ)
GerberZipperアップデート
去年の内に片づけておくつもりだったのに年を越してしまった。たまにしかアップデートしないものでリリース手順が思い出せなくて。公式のプラグインマネージャの構造の複雑さはちょっと過剰かなあと思ったりする。
導入の方法についてはこちらを参照 :
KiCad 6 の「プラグインとコンテンツマネージャー(PCM)」の使い方と対応プラグインの作り方
基板を発注する際に必要なガーバーデータをまとめる KiCad 用のプラグインですが、部品実装(PCBA) を合わせて発注する場合に必要な BOM と Pick & Place データを生成する機能を追加しました。
部品の品番なんかは自力で編集する必要はありますけど、だいぶ楽になると思います。JLCPCBなんかだとLCSCでの品番の指定等が必要ですが、回路図上であらかじめ品番やフットプリントの補正値を入れておく事で自動的にBOMやPick&Placeデータが作られます。
https://github.com/g200kg/kicad-gerberzipper
Posted by g200kg : 3:57 AM : PermaLink
2023/11/30 (2023年11月 のアーカイブ)
Creality K1 のファンが壊れた件
2023年の春に発売された3Dプリンタ Creality K1 は高速印刷、サイズ、価格等全ての面でなかなかのハイレベルにバランスが取れていて魅力的な機種です。私も割と早い時期に予約販売に手を出してしまいました。それ以降今まで主力機種として使用して性能的にも満足していたのですが、11月中旬突然の不調に見舞われ、やたらフィラメントが詰まったり明らかに異常なフィラメントの溶け方をする状態になり、代理店のサポートに問い合わせたりしつつ色々といじくっていたのですが、ようやく復帰しました。
症状と対処は以下の通りです。
印刷を開始してすぐにエラーメッセージが表示されます。表示されるエラーコードと表示のタイミングはファームウェアのバージョンによって変化するようですが、メッセージの内容としてはファンに異常があるという事がわかるようになっています。写真はV1.3.1.28 のものです。
エラーのレポートを押すと印刷を続行する事もできますが、続行するとフィラメントが詰まったり異常な溶け方をしたりで正常な印刷はできません。
良く起こるのが次の写真。
フィラメントが詰まってしまい、なんとか引っこ抜いた所、ノズルの手前のヒートシンクあたりでフィラメントが太っています。つまり、ヒートシンクが過熱してフィラメントをノズルに送り込む手前で柔らかくなってしまい送り込めなくなっているようです。
結論としてはヒートシンクに付いているファンの故障が原因のようです。
やっかいなのはヒートシンクのファンはプリントヘッド周りをばらさないと見る事もできない場所にあるという事。これはプリントヘッドの前面に付いているモデルファンと呼ばれているものとは別のファンでプリントヘッドのカバーを外して露出する基板の裏側に付いています。
代理店とのやり取りからわかった事。
* このエラーメッセージだけではどのファンを指しているかは特定できない。
* ヒートシンクファンはヒートシンクが50℃を超えると自動的に回転する。
* ヒートシンクファンの動作を直接テストする事はできず、回転しているかどうかは音で判断するしかない。
正常ならば印刷を開始して温度が上がり始めると割合すぐ(1分以内)にプリントヘッド前面のモデルファンが回転していない状態でプリントヘッド付近からファンの回転音がするはずです。音がしないならこのヒートシンクファンの異常と判断して良いかと思います。
よくある故障という訳ではないらしく、日本の代理店に交換部品がないので交換部品の手配に結構時間がかかるようです。
という事でしたが、AliExpress に Creality Maker Store という店舗があり、そこでメンテナンス部品として同じファンが売られていますので、AliExpress を使い慣れているならそちらで手配する方が早いかも知れません。
外した状態のファンをチェックした所、壊れたファンは特に機械的な引っ掛かりなどはありませんが、赤黒のピンに電圧をかけても回転しません。ファン単体の故障のようです。
Posted by g200kg : 3:40 PM : PermaLink
2023/06/01 (2023年06月 のアーカイブ)
STL Knob Designer を公開しました
ポテンショメーターのツマミの 3D プリンター用の STL データを作成するプログラムを GitHub で公開しました。
FDM プリンターでの使用を想定しています。
ブラウザーで下の URL にアクセスして外観のパラメーターを調整し、[Export as STL]を押すだけで STL データが作成されます。Cura 等のスライサーの入力として使用してください。
動作ページ : https://g200kg.github.io/stl-knob-designer/
GitHub リポジトリ : https://github.com/g200kg/stl-knob-designer
6mm 軸、15mm 長のローレット軸のポテンショメーターをターゲットにしています。
材料は PLA よりも PETG のような多少弾性があるものを推奨します。
軸との篏合の調整が微妙ですので、プリンターの設定を微調整する必要があるかも知れません。
Posted by g200kg : 2:04 PM : PermaLink
2023/05/28 (2023年05月 のアーカイブ)
GerberZipper v1.0.8
KiCad で基板業者に必要なデータをまとめてzipするプラグイン、GerberZipper が最新版 KiCad 7.x で動かなくなっていたのを回避するプルリクを木下研究所のさいたさんが送ってくれていたのでマージしました。ありがとうございました。
プラグイン環境で今まで使えていた一部プロパティが KiCad 7.x で削除されているらしいのが原因らしく、他のプラグインでも問題が起こっているようです。
ついでにメタデータをアップデートしてバージョンを1.0.8としたので KiCad のプラグインマネージャから入れられるようになっているはずです。入れ方については下のリンクを参照してください。
https://www.g200kg.com/archives/2022/03/kicad-6-pcm.html
この辺りの仕様はまだそこまで確固としたものではなく流動的な部分がありそうな感じはします。KiCad プラグイン関連はドキュメントがまだまだ整備されていないので作るのは試行錯誤しつつだし、プラグインマネージャもやたらと面倒な構造が必要でもう少しシンプルにしてほしい所ではありますね。
Posted by g200kg : 1:07 AM : PermaLink
2023/05/26 (2023年05月 のアーカイブ)
3Dプリンターでツマミを作る
ローレット軸のポット用のツマミを3Dプリンターで作る時、分解能的に光造形じゃないと無理だろうなと思って、そもそもFDMプリンターでは試していなかったのですが、試行錯誤した結果、FDMプリンターでもまあまあ安定していい感じのツマミが作れるようになりました。
材料はオレンジ色がPLA、クリアがPETGです。
光造形の場合は分解能的にはまったく問題ありませんが、造形が終わった直後には良い感じに軸にはまっていたツマミでも二次硬化させると微妙に収縮するので、その収縮分の見積もりが面倒です。これはこれで、実際にポットの軸に付けた状態で二次硬化させるとなんとかなったりはするのですが。
そしてFDMプリンターでの造形の場合、18Teethのローレット軸に対して完全にフィットする形状は無理があるので6Teeth分だけで軸を保持する形にして、残りは隙間を開けて足りない弾性を補う感じで作るのがポイントです。これであれば標準的な0.4mmノズルを使っても無理なく造形できます。
スライサーで見た時、下のような構造になっています。穴形状の大きさに関してはCuraベースのスライサーで「水平展開(Horizontal Expansion)」「穴の水平展開(Hole Horizontal Expansion)」の指定が影響しますのでそのあたりの設定も確認する必要があります。
なお、PLAフィラメントでも作れなくはないですが弾性は期待できないので丁度良い硬さで篏合するツマミを作るにはサイズの微調整がかなりシビアです。PETGなどのある程度弾性が期待できる材料だとかなり楽になります。
Posted by g200kg : 9:22 PM : PermaLink
2023/05/22 (2023年05月 のアーカイブ)
最近のFDM方式3Dプリンターの動向
現在使っている3Dプリンターとしては、FDMと言われる熱溶解積層方式のものと光造形方式のものを適当に使い分けていて、結局FDMの方がお手軽な感じで使えるので稼働率はFDM優勢になっています。
それで今使っているFDM機がもう5年前の機種なので、そろそろ新しい製品をちらちらと物色したりはしているのですが、どうやらこの2023年春から夏にかけて、かなりFDMプリンターの新機種の展開が熱い事になっているようです。
曰く、「従来機種より5倍高速」とか、とにかく超高速を謳う機種が各社から目白押しです。
確かに今までのFDM機はちょっとしたものでも造形に一晩かかったりして、それが使い方のネックにはなっていたのですが、これが5倍高速になったらかなり使い方が変わってきそうではあります。
それにしても良くこうも同じタイミングで各社から出てきますね。
Qidi X-Smart3
私が使っているX-Smartの最新版。最大印刷速度500mm/s。予約受付中。Qidiはサポート窓口がとにかく優秀で手厚い。私も何度かお世話になりました。https://jp.qidi3d.com/products/qidi-x-smart-3
Bambu Lab P1P
最大印刷速度500mm/s。Kickstarterで話題になった奴の廉価版。複数色が使えるのが売りだけどエクストルーダは1つでフィラメント切り替え時に色が混ざった部分は捨てながら切り替えるという事らしく実用上は厳しいかも。Clearity K1
最大印刷速度600mm/s。Clearityは家庭用3Dプリンターで日本で一番ユーザーが多いんじゃないかという気がするEnder3シリーズを出している会社。Bambu Lab P1P の対抗として出してきたと噂されている高速印刷機種。予約受付中。https://www.creality.com/products/creality-k1-3d-printer
大体どれもCoreXYという駆動系を軽量化できる構造+エクストルーダー部を可能な限り軽量化するという戦略で速度を稼いでいるようです。高速化すると振動が発生するのでモーターの駆動側でブレをキャンセリングして振動抑制するというあたりが最近のトレンドっぽい。まあ速度と品質はトレードオフなので速ければ良いという事ではないのですが。
↓CoreXY構造の説明
https://hackaday.com/2019/11/12/core-xy-explained/
他にもCoreXYではないけど気になる機種も色々でています。
Snapmaker J1
Kickstarterで話題になった高速デュアルエクストルーダー機を改良した奴。350mm/s。新開発のエクストルーダーによって高速化されている模様。https://shop.snapmaker.com/ja/products/snapmaker-j1-independent-dual-extruder-3d-printer
Prusa mk4
チェコの会社、Prusaからはこの春突然の新機種mk4が発表。日本ではまだ入手したというような話がないようですが、期待している人は多そう。見た目にはごく普通の廉価な機種に見えますが、設計が完全にオープンで数多のクローンが販売されているリファレンスとなっている機種の最新版になります。https://www.prusa3d.com/product/original-prusa-mk4-2/
Anker make m5
Ankerと言えばモバイルバッテリーとかで評価が高いメーカー。やはり高速印刷を謳い文句にしています。あのAnkerがついに3Dプリンターに参入という事で期待している人も結構いる。どちらかと言えばエントリー向けぽい。https://www.ankerjapan.com/pages/anker-make
という事でどれにしようか随分迷ったんだけど結局Clearity K1の予約をポチりました。出荷は6月にやる模様。さてその実力はどの程度か期待。
Posted by g200kg : 1:25 AM : PermaLink
2022/12/30 (2022年12月 のアーカイブ)
WebWorkerでゴリゴリの重い処理をさせて横から制御したい時の手段
これは Javascript のかなり細かい部分の話なので似たようなケースで困った事がある人以外にとってはどうでも良い話だと思いますが......。
JavaScript は元々シングルスレッド構造なのであまり重い処理をさせるには向いていないのだ、という事は昔から言われていました。 重い処理をしようとした時にまず影響を受けやすいのは UI 周りの動作です。
UI をちゃんと動かしつつ重い処理をさせるためには、処理を小分けにしてタイマーから駆動する等の手法がとられます。 またこの時、コールバックで小分けにした処理を繋げるとソースが見づらくなるので Promise や async/await を使う、という手段が定石となっていったのですが、そもそも、ひとまとまりの重い処理をやらせたいならやっぱり別スレッドで走らせたい、という事で WebWorker というものが作られました。
これによって Javascript は OS レベルで保証されたマルチスレッドな環境を手に入れた訳です。ただし、この時のメインスレッドとワーカースレッドは空間が分離されており、スレッド間の通信は postMessage() によるメッセージのやり取りで行う必要があります。
まあこれで大体のやりたい事はできるようになったのですが、次のコードを見てください。メインスレッドからの指示で WebWorkerで 10 秒かかる処理を開始/中止するつもりのコードです。
"START" ボタンを押すとワーカー側で 10 秒数える無限ループ的な処理を開始し、"ABORT" ボタンで中止フラグを立てているつもりですが、残念ながらこれはうまく動きません。
main.js
let worker = new Worker('worker-1.js');
document.getElementById('start').addEventListener('click', ()=>{
worker.postMessage('start');
console.log('post "start"');
});
document.getElementById('abort').addEventListener('click', ()=>{
worker.postMessage('abort');
console.log('post "abort"');
});
worker-1.js
let abort = 0;
let current = 0;
function start() {
abort = current = 0;
console.log('Heavy task start');
const startTime = new Date();
while(current < 10) {
const elapsed = Math.floor((new Date() - startTime)/1000);
if(elapsed != current) {
console.log(current = elapsed);
}
if(abort) {
console.log('Heavy task abort');
break;
}
}
console.log('Heavy task end');
}
onmessage = (ev)=>{
switch(ev.data) {
case 'start':
console.log('recv "start"')
start();
break;
case 'abort':
console.log('recv "abort"');
abort = 1;
break;
}
}
これを走らせると次のようになります。"START" を押すと数を数え始めるのは良いのですがカウントが 5 になった時に "ABORT" を押しても止まらず、10 まで数え終わってから "abort" を受け取っています。メイン側は "abort" メッセージを送信していますが、ワーカー側に届いていません。ワーカーはメッセージを受け取るための onmessage の処理をマイクロタスクとしてキューに入れますがこのマイクロタスクは現在実行中のタスクが終わらないと走り始めないためです。結局ワーカー側は重い処理の途中で送られたメッセージを受け取る暇もなく動き続けるという事になります。
単にワーカーを止めたいだけならメイン側から直接 worker.terminate() を呼び出す事もできますが、一旦停止して後で続きを再開させたい、とか、重い処理の途中で追加の情報を送りたい、とかいう場合には対応できません。
元々シングルスレッドしか想定していなかった所にマルチスレッドを持ち込んだからこうなっちゃったのかなとは思いますが、こういう場合どうするか、と言うと、こういう場合に使える手段はちゃんとあります。それが SharedArrayBuffer、略して SAB 等とも呼ばれるもので、これはスレッド間の共有メモリとなります。ワーカー側でメッセージを受け取る暇がなくても処理を中断するためのフラグを立てるだけならメイン側の処理で行う事が可能です。
これを使うと下のコードのようになります。ここでは共有メモリとして 1 バイトの中止フラグだけを作っています。なお、もっと大きなサイズで複雑なデータをやり取りする事も可能ですが、高度な操作をするのならスレッド間の競合も気にする必要がでてきますので、Atomic API で競合を避ける必要があります。
main.js
let worker = new Worker('worker-2.js');
let sab = new SharedArrayBuffer(1);
let abort = new Uint8Array(sab);
document.getElementById('start').addEventListener('click', ()=>{
worker.postMessage(['start', sab]);
console.log('post "start"');
});
document.getElementById('abort').addEventListener('click', ()=>{
abort[0] = 1;
console.log('set "abort" flag');
});
worker-2.js
let abort, current;
function start() {
current = 0;
abort[0] = 0;
console.log('Heavy task start');
const startTime = new Date();
while(current < 10) {
const elapsed = Math.floor((new Date() - startTime)/1000);
if(elapsed != current) {
console.log(current = elapsed);
}
if(abort[0]) {
console.log('Heavy task abort');
break;
}
}
console.log('Heavy task end');
}
onmessage = (ev)=>{
switch(ev.data[0]) {
case 'start':
const sab = ev.data[1];
abort = new Uint8Array(sab);
console.log('recv "start"')
start();
break;
}
}
これを走らせたのが下の図で、重い処理の途中でも "ABORT" ボタンを押したタイミングで止まってますね。めでたしめでたし、ではあるのですが、この SAB にまつわる問題はこれまでに結構な紆余曲折があり、CPU レベルでのセキュリティ上の懸念があるという指摘により対応するブラウザのリリースが延期されたりしていたのです。ちなみに WebWorker がサポートされ始めたのが 2010 年頃、その後 SAB が一度提案されたものの問題の指摘により一旦無効化され、最終的に対応方法が決まったのが 2021 年頃なので結構長い間この、マルチスレッドではあるけどちょっと使いづらい問題は引きずっていた気がします。
SAB を有効化するために必要な対応が「クロスオリジン分離 (cross-origin-isolation) 」で、ブラウザでこの機能を使うにはサーバ側で COOP および COEP と呼ばれる特殊なヘッダーを設定する必要があります。このヘッダーがないとブラウザはこの SAB の API 自体をサポートしていないものとして扱います。
Chrome では 2021 年の Chrome 91 でクロスオリジン分離を必須とする対応になる時、使っているライブラリ内で知らず知らずの内に暫定の対応経由で SAB を使っていたサイトに対して google からもうすぐ動かなくなるよと警告が送られてちょっとした騒ぎになったりしていました。
まあ自分が管理しているサーバならば必要なヘッダーを追加してやれば良いのですが、ヘッダーを勝手にいじれない例えば GitHub Pages で使いたい場合はどうすれば?? とここで詰んだかと思ったのですが、やる人はいるもので、WebWorker の親戚のサービスワーカー(ServiceWorker) という機能を使って SAB に必要なヘッダーを補完するライブラリ (coi-serviceworker) が作られています。
https://github.com/gzuidhof/coi-serviceworker
npm が使えるなら
npm i --save coi-serviceworker
でインストールできます。これを使って
<script src="node_modules/coi-serviceworker/coi-serviceworker.js"></script>
という風に読み込んでやればサーバ側のヘッダー設定をいじれなくても SAB を使う事が可能になります。
なお更に追記ですが、このサービスワーカーはプッシュ通知等で使われる事が多いのですが、ユーザーが知らない所でバックグラウンドで動作するとして嫌う人もいます。ブラウザの設定でサービスワーカーを拒否するような措置が取られている場合には coi-serviceworker を使う事はできません。できれば素直に自分でヘッダー設定が可能なサーバを使いましょう。
Posted by g200kg : 11:24 AM : PermaLink
2022/12/25 (2022年12月 のアーカイブ)
GAME言語インタプリタを作ってみた
1970 年代の終わり頃、8bit CPU を使ったパーソナルコンピューターが各社から出そろって何とか趣味でコンピューターが使えるようになった当時、使用可能な言語処理系と言えば BASIC かマシン語をハンドアセンブルするしかなかった時代にそれに飽き足らなくなったマニア達が独自の言語処理系を作るというのが流行った事がありました。
中でも私が気に入っていたのは GAME 言語という奴。その源流は Altair の VTL (Very Tiny Language) と呼ばれるものらしいです。マイクロ BASIC 風ですが予約語は全部記号の組み合わせで表すという見るからに怪しいコードがとても良い雰囲気でした。しかもインタプリタだけでなくコンパイラも存在し、さらにそのコンパイラが GAME 言語自体で記述されているという構造がとてもそそります。詳細な言語仕様もかなりおぼろげだったんですが、最近 GitHub に当時の GAME コンパイラのコードが公開されているのを知りました。
https://github.com/snakajima/game-compiler
GAME 言語の文法については (http://www.mztn.org/game86/あたりを参照してください。
このコンパイラは80系CPUが前提のようですぐには試せないので、とりあえずオンラインでテストできるインタプリタを Javascript で書いてみました。ただし、速度がとんでもなく遅いです。これは値の評価途中でキー入力を待つケースがあり、値の評価自体をあまり考えずに async/await だらけで書いたためで、もうちょっと構造を考え直す必要はありそうです。
簡単なサンプルを幾つか付けてありますので選択して "Load" ボタンを押すとロードされます。
GitHub : https://github.com/g200kg/game-interpreter
デモ : https://g200kg.github.io/game-interpreter/gameinterpreter.html
Posted by g200kg : 8:53 PM : PermaLink
2022/09/05 (2022年09月 のアーカイブ)
メイカーフェア東京2022 (MFT2022) に出展しました
先週末、9月3~4日に、東京ビッグサイトにてメイカーフェア東京2022 ( MFT2022 ) が開催されました。
Web Music Developers JP 名義で出展してきましたので、ミュージックカテゴリの周辺だけですが、気になったものなどを少しご紹介します。
イベント名称 : Maker Faire Tokyo 2022 (MFT2022)
日時 : 2022年9月3日(土) 12:00 - 18:00 2022年9月4日(日) 10:00 - 17:00
会場 : 東京ビッグサイト (西4ホール)
主催 : 株式会社オライリー・ジャパン
久しぶりのオンサイトイベントですが、結構盛況だったと思います。
なお、展示した「SOROBAN v2.5」「ElectroGurdy」については
テクノエッジ : ギタリストワナビーの聖杯「表現力豊かなソロが弾ける電子ギター」をMaker Faire Tokyo 2022で手に入れた
AV Watch : 未来の電子楽器大集合!? ものづくり祭典「Maker Faire」に行ってみた
で記事にしていただきました。
Posted by g200kg : 6:00 PM : PermaLink
...更に以前の記事...
g200kg