2019年11月05日
バックパネルに換気口を開ける
posted by Yasuski at 16:21| LaVoixski
チューニング機構の改良
オシレーターのチューニング後に印加する「デジタル補正値」をEEPROMにストアする案。
現状は固定されたオフセットの近似値(というか妥協値)からロータリーエンコーダーの操作によって足し引きを行う仕様だが、機体(アンテナ)特有のドリフト値をこの機能によって相殺出来るはず。


ピッチ/オシレーターのチューニング・モード(Green/Blue)でUpperEncoderを長押しすると、設定したオフセット値がプリセットされる。


一度登録を行えば、次の立ち上げ時の補正量が小さくなる筈だ。
現状は固定されたオフセットの近似値(というか妥協値)からロータリーエンコーダーの操作によって足し引きを行う仕様だが、機体(アンテナ)特有のドリフト値をこの機能によって相殺出来るはず。


ピッチ/オシレーターのチューニング・モード(Green/Blue)でUpperEncoderを長押しすると、設定したオフセット値がプリセットされる。


一度登録を行えば、次の立ち上げ時の補正量が小さくなる筈だ。
posted by Yasuski at 05:59| LaVoixski
2019年11月04日
BIAS電圧の変更が波形に与える影響を視認する
アナログ出力回路のBIAS電圧を切り替えた場合に生じる波形の変化をオシロスコープで観測した。
参照しているのは、左手によってTransitionがコントロールされてた波形。
再生できない場合、ダウンロードは🎥こちら
元の波形は出音のレベルを上げるにつれて上側がクリップする半波ディストーションだが、BIAS電位を電圧の1/2からグランド側にズラすことで、下側の波形をクリップさせる効果がある。
聴感上の効きはマイルドだが、波形の状態から倍音構成の変化が確認できる。
参照しているのは、左手によってTransitionがコントロールされてた波形。
再生できない場合、ダウンロードは🎥こちら
元の波形は出音のレベルを上げるにつれて上側がクリップする半波ディストーションだが、BIAS電位を電圧の1/2からグランド側にズラすことで、下側の波形をクリップさせる効果がある。
聴感上の効きはマイルドだが、波形の状態から倍音構成の変化が確認できる。
posted by Yasuski at 15:10| LaVoixski
100mm規格AudioBoard(Yellow)のトラブルシューティング
100mm規格のAudioBoardはHammond1455N2201にスロットインする設計だったが、


イマイチ動作が不安定で、稼働実績は試作3号機のみだった。

後日、アナログ回路をリファインしたボード(黄色)を再設計したが、

状況が更に悪化してオーディオに妙なノイズが乗っている。 結果、1455N2201規格の筺体には75mm幅のAudioBoardを使用せざるを得なかった。



数カ月間の放置の後、100mm規格のAudioBoardから妙なノイズが発生する現象に対処するため、昨夜遅くから検証作業を始めたが、これが期せずして徹夜仕事になってしまった。

指で空きランドを押さえると何故かノイズがマシになることから「物理原因」を疑ったものの、断線等の不具合はないようだ。 次に、電源ラインや音声ラインをオシロスコープで観測したところ、何れも盛大にノイズが乗っていた。 ラッチアップ等のチップの故障を疑ってDACやロジック・チップを引っ剥がす荒療治を行った甲斐もなく、パリパリというノイズがどうやっても消えない。
仕方がないので予備の基板を新たに組んで実験したところ、全く同じ症状が発生した。

これで基板の設計ミスが確定する。
今回の実験ではDACの実装を必要最小限の1個に留めているため、オーディオ系チップがノイズ発生の原因である可能性は低い。

特に怪しいのはノイズが乗っている電源周りだが、試しに電源ラインに入れていたフィルターをバイパスしたところ、

ノイズはあっさりと消滅した。

電源ラインのフィルターに挿入していた「L」がノイズの発生元とは全くの本末転倒なので、今一度回路を精査する必要がある。

もしかすると、ID_292で多発している事故は「L起源で発生した誘導電流」の仕業かもしれない。

イマイチ動作が不安定で、稼働実績は試作3号機のみだった。
後日、アナログ回路をリファインしたボード(黄色)を再設計したが、
状況が更に悪化してオーディオに妙なノイズが乗っている。 結果、1455N2201規格の筺体には75mm幅のAudioBoardを使用せざるを得なかった。
数カ月間の放置の後、100mm規格のAudioBoardから妙なノイズが発生する現象に対処するため、昨夜遅くから検証作業を始めたが、これが期せずして徹夜仕事になってしまった。
指で空きランドを押さえると何故かノイズがマシになることから「物理原因」を疑ったものの、断線等の不具合はないようだ。 次に、電源ラインや音声ラインをオシロスコープで観測したところ、何れも盛大にノイズが乗っていた。 ラッチアップ等のチップの故障を疑ってDACやロジック・チップを引っ剥がす荒療治を行った甲斐もなく、パリパリというノイズがどうやっても消えない。
仕方がないので予備の基板を新たに組んで実験したところ、全く同じ症状が発生した。
これで基板の設計ミスが確定する。
今回の実験ではDACの実装を必要最小限の1個に留めているため、オーディオ系チップがノイズ発生の原因である可能性は低い。
特に怪しいのはノイズが乗っている電源周りだが、試しに電源ラインに入れていたフィルターをバイパスしたところ、
ノイズはあっさりと消滅した。
電源ラインのフィルターに挿入していた「L」がノイズの発生元とは全くの本末転倒なので、今一度回路を精査する必要がある。

もしかすると、ID_292で多発している事故は「L起源で発生した誘導電流」の仕業かもしれない。
posted by Yasuski at 14:38| LaVoixski
2019年11月01日
Teensy4.0にコードを移植する(続き)
昨夜からプログラムのサブルーチンの記述箇所を入替える等、手を尽くしているのだが、何をやっても全く歯が立たない。

結局、SDカードからデータを読み込むサブルーチンのうち、容量が大きなパートを排除して、

ようやくUSBmodemが稼働状態になるという、なんだかよくわからない現象なのだが、

これはもうIDEのバグで確定させてもよいのではないか。


追記:
Teensy4.0では、IMXRT1060のマニュアルによると、周波数を検知するためのカウンターの外部入力が、GPT2_CAPTURE1の1本(GPIO_AD_B1_03・D15/ALT8)しか取り出されていないことが判明。
代替案として、アナログ端子を代用する方法が考えられるが、その場合はVolumeAnt側を扱うことになるだろう。
追記2:
RotaryEncoderの読み出しを、AudioClockDrivenのサブルーチンに移動した場合に、USBmodemが正常に作動する模様。 ちなみに、コンパイラのオプティマイザーはSmallest以外アウトだった。

ただし、これはオーディオクロックを印加していない状況のそれなので、実質的な進展は無いかもしれない。
追記3:
引き続きハードウエアの調査を行っているが、FLEXPWM4というのが使えそうだ。分解能は16bitなので問題なし。元ネタはこちら↓。
https://github.com/…/…/blob/master/util/FreqMeasureCapture.h
Example がヒントになったが、シングルではなく複数のチャンネルが存在するようなので、これらを使えばFTMの代わりにPitch/VolumeのCaptureに応用できるかもしれない。

とりあえず、初期化とフリーラン、及びCaptureを行うサブルーチンの設置には成功している。(動作の保証はなし)

結局、SDカードからデータを読み込むサブルーチンのうち、容量が大きなパートを排除して、

ようやくUSBmodemが稼働状態になるという、なんだかよくわからない現象なのだが、

これはもうIDEのバグで確定させてもよいのではないか。


追記:
Teensy4.0では、IMXRT1060のマニュアルによると、周波数を検知するためのカウンターの外部入力が、GPT2_CAPTURE1の1本(GPIO_AD_B1_03・D15/ALT8)しか取り出されていないことが判明。
代替案として、アナログ端子を代用する方法が考えられるが、その場合はVolumeAnt側を扱うことになるだろう。
追記2:
RotaryEncoderの読み出しを、AudioClockDrivenのサブルーチンに移動した場合に、USBmodemが正常に作動する模様。 ちなみに、コンパイラのオプティマイザーはSmallest以外アウトだった。

ただし、これはオーディオクロックを印加していない状況のそれなので、実質的な進展は無いかもしれない。
追記3:
引き続きハードウエアの調査を行っているが、FLEXPWM4というのが使えそうだ。分解能は16bitなので問題なし。元ネタはこちら↓。
https://github.com/…/…/blob/master/util/FreqMeasureCapture.h
Example がヒントになったが、シングルではなく複数のチャンネルが存在するようなので、これらを使えばFTMの代わりにPitch/VolumeのCaptureに応用できるかもしれない。

とりあえず、初期化とフリーラン、及びCaptureを行うサブルーチンの設置には成功している。(動作の保証はなし)
posted by Yasuski at 15:22| LaVoixski
2019年10月31日
Teensy4.0が届いた
今日は昼過ぎに届いたTeensy4.0を試しているが、これがなかなかの難物で先が思いやられている。
まず3.6からコードの移植を試みているが、当然ながらコンパイルはすんなりとは通らない。
不具合の原因は、
1)TimerOneのconfigファイルの更新を失念

2)D40番台のアドレスにないPinの設定を行う
3)ハードウエア互換のないFTMの設定
の3点で、互換性のない機能を殺した結果、書き込みを行うことができた。

が、コンパイル自体は通ったものの、書き込み後にUSB_Serialが認識されないために、立ち上がりのレポートが読めず、MCUが正常に稼働しているのか状態が全く判らない。
怪しげなEEPROMの機能を殺しても状況に変化はない。
void setup() {
Serial.begin(BAUD);
delay(500);
Serial.println(" checkPointCharie0000.");
と、電源投入後のハードウエアの立ち上がりで確認のための通信を行うコードを追加してみたが、そもそもUSBシリアルが認識されないOfflineの状態なので、これは意味がなかった。

シリアル通信機能を単独でテストした場合は問題はなかったので、ハードウエア起因のトラブルではないことが確定している。
つまり、プログラムの何処かに問題があるのだが、何故にsetupの時点で通信不能となるのか?その理由が判らない。ちなみに、USBデバイスとしては認識されている模様。
まず3.6からコードの移植を試みているが、当然ながらコンパイルはすんなりとは通らない。
不具合の原因は、
1)TimerOneのconfigファイルの更新を失念

2)D40番台のアドレスにないPinの設定を行う
3)ハードウエア互換のないFTMの設定
の3点で、互換性のない機能を殺した結果、書き込みを行うことができた。

が、コンパイル自体は通ったものの、書き込み後にUSB_Serialが認識されないために、立ち上がりのレポートが読めず、MCUが正常に稼働しているのか状態が全く判らない。
怪しげなEEPROMの機能を殺しても状況に変化はない。
void setup() {
Serial.begin(BAUD);
delay(500);
Serial.println(" checkPointCharie0000.");
と、電源投入後のハードウエアの立ち上がりで確認のための通信を行うコードを追加してみたが、そもそもUSBシリアルが認識されないOfflineの状態なので、これは意味がなかった。

シリアル通信機能を単独でテストした場合は問題はなかったので、ハードウエア起因のトラブルではないことが確定している。
つまり、プログラムの何処かに問題があるのだが、何故にsetupの時点で通信不能となるのか?その理由が判らない。ちなみに、USBデバイスとしては認識されている模様。

posted by Yasuski at 20:35| LaVoixski
PogoPinの実装について
手持ちの部品(結構な数の貰い物)と新たに購入する機械部品を組み合わせる場合、どうしても現物合わせになって仕舞う。
PogoPinとは中空端子にスプリングが内装された接続用のpinで、ハンダ付けが難しい場所に設定された端子にスプリングの圧力で導通を保つための部品だ。

購入したPogoPinの長さは6mmで、これを丸ピンで嵩上げして使用する。 とりあえず、在庫する100本はこのやり方で組むことになる。

ちなみに、PogoPin単独で必要となる長さの実測値は9.5mmから10mmだったが、10mmという規格は手に入れ難いようだ。 9.5mmに超小型のワッシャーを噛ませてタッパを稼ぐ方法を採るのが現実的だろう。
尺が足らないPogoPinにユニバーサル基板を使った嵩上げを行ってみた。

部品の転用は意外と効くもので、当面の間は6mmのPogoPinで組んだ端子のクラスタを使ってTeensy4.0の背面にあるpinに対応することになった。 ただし、基台に端子をしっかりと固着させるには両面基板の使用が望ましい。

丸ピンソケットを実装した基板専用にPogoPinを設置するための治具をDIPソケットとユニバーサル基板を組合せて製作した。

丸ピンソケットはシルエットが低いために、pin単体では調整が難しい。

ボード裏面の端子は0.1吋規格の正中線からズレているので、コンタクトポイントに合わせてpinの先端に0.05吋程のオフセットを掛ける必要がある。

ボックスタイプのソケットの場合、シムが2枚重ねで丁度良さそうな塩梅だった。

このような手間のかかる手法で量産体制に入れるかどうか微妙なところだが、その場合に不要な工程を省けるように試作の段階から考えておく必要がある。
PogoPinとは中空端子にスプリングが内装された接続用のpinで、ハンダ付けが難しい場所に設定された端子にスプリングの圧力で導通を保つための部品だ。
購入したPogoPinの長さは6mmで、これを丸ピンで嵩上げして使用する。 とりあえず、在庫する100本はこのやり方で組むことになる。
ちなみに、PogoPin単独で必要となる長さの実測値は9.5mmから10mmだったが、10mmという規格は手に入れ難いようだ。 9.5mmに超小型のワッシャーを噛ませてタッパを稼ぐ方法を採るのが現実的だろう。
尺が足らないPogoPinにユニバーサル基板を使った嵩上げを行ってみた。
部品の転用は意外と効くもので、当面の間は6mmのPogoPinで組んだ端子のクラスタを使ってTeensy4.0の背面にあるpinに対応することになった。 ただし、基台に端子をしっかりと固着させるには両面基板の使用が望ましい。
丸ピンソケットを実装した基板専用にPogoPinを設置するための治具をDIPソケットとユニバーサル基板を組合せて製作した。
丸ピンソケットはシルエットが低いために、pin単体では調整が難しい。
ボード裏面の端子は0.1吋規格の正中線からズレているので、コンタクトポイントに合わせてpinの先端に0.05吋程のオフセットを掛ける必要がある。
ボックスタイプのソケットの場合、シムが2枚重ねで丁度良さそうな塩梅だった。
このような手間のかかる手法で量産体制に入れるかどうか微妙なところだが、その場合に不要な工程を省けるように試作の段階から考えておく必要がある。
posted by Yasuski at 12:40| LaVoixski
2019年10月30日
Teensy4.0導入時にリプレイスが必要となるpin配置に関する覚書
Teensy4.0は端子数が少ないため、現行のTeensy3.6に特化したシステムに導入を行う場合にはpinのやりくりが必要となる。
まず、pin配置の現状を整理するとTeensy3.6にリザーブした端子のうち、D1,D5,D6,D17,D18,D20,D21,D25,D26,D27の10pinが使用可能。
Teensy4.0の不足分は、D34からD50までの17pinとなるが、実際に使用しているのはD34からD39までの6ラインと、D44,D45,D48,D49のLED拡張信号の4ラインで、不足分は10本。
Teensy4.0の拡張端子はD24からD33までの10pin。その中で3.6と被るのはD25,D26,D27で、拡張端子では遊軍となるこれら3pinを再配置することになる。 他の端子は、Teensy3.6に準拠したポートに固定配線を行うが、この配線パターンは現行のAudio基板を使用することが前提としたもので、FPGAを使用したadatの実験を行う場合は、端子のアサインを考え直す必要がある。
AudioBoardへの信号ラインで今回使用を想定したのは8本だが、FPGAの信号ラインには9本が必要。足りない分はadatの出力数を制限する方向で調整するしかない。
まず、pin配置の現状を整理するとTeensy3.6にリザーブした端子のうち、D1,D5,D6,D17,D18,D20,D21,D25,D26,D27の10pinが使用可能。
Teensy4.0の不足分は、D34からD50までの17pinとなるが、実際に使用しているのはD34からD39までの6ラインと、D44,D45,D48,D49のLED拡張信号の4ラインで、不足分は10本。
Teensy4.0の拡張端子はD24からD33までの10pin。その中で3.6と被るのはD25,D26,D27で、拡張端子では遊軍となるこれら3pinを再配置することになる。 他の端子は、Teensy3.6に準拠したポートに固定配線を行うが、この配線パターンは現行のAudio基板を使用することが前提としたもので、FPGAを使用したadatの実験を行う場合は、端子のアサインを考え直す必要がある。
AudioBoardへの信号ラインで今回使用を想定したのは8本だが、FPGAの信号ラインには9本が必要。足りない分はadatの出力数を制限する方向で調整するしかない。
posted by Yasuski at 12:44| LaVoixski
2019年10月29日
RGBロータリーエンコーダー/目玉スイッチの"Lavender"色を調整する
発色が悪い"Lavender"の修正を行った。

まず、抵抗値を390Ωから100Ωに交換したところ、ダイオードによる逆流防止機構の影響で青が全く発色しなくなった。
不具合の原因は順方向電圧が低い赤との兼ね合いがありそうなので、電流制限抵抗を100Ωから200Ωに変更したところ、正常な発色を確認できた。

今回、現物合わせで発色を調整したリザルトは、、、
ロータリーエンコーダーの場合、RGBの抵抗は1k(390/560)/470/200といった比率が妥当だった。(現物は470の代わりに560だが、この場合は若干ではあるが赤みが勝つ)目玉の場合は、1k/470/100といった塩梅で、逆流防止機構が介在しない分だけ青の輝度を上げることが出来る。

LEDは個体差が大きいために、これらの数値が完全な適正値とは言えないが、折衷案として記録しておく。
まず、抵抗値を390Ωから100Ωに交換したところ、ダイオードによる逆流防止機構の影響で青が全く発色しなくなった。
不具合の原因は順方向電圧が低い赤との兼ね合いがありそうなので、電流制限抵抗を100Ωから200Ωに変更したところ、正常な発色を確認できた。
今回、現物合わせで発色を調整したリザルトは、、、
ロータリーエンコーダーの場合、RGBの抵抗は1k(390/560)/470/200といった比率が妥当だった。(現物は470の代わりに560だが、この場合は若干ではあるが赤みが勝つ)目玉の場合は、1k/470/100といった塩梅で、逆流防止機構が介在しない分だけ青の輝度を上げることが出来る。

LEDは個体差が大きいために、これらの数値が完全な適正値とは言えないが、折衷案として記録しておく。
posted by Yasuski at 10:53| LaVoixski
2019年10月28日
Mサイズ筺体型テルミンの組み立てを完了する
梁にカメラ用の基台を設置したついでに、Ritardandoが発動するポイントを調整する過程を撮影した。
再生できない場合、ダウンロードは🎥こちら
VolumeAntの微調整は、温度変化に弱いオシレーターには必須の作業だ。
Lサイズ/Mサイズ/ID-292の各種基板2枚ずつにFPGA及びオーディオクロック系の実装が完了している。

Lサイズ2枚は最新版の基板だが、Mサイズ/ID-292のヴァージョンは旧型基板(黄)と対応するVRTのシェイプと、電源の保護回路及び放熱ランドが新調された最新版(赤)が一枚ずつとなっている。
M型筐体のアルミ・アンテナの評価を行う機体が、ひとまず形になった。

今回制作したモデルは、試験的にインターフェイス群を中央に寄せているが、操作性は微妙なところか。
赤い目玉が発光しない原因を調査する必要があるが、ひとまずはオシレーターのチューニングを優先したい。
再生できない場合、ダウンロードは🎥こちら
追記:で、測定のリザルトがこれ。


まず、Volume側のオシレーターのマッチングがギリギリでアウトだったので、周波数が高かったAntenna側に10pFを追加して、補正可能なレンジに周波数を合わせた。


Pitch側はなんとか修正無しで対応できそう。
次に音声のアサインを失敗していたので、これを修正した。 原因はモロに物理由来で、負電源ラインをRチャンネルの音声出力端子と繋ぎ間違えるというとんでもないミスをしでかしていたのだが、幸いなことにコンデンサーの耐圧超過による事故に至らずに済んだ。
目玉の赤が光らなかったのは、プログラム上で端子の設定(26番ポートの直アサイン)を間違えていたことが原因だった。

今回は、事前にハードウエアの仕様が固まっていたお陰で、不要な試行錯誤を行うことなく効率よく調整を行うことが出来た。
再生できない場合、ダウンロードは🎥こちら
VolumeAntの微調整は、温度変化に弱いオシレーターには必須の作業だ。
Lサイズ/Mサイズ/ID-292の各種基板2枚ずつにFPGA及びオーディオクロック系の実装が完了している。
Lサイズ2枚は最新版の基板だが、Mサイズ/ID-292のヴァージョンは旧型基板(黄)と対応するVRTのシェイプと、電源の保護回路及び放熱ランドが新調された最新版(赤)が一枚ずつとなっている。
M型筐体のアルミ・アンテナの評価を行う機体が、ひとまず形になった。
今回制作したモデルは、試験的にインターフェイス群を中央に寄せているが、操作性は微妙なところか。
赤い目玉が発光しない原因を調査する必要があるが、ひとまずはオシレーターのチューニングを優先したい。
再生できない場合、ダウンロードは🎥こちら
追記:で、測定のリザルトがこれ。


まず、Volume側のオシレーターのマッチングがギリギリでアウトだったので、周波数が高かったAntenna側に10pFを追加して、補正可能なレンジに周波数を合わせた。


Pitch側はなんとか修正無しで対応できそう。
次に音声のアサインを失敗していたので、これを修正した。 原因はモロに物理由来で、負電源ラインをRチャンネルの音声出力端子と繋ぎ間違えるというとんでもないミスをしでかしていたのだが、幸いなことにコンデンサーの耐圧超過による事故に至らずに済んだ。
目玉の赤が光らなかったのは、プログラム上で端子の設定(26番ポートの直アサイン)を間違えていたことが原因だった。
今回は、事前にハードウエアの仕様が固まっていたお陰で、不要な試行錯誤を行うことなく効率よく調整を行うことが出来た。
posted by Yasuski at 18:40| LaVoixski