✨ MMDVMHost OLED対応実装手順(Makefile.Pi.OLED使用版)

概要

この手順書は、Raspberry Pi Zero 2 W + STM32_MMDVM_HS_HAT Rev1.7(GPIO 接続)の環境において、すでに MMDVMHost が正常動作していることを前提とします。OLED SSD1306(インターフェース:I2C 接続)を表示させるために、Makefile.Pi.OLED を使って再ビルドする手順を詳細に説明します。

前提条件

要素内容
SBCRaspberry Pi Zero 2 W
OSRaspberry Pi OS Legacy Lite (32bit)
OLEDSSD1306, 128×64, I2C
MMDVM モデムSTM32_MMDVM_HS_HAT Rev1.7(GPIO 接続)
MMDVMHost バージョンGit: 20250424 以降

手順

Step 1:I2C の有効化

以下のコマンドで設定ツールを起動し、[3 Interface Options] → [P5 I2C] → [Enable] を選択します。

sudo raspi-config

または /boot/config.txt の最終行に追記します。

dtparam=i2c_arm=on

設定後、再起動します。

sudo reboot

Step 2:OLED 接続確認

I2C バスをスキャンして OLED が認識されているか確認します。

sudo i2cdetect -y 1
3c などのアドレスが表示されれば接続 OK です。

Step 3:ArduiPi_OLED ライブラリのビルド

ArduiPi_OLED を GitHub からクローンし、Makefile.Pi.OLED でビルド・インストールします。

cd ~
git clone https://github.com/hallard/ArduiPi_OLED.git
cd ArduiPi_OLED
make clean
make -f Makefile.Pi.OLED CFLAGS='-O3 -Wall -DBCM2835_USE_GPIOMEM'
sudo make -f Makefile.Pi.OLED install
📝 -DBCM2835_USE_GPIOMEM を指定することで /dev/mem の使用を回避し、非 root でも GPIO が使える /dev/gpiomem を利用します。

Step 4:GPIO アクセス権限の付与

gpio グループを作成し、pi-star ユーザーに権限を付与して再起動します。

echo 'KERNEL=="gpiomem", GROUP="gpio", MODE="0660"' | sudo tee /etc/udev/rules.d/99-gpiomem.rules
sudo addgroup gpio
sudo usermod -a -G gpio pi-star
sudo reboot

Step 5:MMDVMHost 再ビルド(Makefile.Pi.OLED 使用)

~/MMDVMHost ディレクトリで Makefile.Pi.OLED を使って再ビルドします。

cd ~/MMDVMHost
make clean
make -f Makefile.Pi.OLED

Step 6:MMDVM.ini の OLED 設定

MMDVM.ini[OLED] セクションを以下のように設定します。

[OLED]
Type=3           ; SSD1306 128x64, I2C
Brightness=255   ; 最大明るさ
Invert=0         ; 0: 標準表示
Scroll=0         ; スクロール無効
Rotate=0         ; 既定方向
Timeout=0        ; 表示オフ無効

Step 7:動作確認

MMDVMHost を起動し、OLED の表示を確認します。

./MMDVMHost MMDVM.ini
✅ OLED にコールサインや IDLE 情報が表示されたら成功です。

トラブルシューティング

現象原因対処
bcm2835_init: Permission denied/dev/mem アクセス失敗-DBCM2835_USE_GPIOMEM を使う、または gpio グループに追加
OLED に表示されないI2C 設定または Type 誤設定i2cdetect -y 1 で接続確認、Type=3 を指定
make install でエラーroot 権限不足sudo make -f Makefile.Pi.OLED install を実行

まとめ

  • Makefile.Pi.OLED を使うことで OLED 表示に対応
  • -DBCM2835_USE_GPIOMEM で安全に GPIO を使用
  • ArduiPi_OLED を正しくビルドし、gpio グループ設定で pi-star ユーザーでも表示が可能
  • Makefile で動作している場合でも、Makefile.Pi.OLED は別フラグを含むビルド方法として有効
JJ2YYK
  • JJ2YYK

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です