raspberrypi_zero_enable_uart - Kyokko-OB-Team/Document GitHub Wiki

RaspberyPi Zero WでUARTを使う方法

RaspberryPi Zero WでのUARTについて

RaspberryPi Zero WのUARTはデフォルトでBluetoothに接続されている。
他のUARTは、miniUARTという機能制限された仮想UARTみたいな感じになっている。
そのため、通常のUARTを使用するためには、Bluetoothとの接続を切って
GPIOピンにUARTを設定してやる必要がある。

手順

  1. Bluetoothの無効化

/boot/config.txtに、dtoverlay=disable-btを追記して再起動する。

$ sudo vim /boot/config.txt
...(略)
dtoverlay=disable-bt
$ sudo shutdown -r now
  1. Bluetoothを初期化するサービスを停止

Bluetoothを初期化すると、UARTのデバイスを取っちゃうらしいので、
UARTデバイスファイルを取られないようにサービスを止める。

$ sudo systemctl disable hciuart
  1. シリアルコンソールの無効化

デフォルトでシリアルコンソールが有効になっているみたいなので、これも無効化して再起動する。

$ sudo raspi-config

5 Interfacing Options Configure を選択
P6 Serial を選択
Would you like a login shell to be accessible over serial? と聞かれるので No を選択
Would you like the serial port hardware to be enabled? と聞かれるので Yes を選択

$ sudo shutdown -r now
  1. デバイスファイルを確認

再起動後に/dev/を確認すると、シンボリックリンクが以下のようになっているはず。
ttyAMA0 が通常のUARTになるらしいので、プログラムから使うときはこのデバイスファイルを指定してやる。

lrwxrwxrwx 1 root root           7  7月  4 05:36 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root           5  7月  4 05:36 serial1 -> ttyS0