USBインターフェースを行うAtmega16u2のカスタムファームウェアの作成を検討します。そのチップはフルスピードUSB(最大12 Mbitの信号速度)を話すことができ、そのチップのSPI出力ポートはICSPヘッダーで利用できるので便利です。ArduinoのSPI入力(ICSPヘッダーでも利用可能)に接続すると、4 Mbit / s(ビットあたり4 CPUクロック)でSPIを実行できます。
メガ(16u2および128)のAtmegaは、シリアルポートを最大2 Mbit / sで実行できます。16u2用のカスタムファームウェアを作成する場合は、すでに存在する非同期シリアルUSARTを使用することもできます。
これらのどちらの場合でも、シリアルポートのプログラマビリティが失われる可能性が高いため、USBベースの別個のプログラマーを使用する必要があります。
LUFAプロジェクトには、Atmegaチップで実際にUSBを話すためのサンプルプログラムと役立つライブラリがたくさんあります。「libusb」は、シリアルエミュレーションに依存する必要はなく、USBデバイスと直接通信するのに便利なライブラリです。