AVRISP mkII を使ってコマンドラインからプログラムする

アトメルの AVR プログラマ AVRISP mkII はもう販売終了していますが、デバイスにさっと書き込むにはやはり大変便利、いまだに愛用しています。でも AtmelStudio 経由で書き込むとウィンドウを開けたり閉じたりしなくてはならず繰り返しプログラミングするときには面倒です。コマンドラインからのプログラミングには Avrdude を使うことが多いですが、このソフトは AVRISP mkII で使われているドライバとうまく通信ができないようで、よっく探すと AVRISP のドライバをハックして無理やり書き込むこともできるようですが、それはちょっと危なっかしい。目的は avrdude を使うことではなくコマンドラインから書き込むことなので、違う方法を探しました。AVRISP mkII はアトメルのものなので Atmel Studio のパッケージの中に何らかのツールがあるはず、と探してみたらありました。atprogram というツールらしいです。以下は使い方のメモです。

PATH 環境変数への登録

C:\Program Files (x86)\Atmel\Studio\7.0\atbackend あたりにあるのでここを環境変数 PATH に登録します。

デバイスへの接続チェック

プログラマを使うときまずするのがデバイスときちんと通信できるかのチェックですが、以下のコマンドを使います
$ atprogram -t avrispmk2 -i isp -d atmega168 info --signature
Firmware check OK
0x001e9406

–signature オプションを省くとフューズなどもっと詳しい情報が出ます。でもフューズをもっと手っ取り早く読むには
$ atprogram -t avrispmk2 -i isp -d atmega168 read --fuses --format hex
Firmware check OK
dfdeff

デバイスへのファームウェア書き込み

以下が例です
$ atprogram -t avrispmk2 -i isp -d atmega168 program -c -fl -f dr-110.hex --format hex --verify
Firmware check OK
Programming and verification completed successfully.

Windows 10 の設定

日本から持ってきた ThinkPad 200、10年ぐらい直し直し使っていましたが電源まわりの故障が起きてしまいそろそろ寿命のようで新しい PC を購入しました。Windows 機を新調すると大変な量の設定が必要で毎度辟易しますが、その分できることも多いので我慢のしどころです。

設定事項のひとつひとつは検索をするとたいてい解決しますが数が多いので毎回おのおのを検索するのは時間食いです。過去にやったことを繰り返すにはこのブログにメモを入れておくのが一番効果的とだんだんわかってきました。ということで、この記事には、Windows の設定方法が集めてあります。

JIS 配列キーボードを US 配列キーボードとして使う

106 キーボードを 101 キーマップで使うわけです。以前はレジストリを編集しなくてはならなくてちょっと嫌でしたが、Windows 10 では設定の変更だけでいけます。以下作業メモから

Go to Settings -> Time & Language -> Language -> “Choose an input method to always use as default” -> “Override for default input method”

Then change the selection to “English” from “Use language list”

Inconsolata フォントをインストールする

Inconsolata ページ: https://www.levien.com/type/myfonts/inconsolata.html
フォントの入手先: https://github.com/google/fonts/tree/master/ofl/inconsolata

フォントのインストール方法:

  1. フォント ttf ファイルをダウンロードする
  2. 右クリック→Install
  3. Windows 検索ウィンドウで fonts とタイプすると設定されたフォントが確認できる

参考: https://www.groovypost.com/howto/install-fonts-windows-10/

Sonar をインストールする

Sonar で古いプロジェクトやプラグインを使っているのですがそれらが動くようにするには色々設定が必要です。

32 bit か 64 bit か?

プラグインが 32 bit なので 32 bit 版の Sonar をインストールしたほうが簡単です。 64 bit 版をインストールすると何もしなければプラグインが動きません。

日本語 Sonar を英語 Windows で使う

英語版 Windows で日本語のアプリを使う方法は 鍋CADが英語モードの WINDOWS 10 で文字化けしてしまう に一度書いたのですが、日本語 Sonar はこれだけではまだ十分でなく、

Control Panel > Clock, Language, and Region を呼び出した後、Region > Change location > Administrative タブ > Change system locale… > Current system locale: Japanese > OK

ここまでは一緒ですが、ここからさらに、”Beta: Use Unicode UTF-8 for worldwide language support” チェックボックスにチェックを入れます。それでもまだ多少の文字化けをしますが使える範囲内です。

Proteus VX プラグインのインストール

Proteus VX は Windows XP 向けに開発されていて、32 bit の設定でインストールするだけでは動きません。コンパチブルバージョンを変えないといけません。インストールされた Proteus VX の実行ファイルを探し (私の環境では C:\Program Files (x86)\Creative Professional\Proteus VX\ProteusVX.exe)、右クリック -> Properties -> Compatibility タブ -> Compatibility mode に行き、”Run this program in compatibility mode for” をチェックし、バージョンは “Windows XP (Service Pack 3)” を選びます。今回はこれで動作しました。

こんなに古いプラグインがまだ動くのはありがたいことです。でも誤動作も頻繁に見かけます。E-mu ブランドはついになくなってしまったようで、今後 Proteus が再リリースされる可能性はだいぶん低いのだと思います。残念です。

USB コネクタソケットのシールドはどこにつなぐ?

MIDI USB の実験のために USB コネクタの配線を始めるところですが、まず最初の疑問、「ソケットのシールドはどこにつないだら良い?」 GND に落とすんでしょうか?別のことをするんでしょうか? GND に落とすと色々悪いことが起きそうな予感がします。

Stack Exchange に 参考になるスレッドがありました

たくさん記述がありますが、要するに GND に落としてはいけなくて、どこにもつながないか装置のアースにつなぐのが良いようです。今のプロジェクトでは前者です。

上記のスレッドは長いですが、内容は面白く読む価値はあります。

MC34063 を使った DC-DC 昇圧電源の設計

今改造中の DR-110 は 6V の電池または 9V の ACアダプタを電源にしていますが、USB とつなぐことも検討しているので USB から電源が取れると便利です。 DR-110 の回路図を見ると、電源には最低でも 6V 必要です。 USB からの給電は 5V なので、少しだけ持ち上げる必要があります。今後も USB からアナログ回路への電源が取れるとなにかと便利なので、入手しやすい DC-DC 電源 IC を探して使い方を覚えることにしました。

Jameco が近所にあってそこに在庫があればその日のうちに部品が入手できるので、ここにあるチップしかも DIP パッケージのものが使えれば便利です。調べてみると、MC34063 というチップが安価で在庫豊富です。このチップは、昇圧、減圧、極性反転すべて可能で容量も 1.5A あり応用範囲が広そうです。ほかのサイトを見ても入手しやすいようで、DC-DC コンバータの定番チップであるようです。まずはこの IC の使い方を覚えることにします。

DR-110 の電源として使うには、5V の USB 電源から 7V ぐらいに昇圧すればちょうど良いです。消費電流は 50mA も取れれば良いはず。この仕様なら IC の性能の範囲に楽々収まるのでこの設計をしてみることにします。

最初は資料集めからです。Jameco で扱っている MC34063 は STMicro 製で製品ページはこちらですが、データシートには使い方の要約が書かれているだけで、この回路の知識がないとこれだけでは設計できそうにもありません。ので、ONセミコンダクタTI の製品ページからデータシートとアプリケーションノートを入手しました。アプリケーションノートはどちらの配布も内容は同じなようです。先に見つけたのは TI のページでそちらの資料を使いました。

これが、データシートに載っている昇圧電源の回路図、内臓のオシレータによりQ1/Q2 スイッチを断続して、Lにエネルギーを貯めて昇圧します。5番ピンに入る電圧を監視して、コンパレータによりスイッチングのタイミングを変えることにより出力電圧を安定させます。巧妙にできていますね。

この回路定数をそのままR2だけを変えて 5V → 7V の昇圧になるように設定して実際に回路を組んでみましたが、出力電源に盛大なリップルが入ってそれがノイズとして聞こえてしまい使い物になりませんでした。もっと丁寧に回路定数を計算する必要があるようです。アプリケーションノートには動作原理から回路定数の計算方法まで詳しく書かれているのでそれに従って回路定数を計算してみました。

オシレータの周波数は CT によって決まり、ほかの回路定数の影響はほぼ受けないようです。発振周波数から決めて、あとは、出力電圧からスイッチングのデューティー比を計算、それと出力電流から L の最小値を決めればよいようです。それで決めた回路定数をもとに、シミュレータを使って動作確認をして回路定数を少し変えました。下の図が回路定数を変えてシミュレーションした回路、R4 は負荷です。

スイッチング電源の難しそうなところは、負荷の大きさでスイッチングの挙動が大きく変わること、アナログ回路では消費電流が大きく変わることはあまりなさそうなので、消費電流をあらかじめ調べてから設計を調整したほうが良いような気もします。以下は、負荷抵抗を 100kΩにまで増やした時の挙動、スイッチングのタイミングが大きく変わって、遅いリップルもくっきり見えています。周期が 1 kHz 弱ぐらいまでに落ちているのでこれは音になって聞こえてしまいそうで、このようになったら回路定数をまた変えないといけません。ここまできたら実際に回路を組んで確認したほうがよさそうです。今 10μH のインダクタが手元にないのでまずはここまでです。

DR-110 の駆動パルス

DR-110 の回路図は以下ののとおりです。

この回路では、ドラムセットの各パーカッションに 1 ms の負のパルスを入れればタイコが鳴るようです。オシロスコープをあてて、信号が回路図の説明通りに来ているか確認しました。

以下はバスドラムの入力パルスと出力波形です。

Blue: Input pulse, Red: Output
Blue: Input pulse, Red: Output

パルス幅は約 1.3 ms のようです。

以下はスネアドラム

Blue: Input pulse: Red: Output
Blue: Input pulse, Red: Output

ハンドクラップについては、入力パルスだけとりました。

Blue: CP I, Red: CP II

これはバスドラムをシミュレーションした結果です。ほぼ同じ波形が出ています。

パルス幅を細くすると出力が小さくなります。

パルス幅を広くすると出力は大きくなりますが、歪みが出てしまうようです。

DR-110 の改造

またしばらく何も作らないでいましたが、年も明けたしなんとか再開したいです。感覚が完全になまっているので、あまり難しくないものから始めようと思います。まずは死蔵している Boss DR-110 の改造から。液晶も死んでいるのでもうリズムのパタンが読めません。スイッチも半分ぐらいは接触不良になっています。かわいらしい筐体なのでこれを使えるように直すのも楽しいかもしれませんが、液晶が直るかどうか不明ですし、なにより覚えられるパタンの量が少なすぎて、実際に使うには無理な気がするので、もう割り切って音源基板だけ生かして MIDI で鳴らすことにします。

DR-110 は A, B, C, D と四つのパタンのバンクがあって、それらをつなげてソングという曲パタンを作れます。が、液晶が駄目になっているので打ち込みができません。ただ、バンク CとD はプリセットのパタンなので打ち込まなくてもリズムを鳴らしてくれます。こんな音です。懐古的かもしれませんけど、やっぱり好き。独特の湿り気のあるハンドクラップや、本物には全然似ていないけれども別の音として素晴らしいシンバル、たまらないです。

DR-110 Patterns (Bank C)
DR-110 Patterns (Bank D)

中身がどうなっているか調べながら作業を進めてゆこうと思います。

Mach3を起動すると Windows 7 が落ちてしまう問題

昨日はこの問題に引っかかって終了しましたが解決しました。

こちらのリンクにある対応策を実施したらあっさり直りました。

https://support.machmotion.com/books/knowledge-base/page/mach3-shutting-down-pc-on-launch

原因は、なんだかややこしい、マイクロソフトサポートのもと記事を確認しましたが専門的過ぎて理解できませんでした。まあ解決すればそれで先には進めるのであまり追求せず次行きます。ライセンスファイルを登録して、Mach3 のインストールはとりあえずできました。

jmm-tool はライセンスファイルは見つかったものの、ソフトの供給が終わってしまったらしくソフトウェアのダウンロードができず、手詰まったかと思いましたが、あちこち探し回って半ば引退しかかっている10年選手のラップトップにインストールされているのを発見、インストーラは見つからなかったもののインストールイメージをコピーして何とか動き出しました。ただし、日本製のソフトによくあるんですが英語版の Windows では文字化けしてまともに動かず、別に VM 上で動いている作業用日本語 Windows 10 にインストールしてなんとか動き出しました。もう供給もないし日本語環境でないと動かないというのも何かと困るので、別のツールパス生成ソフトも探し始めています。PyCam というソフトが使えそうな気がしますが、試用はまだしていません。

と、今日はこの辺までです。さらに NCVC というソフトがあると便利ということを思い出したので、おいおいインストールします。でもそろそろ CNC 機につないでみたいです。

それにしてもなんでこんな考古学みたいなことをやっているのだろう。新しい CNC の機械はどんなつくりになっているのでしょうね。あるいはもはや 3D プリンタ全盛?目的の違う別の道具なようなきもしますけれども。

CNC 用 PC の再設定

恐ろしく長く間が空いてしまいましたが、いいかげん製作を再開したいと思いつつあっという間に数年が経ち、うかうかしていると永久に始められないなと思い、また少しずつ時間を見つけて作業を再開します。

もう何もかも動かなくなってしまっていますが、まずは CNC を動かせるようにしたいです。以前所有していた CNC 制御用 PC は何年か前に米国を離れようかと考えていた時に手放してしまい、その後結局居続けることにして、再度 PC を購入、のままさらに数年放置していました。情けない。

CNC を動かすにはまずこの PC を動かすところから始まります。PC は Dell Optiplex 330 というとても古い機種で、リファブリケートされていた製品を購入しました。なぜこんな古い機種を使うかというと、CNC を動かすのにパラレルポートが必要だからです。3月下旬ぐらいから設定開始していたのですが、作業中に突然 PC が停止、故障ランプがついて起動しなくなり、いろいろ調べたところどうもマザーボードが壊れたらしい、怪しい中古のマザーボードを購入して交換したところまた動き出したのでやっと作業再開です。OS は Windows 7 32bit、何かのソフトが 32bit でないと動かないからだったはずなのですが、空白が長すぎてどのソフトだったかどうしても思い出せません。思い出せなくてもまあ困らないのですが。ちなみに Windows 7 の一通りのアップデートが済んだところで、マイクロソフトから「Windows 7 は2020年 1 月で更新が終わるしサポートもしないからね」との通知が。とはいえ OS のアップグレードする気などないですが、アップデートが切れたらやっぱり何かと不便にはなりそうです。古い機種を使い続けるのは頭が痛い。

CNC はオリジナルマインドの Black 1510。とんでもなく古い機種ですが、まだ動くことを祈っています。なんのソフトが必要かもすっかり忘れていましたが、四苦八苦してマニュアルを奥から見つけてきて、どうやら、

  • JMM
  • Mach3

の二つのソフトウェアが必要なことがわかりました。まずは Mach 3 のインストールから。

Mach 3 は、ライセンスファイルが奇跡的にみつかたものの、インストールバイナリは見つからず、でも Mach3 ソフトウェアはまだ販売されているようです。https://www.machsupport.com/software/mach3/

このページに、「Mach3 は 32bit Windows (2000/XP/Vista/7) じゃないと動かないよ」と明記してあります。これでしたか。

Mach3 をダウンロード、無事インストールして、起動、したところでシステムクラッシュしました。何度やっても同じです。今日のところは手詰まりで時間切れ。これは先が長そうです。まいった。前のPCほんとに手放すべきじゃありませんでした

うっかりしていてお知らせが遅れてしまったのですが、

Analog2.0 の本がカラー化して帰ってきました。

達人と作る アナログシンセサイザー自作入門 改訂版2017
https://www.rutles.net/products/detail.php?product_id=785
https://www.amazon.co.jp/exec/obidos/ASIN/4899774699

A5判/フルカラー/328ページ
定価:本体2,894円 (税込み)
2017年9月25日発売

Analog2.0 初版の間違いや分かりにくいところを修正しました。
シンセサイザーの回路も、故障や誤動作を減らすため少し変更してあります。

キャプテンミライさんの素敵なイラストも増えて、内容と装丁が近くなったのではないかと思っています。
よかったらお楽しみいただけるとさいわいです。

書籍で指定しているファイルは、Analog2.0 GitHub リポジトリに移動して、そこから公開しています。
https://github.com/naokiiwakami/analog2.0/wiki

正誤表は引き続き Analog2.0 の書籍サポートページから公開しています。
https://gaje.jp/analog20/book.html

目次
Chapter 1 シンセサイザーの仕組みと作り方
1-1 アナログシンセサイザーの仕組み
1-2 アナログシンセサイザーの作り方
Chapter 2 基本システムの製作(1)
2-1 パネルの製作
2-2 ケースの製作
Chapter 3 基本システムの製作(2)
3-1 電源モジュールの製作
3-2 ライフラインケーブルの製作
3-3 電源の仕組みを理解しよう
Chapter 4 機能モジュールの製作
4-1 システムの構成
4-2 ノイズジェネレータとミキサ
4-3 電圧制御増幅器(VCA)
4-4 電圧制御発振器(VCO)
4-5 エンベロープジェネレータ
4-6 低周波発振器(LFO)
4-7 電圧制御フィルタ(VCF)
Chapter 5 その他のモジュール
5-1 リングモジュレータ
5-2 グラフィックイコライザ
5-3 レゾネータ
5-4 フェーズシフタ
5-5 ゲートディレイ
5-6 アナログシーケンサ
Appendix 付録
A Analog2.0システム配線図
B MInI Board IIの製作
C トランジスタ・マッチングの方法
D モジュール間配線の確認方法
E Analog2.0ウェブサイト

鍋CADが英語モードの Windows 10 で文字化けしてしまう

鍋CADを英語モードの Windows 10 で使うと日本語の表記がすべて文字化けしてしまいます。これを防ぐには、システムのロケールを日本語に変える必要があります。

それには、下のスクリーンショットのように、Control Panel > Clock, Language, and Region を呼び出した後、Region > Change location > Administrative タブ > Change system locale… > Current system locale: Japanese > OK

と操作した後、OSを再起動するとシステムのロケールが日本語に変わります。その後は、鍋CADの日本語表記はきちんと表示されるようになります。

でも、システム全体のロケールを変えるとコマンドプロンプトのバックスラッシュが円マークに変わっていろんなファイルが見づらくなったりと、本当はあまりうれしくありません。ロケールを変えたくないなら、鍋CADの設定を変更して英語表記で使うという手もありますが、正直ちょっとわかりづらくなります。ソフトウェアがインストールされているディレクトリ (デフォルトでは C:\NTCAD) の下に LANG というディレクトリがあってその下にある English.txt を編集して自分好みに変えてしまうという方法もあります。