✨ MMDVMHost OLED対応実装手順(Makefile.Pi.OLED使用版)
2025年5月30日
2025年6月1日
【前提】
この手順書は、Raspberry Pi Zero 2 W + STM32_MMDVM_HS_HAT Rev1.7 (GPIO接続)の環境において、すでにMMDVMHostが正常動作していることを大前提とします。OLED SSD1306 (インターフェース I2C接続) を表示させるために、Makefile.Pi.OLED を使って再ビルドする手順を詳細に説明します。
【使用環境】
| 要素 | 内容 |
|---|---|
| SBC | Raspberry Pi Zero 2 W |
| OS | Raspberry Pi OS Legacy Lite (32bit) |
| OLED | SSD1306, 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は別フラグを含むビルド対応として有効


