MP1584EN その3

FCをもう一枚組み立てたらDCDCコンバーターが動作しなかった。
一通り調べて原因が分からなかったのでIC(MP1584EN)を外してみたら・・・

裏面のパッドが無いよー!!
ハズレを引いたか(左側)?

表側
左がハズレで右は正常。

基板から外す時に傷がついてますがマーキングされた文字は同じ。
10個買った中の1個だけこの状態でした。

で、正常品と取り替えてみたらちゃんと動作しました。

フライトコントローラーを自作してみる。~その15~ 基板データ公開

フライトコントローラーを作ってみませんか~?
HOIHOI-FC F411 Rev2基板のKi-cadデータとガーバーを公開します。

基板データ

Ki-cadデータ→HOIHOIFCF411R2.zip
ガーバーデータ→HOIHOIFCF411R2_gerber20210314.zip
※Ki-cadはVer5.1.9で作成しました。
 ライブラリのキャッシュファイルも含んでいるので大丈夫なつもりですが、
 もし何か不足していたら連絡ください。
※そのままの形で基板を発注するならガーバーデーターだけで大丈夫です。

部品表

部品表→HOIHOIFCF411Rev2BOM.ods
※参考に私の購入先も記載しています。

部品配置図

部品配置図(表)→HOIHOIFCF411R2PlaceFront.png
部品配置図(裏)→ HOIHOIFCF411R2PlaceBack.png

基板データの使用に関する表示

今までこのサイトの掲載物に著作権的な表示をしてこなかったのですが、利用しやすくする為、きちんと表示したいと思います。
どういう形式が良いか考えた結果、クリエイティブコモンズ CC BYとして公開するのが良かろうという結論になりました。詳細はこちらを参照ください。

クリエイティブ・コモンズ・ライセンス
上記基板パターンはクリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供しています。

Betaflightファームウェア

ファーム→ betaflight_4.2.8_HOIHOIF411R2_101738d8e.zip

FCを作るには

もっと詳細に書くべきですが取り合えず簡単にいうと・・・
まず基板メーカーにガーバーデーターを送って発注します。この時メタルマスク(裏/表)も一緒に作成します(私はPCBGOGOに発注しました)。
並行して部品表に記載した部品を入手します。
メタルマスクを使って基板にクリームハンダを塗ります。
配置図に従って部品を載せ、リフローすれば完成!
あとはBetaflightConfiguratorを使ってファームを書き込んで使います。
※細かい所は過去に書いたブログを参照願います。

フライトコントローラーを自作してみる。~その14~ マイコンパワーアップ検討

これまでフライトコントローラーに搭載するマイコンはSTM32F411RET6を使っていました。パッケージはLQFPの64ピンです。普通に飛ぶ為の性能としてはこれで問題ないのですが、RPMフィルターを使う場合はPIDループの周波数を落とす必要がある様です。RPMフィルターとはESCからモーター回転数の情報を読み取ってノイズを取り除く機能で色々な効能があります。
詳しくはここ→https://github.com/betaflight/betaflight/wiki/Bidirectional-DSHOT-and-RPM-Filter
そう考えるともっと処理能力の高いSTM32F405やSTM32F722あたりを使ってみたくなるのですが、前回も書いた様に中々入手ができません。

取りえず今のところは以下の様な構想をするにとどめておきます。

STM32F405RGT6

最大クロック周波数がSTM32F411の100MHzに対しSTM32F405は168MHzとなります。
これもLQFP64パッケージでF411とほぼ同じピン配置なのですが微妙に異なるところがあるんですね。
下図はデーターシートの抜粋で、31pinと47pinがF411ではVSSだったのに対しF405ではVCAPになっています。
なおVCAPは内蔵レギューレータにキャパシタを繋ぐ端子です。

今回作ったRev2基板では47pinはキャパシタまたは0Ω抵抗を選べる様にしていました。F411の場合は0Ω抵抗を取り付けてGNDに落とし、F405の場合はキャパシタを取り付けるという算段。。。

しかし31ピンについてはGNDに直結してしまいました。。。これはマズったですね。
パターン的にカットもできないのでF405を取り付けるときは31ピンのリードを無理やり曲げて30ピンのパターンに接続するしかなさそうです。ここも次にパターンを変更する事があれば0Ωかキャパシタを選択できる様に改良しましょう。

STM32F722RET6

F722になると周波数も最大216MHzとなります。
コイツのLQFP64版はVSS,VCAP共F411と同じ配置なので換装し易そうです。ただし25~29ピンの並びがF411/F405とは違うんですよね。なんで同じにしてくれないのでしょう。

STM32F722RET6のピン並びがRev2基板で問題になるのは27pinに接続している電流センサー端子です。27pinはF411/F405ではPB1が割り当てられているのですがF722ではPB2となっています。最初はPB2でも問題ないだろうと思っていたのですが機能をよく見るとPB2はA/Dコンバーター入力ではないんですね。アナログ値を取り込めないのでF722だとここから電流値を読めません。まあこれはモーター7,8やUART2に割り当てている端子にアサインし直すのも有りだと思うので大きな問題はないでしょう。
(そもそもワタシ電流検出機能を使った事がないのです)

まあいずれにしてもマイコンが入手できないとどうしようもないのですが。
いま再びRSコンポーネンツを見たら入荷予定が11月とか来年とかそんな予定になっていました。やれやれです。

フライトコントローラーを自作してみる。~その13~ Rev2基板動作確認

いよいよ電源を入れて動作を確認します。
まずは実験用電源からUSBコネクタへ、電流制限しながら5Vを印可・・・問題なし。

ではBOOTボタンを押しながらUSBケーブルでPCと接続・・・BetaflightConfiguratorを立ち上げておくとDFUモードに入る筈ですが反応ありません。
調べていくとR1とC7が入替わって取り付けていることに気づきました。
パターン上の近い場所にあったので間違った様です。リセットかかりっぱなしだしクロックも発振しないし、こりゃ動作しませんよね。

R1とC7が入替っていた。動く訳ないっす。

R1とC7を正しく取り付けなおすとDFUモードに入る様になったのでBetaflightのファームウェアを書き込んでリブート。すると今度はBOOTボタンを押していなくてもDFUモードに入る様になってしまいました。
原因はBOOT0端子のプルダウン抵抗R11のはんだ付け不良で、クリームハンダの乗りが少なかった様です。

ここまでで安定に動作モードに入る様になり、BetaflightConfiguratorからも認識されましたが、今度はジャイロ(加速度機能も)が認識されません。基板を傾けても画面上の機体は静止したままなのです。
ここは色々悩んだのですが結局はこれもジャイロの接続不良でMPU-6000を取り付け直したら正常動作となりました。

どうも今回ははんだ付け不良が多いなぁ。Rev1基板の時はもっとリードが細かいジャイロIC(MPU-6500)でも接続不良は無かったのに。。。
やっぱり固まったクリームハンダを溶かして使ったのが原因でしょうか?

まあナンダカンダで正常動作する様になりました。OSDも正常です。
また手持ち数が少ないので取り付けていなかったフラッシュメモリ(BlackBOX用)も取付けてログが取れる様にもなりました。

では5インチ機に積んでホバーリングテスト

特に問題なく飛びます。この後FPVでも問題ありませんでした。

という事でFC完成とします。
この後は処理能力の高いSTM32F405やSTM32F722を試そうと思ったのですが、昨今の半導体不足の為か入手できません。Aliexpressでは何度もキャンセル食らうし、RSやチップワンストップも入荷未定になっています。

STM32F411ならあと数個持っているのですが出来れば早いマイコンで試したいですよね。

フライトコントローラーを自作してみる。~その12~ Rev2基板組み立て

PCBGOGOからRev2基板が届きました。
が・・・ メタルマスクが裏面の分しか入っていません。発注内容を確かめると確かに裏面だけを注文していますね。
毎回なにかミスるなぁ。今回、基板自体は散々見直したんですけどね。

基板の裏/表。メタルマスクは裏面用のみ。

仕方ないのでメタルマスクの表面だけ再発注したところ、1週間せずに到着しました。早い!

メタルマスク表側

とにかく必要なものは揃ったので組立てに入ります。
机の上を片付けて適当な紙を敷きました。

こうやってマスクを被せた上からクリームハンダを塗るつもりなのですが・・・

クリームハンダがだいぶ固くなっています。
これって数か月で劣化してしまうらしいですね。一応冷蔵庫には入れていたのですが。

試しに無水エタノールを吹きかけて練り直してみると柔らかくなりました。
エタノールは何かと使うので、のどスプレーの空き容器に入れておくと便利です。

柔らかくなったのでメタルマスクの上から塗ってみます。


マスクを外すと・・・・なんか多くの箇所で短絡している。

柔らかくしすぎたかな。一旦クリームハンダをふき取ってやり直します。
少しアルコールを飛ばして適当な粘度になったところで塗りなおし(実際は何度かくりかえした)、大体いい感じになったと思うので部品を載せて・・・

リフローした結果がこれ。前回もそうでしたがマイコンのリードにブリッジができています。リフロー条件の問題か?
後から半田ゴテで修正します。

そして裏面も同様にリフローした後。こちらはブリッジは見られませんね。
なおU7と書いてあるところに部品が載ってませんが、これはBlackBOX用のFLASHメモリーを載せる場所で、部品の手持ちが少ないので一通り確認した後に手はんだで載せる予定です。

動作確認編へつづく・・・

フライトコントローラーを自作してみる。~その11~ Rev2基板

ブログを遡って読むと、ほぼ1年前からフライトコントローラー(以下FC)を作り始めていました。当初はFCを何度も壊すので自作して安く済まそうという魂胆でしたが、だんだんとFCを作る事自体が目的になっている気がします。

前回はRev1基板を使って3インチ機でFPVしたところまで書きました。その後5インチ機でも問題なく飛行できる事を確認しています(まあ3インチで飛べりゃ5インチでも飛べますよね)。

HOIHOIFC-F411 Rev1
ツギハギだらけです。パターンも何か無駄に遠回りしているところがあるし

という事で、Rev1基板の不具合修正や改良を加えたRev2基板を作っていきます。

まずはRev1基板の不具合点を振り返ると・・・

・USB信号のプラスとマイナスが入れ替わっていた。
・ブザー駆動トランジスタのピン配置を間違っていた。
・ブザー駆動トランジスタのベース100KΩという大きな抵抗値になっていた。
・DCDCコンバータ周りの配線が長すぎて電圧が揺れていた。
・取付穴位置を30mm角ジャストにしていた(一般的なサイズは30mmジャストではなく30.5mmでした)

当然ながらこれらは修正します。

BEC(DCDCコンバータ)について

バッテリー電圧から5Vを作り出すDCDCコンバーターICについて、前回はMonolithicPower社MP2359を使っていました。これは出力1.2A、最大入力24Vでしたが6セルバッテリーにすると耐圧が足りないのでMP1584に変更します。これだと出力3A、最大入力28Vです。
実際にはショットキーダイオードの3A品はサイズが大きいので2A品を使う事にして定格2A(瞬間的には3Aいける)BECです。
事前にMP1584を試した話はこの辺りに書きました。

左がMP2359,右がMP1584。
MP1584にするとだいぶ大きくなるなぁ。

DFUモード安定化

前回DFUモードに入りにくい(不安定)という問題があり、BOOT0に加えてBOOT1端子もLに落としたりしてみましたが今ひとつすっきりしていませんでした。
でも今回原因が分かった気がします。
STM32マイコンはBOOT1端子=H状態で起動するとブートローダーが立上るのですが、この時USARTやCAN等、幾つかのシリアルポートに信号が来ているかどうかをチェックし、その後USBを見に行きます。 この時USART端子に信号が入っているとその端子からプログラム書き込み信号を待つ様になってしまいます。
STM32F411の場合、USART1と3がブートローダー端子として動作します。そしてRev1基板ではUSART1にSBUS受信機を接続していました。
恐らくこれが邪魔してUSBを受け付ける状態まで進めなかったのだと思います。なのでRev2基板ではSBUS受信をUSART6に変更します。
そういえば市販FCもUSART6にSBUSを入るのが多いと思ったら恐らくこの理由なんだと思います。

ジャイロ

前回InvenSenseMPU6500を使っていました。
どうやらこれだと感度が高すぎて振動対策をしっかりする必要があるらしく、市販FCは大抵MPU6000を使っています。
という事でRev2もMPU6000に変更します。
またMPU6500はリードが0.4mmピッチに対しMPU6000は0.5mmピッチなので実装し易くなる事も期待しています。

左がMPU6500、右がMPU6000。
これも見比べると差が大きい。

マイコン本体

これまで最初に入手した評価基板に合わせてSTM32F411を使ってきたので今回もこのマイコンで進めます。
でもよりクロック周波数が高いマイコンにSTM32F405があり、ピン配置を調べたら1か所だけ変更すれば載せ替え出来そうなので後で試せる様に作っておきます。更にSTM32F722にも同じパッケージの製品があり、これもピン配置がほぼ同じなので使えるかもしれません(でも値段が高いんですよね)。

モーターの数

Rev1では基本の4本に加え予備として2本のモーター出力端子を持っていました。これでヘキサコプターを作れる筈なのです。
そしてRev2では更に2本追加し計8本にするので、その内オクタコプターを試してみたいと思います。

その他

発振子を小型の物に変えたり部品の配置を変更したり、結局かなりの変更量となりました。

最終的な回路図はこれ

そして基板パターン設計(これが一番大変だった)。

部品配置を変更したのでちょっと余裕ができた。
やっぱり基板設計は最初の部品配置が大事ですねー。

基板発注

基板はPCBGOGOに発注します。約500円の格安基板で作る場合、FusionPCBだとソルダーレジストの最小値が0.4mmなのでマイコンやジャイロのピン間隔(0.5mm)に対しては無理があるのです。
これに対しPCBGOGOは0.1mmなので多分大丈夫。(ただし送料が若干高い気がするし、また面付けすると高くなるので用途によって使い分けてます)

つづく・・・

コンデンサーマイク大量

前回に続き、共立エレショップで購入したパーツの話です。
デジットが移転(で一時期閉める)という事で色々なパーツが放出されているのです(もうだいぶ終わった感じですが)。
そこでコンデンサーマイクが200個で¥200円というのがあり、先日の超音波振動子と一緒にポチっていました。
でも冷静に考えるとマイクを使った工作って殆どしないので、これで今後まず一生コンデンサーマイクを買う事は無いと思います。

そして実物。シリコン製のカバーみたいなのを被っています。
電極が3本出ているけどこれも導電ゴムっぽい柔らかい素材なのでハンダ付けはできそうにありません。

何はともあれ動作させ見たいと思いますが、あまり情報がないんですよね。
とりあえずカバーを外してみるとこんな感じ。同心円上に電極があり、外から見ると端子は3極に見えましたが実際には2極です。

ちょっと細かくてやりずらいですが何とかハンダ付けして・・・

とりあえず外側がGND,中心が信号および電源と予想して動作させてみました(もし壊してもあと199個もあるし)。

出力波形。
ちゃんと音を拾っています。

そのままPCのライン入力にいれるとちょっとレベルが低めですが動作しました。オペアンプで少しレベルを上げれば丁度良くなると思います。

もう一度ネットで調べると、どうもホシデン製のこれっぽいですね。
・・・という事で次にマイクを使う事があれば(あるのか?)活用しようと思います。

超音波振動子

みら太さん共立エレショップの超音波振動子(特価¥1000)の事をツィートされており、見てたら自分も欲しくなったのでポチりました。

ドライブ基板とはこんな感じで接続します。

ランジュバン型ボルト締め超音波振動子というもので、ググってみると圧電素子をボルトで締め付ける事で壊れにくくしているらしいです。なので大きなナットがついているネジは振動子を固定する為のものではなく、付属の説明書にも緩めてはいけないと書かれています。

ではどうやって固定するのでしょう?またまたググると超音波洗浄機の例では洗浄槽に接着しているとの記載を見つけました。方法は追々考えるとして、まずは実験的にやってみます。
振動子を上向きにするとぴったり合う穴をJw-cadで書いて・・・

MDFの端材をレーザーで切りました。

この穴に振動子をはめ込んで適当な梱包材の上に乗せてみます。

振動面には細かい金網がねじ止めされており、説明書によるとここに水を垂らせば霧が発生すると書かれています。
ではやってみます。

確かに霧が発生しますね。なおジリジリという音は金網が振動している様です。

金網を外すとジリジリ音はなくなり、あまり霧は出ません。

次に超音波洗浄を試してみます。
金網を外した面に両面テープを貼り・・・

洗浄槽としてタッパーを貼り付けます。
両面テープでいくらかは超音波が遮断されるかもしれませんが、まあやってみましょう。
ところで超音波洗浄としてまず思いつくのは眼鏡ですよね。入れてみました。

その他、ピンセットやネジや・・・

適当なものをぶち込んで・・・

綺麗になったのかというと良くわかりません。
振動でネジが移動していくのでそれなりに超音波が伝わっているのだと思いますが。

ところで説明書に周波数等は不明と書かれているので測ってみます。
両面テープに磁石をくっつけて適当なコイルで検出しようとしましたが何も現れません。コイルの巻き数が少ない気が・・・

そこでクリスタルイヤホンをマイク代わりにしてオシロにつなぐと・・・

こんな波形が出てきました。
周波数は33.5KHz。
なんか中途半端な気もしますが周波数精度にこだわる感じでもないのでこんなものなのでしょう。

という事で、もう少し色々と試してみようと思います。

テレビのリモコンから異音

テレビのリモコンを手に取ったら内部でカラカラという音がしました。
もし金属のネジが外れていてショートするとまずいので開けてみる事にします。

よくあるSHARPのリモコン
10年以上使っています。

異音の原因、電解コンデンサのリードが完全に断線して転がっていました。
リードをL字に曲げて取付けてあったため、長年の振動で金属疲労を起こしたのでしょう。

電源のデカップリング用っぽいコンデンサ。

パターン面側に極性が書いてありました。

パターン側


交換しても良いのですがそのままでも取り付けできそうなので・・・

折れて残ったリードにハンダ付けしました。

ただし、このままだとまた振動で外れる可能性大なのでグルーガンで固めておきます。

ケースに当たりそうなグルーはカッターで削り取ります。

以上で修理完了。というかコンデンサが外れていても動作してたんですけどね。

RotorHazard~その2~

先日作ったRotorHazardを屋外の練習で使ってみました。

庭でTiny機を使って試した時の感触から、シールドケースにこれくらいの窓を開ければいいかなと思ったのですが・・・

思ったより感度が低く、結局は蓋を全開にしてちょうど良い程度です。

こんな感じでデータが取れます。
ほぼ問題なく取れているし取込みミスしたところは後から修正できます。

という事でいい感じに使えているのですが、PCとの間のWi-Fi回線が時々切れます。一度機体をぶつけてから発生している気もしますが単に電波状態の問題かもしません。
RoterHazard(のラズパイ)とPCの間は先日リサイクルショップにて770円で購入したWi-Fiルーターが中継しています。小型なのが気に入ってこれにしたのですがあまり強力そうには見えません。
同じ店にアンテナが3本くらい生えている強力そうなのが約900円であったのでそっちが良かったのかも。。。

家に帰って確認するとケースにペラが思いっきり当たった傷がついていましたがそれ以外に問題はなく、やはりWi-Fiルーターとの距離の問題だと思います。

次回やる時はRotorHazardとPCのなるべく中間付近にWi-Fiルーターを置いて距離を短くしてみます。