大陸に注文していた Atmega 2560 が到着したので早速試してみました。
Atmega 2560 は Arduino Uno と互換を保ちながらメモリや I/O を増量したもので仕様は以下のとおりです。
Microcontroller:ATmega2560
Operating Voltage:5V
Input Voltage (recommended):7-12V
Input Voltage (limits):6-20V
Digital I/O Pins:54 (of which 14 provide PWM output)
Analog Input Pins:16
DC Current per I/O Pin:40 mA
DC Current for 3.3V Pin:50 mA
Flash Memory:256 KB of which 8 KB used by bootloader
SRAM:8 KB
EEPROM:4 KB
Clock Speed:16 MHz
フラッシュメモリは Arduino Uno の 8倍 もあるので、これでメモリ不足の呪縛から解放されそうです。

それでは、スケッチを書き込んでみます。

KEYER の機能を少し追加してメモリを 40KB まで大きくして書き込んでみました。
(Uno では 32KB 以上のスケッチは書き込めません。)
書き込み終了後に行われるチェックサムでエラーが発生しますが、各機能の動作を確認するも正常です。
あとでスケッチは検証してみますが、このまま動作に問題なければこのエラーは無視することにします。

並べてみると大きさの違いは分かりますが、そんなに違いはありません。

Mega と Uno は、互換性のあるシールドを使用できるという点で、とても柔軟性が高いです。
Uno 用に設計されたシールドを、そのまま Mega に差し替えて使えるのは、開発者にとって大きなメリットだと思います。特に、回路の設計変更や機能追加が必要になった場合、シールドを介して配線していれば、基板上の配線を変更せずに済むので、作業が簡単になります。
例えば、「ARDUINO CW KEYER」を開発している最中に、突然 Uno のメモリ容量が不足してしまったとします。その場合でも、Mega に差し替えるだけで、プログラムの修正なしに容量不足を解消できます。また、シールドを使っていれば、部品の配置や配線を気にせずに済むので、プロトタイピングが格段にスピードアップします。アイデアを形にするまでの時間を短縮できるのは、電子工作の大きな魅力の一つです。
さらに、シールドを活用すれば、配線ミスによるトラブルを防ぐことができます。電子工作に慣れていない人でも、シールドを使えば、配線の煩雑さを気にせずに、プログラミングに集中できるようになります。Mega と Uno の互換性の高さと、シールドの利便性を組み合わせれば、電子工作の可能性がさらに広がりそうです。

これでメモリ容量を気にせずに「ARDUINO CW KEYER」を使うことができるようになりました。Mega に差し替えたことで、より複雑で高機能なオプションが使えるようになったことは嬉しい限りです。
中華製の Atmega 2560 なら手頃な価格で入手できるので、コストパフォーマンスも抜群だと思います。
これからは、メモリ容量を気にせずに、思う存分「ARDUINO CW KEYER」をカスタマイズできそうです。アイデア次第で、さらに便利で面白い機能を追加できるかもしれません。LCD への表示と、PS/2 キーボードや USB マウスの操作についても、着実に進めていけば、いずれ実現できるはずです。
ただ、一度に全ての機能を実装しようとすると、複雑さのあまり挫折してしまうかもしれないので、そこは無理せず、一つずつ確実にステップアップしていくのが賢明だと思います。