2025年06月12日

LaVoixski@Type:1590N1/id-292の組立て(2)

新しい筐体に回路を移行する作業のついでに、プッシュスイッチ2個とリモコン受けのESP32S3を追加した。

が、通電した当初はLCDが表示されず、追加分のスイッチが動作しない。

LCDの動作不良はSDAの断線が判明して、補修後に表示を確認できたが、、、

IMG_20250611_203316971.jpg

トップスイッチは相変わらず動作しない。 こちらも断線を疑ったが、回路は正常に組まれているようだ。

一方で、懸案だったi2c経由のワイヤレスリモコンは正常な動作を確認することが出来た。

IMG_20250611_203316971.jpg

ハード側には不備が認められずプログラム側に問題があることを想定してコードを精査したところ、スイッチの状態をセンシングするためにPITから生成するクロックのアサインを忘れていたことが判明、

Screen Shot 2025-06-11 at 22.43.29.png

コードの修正後に動作を確認できた。

IMG_8155.JPG

残念ながら、Pitch側のオシレータに周波数可動域を超えたドリフトが発生していたので、PitchAnt.側の空きランドに22pFのSMDを2枚 (44pF) 積層して周波数のズレを修正している。

Screen Shot 2025-06-12 at 17.26.09.png

その後、通電後20分程経った辺りでシステムクラッシュからの再起動が発生したが、原因は放熱の不備と思われたので、ボディー背面に巨大な放熱孔を開けた。

IMG_20250612_010715547.jpg

放熱の効果を確認するために明朝まで通電試験を行うことにしたが、1H経過の時点で問題は発生していない。

追記:

その後、何故か正常だったVolume側のオシレータにもドリフトが発生したが、こちらはリファレンス側の調整でなんとか乗り切ることが出来た。

追記2:

意外なことに、1590N1の放熱機能はid-292よりも悪い感触がある。

追記3:

WiFi用の電波穴を開けたが、期待していたよりも電波が回析してくれない。 筐体内部に反射板の追加が必要か?

IMG_20250615_134300270.jpg

追記4:

id-292のボディーに換気口を追加した。

IMG_20250617_182449804.jpg



IMG_20250617_182720552.jpg



IMG_20250617_182804464.jpg



IMG_20250617_182913071.jpg

追記5:

ボディーとUSBプラグの干渉を避けるため、ボディー下側面にスリットを入れた。

IMG_20250619_185640911.jpg


IMG_20250619_185653476.jpg
posted by Yasuski at 03:30| LaVoixski

2025年06月10日

2025年06月08日

2025年05月31日

LaVoixski@Type: 1590N1/id-292の組立て

極初期型のType: id-292 を分解して、ケースを交換する作業を始めたものの、予定していた小型筐体への移植は、オシレータを構成するトランジスタ・アレイとVRのクリアランスが確保できず、計画は失敗に終わった。

IMG_20250503_113103868.jpg

部品のクリアランスを稼ぐには、ソケットを介して取付けていたトランジスタ・アレイを基板に直付するしかなさそうだ。

スペースに余裕があるN1に実装する場合も、VRとの干渉が避けられず、こちらは筐体の方のVRの取付位置を変更した。

IMG_20250501_175214370.jpg

ロータリーエンコーダの取付けは、ワッシャを介せずに直付することになるが、その場合はLCDとのクリアランスを確保するためにオシレータ回路に設置した大容量コンデンサーの撤去した。

試作機のオリジナル筐体にはTopSwitchを2個増設し、サンプリングレートの設定スイッチをロープロファイルなものに交換している。

IMG_20250529_185552754.jpg

IMG_20250529_185607535.jpg

IMG_20250529_185306123.jpg

IMG_20250529_185418135.jpg

IMG_20250529_185455412.jpg

こちらは、id-292筐体を使用した出力規格がadatなモデル。

IMG_20250529_225816988.jpg

暫定で、サンプリングレートの切り替えスイッチをボディー上面に配置している。

IMG_20250529_225801533.jpg

TOTXにも干渉が発生したので、部品の取り付け方向を180度変更することになった。

IMG_20250529_225753263.jpg

上面に配置していたロータリースイッチの取り付け穴を、軸受を使って加工している。

IMG_20250531_151722243.jpg

このadat出力仕様のPCBはオシレータにMPQ6100を使用、FPGAの端子配列は旧い規格に準拠している。

IMG_20250531_162628510.jpg

従って、使用するプログラムのヴァージョンは現行のものよりも旧い6.0(実際は6.99)となっているが、最新のファームウエアを導入する場合は、この基盤に合わせて端子配列を変更しなければならない。 また、ライブラリ上でLCDのRST端子を D5 に書き換える必要あり。

IMG_20250531_162720775.jpg

結局、サンプリングレートの切り替えスイッチを、ボディー下面に再配置することになった。
余った上面の穴は、換気口とした。

IMG_20250531_162730006.jpg

このadat292基板の配線は設計が旧く、LCDの接続をSPI0に想定していなかった。
 
ロータリーエンコーダに接続されているポートD11とD12はLCDとの接続に使用するため、D11→D27 / D12→D31 に配線の修正を行っている。

adat292pinReplacement.png

追記:

i2cポートをD16/D17から引き出した。

i2c292adat.png

スイッチに至る配線の組み合わせは、SW/LEDの端子をD4/41、D14/38、D6/30に結線する。

LCDのRSTはライブラリを書換えてD5に指定すること。

TOTXの配線を間違えていたので、これを修正した。

USBmicroBは3番がD+なので、Top基板の端子の並びは左からGND/D+/D-/VCCとなる。
posted by Yasuski at 19:02| LaVoixski

2025年05月06日

SolenoidBell@部品の配置を再検討する

悩んでいたSolenoidBellの配線に関して。

MCU基板から直接リボンケーブルで配線を引き出して、トップパネルに配置したUSB3コネクタの端子に繋ぐのが正解かもしれない。

IMG_20250505_175729701.jpg

MCUの放熱器をロープロファイルなタイプに換装して、ESP32基板とのクリアランスを確保した。 固定したリモコン基板と有線リモコン端子には予め配線を行っておく。

IMG_20250505_175851051.jpg

LCDパネルとMCU基板の間に配線を通すことで、補機類とのクリアランスを確保できることに気付いた。

部品の配置にも言えることだが、配線を行うルートを思い込みによって制限しているケースが多い。

MCU基板からこのポイントまでリボンケーブルの配線を伸ばして、USB3ポートにコネクタを介して接続する。サービス性を重視して、奥のコネクタは90度にアングルを設定すればよいだろう。

IMG_20250505_175636107.jpg

赤い配線は、USB-C端子から供給された20Vの電源を18V以下にドロップさせるための回路を接続している。 1117系の電源レギュレータICの絶対最大定格は20Vなので2V程のマージンを稼いでおけば十分だろう。

IMG_20250505_175935467.jpg

SolenoidBellの部品を実装する過程に於いて、USB-Cから20Vの電源供給が実証されたので、機能が重複する電源端子の代わりにMidi/Out端子を配置することにした。

IMG_20250506_151316571.jpg

Midi端子には、スペースを省略するためにminiDINタイプのプラグ/ジャックを採用した。 端子は、入力をケースの両側面・出力をケースの底面に配置している。

IMG_20250506_151347791.jpg
posted by Yasuski at 10:58| SolenoidBell

2025年03月01日

LaVoixski@Delay系プログラムのリファインを考える

Deepseek に Python で記述されたコードを Arduino の作法に変換してもらった。

Screen Shot 2025-02-27 at 0.17.37.png

コードの導入を行う前準備として、Delay 系を x2、Modulator 系を x 8まで OverSampling が行えるように Looper にリザーヴしていた EXTMEM を 0x1affff から 0x17ffff まで減らしたが、実用上問題はなさそうだ。 

Screen Shot 2025-03-01 at 2.16.44.png

メモリの配分を変更する作業の過程でメモリの初期化を失敗しているのを発見し、適正な形に修正している。

Screen Shot 2025-03-01 at 2.16.07.png

LFOの波形生成に関しては、Wavetable方式からコード生成に転換するかもしれない。 

Screen Shot 2025-02-27 at 0.17.50.png

OverSampling や Lagrange Interpolation の次数を設定出来るようにしたが、問題は計算時間が間に合うかどうか。

Screen Shot 2025-03-01 at 3.18.48.png

C++ とは微妙に作法が違うのが Arduino のいやらしいところで、AI に添削を投げて手間を省くのが狙いなのだが、次は Arduino から HAL の二度手間感が強い STM32 系列のコーディングやライブラリの変換を依頼してみよう。
posted by Yasuski at 21:58| LaVoixski

LaVoixski@取り込み時間の精度を上げたLooperのテストを行う。



Arpeggiatorのクロックを参照して割出した録音時間に25msを足して大凡の辻褄を合わせた。

Screen Shot 2025-02-28 at 23.10.44.png

Pitch をロックした状態で、Looper の再生スピードを変更している。

posted by Yasuski at 13:57| LaVoixski

2025年02月17日

FPGA基板の組み立てを行う

久々にピギーバックな FPGA 基板を組んだところ、TCXO の取り付けミスに起因する端子の短絡に悩まされることになった。

IMG_0272.JPG

短絡が発生した箇所は GND / OscOut 側のランドで、故障が疑われた TCXO を引っ剥がす際に破損したプリントパターンをジャンパ線で補修している。黄色は VCC、オレンジ色は 27MHz のクロックラインを繋いだ。

IMG_0273.JPG

TCXO の手実装は難易度が高く、失敗すると最悪の場合「電源の短絡」といった重篤なトラブルを誘発することに注意しなければならない。

隣接する VCC のランド TCXO の OscOut のランドがハンダブリッジによって短絡する症状は明らかに自分の設計ミスなので、より確実に部品の取り付けが行える方法、例えば中古のオーブンやアイロンを転用したリフロー方式を試すのが正解だろう。

IMG_0270.JPG

電源ラインの補修を確認するために抵抗値を測定してみたが、FPGA の電源供給は細いプリント配線よりもジャンパの手配線で行うのが電源効率の点で有利なことが判った。 4 層基盤が扱えない場合は、手間が掛かってもこのような手当で対処するのも一つの考え方だ。

追記:

改修した基盤に無事 Firmware を書き込めた。

VirtualBox_WIN10_17_02_2025_21_32_42.png

これで、adc → mcu1 → bus → mcu2 → dac の構成で、FPGA を使った高速シリアルオーディオストリームの実験を行う準備が整った。

Screen Shot 2025-02-13 at 17.56.16.png
posted by Yasuski at 16:06| FPGA

2025年02月16日

XO2に新しいファームウエアの書き込みを行う。

Teensy4.1 のリセット端子にアクセスするために空けた穴が原因で断線が疑われた FPGA 基盤の該当する JTAG ポート / デバイス間の抵抗値を測ると 40mΩ と微妙な数値が出た。 当初はそのままの状態で書き込みを行おうとしたものの、書き込み後のヴェリファイを失敗してしまう。

IMG_0269.JPG

残念ながら半断線状態が確定したので、ジャンパ線で健全な導通を確保した後にファームウエアの書き換えを行った。

VirtualBox_WIN10_15_02_2025_16_30_44.png

MCU に FPGA をビギーバックする過程で、MCU 基盤トップ側の Pin #41 (reset 端子) を立て忘れていた個体を発見、追加で Pin を実装している。

一方、KuwaidanSwitchMatrix を構成していた Xlinx 製の CPLD を Lattice/XO2 に移植する準備を行っている。

VirtualBox_WIN10_14_02_2025_20_32_49.png

既に論理合成を完了していて、外部に設定していたクロックジェネレータの内装を考えている。 Pin のフィッティングが未了だが、

VirtualBox_WIN10_14_02_2025_20_33_01.png

配列を再設定する過程で不具合が出てくるかもしれない。 

別のアプローチとして、I2C 接続で MCU にポートを増やす手法を考えている。 MCU + I2C デバイスの構成は、FPGA を使うよりも回路の規模をよりシンプルに纏められる。
posted by Yasuski at 00:57| FPGA