シャットダウン・起動用の押しボタンとUSBメモリやmicroSDカードへのアクセス状況を表示するSTATUS LED(ACT LED)をGPIOに接続した「LED付き押しボタンスイッチ」に割り当てた際の作業メモです。GPIOにつないだLED付き押しボタンスイッチとconfig.txtファイル編集で実現できる便利機能です。
GPIOの確認と割り当て
GPIOの状態(INPUT or OUTPUT、プルアップ or プルダウン、等)をraspi-gpio getで確認します。
今回、シャットダウンと起動の制御にGPIO3、外付けのACT表示用LED制御にGPIO24を割り当てました。
sudo raspi-gpio get
GPIO 番号 | 番号 | ピン割り当てた機能 |
GPIO3 | 5 | シャットダウンと起動 |
GPIO24 | 18 | ACT表示用外付けLED |

(GPIO and the 40-pin Header | raspberrypi.orgより引用して追記)

1 つの押しボタンスイッチでシャットダウンと起動を行う設定
Raspberry Pi 4B や Raspberry Pi Compute Module 4(CM4)は、設定することで
・稼働中にGPIO3とGNDが短絡したときにシャットダウン
・シャットダウン状態で GPIO3 と GND を短絡すると起動
を1つのスイッチで実現できます。
この設定は物理的に電源遮断するものではないので、電源を立ち上げ直す必要がある時は電源コネクタを挿し直す(電源スイッチをON/OFfする)必要があります。
nanoを起動してconfig.txtファイルを編集して、シャットダウンの設定を追加します。
sudo nano /boot/config.txt
少し触ったりしても電源が落ちないように、2秒長押しでシャットダウンするようにdebounce=2000(デフォルトは100)を追加しました。
dtoverlay=gpio-shutdown,gpio_pin=3,debounce=2000
詳細はインストールしたRaspberry Pi OSの /boot/overlays/README を「gpio-shutdown」で検索するとヒットします。
config.txtに上書き保存した後、設定反映するために再起動します。この後は、ボタンスイッチを押すことでシャットダウンと起動ができます。


基板上のACT LED(緑)をGPIOに接続した電流制限抵抗付LED表示に設定変更
Raspberry pi 4B基板上のSTATUS LED(ACT LED)出力をGPIO24につながった電流制限抵抗付LEDへの出力に切替える設定です。
config.txtに下記を記述します。
dtparam=act_led_gpio=24
再起動すればRaspberry pi 4B基板上の緑色のLEDは消灯、GPIOに接続した電流制限抵抗付LEDが点滅するようになります。
起動時やシャットダウン時の一時期は基板上のACT LED表示になります。

ケースへの組み込み、動作確認
ケースへの組み込みが容易な押しボタンスイッチとLEDが一体となった「LED付押しボタンスイッチ」を使いました。LEDには電流制限抵抗を直列につないてGPIOに結線します。


# | パーツ | 個数 | 備考 |
1 | 押しボタンスイッチ (青LED付) | 1 | P-04075(秋月電子通商) ※白塗料が付いている端子がカソード ※モーメンタリ動作 押している間スイッチが入る |
2 | 電流制限抵抗 330Ω 1/4W | 1 | ※好みの明るさで調整 |
3 | ジャンパーワイヤ | 適量 |
現在、Raspberry Pi 4Bを格納しているケースの前面には、このLED付き押しボタンスイッチの直径と同じ寸法のカメラ取付用の丸穴が開いているので穴あけ加工が必要がなく好都合でした。

