PR

ATS-20+のファームウェア更新(ATS_EX) – 見やすいフォントに、9kHzステップも対応

結論から言うと、「このファームウェアに入れ替えろ、100倍よくなる」。ちょっと言いすぎかもしれないけど、ものすごく使いやすいと思う。

ATS-20+自体の簡単なレビューはこちら。

ATS-20+はフォントが見づらい

ATS-20+は物理ボタンがあって操作性が良い点が気に入っている。ボタン自体は頭が小さいので押しやすいとは言えないけど、それでも「音量はこのボタン」、「ステップ周波数変更はこのボタン」と、操作するボタンが決まっているのでわかりやすい。

その一方で、フォントは最悪。

こうやって写真にすれば大きいので読めるが、表示パネルの実寸は23x13mmくらい。文字が小さい上に、横縞柄(?)で非常に読み取りにくい。

あれを見づらいと思っている人は私一人じゃないはずで、だったらフォントを変更したファームウェアがあるかもしれないと探してみたら、GitHubにあった。

goshante氏版のこのファームウェア(ATS_EX)は、オリジナルからかなり変えているようだ。特に目を引いたのはこの五つ。

  • フォントの改善(周波数の表示は大きいし、シマシマじゃない)
  • BFOがVFOに統合(SSBのチューニング時にVFOのステップを細かくできる)
  • 操作ボタンの再定義(例えばバンド変更はBandボタンとダイヤル – 素早い変更)
  • 9kHzステップのサポート(オリジナル版にはない)
  • LCDの明るさの変更(照度を落とせる)

他にもたくさんある。マニュアルもGitHubにある。

先に結果を載せると、このような表示になる。

ファームウェアの書込み

ファームウェアの書き込み方もGitHub内の説明にあるのでそれに従う。

ファームウェアのダウンロード

コンパイル済みのバイナリが提供されているので、それをダウンロードする。

現時点での最新版は、ATS_EX_v1.18.hex。

このバイナリだとバッテリ残量を表示させるにはハードウェアの改造が必要だけど、改造せずに表示できるバイナリもある。記事の後半で。

AVRDUDESS

AVRマイコンの書込みにはこれまでもavrdudeを使っていたが、そのGUI版があるそうだ。

最新版のダウンロード先はこちら。

まずは、これをインストール。

このままでも使えるけれど、日本語をサポートしているそうなので、言語を切り替えてみる。画面中央(やや右下)の「Options」ボタンをクリック。

言語のリストから「日本語 (Japanese)」を選んで「OK」ボタン。

一旦、AVRDUDESSを終了させて、再起動(再起動しないと言語の変更は有効にならない)。

日本語化された。

書込み

手元のATS-20+には、Arduino Nano(互換機)が内蔵されている。これをUSBケーブルでPCにつなぐ。ATS-20+の背面にはType-Cとmini-Bの二つのUSBポートがあるが、Arduino Nanoはmini-Bの方(Type-Cは充電用)。

あとは、AVRDUDESSを設定して書き込めばOK。だと思ったのだけど、結構はまった。エラーで書き込めない。

細かいことは省いて、上手くいく方法を記しておく。失敗の話は記事の最後で。

主な設定項目は次の通り。

  • プログラマー: arduino
  • ポート: ATS-20+をつないだポート番号
  • ボーレート: 115200
  • MCU: ATmega328P
  • プリセット: Default
【余談】「プリセット」で「Arduino Uno (ATmega328p)」を選ぶと「プログラマー」と「ボーレート」、それと「MCU」は適切に設定される(ついでに、「ポート」は「COM1」に強制されて「フラッシュ」はクリアされるが)。「プリセット」で「Arduino Nano (ATmega328P)」を選ばないように。エラーで書き込めない。詳細は記事後半の失敗編で。

あとは、「フラッシュ」のところにダウンロードしたファムウェアのファイルを指定し、「書込」にチェックを入れて「実行」を押せば書き込まれる。

数秒で完了。まさにあっという間。書込みが終わるとATS-20+は再起動がかかる。それで使えるかと思ったら、表示が無茶苦茶になって悩んだ。結局は、USBケーブルを抜いて再起動すればよかっただけだったのだけど。それと、最初の起動時にはリセットせよとあるので、それをやっておく。具体的には、ロータリエンコーダを押しながら電源投入。これで、設定が初期化される。

表示がものすごく見やすくなった。写真だと拡大されて見えるので荒く感じるけど、実際には非常に良い。

操作

操作方法はGitHubにあるとおりなので省略(英文だけど、Webブラウザの翻訳機能を使えば問題ない)。

少し気になったと言うか、気づいたことを挙げておく。

SSBでは、オリジナル版ではBFOで細かい周波数を調整していたが、本版ではVFOに統合されており、10Hz台まで表示されるようになっている。ステップ周波数の変更はSTEPボタンを使うが、SSBではロータリエンコーダのボタンもステップ周波数の変更になる(AM・FMではロータリエンコーダのボタンはスキャン開始。このあたりは設定で変えられるが)。

CWモードもあるが、基本、SSB。LSBを使うかUSBを使うかは設定で変更できる。なお、CWではフィルタ周波数が固定されて変更できない(500Hzかな?)。

Sメータのようなバー表示ができる(STEPボタン長押し(離すと表示される))。しかしながら、チューニング操作にリアルタイムで反応してくれない(チューニングを停止してしばらくするとバーが動く)。まぁ、仕方ないかな。

LCDの照度を設定で変えられるが、かなり数字を小さくしないと変化しない。

9kHzステップでのスキャン動作がおかしい。例えば、810kHzにセットしてスキャンさせた場合、手動で止めて戻ってくると808kHzや817kHzになって、810kHzにはならない。これはどうやら、バンド下限周波数が影響しているようだ。MWバンドでは下限周波数が520kHzに設定されており、ここを基準に9kHzステップで動くみたい。520+(9*32)=808、520+(9*33)=817ということ。このため、9kHzステップでのスキャンは実用にならない。手動チューニングではこのようなおかしな動作はしない。そのときの周波数から9kHzステップで動く(520kHzからの縛りはない)。

FM時のモノラル/ステレオの表示がない。これはオリジナル版にはあったので、この版の唯一の欠点かもしれない。なお、表示がないだけで、ステレオ受信機能自体は有効(ヘッドフォンの場合)。

他にも機能がたくさん増えているので、マニュアルを見ながらいじってみると良い。

バッテリ残量表示

バッテリの残量を%で表示させる機能がある。ただし、そのためには、ちょっとしたハードウェアの改造が必要。詳しい話は、GitHubに記載されているが、簡単に言えば、バッテリの+とGNDの間に10kΩの抵抗二本を直列に入れて、その中点をArduino NanoのA2ピンに接続する。これで、バッテリ電圧の中点をArduinoでモニタできるようになる。

ところが、GitHubの掲示板を見ていたら、ATS-20+にはそのための回路が搭載されており、A1につながっているとのこと。したがって、モニタ端子をA1に変更してコンパイルすればハードウェア改造無しで使える。

コンパイル済みのものも公開されている。

ここにある、ATS_EX_hex_230125.zipがそれ。ZIPを展開するとバイナリファイルが三つある。そのうちの、ATS_EX_v1_18_A1.hexが通常のもの。上の要領で書き込めばOK。

このように右下にバッテリ残量が表示される。なお、バッテリ残量が表示されるのはバッテリ動作の場合。Arduno NanoにUSBケーブルをつないだ状態でもATS-20+は動作するが、その場合はバッテリ残量は表示されない(0%と表示される)。

バッテリモニタの回路が入っているのはATS-20+で、ATS-20には入っていないようだ。ATS-20の回路図はこちらにある(ATS-20+の回路図も)。

特殊なUSBケーブルが必要なのか?

バッテリ残量モニタをA1に変更したバージョンを公開している記事には、このような注意書きがある。

You should use a Mini-USB cable with the 5V isolated to avoid damaging the ATS-20+, see previous threads.

+5Vのラインが切り離されたUSBケーブルを使え、と。

より詳しい話はこちら(同一人物)。

要約すると:

  • ATS-20はバッテリから作られた3.3Vで動作している
  • Arduino Nanoもその3.3Vで動作させるため、Arduino NanoのVcc(5V)の端子には3.3Vを供給している
  • Arduino Nanoの3.3V端子にも、同じ3.3Vを供給している
  • 一方、Aduino Nano(互換機)では、3.3V端子にはシリアルチップのCH340の3.3V端子がつながっている
  • CH340を3.3V動作させる場合は、CH340の(5V)端子と3.3V端子をつなぐので、両方に3.3Vを供給するのは正しく、ATS-20をバッテリ動作させている状況においては問題ない
  • ところが、Arduino NanoにUSBケーブルをつなぐと、そちらから5Vが供給される
  • CH340の5Vと3.3V端子の両方に5Vが供給されるため、CH340内蔵の3.3Vレギュレータが壊れる可能性がある

なるほど、という気もするけど、本当にそうかなぁ?CH340の中に3.3Vのレギュレータなんてあるんだろうか?単純に抵抗分圧で3.3Vを作っているんじゃないだろうか?本来の使い方が3.3V動作の場合はVccを3.3Vに端子につなぐわけだから、レギュレータが入っていたらそんな使い方はできないのでは?単純な抵抗分圧なら、3.3V端子に5Vを供給しても問題ないだろう。あくまで想像だけど。

それよりも、USBケーブルをつなぐと5VをATS-20の3.3Vレギュレータの出力につなぐことになる方がまずそうな気がする。その問題も、ATS-20の電源を切っていれば大丈夫じゃないかな?端子に5Vがつながったとは言え、動作中じゃないし(気持ち悪いけど)。逆に言えば、動作中だとヤバそう。実際には、USBケーブルを繋いだ状態で、うっかり電源を入れてしまったことが何度かあるが、今のところ壊れてはいない。将来壊れないとも限らないが。

いずれにしても、5V線を切ったUSBケーブルを使うのが良いのかもしれない。この場合は、ATS-20の電源を入れないとArduino Nanoが動かないので、ファームウェアの書込みもできないだろう。

AVRDUDESSの設定失敗例

AVRDUSESSでの書込みでやってはいけないこと(はまったポイント)を書いておく。それは、Arduino Nanoだからと思って「プリセット」に「Arduino Nano(ATmega328p)」を選択すること。

これをやるとArduinoと通信できなくてエラーになる。

Error: programmer is not responding
Warning: attempt 1 of 10: not in sync: resp=0x00

Arduino Nanoにはブートローダが二種類ある。現在のブートローダと、Old bootloaderと言われるもの。Optibootという表記も見かけることがあるが、それが現在のブートローダだそうだ。Arduino Nanoは当初は(今でいう)Old bootloaderが使われていたのだけれど、その後に発表されたArduino UNOでOptibootが採用されて、最近のArduino NanoにもOptibootが使われているらしい(互換機だけかも)。

Old bootloaderに比べて、Optiboot(現ブートローダ)は、シリアルの通信速度が速い(Old bootloaderは57600bps)、ブートローダ自体が小さい(その分、プログラム領域が広い)という特徴があるそうだ。ということで、ブートローダに合わせて、書込みツールを設定しなければならない。

どちらのブートローダが搭載されているかは外観等からはわからない。また、簡単な調べ方もない。つまり、書き込みしてみて書けた方、ということ。強いて言えば、実際に書き込んでみるのが簡単な調べ方。

Optibootの載ったArduino NanoってArduino UNO R3とほぼ同じなので、「プリセット」で指定するなら「Arduno UNO (ATmega328P)」を選ぶと良いようだ。実際にそれで書き込めた。

余談ながら、「プリセット」で「Arduno UNO (ATmega328P)」を選択すると、シリアルの速度は自動的に115200になる。また、「Arduino Nano(ATmega328p)」だと57600になる。なお、「プリセット」を変更するとポートはCOM1に強制的に変更されるようなので要注意。


ラジオ
この記事のタイトルとURLをコピーする
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク

コメント