2019年03月02日

Spresenseに関する愚痴

世間というかGoogleで検索しても何故かネガティヴな情報が出てこない、というかそもそも話題が殆ど流れていないSpresenseに関しての個人的な見解というか愚痴をつらつらと書いていく。

overview_hardware_mainboard_signal-2.jpg

最近になってようやくオンライン上にあるSpresenseのディベロッパー向けマニュアルが充実してきたので中身を検討していたが、Timerやカウンタの機能が単純化されていて、外部トリガでカウンタの値をキャプチャするようなMCUに有りがちな使い方が想定されていない印象を受けた。

ハード的にチップの構成はどうなっているのかを知りたいのだが、アップロードされているPDFの内容が相変わらず適当過ぎるのが解せない。

まあ、家電屋系半導体のアプリケーションノートは昔からあんな感じだったので、このスタイルは伝統でもあるのだろう。NXPやSTMの分厚いマニュアルからするとペラ過ぎるSONYのアレがその傾向を象徴している。

確かに、あの2000頁もあるユーザーズマニュアルを「読みこなせ」とか言われてしまう現状は異常とも言えるのだが、そのレベルの難解で複雑な代物の解説が「たったの52p」というのは異様を通り越して非常にマズイのではないか。 しかも、発売から半年経った現在も末尾にRevの履歴が一切かかれてないのがこれまた凄い。 

https://www.sony-semicon.co.jp/products_en/spresense/PDF/CXD5602GG_technical_manual.pdf

pinの対応表を見ると、カウンタ関連の外部トリガが見当たらないので、これは自分の想定する用途には「使えない」ハードウエアである可能性が高くなった。 拡張ボードはわざわざUnoに寄せてきてるのでポートが足りないし、現状でサードパーティーが何かを出してくる気配は殆ど感じられない。

block_diagram_mainboard-1.jpg

デジタル化以降のWalkmanの失敗を見ても判るように、何処かピントがズレているのではないか。 オープンソースを謳うのであれば、ハードウエアの仕様公開は一番先にやるべきことなのに、どうも其辺のメーカーとしての思惑が解らない。 至極使い難いツールを出してくるのも同様で、STMの便利そうなツールを試した後はなおさらそう感じてしまう。

製作例は初歩的なものしか上がってないようだ。 ハイレゾとかあまりよく解らない価値観のものをプッシュして来るのが企画屋のプレゼン的な雰囲気で、これまたMakerっぽい人らの嗜好とは少しズレている気がする。  今後はトラ技の記事等から製作例が出てくるのだろうか。 ちなみにトラ技はどちらかというとGPS系の記事に注力しているように見える。

相変わらずTimer周りが気になるので、製作環境となるNuttXの構成を調べたところ、対応するチップ別に端子が設定されているコードを見つけた。

WS001739.JPG

で、肝心のCXD5602を探して見つけたのがこれ。

WS001738.JPG

つまり、外部からTimerを直接制御する端子は存在しないようだ。

これで諦めが付いたので、とりあえずSpresenseを実験機として購入してみよう、、、と、なんとなくというか何度目かの結論に至る。

Timerが3つあるので、それらをフリーランさせたのをGPIO設定した端子からattatchInterruptでカウンタの値をキャプチャすれば、なんとかFVCを構成できるかもしれない。 

タイマーの数や仕様をケチったのは、省電力化をメインに考えたためなのだろうか、、、と、先に読んだ記事から思い当たった。 

SONYはこれをNXPやSTと競合するような汎用性の高いMCUとしては開発していない可能性がある。つまり、顧客として想定しているユーザー層が先行しているMCUメーカー達とは全く違うのではないか。 ただ、そのターゲットとしているであろう対象そのものの形が明確に見えてこない。 AI云々をメインに言い出しているのも対象が茫洋としすぎているためにあまり印象が良くないが、実際のところは車載用のパターン認識システム等に応用したいのだろうか。 カメラとGPSという組み合わせからは、それっぽいベクトルを感じる。

Spresenseを自分の楽器に応用するためには、ロータリーエンコーダーとLED周りで16本、スイッチ類の表示用LEDを含めた入出力が6本以上、周波数入力に端子が2つと、合計24本の端子が要る。 だから出来ればpinが一杯取り出せるボードが欲しいところなのだが、現時点では端子拡張系の製品を出してくる気配がどこからも感じられないのが残念だ。 

overview_hardware_extboard_signal-2.jpg

あまり使い手の無さそうなマイク端子群をデジタル入出力として使用できないか、購入前にGPIO周りの仕様を検討なければならない。 

HW_Mic_placement_E-2.png

なんにせよ、アナログ入力固定な端子群を設定しながら「Unoと共通仕様でシールドを使えます」とか言っちゃう辺りの適当さが不思議な設計思想ではある。

開発はRTOSの使用が大前提となるが、それ以前に動くのがUbuntuだけとかシロートには敷居が高過ぎるのだが、去年の後半にまずはOSの使い熟しからトライすべく、実験的にOSの導入を試みたものの、開発環境を導入するどころではない状態が継続したまま半年以上の時間が過ぎた今はもう3月だ。

posted by Yasuski at 07:38| AudioElectronics

2019年03月01日

タイマーカウンタのセットアップ

CubeMXは、このようにタイマーカウンタをセットアップするためのコードを吐き出してくれる。

WS001732.JPG

Arduinoで記述していたこの部分のコードがそれに相当する。

WS001559.JPG

データブックを引かなくてもさっさとコードを吐き出してくれるのはとても便利だ。

WS001727.JPG

WS001728.JPG

WS001729.JPG

WS001726.JPG

WS001730.JPG

WS001731.JPG



posted by Yasuski at 13:49| AudioElectronics

2019年02月24日

dueScope2基板の設計

OLEDパネルをピギーバック形式で実装するスタイルに設計を変更した。

4ch分の入力を切替えられるようにアナログスイッチを導入し、プリアンプを3ch分、バイアス電圧ラインにバッファーアンプを追加している。

dueScope7.png

回路はほぼ完成形で、新たに見つけた製作記事にも対応できるように端子類を整理している。

描画が妙にトロいのはOLEDの仕様?なのか??? それでもDueではマトモに動かせている一方で、Teensyとの相性は最悪だ。 フォーラムではSPIからI2Cに駆動方式をスイッチしたほうが良いのでは?という意見もあったが、ボードの単価はDueの方が圧倒的に安くなる(コピー品を使うが問題は無さそう)ので、ことオシロに関してはDueを選択すべきだろう。

dueScope7sch.png

先に紹介した「しなぷすさんによるオシロの製作記事」は素晴らしい内容で、基本的なオシロスコープの機能をほぼ網羅している。 今回は駆動の作法が違うOLEDが使えるようにプログラムを改装しているのだが、これがなかなかの難物で描画が妙なことになってしまう。

IMG_8934.JPG

オリジナルの設計ではモノクロの64×128という画素数が少ないデバイスを使用しているが、今回採用する予定のOLEDは120×160のカラーで、アスペクト比が異なるのが問題で、文字の表示域に制限が出来てしまう。

また、デバイスに送るコマンドの文法が異なるため、項目毎にコマンドの翻訳を行うことになるのだが、項目が存在しない=翻訳できないコマンドの処理が難しい。 例えば、モノクロ液晶ではテクストの反転コマンドが存在するが、カラーデバイスの場合はテクストの色みを変える等に表示方法の仕様を変更する必要が出てくる。

いろいろとコードをいじくり回した結果、ひとまずは画像のような感じになっていて、描画に関しては表面上の辻褄を合わせることが出来ているのだが、

IMG_8935.JPG

テクストの表示を行うエリアがスコープの表示によって潰されてしまうため、パラメーターの入力が発生した時点で規定時間だけテクストをオシロ画面に上書きする仕掛けを追加しなければならない。

同時に、RGBロータリーエンコーダーを使用したClickEncoderの導入を画策しているのが無理筋で、オリジナル回路のスイッチ類をClickEncoderに置き換えるのに苦労している。 オリジナル回路は4つのタクトスイッチを使って項目の選択とパラメーターの増減をこなしているが、これをロータリーエンコーダーで代用する場合に項目の切り替えがどうやっても上手く行かない。

試行錯誤の結果、ClickEncoderには擬似的なスイッチ機能を持たせ、これによって生成されたロジック信号を端子から出力し、元来はタクトスイッチが接続されていた端子に物理で突っ込むという原始的な方法に転換しつつある。 

Arduinoは端子の通信速度が激遅く、それを解消するためにポートの直アサインを行っているのだが、液晶ディスプレイ等を駆動するためにLibraryを使用する場合、端子を共通化するためのArduinoの胡乱な仕掛けがボトルネックになってしまう。 その「共通化」の影響を少しでも減らすためにdigitalWriteFast等の関数を使うことになるのだが、Dueの場合ある時期からこの手の関数が使えなくなって仕舞っていた。

で、新しく見つけたのがリンク先のライブラリで、これの御蔭でDueでも出力の高速化を行えるようになった。 

digitalWriteFastをLCDとの通信に使うことで少しでも動作速度を改善する狙いがあるのだが、

WS001691.JPG

OLEDディスプレイの場合はどうもドライバ側にボトルネックがあるように思える。 極端に遅い描画速度を検証するために、比較用の液晶ディスプレイを購入した方が良いかもしれない。

現在、インターフェイスの実験を行うために、入力信号用のプリアンプを組み込んだ試作ボードをユニバーサル基板上で製作しているが、完成には二三日掛かりそう。
posted by Yasuski at 22:44| AudioElectronics

2019年02月19日

dueScopeの製作

IMG_8928.JPG

とりあえず、ClickEncoderの機能は実装できた模様。



Rateもキッチリと切り替わっている。 

今回のテストではRGBロータリーエンコーダーを使用していないので、LEDの点灯テストは未了。

IMG_8921.JPG

一時期対応できなかったスタートアップの画像もちゃんと読み込めるようになった。

IMG_8920.JPG

Teensyでは何故か欠けてしまっていたドットを復活させた。

IMG_8919.JPG

過大レベルを入力すると若干ドットの取りこぼしが発生してしまうが、Teensyと比較すると格段に良好。

IMG_8918.JPG

Dueの動作は速攻で描画が始まるTeensyとは違っていて、バッファーに一旦貯め込んだデータを逐次出しているように見える。 殆ど同じ内容のプログラムでどうして差が出てしまうのか?現時点でその原因は解らないのだが、TeensyのForumで見つけたトピックによると「Teensyが扱う32bit幅のデータがミスマッチしている」可能性が示唆されていた。 Teensy専用にライブラリを書き換える必要がありそうだ。

その後、運用法を考えた結果、Dueにピギーバックさせるのが良さそうということで、oledディスプレイを填め込んで実装できる基板を設計した。

dueScope2.png

入力には簡単なバッファーアンプを追加している。 回路は構造が単純単純なので、ユニバーサル基板に手組で製作を行う場合でも再現性は高いと思う。

dueScopeSch.png

Dueのタイマー系の構成について、詳細を記した資料を見つけた。

https://github.com/ivanseidel/DueTimer/blob/master/TimerCounter.md
posted by Yasuski at 15:45| AudioElectronics

2019年01月03日

2011 MacBook Pro 8,2 のAMD製GPUが死んだ場合の対症法

元旦の日付が変わって間もなく、2011年製MBP17吋のカーソルがフリーズ、再起動後のOS立ち上がりでグレイの画面に固定されてしまう現象が発生した。

以前、15吋(これも2011年製)のGPUが死亡してそのままジャンクと化したケースを体験しているが、これで自宅のi7搭載のMacbookが全滅してしまった。

なんとか対症法はないものかとWebで記事を漁ったところ、

Force 2011 MacBook Pro 8,2 with failed AMD GPU to ALWAYS use Intel integrated GPU (EFI variable fix)

というトピックを発見した。

対症法を要約すると、故障したGPUを切り離して起動する手法で、障害の発生によって途中で起動プロセスがスタックしていたOSを強制的に立ち上げている。 記事に紹介されていた実際の手順を引用すると、、、

First of all, it is possible to successfully boot a MBP to OS X while still using the failed GPU, after you remove the AMD drivers by booting in command line mode (CMD+S) and entering these commands:
1) fsck -fy (to check a disk)
2) mount -uw / (mount a root filesystem with read/write permissions)
3) sudo mkdir /AMD_Kexts/ (make a directory to store the AMD drivers in case you'll need them in future)
4) sudo mv /System/Library/Extensions/AMD*.* /AMD_Kexts/ (move the AMD drivers)
5) sudo rm -rf /System/Library/Caches/com.apple.kext.caches/ (remove the AMD drivers cache)
6) sudo mkdir /System/Library/Caches/com.apple.kext.caches/ (just in case OS X will be dumb and will not recreate this directory, I am creating it for OS X)
7) sudo touch /System/Library/Extensions/ (to update the timestamps so that new driver caches - without AMD drivers - will be definitely rebuilt)
8) sudo umount / (umount a partition to guarantee that your changes are flushed to it)
9) sudo reboot


といった作業のプロセスを経て、OSを正常に(近い状態で)立ち上げることが出来るようになった。

この他、起動時にNVRAMの内容をその都度書き換える方法もあるが、立ち上げ時に毎回儀式が必要になる手間を考えると、OSの起動プロセスを直接編集した方が良さそうだ。

とりあえず主要なアプリケーションの動作を確認できたので、この手当で暫くの間は誤魔化せそうだ。

追記:

17吋でアップデータを走らせたらブルースクリーンが出た、、、。

nvramの書き換えで起動したら取り敢えず処理が開始されたが、全くもって予断が許されない状況に、、、。

49661530_2199186926778420_5235849185781088256_n.jpg

49121592_2199187640111682_5381920954798571520_n.jpg

アップデート終了後に、なんとか起動することができたが、先に紹介した回復のメソッドは無効化されてしまった模様

49348404_2199191803444599_7742837170007703552_n.jpg

MountainLionでは4つだったAMD関連のkextファイルが、HighSierraでは十数個に激増した。 

動作もHighSierraの方が不安定で、画像のリフレッシュが完全に行われず、描画の安定度が著しく低下した。

Screen Shot 2019-01-03 at 21.47.27.png

さらなるアップデートで情況が改善される保証はないので、暫らくの間はこのままで様子を見た方が良いだろう。

Screen Shot 2019-01-03 at 21.47.47.png

外部接続の主要なハードウエアはなんとか動作している模様。

Screen Shot 2019-01-03 at 21.48.04.png

17吋に関しては動作速度に問題は発生していないが、15吋の方は速度の低下が著しい。 速度が速いSSDの外部ドライヴを接続した場合も情況が改善しなかったことから、マザーボードの本格的な故障が疑われるものの、いまのところ原因は不明。

Screen Shot 2019-01-03 at 21.48.23.png
posted by Yasuski at 04:52| AudioElectronics

2018年11月08日

Ports

original.jpg

schematic36.png

LaVoixskiHammond80mm1025_18.png

LaVoixskiHammondMCU100mm1025_18.png

#define LEDorg 44 // LED on D44
#define LEDorg_ON (CORE_PIN44_PORTSET = (1<<22))
#define LEDorg_OFF (CORE_PIN44_PORTCLEAR = (1<<22))

#define LED2org 48 // LED on D48
#define LED2org_ON (CORE_PIN48_PORTSET = (1<<9))
#define LED2org_OFF (CORE_PIN48_PORTCLEAR = (1<<9))

#define LEDlav 45
#define LEDlav_ON (CORE_PIN45_PORTSET = (1<<23))
#define LEDlav_OFF (CORE_PIN45_PORTCLEAR = (1<<23))

#define LED2lav 49
#define LED2lav_ON (CORE_PIN49_PORTSET = (1<<4))
#define LED2lav_OFF (CORE_PIN49_PORTCLEAR = (1<<4))


#define LEDvol 28 // LED on D28 Switching the "LED in Eyeball"
#define LEDvol_ON (CORE_PIN28_PORTSET = (1<<16))
#define LEDvol_OFF (CORE_PIN28_PORTCLEAR = (1<<16))

#define LEDvol2 13 // Switching the BIAS
#define LEDvol2_ON (CORE_PIN13_PORTSET = (1<<5))
#define LEDvol2_OFF (CORE_PIN13_PORTCLEAR = (1<<5))

#define LEDvol3 2 // Switching the Audio Levels
#define LEDvol3_ON (CORE_PIN2_PORTSET = (1<<0))
#define LEDvol3_OFF (CORE_PIN2_PORTCLEAR = (1<<0))

#define LED0 0 // Switching the Sequence Start Indicator
#define LED0_ON (CORE_PIN0_PORTSET = (16<<0))
#define LED0_OFF (CORE_PIN0_PORTCLEAR = (16<<0))

#define CS01 29
#define CS01_ON (CORE_PIN29_PORTSET = (1<<18))
#define CS01_OFF (CORE_PIN29_PORTCLEAR = (1<<18))

#define LDAC01 33
#define LDAC01_ON (CORE_PIN33_PORTSET = (1<<24))
#define LDAC01_OFF (CORE_PIN33_PORTCLEAR = (1<<24))

#define CS02 31
#define CS02_ON (CORE_PIN31_PORTSET = (1<<10))
#define CS02_OFF (CORE_PIN31_PORTCLEAR = (1<<10))

#define LDAC02 14
#define LDAC02_ON (CORE_PIN14_PORTSET = (1<<1))
#define LDAC02_OFF (CORE_PIN14_PORTCLEAR = (1<<1))

#define CS03 47
#define CS03_ON (CORE_PIN47_PORTSET = (1<<8))
#define CS03_OFF (CORE_PIN47_PORTCLEAR = (1<<8))

#define LDAC03 46
#define LDAC03_ON (CORE_PIN46_PORTSET = (1<<21))
#define LDAC03_OFF (CORE_PIN46_PORTCLEAR = (1<<21))

#define CS04 15
#define CS04_ON (CORE_PIN15_PORTSET = (1<<0))
#define CS04_OFF (CORE_PIN15_PORTCLEAR = (1<<0))

#define LDAC04 16
#define LDAC04_ON (CORE_PIN16_PORTSET = (1<<0))
#define LDAC04_OFF (CORE_PIN16_PORTCLEAR = (1<<0))

#define CS05 20
#define CS05_ON (CORE_PIN20_PORTSET = (1<<5))
#define CS05_OFF (CORE_PIN20_PORTCLEAR = (1<<5))

#define LDAC05 21
#define LDAC05_ON (CORE_PIN21_PORTSET = (1<<6))
#define LDAC05_OFF (CORE_PIN21_PORTCLEAR = (1<<6))


#define SCK01 30
#define SCK01_ON (CORE_PIN30_PORTSET = (1<<19))
#define SCK01_OFF (CORE_PIN30_PORTCLEAR = (1<<19))

#define SD01 32
#define SD01_ON (CORE_PIN32_PORTSET = (1<<11))
#define SD01_OFF (CORE_PIN32_PORTCLEAR = (1<<11))

//////////////////////////////////////////////////////////////////////////

reading = digitalReadFast(4); // Sequencer Start/Stop switch

if (reading == HIGH && previous == LOW && millis() - time2 > debounce) {
if(state4 == HIGH)
state4 = LOW;
else
state4 = HIGH;
time2 = millis();
}

digitalWriteFast(0, !state4); // Sequence Start/Stop indicator out
previous = reading;

////////////////////////////////////////////////////////////////////////////////

if(addr1a == 11 || addr1a == 13 || addr1a == 17 || addr1a == 21 || addr1a == 22 || addr1a == 25 || addr1a == 27 || addr1a == 28 || addr1a == 29){
LEDvol3_OFF;
}
else{
LEDvol3_ON;
}; //Driving MAX4603 SW01/03/04 level control

if(addr1a == 15 || addr1a == 30 || addr1a == 31){
LEDvol2_OFF;
}
else{
LEDvol2_ON;
}; //Driving MAX4603 SW02 bias control
// || addr1a == 32 pending

////////////////////////////////////////////////////////////////////////////

if((state==0) && (button_State3 == LOW)) // Check if cal switch (eye ball shape) is released
{
state=1;
timer=0;
}

/////////////////////////////////////////////////////////////////////////////

if ((vol_vd > 4)&&(vol_vd < 2048)) {LEDvol_ON;} else {LEDvol_OFF;} // LED (in the eye ball) "ON" if value in range
posted by Yasuski at 21:06| AudioElectronics

2018年07月27日

LEMOの8pコネクターをアンプに取り付ける

数年ぶりに行うライヴ演奏からのフィードバック。 

IMG_8294.JPG

なかなかやる気が出なかったのを思い切ったのが運の尽きで、丸一日がこの作業に費やされることになった。

IMG_8279.JPG

嵩張るスピコンを排除するために、フォン端子を使ったスピーカーケーブルをアンプに増設しようとしたが、丁度よいサイズの取り付け穴を開けられず、作業が長引いてしまった。 スピコン端子には2ch分の信号線を仕込んでいるので、サテライトスピーカーを一個プラスする情況ではこちらを使用する。

IMG_8283.JPG

製作するスピーカー用のケーブルは10m。スピコンのケーブルは6m程だったので、長さが足りずに現場で微妙な状況に陥ることが多かったが、これでキャパの広い場所でもある程度は対応できるはず。

作業の過程で電源が短絡するトラブルが発生したが、原因はなんとebayで購入したLEMO製の8pケーブルそのものにあった。

IMG_8288.JPG

よく見るとなんだか変な構成のケーブル=所謂変態仕様なブツだったことが判明。

IMG_8289.JPG

その内実は、単線×3本とシールド線2組、それとグランドラインで合計8端子という、なんだかよく解らない構成の代物。

IMG_8290.JPG

このシールド線のグランドが短絡の原因だった。

IMG_8291.JPG

代わりに在庫していたジャンクの12芯シールドを使ってコネクターを改造した。

IMG_8292.JPG

パワーアンプ系の配線など大電流が流れるラインには2芯を撚ってそれに充てている。

LEMOのデザインはNeutrikとはまた違った雰囲気を持つ。

IMG_8275.JPG

サテライト化した4chデジタル・パワーアンプ&#1chスピーカーユニット。

IMG_8270.JPG

オーディオ的には、滅茶苦茶な設計である。

IMG_8267.JPG

これは本体っぽく見える電源部。

IMG_8285.JPG

日付が変わる前に、なんとか音を出す事ができた。

IMG_8286.JPG
posted by Yasuski at 02:56| AudioElectronics

2018年06月24日

死亡したTeensyを復活させる方法

USBによる接続が不可能となったTeensyを復活させる方法を見つけたので備忘録を書いておく。

原因は定かではないが、一種のシャックリのようなものと思えば良いらしく、接続が絶たれただけでMCU自体は死亡していないようだ。

対処法はMAC系のプラットフォームを使用する場合が簡単なようだ。 まずはArduinoを起動して、なんでも良いからスケッチのコンパイルを行い、Teensyの書き込みソフトを起動する。 次に、故障したMCUのリセットボタンを押しながらUSB端子を接続すると、あら不思議、何故かデバイスの認識が行われ始める。

これで、死んだと思って放置していたTeensy3.5と3.6の2個ずつ、計4つのデバイスを復活できた。 ここで断捨離をやらかしていたらこの発見はなかったわけで、とにかくゴミと思われるものであってもある程度は保持する必要があるのだな、、、と痛感させられた次第。
posted by Yasuski at 01:07| AudioElectronics

2018年05月30日

TeensyでWDTを試す

WDTに関する記事を見つけたので、これを参考にしてクロックソースをテストベッドに組み込みたい。

https://bigdanzblog.wordpress.com/2017/10/27/watch-dog-timer-wdt-for-teensy-3-1-and-3-2/
posted by Yasuski at 05:58| AudioElectronics

2018年01月15日

またもや機材車のエンジンにトラブルが発生する

夕方になって買い物に出かけるつもりがVWの6気筒エンジンにトラブルが発生、エンジン関連の警告灯が点灯してパワーが上がらない。エグゾーストパイプから異臭がするのは生ガスを吹き出している証拠。

出立を諦めてクルマに診断用のデバイスを接続して故障箇所を探るってみると、1気筒目がミスファイアを起こしている模様。フードを開けてイグニションコイルユニットを引き抜くと恒例のイグニッションコイル折損事故(3回目)な事が判明する。

とりあえず、工具を持っていそうなJAFを呼んで、折れた部分の引き抜きを依頼するも、サービスカーは狭い部分に届くプライヤーを持ちあわせておらず、当てが外れる。 結果、自力修理、もしくはディーラーまでクルマを牽引というアレな状況に。

折損するVWのイグニションコイルは明らかに欠陥品だが、何故か日本のディーラーはそれを認めず有償修理扱いという鬼畜な対応なので、出来れば自力で修理を行いたい。

こんなこともあろうかと1年半前に輸入していたスペアを活用する絶好の機会が到来したのだが、プラグホール奥に鎮座する折損部を引き抜かないことにはスペアパーツは役に立たない。

で、JAFのおっちゃんと協議した結果、歯医者が持っていそうな返しの付いた工具で対応できるのでは?との示唆を貰う。

ナルホドその手があったかと、ひとまずJAFにはお帰り頂いて、在庫している自転車用チタンスポークの折れ曲がった部分をダイヤモンドルーターで研磨、折損部のクリアランスにねじ込んで折れたパーツを引き抜くための工具を自作した。

チタンスポークは激硬いので強度的には問題なさそうだったが、押し込んだ工具を回転させるのが難しい。トルクを加えられるように、スポークのストレート側を折り曲げて持ち手に加工した後、折損部の一番奥に至るまでスポークを押し込み、これを回転させて詰まった折損部を引きぬくことが出来た。

心配だった代替パーツの互換性は問題なさそうな感触だったので、町内を一周してエンジンの動作を確認しておいた。

まだヤバそうな死亡が確定しているパーツがあと3本残っているので、保険のために改めて代替用のパーツを発注しておいた。製作した治具は使い易いように再加工して、故障判断デバイスのケースに入れておく。

今回は、合計で20K程の節約ができた計算だが、そもそもリコール扱いのパーツをなんで自腹で揃えにゃならんのかと微妙に納得いかないのがトホホ。
posted by Yasuski at 04:20| AudioElectronics

2018年01月10日

MEMSなスピーカーが発売されるらしい

これとMEMSマイクを組み合わせて、ホースから開放されたトーキングモジュレーターを造りたいのだが、とりあえずセンサーの構造を考えてみると、、、

usoundmoon630.jpg

細い棒の先に防滴構造に加工した振動体を取り付けたものを口盆内に挿入し、マイクはその同軸上に設置することになるのだが、、、センサーの支持構造に工夫が要りそうだ。

posted by Yasuski at 05:49| AudioElectronics

2017年11月10日

目玉スイッチの作り方@直径6mm編

目玉スイッチに仕込んだLEDが不良だったので、アクリル製のガワを破壊して、再組立てを行った。

その際、製作のステップを考えなおしたので、その備忘録。

1)まず、直径6mmの透明アクリルパイプを5mm長に切断する。 サーキュラーソウで切断を行う場合は、ピックアップが難しい(ノコ刃の隙間に切り出した部材が入り込む)ので、材の厚みギリギリに刃の深さを調整すること。

2)表面実装LEDは0805サイズのものを使用する。 耐熱両面テープでLEDを固定した後、水平に極細の配線材をハンダで接合する。

3)切り出したアクリルパイプの切断面を研磨した後、側面に配線を通すため1mm径の穴を貫通させる。

4)タクタイルスイッチのシャフトには予めOリングをはめ込んで、アクリルパイプ取付け時のクリアランスを確保しておく。

5)瞬間接着剤を使って、タクタイルスイッチの上面にLEDを固定する。

6)固定したLEDの配線材をアクリルパイプの配線用の穴に通す。 線材は、LEDの上面を交差する形でまとまる。 座りの良い所で、パイプを固定して、瞬間接着剤を滴下する。

7)パイプの固定を確認した後、LEDの通電テストを行う。 問題がなければ、アクリルパイプの上面に薄く瞬間接着剤を塗布し、目玉を取り付ける。

以上、作業時間は慣れれば15分程度。 予めアクリルパイプを切り分けておくと、作業時間は更に短縮できる。

タクタイルスイッチは、シャフト長が異なる製品をまとめたサンプル用のパッケージをebay等で調達するのがお得。
posted by Yasuski at 00:22| AudioElectronics

2017年10月22日

久しぶりにSignalHoundの整備を行う。

本家のサイトで新しいアプリケーションのDLが可能だったので、コレを試す。

WS001164.JPG

WS001163.JPG

SpikeImage0000.png

なんちゃって受信機の機能が上がっている他、以前のヴァージョンとは格段に遣い易くなっている。

残念ながらWindowsのみ対応なので、OSX環境下ではParallelsを起動して動かすことになる。 

偶にコレを使ってThereminのオシレーターの周波数を調整しているが、デジタル系ラインの調整と確認には別にロジアナが必要。

https://www.silvertone.com.au/content/bitscope-bs10u-micro-oscilloscope-analyzer
posted by Yasuski at 00:33| AudioElectronics

2017年07月31日

基板が届いた

IMG_7243.JPG

IMG_7244.JPG

IMG_7245.JPG

IMG_7246.JPG

IMG_7285.JPG

IMG_7247.JPG

IMG_7251.JPG

IMG_7252.JPG

IMG_7279.JPG

IMG_7283.JPG

IMG_7248.JPG

IMG_7274.JPG

IMG_7249.JPG

IMG_7250.JPG

IMG_7276.JPG

IMG_7260.JPG

IMG_7261.JPG

IMG_7262.JPG

IMG_7263.JPG

IMG_7264.JPG
posted by Yasuski at 06:04| AudioElectronics

2017年07月23日

ADAT@パワードモニターにDACボードを取り付ける

まず、パワードモニター背面の入力ポートにパネルマウント用の基台を取り付けた。 基台の取り付けには新たに取り付け孔を空ける必要があるが、コーナーのネジを取り付けて仮固定した後、もう一方の位置決めを行う行程を守ること。 これを怠ると、孔開けの位置が微妙にズレてしまう。 なお、新たに開けた孔の位置がオリジナルと近接しすぎた場合は、裏面からナットを使って固定する必要がある。

IMG_7223.JPG

予想以上に基板と放熱アングルのクリアランスが厳しく、ガラステープによる絶縁が必要となった。

IMG_7222.JPG

仮組みなので正確な取り付け位置ではないが、ご覧のようにクリアランスは殆ど無い。

IMG_7224.JPG

一方、ペンディングしていた電源電圧の測定を行ったところ、プリアンプの電源ラインには±15Vが供給されていた。 電源はライン上にカスケード接続されたダイオードで電圧を降下させて、±12Vで運用されている。マイナス側が15.4Vと若干精度が甘いが、このままで使用が可能なレベルだろう。

問題はパワーアンプに供給される電源ラインで、プラス側が5V、マイナス側が-45Vととアンバランスな構成で、このままではコンベンショナルなアンプ回路に使用できない。 VSM300XTはパワーアンプを換装する構想なので、バランスの取れた電源が必要だ。

オリジナルの回路構成を解析するためにWebを検索したところ、それらしい回路図を発見した。

image.jpg

これは、フライバック/レギュレーターを使ってパワーアンプ駆動用の電圧を生成する回路で、パワーアンプ基板の右半分にこれが実装されているようだ。

IMG_7229.JPG

特徴的なコンデンサの値から回路構成を確認、フライバックレギュレータが使用されていることが確定した。

IMG_7230.JPG

ということで、今回はパワーアンプのリプレイスは中止、オリジナルの回路を使用することに計画を変更した。

IMG_7227.JPG
posted by Yasuski at 06:41| AudioElectronics

2017年06月24日

Open.Theremin@WCKポートのつなぎ間違いを修正する

MCKの出力を間違えて繋いでしまったので、修正を行った。

WS001095.JPG

Teensyの実験用プラットフォームとしては、専用に設計した1枚タイプの基板よりもArduino互換でShieldを使えるこちらの方が使い勝手が良いかもしれない。

が、何れの基板も外部からUSBを直結できない仕様なので、試作用筐体を専門に造るべきだろう。
posted by Yasuski at 11:47| AudioElectronics

2017年06月18日

T.C.Helicon/VSMx00/XTの電源/パワーアンプの解析(1)

6.5吋のCoaxialスピーカーを調べていたところ、珍しくebayが最安値だった。 

B1.jpg

PA用途を考えて200W程度までパワーを突っ込める製品を探すと、どうしても$200を超えてしまうのが難。

オリジナルは一見して奥行きが浅いことが判る。

IMG_7120.JPG

マウントが4点止めなので、6点系と互換性を持たせるにはスペーサーが必要だが、スペーサー挿入分のクリアランスが削られてしまうのが痛い。

IMG_7121.JPG

スピーカー台座は両方共に取り外す方向で検討している。

IMG_7119.JPG

マグネットが薄い典型的な安スピーカーのシェイプといえよう。

IMG_7122.JPG

アプリケーションノートによると、単純に電源を供給するのではなく、アンプのフィードバック制御を行っているようだ。

IMG_7111.JPG

電源とアンプの2階建て構造だが、これを分解して配置をやり直すことでクリアランスを確保する計画。

IMG_7112.JPG

リボンケーブルは、アンプを制御するための回線。

IMG_7113.JPG

電源の放熱システムは作業工程を減らすためか部品が直接取り付けられていないのがラッキーで、簡単にバラせる雰囲気だ。

IMG_7114.JPG

アンプ側の放熱板も半導体に放熱ブロックを取り付けるユニット化が行われていて、こちらも簡単に分解できそう。

IMG_7115.JPG

半導体は、放熱ブロックに固定されている。

IMG_7116.JPG

切り取った余分な板は、底板に貼り付けて台座に利用してもよい。

IMG_7117.JPG

多分アンプの制御系がまとめられているボード。

IMG_7118.JPG

スピーカー購入の是非は、クリアランスの確保を行うためのパーツ配置替えを実験した後に決定するが、まずは放熱板のデザインを行わなければならない。

IMG_7123.JPG

作業のプライオリティーとしては、DACの実装と平行してクリアランスを稼ぐために電源/アンプ部の実装形態をリファインすることになるが、後者が無効な場合は残りのスピーカーへのDACの実装を優先していく。

現在分解しているスピーカーは300XTが2台と200XTが1台で、このうち300XTは専用のバックパネルを作り直しているところ。 300XTは同時に電源/パワーアンプの分解を1台分完了している。

300XTをイジる過程で発生するの問題は、EQ等の余分なコントロール回路の再設計だが、この部分を素通しにして、回路を組むというのもアリ。 

IMG_7124.JPG

ただし、最も結果を速く出せるチョイスは、XT200の電源をバラしつつ、DACを実装する組み合わせなので、とにかくDACの回路を優先して製作することが望ましい。
posted by Yasuski at 16:46| AudioElectronics

2017年06月17日

VSM200XTを分解する

バックパネルの入力回路は至ってシンプルで、

IMG_7089.JPG

フロントの基板台座はこんな感じで回路が省略されている。

IMG_7090.JPG

基板は入力バッファーとレベル調整の為のヴォリュームポットとレベル監視LEDを駆動する回路で構成されている簡素なもの。

IMG_7091.JPG

バックパネルもシンプル。 必要となる作業は、Neutrikのパネルマウントを固定するネジの孔開けだけ。

IMG_7094.JPG

一方、VSM300XTの方は、部品が微妙にオフセットされているためにOpticalUnitの実装を行うスペースは無く、バックパネルの改造は難しい。

IMG_7095.JPG

仕方がないので、アルミ板からパネルを切り出すことにした。

IMG_7110.JPG

実装されているスピーカーは13ドルの安物なので、、、

184885.jpg

将来的には6.5吋のマトモなモデルに交換したいところだが、、、

t4.jpg

その場合は、スピーカーとパワーアンプのクリアランスの確認と、スピーカー側にマウント用の孔を4つ開け直す必要がある。

t2.jpg

スペースに余裕が無い場合に必要とされる改造は、

1)電源の実装形態を変更してスピーカーのクリアランスを確保
2)新たに300W程度のパワーアンプに積み替える
3)LCネットワークを組んでTWを駆動する
4)バイアンプ構成を取る場合は、アンプの出力を抑えたものを選択する

といった感じになるだろうか。

posted by Yasuski at 13:45| AudioElectronics

2017年06月16日

24Vトランス電源の製作@トランスをボディーに組み付ける

ダイオードブリッジを追加して、トランスをボディーに組み付けた。

IMG_7098.JPG

トップパネルに電圧設定用の端子を追加しなければならないが、場所の選定を思いきれない。

IMG_7097.JPG

裏面はこんな感じ。 これから配線を行っていく。

IMG_7099.JPG

整流後の平滑を行う電解コンデンサーは既にブロック化していたが、

IMG_7102.JPG

これをバラして、ラグ板上に組み直す予定。

IMG_7101.JPG

3端子レギュレーターは電圧調整が可能なLM317系を使用するが、電圧調整を行う半固定抵抗の設置場所が決まらない。

IMG_7100.JPG

ケースの蓋はご覧のように白いスプレーが吹かれていてみっともないのだが、これがなかなか落とせない。

IMG_7096.JPG

posted by Yasuski at 22:31| AudioElectronics

2017年06月15日

楽器専用アンプからスピコンを追放する計画

eKora用のアンプからスピコンを追放しようか考え中。

IMG_7087.JPG

使ってみて初めて解ったのだけれども、スピコンは楽器単体の専用アンプでは選択する意義が無い規格だった。 最近のジャックはスッポ抜け防止機能を持ったのがあるので、10M程度を引き回すのであれば普通のPhone端子で十分。 

IMG_7086.JPG

欲を言えばREMO等のスマートなデザインのコネクタが理想なのだが、在庫しているのは8p以上の無駄に高機能なものばかり。 なので使うことを思いきれない。 

IMG_7088.JPG

8pのケーブルはアンプ本体と電源を繋ぐケーブルに使えるが、こちらは適当な長さの8芯ケーブルの在庫が存在しないのがまた別の問題。 

日本製のこの手のコネクターは絶望的にデザインがダサイ。 そのうえ、敷設時にうっかりしてネジの端で手を怪我したことさえあるのだから、本当にコレはデザインされているのか?と疑問になることがある。 そんなデザイン不在の不毛な環境の中、手前のHirose製は日本随一ともいえる綺麗なシェイプを持った製品だろう。 Remoの半額以下なのも良いポイントだ。 

いっそのこと、余ってるHiroseの4pを2p化して使うのもアリか。 ハンドリングするパワーが70W程度なので細い端子でも問題はないし、効率云々を言うレベルの運用はしていないテキトーな構成のアンプなので、運用時の利便性を追求した方が良いのではないか。 スピコンは嵩張って収納に困るうえに、展開時はそのサイズがジャマになること多し。
posted by Yasuski at 12:02| AudioElectronics