MOSリレーバイパス

ソリッドステートリレーを利用したエフェクトのバイパス方法をバッファーなしで検討していました(別記事参照)が、音漏れやポップノイズの問題が解決できなかったため結局バッファードバイパスにすることにしました。BOSS筐体BD-2に採用しています。あまり利点がないバイパス方式となってしまいましたので、再度作ることはなさそうです。素直にラッチングリレーを使った方がよいでしょう。
▽回路図

秋月電子で安売りしている光MOSFET PS7200K-1Aを使用しましたが、フォトリレーTLP222Aでも問題ないと思います。エフェクト側の入力部分の回路によってはバイパス音に影響が出るので、本来は入力の分岐前にもバッファーを入れた方がよさそうです。バイアス電圧Vbはエフェクト回路から引っ張ってきています。
▽レイアウト

▽Arduinoスケッチ(ATtiny13A用)
#define SW_PIN 3
#define BYPASS_PIN 0
#define FX_ON_PIN 1
#define LED_PIN 4
int sw_value = 0;
long sw_count = 0; // intだとオーバーフローするかも
boolean fx_state = false;
void setup() {
pinMode(SW_PIN, INPUT_PULLUP); // 内部プルアップ抵抗有効
pinMode(BYPASS_PIN, OUTPUT);
pinMode(FX_ON_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(BYPASS_PIN, HIGH); // 初期値はバイパス
digitalWrite(FX_ON_PIN, LOW);
digitalWrite(LED_PIN, HIGH); // 電源オン時LEDが2回点灯
delay(300);
digitalWrite(LED_PIN, LOW);
delay(300);
digitalWrite(LED_PIN, HIGH);
delay(300);
digitalWrite(LED_PIN, LOW);
}
void loop() {
sw_value = digitalRead(SW_PIN);
if (sw_value == LOW) {
sw_count += 1;
} else {
sw_count = 0;
}
if (sw_count == 10) { // 10msスイッチ押すとエフェクト切替(チャタリング対策)
fx_state = !fx_state;
if (fx_state) {
digitalWrite(FX_ON_PIN, HIGH); // HIGHにするピンの順番が逆だとポップノイズあり
delay(2); // これがないとポップノイズあり
digitalWrite(BYPASS_PIN, LOW);
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(BYPASS_PIN, HIGH);
delay(2);
digitalWrite(FX_ON_PIN, LOW);
digitalWrite(LED_PIN, LOW);
}
}
delay(1);
}
チャタリング対策の参考ページ→Arduinoの基礎 – スイッチのオン・オフを読み取るATtiny13Aの使用方法はこちらの記事へ
RasPd3 ハードウェア編

今まで製作したRaspberry Pi搭載エフェクター(RasPd1、RasPd2、RasPd4)は単一エフェクトのみしか使えませんでしたが、今回のRasPd3は複数のエフェクトを同時に使えてパッチ切替もできる、いわゆるマルチエフェクターを想定したものです。当初はオーディオインターフェースにCS4272を使うつもりでした(別記事参照)が、うまくいかずWM8731を使っています。しかしながらCS4272を使ったオーディオカードTeensy Super Audio Board(SAB)は全データが公開されているので、大いに参考にしました。
▽回路図

ΔΣ型ADコンバータでは入力のフィルタは簡易なものでよいらしいので、RasPd4より簡略化しました。ギター入力はモノラルですが、WM8731のLR入力を逆位相にして内部プログラム(下図)で足し合わせるという差動入力っぽいことをしています。

ノイズ対策として、絶縁型DC-DCコンバータやデジタルアイソレータ(Si8662BB、Si8602AB)を用いてRaspberry PiとGNDを分離しました。スイッチについてはチャタリング対策の抵抗とコンデンサを入れています。ロータリーエンコーダは高速回転させるかもしれないので、コンデンサの容量が少なめです。
2.2インチLCDディスプレイモジュールはAmazonで購入しました。SAINSMARTの商品ページのManualに回路図が入っています。回路図中に3.3Vと記載がありますが、実際は3.0Vのレギュレータが使われていました。LEDピンへ抵抗を挿入すると明るさが減り、消費電力を抑えられます。Raspberry Piでの使用方法についてはadafruitのILI9341 TFT display用ページの内容で問題ありませんでした。
▽レイアウト(KiCadのデータはこちらへ)


WM8731のアナログGNDとデジタルGNDは分離せず、裏面のベタGNDができるだけ一面プレーンになるようにしています。スイッチ類の基板はユニバーサル基板で作成しており、細い線がジャンパーです。ディスプレイモジュールのSDカードソケットは配線の邪魔なので取り外しました。ケースはタカチTD10-15-4Bです。
ノイズについては、劇的ではないですが少しは減少したようです。入力が0.5Vrmsぐらいで歪率1%となりますが、ブースターとして使うことはないので大丈夫でしょう。内部プログラムについてはまだ全然できていません。今までにない規模のプログラミングとなるので、相当時間がかかると思われます。
タグ : 自作エフェクター レイアウト 回路図 RaspberryPi
Crosstortion

東京エフェクター「第5回 エフェクタービルダーズ・コンテスト」に向けて製作したエフェクターです。コンテストのテーマは「ハイゲイン」だったのですが、ちょうど回路を考えていた2017年10月頃はBig Muffに注目が集まっていたので、なんとなくBig Muffをベースにすることにしました。また、今回は今までやったことがなかった「クロスオーバー歪み」をコントロールしています。ペダル名は単にcrossover distortionを略したものです。
ルックスもコンテストでは重要となりますが、私にはセンスがないので評価は低いでしょう。ポット周りの図形のカドが目盛りになっているというのをやってみたかったので、角ばったデザインにしました。それと、ウケがいいかもしれないという安易な考えで、適当に黄金比を取り入れています。シールは「手作りステッカー メタリックシルバー」というものを使いました。
▽回路図

オペアンプばかりですが、ICBM(オペアンプマフ)ではありません。トーン回路や周波数特性はトランジスタを使った現行Big Muffとほとんど同じで、歪み部分は個人的に好きな「オペアンプで歪ませる」というものとなっています。参考ページ→Big Muff Pi Analysis
コンデンサは3.9nFを持ってなかったので3.3nFにしたり、まとめ買いしていた10μFをやたらと使っていたり等、ある意味Electro-Harmonix精神も盛り込んでいます。
真ん中あたりの4つのオペアンプとLM317がクロスオーバー歪み関連です。こちらのページの図11と同じ回路で、理想ダイオード回路にLM317で調節した電圧を加算しています。同ページ図12のように波形の半分以上をバッサリとクリップしますが、プラス側とマイナス側を足し合わせることで擬似的にクロスオーバー歪みがある音を生み出しています。小音量の音はクリップする電圧値を超えられず切り捨てられるため、ノイズゲートとしても働きます。倍音については、奇数次倍音のみが出るようです(各クリッピングと倍音の記事最下部に掲載)。コンテスト用の個体は、一応トリマーを追加して最小電圧値を細かく調節しました。
あまり回路検討にかける時間がなかったので、後から見ると粗がある感じがします。入力部のICを変えれば全部5V駆動でよさそうです。あとクロスオーバー歪みを扱うなら素直にトランジスタを使う方がもっと簡単だったんじゃないかと思います。
▽レイアウト

▽PCB(横86.4mm縦40.6mm)

歪みエフェクターは筐体が大きい方が印象に残る気がするので、余裕を持ってHAMMOND 1590BBを使いました。基板は秋月電子にある角型ランドのもので、見た目はなんだかカッコイイですが少し薄い(厚さ1.2mmぐらい)です。
音についてはたぶんBig Muffっぽくなっていると思います。まぁ私は自作ラムズヘッドぐらいしかビッグマフを弾いた経験がないのでよくわかりません。倍音も測定しましたが、少し奇数次倍音が多く普通の歪みという感じでした。ハイゲインだとクリッピングの違いはあまりわからなくなると思います。肝心のクロスオーバー歪みについては、なんともいえないジュワーという感じが付加されます。ゲートファズのようなブチブチ系にもできますが、正直私はあまり好きでなかったです…
---以下2018年3月19日追記---
「第5回 エフェクタービルダーズ・コンテスト」第一次審査の点数を記載しておきます。
コンセプト:17 サウンド:16 ルックス:16 操作性:16
総合点:65 21台中11位
NJM2073ギターアンプ

ミニギターアンプとしてはLM386を使用したスモーキーアンプが有名です。私も自作したものを使っていたのですが、大きい音を出そうとするとどうしても歪んでしまいます。そこで、ある程度大きいクリーン音が出るミニアンプを自作することにしました。一応ミニサイズということで、卓上に置けて9V電池駆動可能なものにします。
まず電力効率がよいD級アンプを考え、PAM8408というICを試しました。しかしギターを繋いでみると、過大入力時にミュートがかかるらしく音が途切れ途切れになりうまくいきませんでした。他にもいろいろとD級アンプICはありますが、新たに購入するのが面倒だったので、昔何かのついでに買っていたNJM2073Sを使うことにしました。
NJM2073は、LM386と同程度のゲイン・出力の回路が2つ入っているパワーアンプICです。TDA2822という互換品もあります。BTL動作だと9V、8Ω負荷で3W以上出力がありそうです。スピーカーは出力に余裕があるものがよいだろうと思い、秋月電子の8Ω10Wのものにしました。
▽回路図

簡単なオーバードライブ回路を前段に入れてスイッチで切り替えるようにしています(※トーンを上げすぎると発振するかもしれません)。プリアンプ部分は単なるフェンダー型トーン回路です。NJM2073の電圧利得が高い(+44dB)ため、ゲインはあまり上げなくても大丈夫だと思います。
パワーアンプは今後変更するかもしれないので別基板にしました。通常、出力には発振防止のための抵抗とコンデンサ(Zobelフィルタというらしい)を入れます。データシートでは抵抗が1Ωですが、歪みやすい気がしたので10Ωにしました。コンデンサはありあわせの100nFですが問題ないようです。NJM2073「S」(SIP9ピンパッケージ)は生産中止品で、「D」(DIP8ピン)とピン番号が違うので間違えやすいです。
▽レイアウト

▽PCB

ケースはタカチMB-3(90×60×125mm)です。スピーカー部分の穴あけ精度はイマイチですが、円状なのでそれほどズレが気になりません。意外と内部スペースがあるので、スピーカーの配置は真ん中でもよかった気がします。
どのくらいの音量かマイク録音して調べてみました。クリーン音のまま出せる音量は、ドレッドノートサイズのアコギをストロークしたときと大体同じくらいでした。歪むくらい音量を上げていくと、ケース自体が振動してジワジワ移動し始めます。大きい音を出すには、やはり頑丈なケースが必要となるようです。まぁそれなりの音量でクリーン音が出すという目的は達成できました。今後テスト用アンプとして使っていく見込みです。
RasPd2 ハードウェア編

Raspberry Pi Zeroを使い、コンパクトなデジタルエフェクターを作りました。今回はLCDがなく、単機能エフェクターとして使うことを想定しています。オーディオインターフェイスはUSBではなくI2Sで通信するとレイテンシーが低減できるようで、WM8731というICを使用しました。レイテンシー実測値は7msとほとんどリアルタイムに近いレベルとなりました。
WM8731については、別記事に記載しています。
→WM8731 設定メモ
Raspberry Pi Zeroでもほとんど設定は同じですが、ADC High Pass Filterはオンにするとノイズが増えたためオフにしました。音量は Master 56(-9dB) Capture 87(+9dB) です。
SN比を稼ぐため、RasPd1のときには外部回路で入力前増幅→出力後減衰を行っていました。WM8731のデータシートを見てみると、IC内部でアナログな増幅・減衰ができるため外部回路は入力バッファのみとしました。電源電圧が3.3Vと低いですが、+9dB(2.8倍)程度までは歪まないだろうと思います。
▽回路図

出力のコンデンサが100uFと大きい値なのはイヤホンを直接繋ぐためでしたが、誤って大出力になったとき危険なのでイヤホンでのテストはしない方がいいでしょう。各スイッチには少し面倒ですがチャタリング防止の抵抗やコンデンサを入れています。とりあえずたくさんコントロールを準備したという感じで、割り当てをどうするかは未定です。WM8731への接続に入っている抵抗(ダンピング抵抗)はありあわせの22Ωにしましたが、役割はあまり理解していません。
ノイズ対策のため、電源・GNDは4系統に分かれています。
[アナログ9V電源・GND(バッファ用)]
↓
[デジタル5V電源・GND(Raspberry Pi用)] → [アナログ3.3V電源・GND(WM8731用)]
↓
[デジタル3.3V電源・GND(WM8731用)]
▽レイアウト

▽PCB(横111.8mm縦73.7mm)

あまり見慣れない水晶振動子というパーツがありますが、ケースが金属なので基板から少し浮かせて取り付けています。周波数の値はそんなに高精度のものでなくていいようです。WM8731には、シングルタイプのピンソケットを使うことでICの下にパーツを配置できるようにしています。レイアウト上部の基板間の配線は、着脱式にして後からの修正をしやすくしました。また、GND等のいくつかのジャンパーは基板の裏側(半田面)で配線しています。
今回もノイズには悩まされました。まずサーというホワイトノイズがRasPd1より多く出ていました。Raspberry Pi自体から電磁波的ノイズが出ているのかと思いアルミホイルでシールドしてみましたが効果なしでした。pedalSHIELD DUEのようにRチャネルに位相反転した入力を入れて、ノイズキャンセルしようとしましたがこれもダメでした(LとRでノイズの乗り方が違うようです)。結局電源を分離すると解決したため、ノイズ源はWM8731用アナログ電源だったようです。
その他にもギターを繋いだときに少しキーン&プツプツというノイズが出ていました。RasPd2内蔵のバッファを一旦外し、別電源のバッファを前段に繋いだ場合はほとんどノイズが消えたため、電源とGNDの取り方が原因と考えました。試行錯誤の結果、絶縁型のDC-DCコンバータを使用し、その出力部に各GNDを集めるというレイアウトになっています。
下写真のように基板を2枚重ねにしています。

ケースは高さがあるHAMMOND1590BSです。発熱が心配ですが、裏フタをあけた状態ではCPU温度50℃程度で安定しているようです。そのうち無線接続可能なRaspberry Pi Zero Wに変更し、改めて長時間使用時の安定性を調べようと思います。
---以下2017年12月24日追記---
現状以下の問題点があるので、作り直す必要がありそうです。
・微妙にノイズが残っている
・ダイナミックレンジが狭い
・たまにビーというエラー音のような音が入る
ソフトウェア編へ プログラミング編へ
タグ : 自作エフェクター 回路図 レイアウト RaspberryPi PureData