BOSS DS-1 Distortion


電子工作界隈ではハードウェアの自作販売(同人ハードウェア)をされている人達がいらっしゃるのですが、そこでは基板やアクリル板が筐体となっているものを見かけます。エフェクターでも同様のことをやってみたいと思い今回の製作に至りました。

筐体として強度を得るため、何層にも基板を重ねます。ノイズ対策として、表面と裏面は基板の銅箔面でシールドしますが、側面は基板の取付に手間がかかり過ぎるためなしにします。なのでトゥルーバイパス方式ではシールドされていない経路が長くなり、ノイズ的に不利になります。そこでバッファありのエフェクターが候補になりますが、その中で最も一般的と思われるBOSS DS-1を選びました。

▽回路図(KiCadデータはGitHubへ)

パーツ点数を減らすため、クワッド(4回路入り)オペアンプとし、JKフリップフロップというロジックICを使いました。この4027というICはARIONのエフェクター(ARION SCH-Z)で使用されていたので、その回路をそのまま拝借しています(47nFのコンデンサが使ってある所は0.1μFを1個でも問題なさそうです)。
※元のDS-1回路では250pF、68nFのコンデンサがありますが、あまり使わない値なので別の値を並列にしています。

▽側面・底面写真

底板は4隅にメイン基板とはんだ付けできる部分があり、アースに接続できます。「基板エフェクター」と書いていますが、中間層はアクリル板を使った方が安く済むので、基板のみで構成しているものは最初で最後になりそうです。

下写真のように厚さ1.6mmの基板を16枚重ね合わせています。


中間層はすべて同じ形でも大丈夫ですが、せっかくなので3パターンに分けています。この形状のノブは表側への出っ張りが少なくてもつまみやすいです。ただノブの周りの隙間が狭すぎたので、回すときに引っかかりを感じるときがあります(GitHubのデータは修正済)。

フレームの幅は3mmですが思ったよりも強度があり、普通に踏んで壊れることはまずないでしょう。インプットジャックから最初のバッファまで、最短で到達するようにレイアウトしており、ノイズも特に問題ないと思います。丸い筐体など、いろいろな形を考えてみるのも楽しそうです。

タグ : 自作エフェクター 回路図 歪み 

Owm Pedal H7 ソフトウェア編

自作デジタルエフェクター「Owm Pedal H7」の各設定、内部プログラミングをしていきます。
Owm Pedal H7 ハードウェア編はこちら
内部データはGitHub

<開発環境について>
STM32CubeIDEのバージョン1.1.0ではクロック設定がうまく動作しなかったので、STM32CubeMXを併用していました。バージョン1.2.1では修正されているようで、今のところ問題は起きていません。

main.cファイルを「main.cpp」にリネームすればC++を使うことができます。main.cppに追加記載しているのは下記3か所です。主にuser_main.cppを編集することになります。
 「/* USER CODE BEGIN Includes */」の下→#include "user_main.hpp"
 「/* USER CODE BEGIN 2 */」の下→mainInit();
 「/* USER CODE BEGIN 3 */」の下→mainLoop();

コンパイラの最適化設定を高速動作向けに変更しておきます。
Project→Properties→C/C++ Build→Settings→Tool Settingsタブ
→MCU G++ Compiler→Optimization→Optimization level [Optimize for speed (-Ofast)]



<STM32CubeIDE iocファイル設定>
・ST-LINK接続(結線はOwm Pedal ソフトウェア編参照)
Trace and Debug→DEBUG→Debug [Serial Wire]

・処理高速化のためDキャッシュを有効化
System Core→CORTEX_M7→Cortex Interface Settings→CPU DCache : Enabled

・クロック源として外部水晶振動子を使用
System Core→RCC→High Speed Clock (HSE) [Crystal/Ceramic Resonator]

・動作モード設定(480MHz動作のために必要)
System Core→RCC→Power Parameters→Power Regulator Voltage Scale : Power Regulator Voltage Scale 0

▽SPI設定
タッチパネル付ディスプレイの接続はSPIです。詳細は以前の記事(STM32 SPI接続タッチパネル付ディスプレイを使う)をご参照ください。
※通信速度を上げ過ぎるとタッチ位置をうまく取得できないので、本来はディスプレイとタッチを別々のSPIにした方がよいと思われます。

▽SAI設定
03s_254_1owmHSAI.png
Multimedia→SAI1→SAI A→Mode [Asynchronous Slave] I2S/PCM Protocol にチェック
同SAI B→Mode [Synchronous Slave] I2S/PCM Protocol にチェック
SAI A Data Size : 32 Bits
SAI A FIFO Threshold : Half Full
SAI B Audio Mode : Slave Transmit
SAI B Data Size : 32 Bits
SAI B FIFO Threshold : Half Full

NVIC Settingsタブ→SAI1 global interrupt→Enabledにチェック(2020年3月16日追記)

※STM32H7でDMAを利用するのは大変そうなので、今回は利用していません。
→参考ページ:STM32H7でキャッシュ一貫性を保持したDMA転送(Memory-to-Peripheral)

▽クロック設定図
03s_254_2owmHCK.png
SAIクロックは、オーディオサンプリングレート44.1kHzに対する誤差が少なくなるような設定としました(44.1×2048=90316.8)。

▽全ピン設定図
03s_254_3owmHPin.png



<信号処理>
Owm Pedalと同じように半分ずつデータ処理しようとしましたが、HalfCpltCallbackが呼び出されないようなので、2つのバッファ配列を準備しました(下図ではaとb、ソースコード内では[0]と[1])。
03s_254_4owmHI2S.png
mainInit処理の中で最初のSAI受信呼び出しを行います(HAL_SAI_Receive_IT)。その後、受信完了時にHAL_SAI_RxCpltCallbackが呼び出され、その中で次の受信とSAI送信(HAL_SAI_Transmit_IT)を行います。送受信にFIFOを設定しておかないと、処理が連続的にならず途切れ途切れになってしまうことがあります。遅延時間(レイテンシ)実測値は、ブロックサイズ32で2.5ms程度でした。まとめて信号処理ではなく、1サンプルずつ処理するようなやり方をすればバッファ配列は1つで済むかもしれません。

<SAIエラー対処>
Owm Pedalのときの反省を生かし、オーディオコーデックV4220Mをマイコンからリセットできるようにしました。mainInit処理内でSAIのエラーが起こった場合、リセット処理するようになっています。ただ、今のところエラーが発生したことがなく、正しい処理なのかわかりません。

<スイッチ・タッチ検出>
SAIの割り込みは32ブロックサイズ(約0.7ms)ごとに起こるので、これをタイマーのように利用しています。割り込みが起こるたびにGPIOの状態をチェックし、スイッチ操作やタッチを検出するというやり方です。タッチ検出時はすぐにタッチ位置を算出したいところですが、SPI通信にそれなりに時間がかかるので、タッチ位置関係処理は割り込み内ではなくメインループ処理内に入れています。現状の操作方法は下記の通りです。
・画面上部:パラメータページ切替、長押しでデータ保存(→STM32 内蔵フラッシュメモリへのデータ保存
・各ノブ部:上側で増加、下側で減少(長押しで10ずつ変化)
・画面下部:長押しでエフェクト切替
・スイッチ:エフェクトオン・オフ

<エフェクト処理>
とりあえず6つのエフェクト(オーバードライブ、ディレイ、トレモロ、イコライザ、コーラス、リバーブ)を実装していますが、細かい音質については検討していません。今後別記事で紹介していきたいと考えています。

タグ : 自作エフェクター マイコン 

Owm Pedal H7 ハードウェア編

03s_253_1owmHp.jpg
STM32F405を搭載した「Owm Pedal」に引き続き、STM32H753とタッチパネル付ディスプレイを備えたデジタルエフェクターを製作しました。今回も穴加工はTabby's工房さんにお願いしました。(Owm Pedal H7 ソフトウェア編はこちら

▽入出力・電源部 回路図
03s_253_2owmHas.png
4回路入りオペアンプOPA1679を使用することにしたので、以前と違い入力部のローパスフィルタが2次になっています。デジタル電源は絶縁型DC-DCコンバータで分離するようにしました。コンバータなしにもできるようにしましたが、ノイズ面でよくないと思われるので非推奨です。

▽マイコン・オーディオコーデック部 回路図
03s_253_3owmHds.png
当初はSTM32F722を使っていたのですが、さらなる発展を見据えSTM32H7を使うことにしました。注文時の在庫の関係でSTM32H753にしましたが、STM32H743でも問題ないと思います。今回はオーディオサンプリングレート44.1kHzで、SAIペリフェラルを使います。

▽基板レイアウトについて(KiCadデータはGitHubへ)
上側のマイコン基板は4層にしてみました。JLCPCBの場合、50mm×50mm以内であれば4層でも13ドルで済みます。マイコンは可能な限りピンを引き出していますが、全部は使わないので内側は小さいパッドです。GNDは基本一面プレーンで、基板が2枚に分かれているのでコネクタ部分でGNDを接続することになります。DC-DCコンバータは高さを低くするため寝かせて配置しました。

▽ディスプレイ・スイッチ基板レイアウト
03s_253_4owmHl.png
念のためダンピング抵抗を入れています。消費電流がそれなりにあるので、マイコン用とは別に3.3Vを準備しました。ディスプレイの詳細は以前の記事(STM32 SPI接続タッチパネル付ディスプレイを使う)をご参照ください。下写真のように基板を合体させます。
03s_253_5owmHi.jpg

▽周波数特性・ノイズ
ZOOM MS-50Gと特性を比較しました。MS-50GはParaEQを6個並べて+20dBになるよう調節しています。ノイズは1kHz正弦波入力時のものです。
03s_253_6owmHf.gif
Owm PedalはMS-50Gより高域のノイズが多いように見えますが、MS-50Gはもともと高域が下がっているので、それを加味するとほぼ同じノイズレベルといってよいと思います。Owm Pedal H7では1dB程度ノイズが多いですが原因はよくわかりません。基板設計としては、部品配置に注意すればOwm PedalのようにGNDを1面プレーンにしても問題ないとわかりました。入出力のフィルタも、簡単な1次ローパスフィルタで充分かもしれません。

タグ : 自作エフェクター レイアウト 回路図 マイコン 周波数特性 

Nuzz

02_245_1nuzzp.jpg
「Nutube自作エフェクターコンテスト」第二弾に向けて製作したエフェクターです。読み方は「ニャズ」で、一応肉球のような筐体デザインとなっています。

第一回コンテストでアイデアが出尽くしているのでどのような回路にするか悩みましたが、誰もやっていなさそうなグリッド接地回路を採用することにしました。Nutubeでのグリッド接地回路では、入力をフィラメントに加えるしかありません。フィラメントは過大入力により焼き切れてしまうため、必ずクリッピングが必要です。そういうわけでハードクリップした音を使うファズを作ろうと考えました。

▽回路図
02_245_2nuzzs.png
<Nutube周辺>
フィラメントへの入力はなぜか片方だけでは出力が低くなったので両方にしています。R9~R11は最も増幅率が高くなるように調節しました(R9は通常トリマーにする必要があると思います)。それでもNutube部分では5倍程度の増幅率なので歪ませるのは無理で、ただ通すだけという形になってしまいました。フィラメントの電圧は実測0.9V~1.2V程度と低いですが問題ないようです。いろいろと実験していたので、寿命が縮んだり動作がおかしくなっている部分があったりするかもしれません。オペアンプは念のため出力電流に余裕があるNJM4556Aを使用しました。

<クリッピング>
ファズはあまり作ったことがなく、ファズっぽい音というのは何なのかイマイチわかりません。Fuzz Face Analysisというページを見てみると、Fuzz Faceはかなり非対称に偏った歪みで、デューティ比が極端な矩形波となっています。おそらく偶数次倍音が多く出ているでしょう。これを踏まえ、クリッピングは片側をショットキーダイオード1個にするという極端なものとしました。半波整流にすることも検討しましたが、あまり使いやすいといえる音ではないと思います。デューティ比が極端な矩形波については、オペアンプを使って実現させるのは難しく、再現に至りませんでした。

▽レイアウト
02_245_3nuzzl.png
HAMMOND1590Aサイズに詰め込みました。Nutubeはスカスカのスポンジで挟み込んでいます。スイッチング時のマイクロフォニックノイズはNuverdrive+より少なめでした。

周波数特性については、低域はカットせず高域をかなりカットするような形です。ZOOM MS-50Gに入っているTB MK1.5(おそらくトーンベンダー)と比較すると似たニュアンスの音でしたので、それなりにファズっぽさというものを出すことができていると思います。

タグ : 自作エフェクター レイアウト 回路図 歪み 波形・倍音 

True Bypass Relay Module

02_244_1TBRMp.png
秋月電子にある特価ラッチリレーEA2-5TNAGを利用したトゥルーバイパスモジュールです。以前解析したmonomonster Relay Bypass Moduleの代わりとして考えました。マイコンを使った方が小型で長押し等に応用が効くという利点があるのですが、プログラミングが必要なのはややハードルが高いかと思います。別な方法を検索してみるとロジックIC(4069)を使ったものを見つけたので、そのまま利用することにしました。
参考ページ→Using a latching relay driver for true bypass

▽回路図
02_244_2TBRMs.png
秋月電子では在庫限りの部品が多いのでご注意ください。おそらくC8(10μF)はなしでも大丈夫だと思います。

基板データはGitHubに公開しています。当初ラッチリレーのピン配置の表裏が逆というミスがあったので、公開しているデータはエラー修正済のRev.B基板です。エラー修正前のRev.A基板をお持ちの方は必ずREADME.txtの内容をご確認下さい。HAMMOND1590Bの場合は基板を立てて入れられないので、次に基板発注することがあればもう少し横長に修正するかもしれません。

スイッチングノイズをオシロスコープで確認しました。
02_244_3TBRMn.png
一般的な黒い3PDTスイッチと比較すると高い音のノイズですが、音量は同程度のようです。スイッチ交換がしやすい以外の利点がないように思われますが、BOSS筐体に使うような場合には最適ではないかと思います。

タグ : 回路図 自作エフェクター 

管理人

管理人

自己紹介のページ
記事一覧
Twitter
GitHub

ブログ内検索
カテゴリー
タグ

自作エフェクター   レイアウト   回路図   歪み   周波数特性   マイコン   PureData   波形・倍音   RaspberryPi   エレキギター   アンプ   歪率   エフェクター自作方法   エレキベース   真空管   コーラス   ピックアップ   静音ギター   ヘッドフォンアンプ   擬似ギター出力   市販エフェクター   アコースティックギター   ブースター   コンデンサ   ソロギター   ポールピース   イコライザー   コンプレッサー   ビブラート   フェイザー   トレモロ   TAB譜   ディレイ   DIY_Layout_Creator   ワウ   オートワウ   バッファー   

最近の記事
最新コメント
Twitter
RSS
メールフォーム
当ブログに関するお問い合わせはこちらからお願いします。 ※FAQ(よくある質問)もお読みください。

お名前
メールアドレス
件名
本文

アクセスカウンター