✨ 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 or later

【Step 1: I2C の有効化】

sudo raspi-config
# [3 Interface Options] → [P5 I2C] → Enable

または /boot/config.txtの最終行に追記:

dtparam=i2c_arm=on

再起動:

sudo reboot

【Step 2: OLED接続確認】

sudo i2cdetect -y 1

「3c」やその他のアドレスが表示されれば接続OK


【Step 3: ArduiPi_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: pi-star ユーザーに GPIO アクセス権限を付与】

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使用)】

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

【Step 6: MMDVM.ini の OLED設定】

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

【Step 7: 動作確認】

./MMDVMHost MMDVM.ini

OLEDにコールサインやIDLE情報が表示されたら成功


【Q&A: 予期される問題と対処】

現象原因対処
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は別フラグを含むビルド対応として有効

コメントする

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