広帯域受信機 ATS-20 Plusを入手した。
中を見てみるとArduino Nanoで制御しているようだ。ファームウエアのソースも公開されていて自由に改造できるが、Arduino Nanoのメモリをほとんど使い切っているため、ピン互換のあるMaker Nano RP2040に交換してみた。
基板からArduino Nanoを外すのが大変なのだが、百均で売ってる万能ばさみでArduno Nano基板とATS-20 Plus 基板の間のピンを真っ二つにちょん切ってArduino Nano 基板を外した。
あとはピンをはんだごてで熱しながらラジペンで引っ張ると抜くことができる。
ATS-20 Plus のファームウエアは SI473X_ALL_IN_ONE_OLED_RDS_CHINESE_V9 を用いた。
RP2040のライブラリに https://github.com/earlephilhower/arduino-pico を使うとソースの変更なしにコンパイルが通る。
これで起動してみると、OLEDに表示が出てこない。i2cのピンをArduino Nanoと同じピン位置で指定しないといけない。Wire.hをincludeしてSDA, SCLを12,13に指定する。
これでOLEDに表示が出たがラジオが鳴らない。ピン番号が10番以降はArduino Nanoと番号が変わっているためこれを直したら音も出た。
使用メモリは4%程度のようで、腕があれば色々組み込めるのだが、と思っている。
変更したピン配置を置いておく。
#define RESET_PIN 16
#define AGC_BUTTON 19 // Switch AGC ON/OF
#define STEP_BUTTON 17 // Used to select the increment or decrement ffrequency steprequency step (see tabStep)
#define ENCODER_BUTTON 26 // Used to select the enconder control (BFO or VFO) and SEEK function on AM and FM modes
Wire.hを Include して、setup()の中に
Wire.setSDA(12);
Wire.setSCL(13);
Wire.begin();
も入れておくこと。
追記:goshanteさんのファームウエアも動かすことができた。