毎日こつこつ

Gentoo/Linuxユーザによる電子工作やマシン構築などの備忘録です.

Da Vinci 32U with Arduino BootloaderにGentooで書き込み

Gentooダ・ヴィンチ 32Uマイコンボードに書き込みを行う方法です.

1. Arduino IDEをインストールする下準備.

# emerge -avq icedtea crossdev layman

icedtea :
Arduino IDEは, Javaで書かれているので好きなJavaプラットフォームを入れます.
crossdev, layman :
ツールチェイン構成用.

インストールが終わったら, 以下のように設定を行います.

# echo "source /var/lib/layman/make.conf" >> /etc/portage/make.conf
# mkdir -pv /usr/local/portage

以下のようにツールチェインを作成します.

# USE="-openmp" crossdev -t avr -s4 -S --without-headers

ツールチェインの作成には,少し時間がかかるかもしれないので気長に待ちます.
もし, 以下のようなエラーメッセージが出た場合,

please convert /etc/portage/package.use to a directory

次のようにします.

# mv /etc/portage/package.use /etc/portage/use_backup
# rm /etc/portage/package.use
# mkdir /etc/portage/package.use

修正が終わったら,もう一度ツールチェインの作成コマンドを入力します.

2. カーネルの設定
みんな大好きカーネルコンフィグレーションを行います.
一応, ttyとuucpをユーザに追加します.

# gpasswd -a YOUR_USERNAME tty
# gpasswd -a YOUR_USERNAME uucp

カーネルの設定画面を開きます.

# cd /usr/src/linux
# make menuconfig

以下の2つをモジュールに設定します.

Device Drivers
  -> USB support
     -> USB Serial Converter support
        -> [M] USB FTDI Single Port Serial Driver

Device Drivers
  -> USB support
     -> [M] USB Modem (CDC ACM) support

設定をインストールします.

# make && make modules && make modules_install && modprobe ftdi_sio

ここまで終わったら, ダ・ヴィンチをPCに接続します.
dmesgで認識しているか確認できたら次に進みます.

3. Arduino IDEのインストール
Arduino IDEのインストールをします.

# emerge -avq arduino

起動するか確認してください.

4. Da Vinci 32Uのドライバ設定
初期状態では, Arduino IDEのメニュー -> ツール -> マイコンボードにDa Vinci 32Uはないと思うので設定ファイルを書き追加します.

# cd /usr/share/arduino/hardware/arduino

お好きなエディタでboards.txtを開き末尾に以下を追加します.

davinci.name=Da Vinci 32U
davinci.upload.protocol=avr109
davinci.upload.maximum_size=28672
davinci.upload.speed=57600
davinci.upload.disable_flushing=true
davinci.bootloader.low_fuses=0xff
davinci.bootloader.high_fuses=0xd8
davinci.bootloader.extended_fuses=0xcb
davinci.bootloader.path=caterina
davinci.bootloader.file=davinci.hex
davinci.bootloader.unlock_bits=0x3F
davinci.bootloader.lock_bits=0x2F
davinci.build.mcu=atmega32u4
davinci.build.f_cpu=16000000L
davinci.build.vid=0x1774
davinci.build.pid=0x8032
davinci.build.core=arduino
davinci.build.variant=leonardo

Arduino IDEを起動し, Da Vinci 32Uがあるのを確認し選択します.

5. Da Vinci 32Uへの書き込み
スケッチに以下のLEDをチカチカさせるプログラムを書き込み, 確認を行います.

int led = 13;

void setup() {
    pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(100);
  digitalWrite(led, LOW);
  delay(100);
}

もし, 以下のようなエラーメッセージが出た場合,

/usr/libexec/gcc/avr/ld: cannot open linker script file ldscripts/avr5.x: No such file or directory

次のコマンドを入力.

# ln -s /usr/lib/binutils/avr/YOUR_VERSION/ldscripts /usr/avr/lib/ldscripts

Da Vinci 32Uに書き込み, LEDが高速でチカチカしたら成功です.


参考文献
Arduino Playground - Gentoo
GentooでARM(CortexA8)クロスコンパイル環境の構築 » 旧・LGA128のメモ帳
Strawberry Linux ダ・ヴィンチ32U with Arduino Bootloader のメモ | 趣味関係のメモ帳