ラズベリーパイのGPIOにSDカードアクセスLEDを接続する方法

2023年11月11日

はじめに

ラズベリーパイにはオンボードでLEDが装備されており、標準では電源やSDカードアクセス状態を示す設定になっている。ラズベリーパイの特徴としてシングルボードで完結することに加え、GPIOに各種センサー等を接続してむき出しで使用することが多いこともその理由と思われる。ここではSDカードのアクセス状態をGPIOから出力し、外付けLEDで表示してみる。先日作成したPC-9801風ラズベリーパイケースは基板が隠れてしまうのでSDカードのアクセスLEDを外に出せないかと考えたのが背景。

オンボードのLED。ラズベリーパイZero系は1つ、通常のラズベリーパイ(写真のものはラズパイ3)では2つのLEDを搭載。

ラズベリーパイ設定(config.txt)

Raspberry Pi OSの起動時の設定値は/boot/config.txtに記載できるため、適当なエディタでこれを編集する。標準でnano(エディタ)が入っているのでnanoを使用する場合は下記コマンド。

$ sudo nano /boot/config.txt

config.txt内に、SDアクセスをGPIOに割り当てる設定を追記。GOIP17にSDカードアクセス状態を設定する場合は下記。

dtparam=act_led_gpio=17

config.txtへの記載例

# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# SD card access LED
dtparam=act_led_gpio=17

編集したconfig.txtを保存し、再起動する。

LED接続/動作イメージ

先程設定したGPIO17(11番ピン)と、適当なGND(9番ピンなど)にLEDと抵抗を接続することでSDカードアクセス時にLEDが点灯するようになる。GPIOピン配列は公式ドキュメントを参照。SDカードからの起動の様子を動画で示す。/boot/config.txtがRaspberry Pi OSの設定値として読み込まれることで有効になるため、起動途中から外付けLEDが点灯していることがわかる。

今後の展望

PC-98風ケースではラズベリーパイ本体が隠れてしまうのでアップデートしてSDカードアクセスLEDを設置できるようにしたい。その際にはPC-98の筐体デザインからするとHDDアクセスLEDの位置、FDDアクセスLEDの位置が考えられるが、FDDアクセスLEDの場所は部品が混み合っているのでちょっと工夫が必要になりそう。

リンク

アクセスLEDについてのフォーラム
ラズベリーパイconfig.txt設定情報
ラズベリーパイGPIO情報