エントリー

MAX98357Aを試す

アンプ付で便利そうなDACモジュールのMAX98357Aを試す

アンプがモノラルなのでLRを選択できるモジュールもあるようだが今回手に入れたのはLRが混合されている

IMG_20260330_131722.jpgIMG_20260330_131733.jpg

I2S入力なので簡単に接続できそうなラズパイで動作確認

結線
MAX98357A PIN RasPi PIN 備考
LRC 35 GPIO 19 (PCM_FS) I2S LRクロック
BCLK 12 GPIO 18 (PCM_CLK) I2S Bitクロック
DIN 49 GPIO 21 (PCM_DOUT) I2S DATA(Raspi→MAX98357A)
GAIN -   100kΩでプルアップ
SD -    
GND 6 GND  
Vin 2 5V  

GAIN PIN仕様

GAIN 接続
15dB 100kΩでGND接続
12dB GND
9dB 未接続
6dB VIN
3dB 100kΩでVIN接続

最初はGAINを未接続で試したところ,音量が変化するので電力不足かと考え電源ラインに1000μFのコンデンサを付けたが改善されないのでGAINを下げて3dBに設定

Pi-MAX98357A.png

GAINを下げ再生

音質は良いとは言えない

資料

ラズパイのI2S出力設定

$ sudo vi /boot/config.txt

#dtparam=audio=on # コメントアウト
dtoverlay=hifiberry-dac # 追加

音量変更など

$ sudo vi /etc/asound.conf

pcm.speakerbonnet {
type hw card 0
}

pcm.dmixer {
type dmix
ipc_key 1024
ipc_perm 0666
slave {
pcm "speakerbonnet"
period_time 0
period_size 1024
buffer_size 8192
rate 44100
channels 2
}
}

ctl.dmixer {
type hw card 0
}

pcm.softvol {
type softvol
slave.pcm "dmixer"
control.name "PCM"
control.card 0
}

ctl.softvol {
type hw card 0
}

pcm.!default {
type plug
slave.pcm "softvol"
}

編集後,再起動

接続確認

(接続前)
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

(接続後)
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0

出力確認

$ alsamixer         #音量調整

$ speaker-test -c2 #ホワイトノイズ

$ aplay test.wav #wav

$ mpg123 test.mp3 #mp3

この後ESP32で試そうとして嵌っている

SPI接続の2.8inchLCD(ILI9431)を試す

Bookwormで3.5inchLCD(ILI9486)が表示できなかったので2.8inchLCD(ILI9431)でどうなのか試してみた

IMG_20260329_092518.jpg

IMG_20260329_092828.jpgIMG_20260329_092843.jpg

ATS-25もどきで使用したLCDと同じ製品でAliexpressにて安価な時(0.7K位だったかと)に予備購入していた物

ラズパイ用ではないので直接接続でなく手動で結線

LCD側端子 ラズパイ側
ピン番号 GPIO
SDO(MISO) 21 GPIO 09
LED 01 or 12 3.3V or GPIO 18
SCK 23 GPIO 11
SDI(MOSI) 19 GPIO 10
DC(DC/RS) 18 GPIO 24
RESET 22 GPIO 25
CS 24 GPIO 08
GND 06 or 20 GND
VC 01 or 17 3.3V
Pi-GPIO-ili9431.png
 

ILI9486で試行したOSをILI9431用に変更

/boot/firmware/config.txt

dtoverlay=mipi-dbi-spi,spi0-0,speed=70000000
dtparam=width=320,height=240
dtparam=reset-gpio=25,dc-gpio=24

/lib/firmware/panel.bin

$ python mipi-dbi-cmd panel.bin ili9341.txt 

ili9431用に作成

すんなりと表示できた

IMG_20260329_105239.jpg

SPI接続のラズパイ用3.5inchLCD(ILI9486)を試す

Macintoshを小さいサイズにしてラズパイでエミュレートするYouTubeの映像を観て面白かったので,どこまで出来そうか調査してみることにした(記事で作製紹介している人はこちら

まず小さいデスクトップを用意する必要があるため,SPI接続のラズパイ用3.5inchLCD(SPI 125MHz対応版)を購入

IMG_20260303_152251219_HDR.jpgIMG_20260303_152329115_HDR.jpg

Aliexpressで購入したわりには,かなりしっかりした包装と箱入りで中身もちゃんとしていた

IMG_20260303_152421853.jpgIMG_20260303_152451206_HDR.jpg

説明書もありラズパイZERO2にてセットアップしてみたのだが・・・

IMG_20260314_143621.jpg

現時点での最新RPiOSは対応されていないようなので1つ前の「Bookworm」の32Bit版で試行したところ,イメージ表示されるだけで,デスクトップ環境(X11)はエラーとなって動作しない

当初これを「ILI9431」だと思って(こちらなど)ネット情報を参考にして手動設定していたところ上手くいかず途中で「ILI9486」であることに気付く

そしてこの商品と同等であるようなので情報検索したところ現状では「bullseye-armhf」でないと正常動作しないとのこと

ようやく「3.5inch RPi Display」に辿り着きX11を起動できた

IMG_20260316_094557.jpg

使用イメージ)MPI3501-3.5inch-2025-05-06-raspios-bullseye-armhf(Legacy)(Pi0-Pi3-Pi4).img

画面は上下変更(デフォが90度回転で270度回転している)ただしタッチ系が変更できず座標が逆になっている

※)後で「MHS-3.5inch RPi Display」を見つけた(イメージは同じだと思うがDLサイズ制限になったため確認できず)

しかし「2023-05-03-raspios-bullseye-armhf.img」でセットアップしたが動作不良

これはマニア向けの厳しい製品である

記録

waveshare製ということで試したサイト

https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)

https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)_Manual_Configuration

A,B,Cと3タイプあるそうだ

https://raspida.com/waveshare-install-lcd35/

タイプBでは無いのでA,Cを試したがConsoleのテキストしか表示されない(画面としてのドライバは良いがX11は不可ということ)

追加

「2023-05-03-raspios-bullseye-armhf.img」では,xinitが正常に起動していなかったので.bash_profileを修正して動作を確認

$ git clone https://github.com/goodtft/LCD-show.git
$ chmod -R 755 LCD-show
$ cd LCD-show/
$ sudo ./MHS35-show

$ sudo raspi-config nonint do_boot_behaviour B2

(.bash_profileの修正)

Bookworm,TrixieはSPI経由のイメージは出せるがWindowSystemとしては動作させられていない

タッチペンのキャブレーションも未決

主な設定ファイル

・/boot/config.txt

hdmi_force_hotplug=1
dtparam=i2c_arm=on
dtparam=spi=on
enable_uart=1
dtoverlay=mhs35:rotate=270
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0
hdmi_drive=2

tft35a,waveshare35a,waveshare35cでも動作する

・/usr/share/X11/xorg.conf.d/99-fbturbo.conf

Section "Device"
Identifier "Allwinner A10/A13/A20 FBDEV"
Driver "fbturbo"
Option "fbdev" "/dev/fb0"

Option "SwapbuffersWait" "true"
EndSection

・auto-login設定

$ sudo raspi-config nonint do_boot_behaviour B2
$ sudo raspi-config nonint do_wayland W1

・~/.bash_profile

if [ "`tty`" = '/dev/tty1' ]
then
export FRAMEBUFFER=/dev/fb1
startx 2> /tmp/xorg_errors
fi

・/etc/X11/xorg.conf.d/40-libinput.conf

$ sudo ./rotate.sh 180

設定ファイルで角度が異なるため自動設定を利用するのが良い

0でラズパイの電源コネクタが下になる

MHS35-showでも指定可能

・キャリブレーション

$ cd LCD-show
$ sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

(画面上で操作)

$ sudo vi /etc/X11/xorg.conf.d/99-calibration.conf

自動で実行されないので手動となる

IMG_20260321_133211.jpg

IMG_20260321_133240.jpg

現状は出力されたキャリブレーションデータでは正常にならない

・fbcp

$ cd LCD-show
$ sudo mkdir rpi-fbcp/build
$ cd rpi-fbcp/build/
$ sudo cmake ..
$ sudo make -j4
$ sudo install fbcp /usr/local/bin/fbcp

SPI_BUS_CLOCK_DIVISOR=8 (250MHz/8=31.25MHz)

$ sudo cmake -DSPI_BUS_CLOCK_DIVISOR=8 .. #31.25MHz
$ sudo cmake -DSPI_BUS_CLOCK_DIVISOR=4 .. #62.5MHz
$ sudo cmake -DSPI_BUS_CLOCK_DIVISOR=2 .. #125MHz

32bit版bullseyeでのみ可能

125MHzだと表示が早いのが判る

追加2:retropie

retropieを動作させたが大変だった

IMG_20260325_151256.jpg

bullseyeへLCDをセットアップした後,retropieをセットアップしようとするとビルドが完了しないので動作しない

retropieを「Raspberry Pi Imager」で作るとバージョンがBusterなのでLCDのセットアップができない

更にBusterだと既にレポジトリから日本語FONTが不可

そこで「Raspberry Pi Imager」で出来たretropieをbullseyeにアップしてretropieを再構築したら動作した

(日本語FONT)

$ sudo apt install fonts-droid-fallback

(ビルドに必要なライブラリ)

$ sudo apt insatall libcurl4-openssl-dev libvlc-dev libvlccore-dev rapidjson-dev libfreeimage-dev

omxplayerのライブラリは「omxplayer_20190723+gitf543a0d-1+bullseye_armhf.deb」をDLしてインストールする
追加3:Bookworm

こちらを参考にBookworm(64bit版)でLCDをセットアップしようとした記録(結果は不可)

問題となるのがファームウェアのビルドで「ili9341.txt」の数値の意味が理解できなかったが,ILI9486のデータシートでLCDへの初期化コードであることが判る

そしてデータシートには3種あるので全て試してみたが結果は不可

/boot/firmware/cmdline.txtにwayland=onを追加(Pi4以前では必要)

/boot/firmware/config.txtに以下を追加

dtoverlay=mipi-dbi-spi,spi0-0,speed=70000000
dtparam=width=480,height=320
dtparam=reset-gpio=25,dc-gpio=24

panel.binを作成するテキスト(3種)

# CPT 3.5 Inch Panel
command 0x01
delay 120
command 0xf2 0x18 0xa3 0x12 0x02 0xb2 0x12 0xff 0x10 0x00
command 0xf8 0x21 0x04
command 0xf9 0x00 0x08
command 0x36 0x28
command 0xb4 0x00
command 0xc1 0x41
command 0xc5 0x00 0x53
command 0xe0 0x0f 0x1b 0x18 0x0b 0x0e 0x09 0x47 0x94 0x35 0x0a 0x13 0x05 0x08 0x03 0x00
command 0xe1 0x0f 0x3a 0x37 0x0b 0x0c 0x05 0x4a 0x24 0x39 0x07 0x10 0x04 0x27 0x25 0x00
command 0x20
command 0x11
delay 120
command 0x29

# HSD 3.5 Inch Initial code
command 0x01
delay 120
command 0xf2 0x18 0xa3 0x12 0x02 0xb2 0x12 0xff 0x10 0x00
command 0xf8 0x21 0x04
command 0xf9 0x00 0x08
command 0x36 0x08
command 0xb4 0x00
command 0xb6 0x02 0x22
command 0xc1 0x41
command 0xc5 0x00 0x18
command 0xe0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00
command 0xe1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00
command 0x20
command 0x11
delay 120
command 0x29

# WTK 3.5 Inch Initial code
command 0x01
delay 120
command 0xf2 0x18 0xa3 0x12 0x02 0xb2 0x12 0xff 0x10 0x00
command 0xf8 0x21 0x04
command 0xf9 0x00 0x08
command 0x21
command 0x36 0x08
command 0xb4 0x00
command 0xb6 0x02 0x22
command 0xc1 0x41
command 0xc5 0x00 0x53
command 0xe0 0x0f 0x10 0x08 0x05 0x09 0x05 0x37 0x98 0x26 0x07 0x0f 0x02 0x09 0x07 0x00
command 0xe1 0x0f 0x38 0x36 0x0d 0x10 0x08 0x59 0x76 0x48 0x0a 0x16 0x0a 0x37 0x2f 0x00
command 0x20
command 0x11
delay 120
command 0x29

ILI9486はmipi-dbi-spiで共通化できてないのかも

SDカードを復活させる

SDカードを復活させるといっても物理的に破壊されているや書き換え限界を超えたカードは無理

実は最近4~5年位の間放置していたμSDカードを使おうとしたら読めなくなり更にフォーマットもできなくなっていた

大して書き換えしてないのにどうしてだ?ってことで考えてみると,

SDカードを放置しておく,つまり電力供給していないとSDカードの場合5年くらいで電荷が無くなりデータが失われてしまう(らしい)

この時データ領域だけが消えた場合はフォーマット(この場合論理フォーマット)すれば回復する

ところがパーティション情報が消えた場合は,論理フォーマットができなくなるってことである

つまり回復させるには先にWindowsの場合「ディスクの管理」でパーティション情報を作成し直せば良い訳だが作業が面倒である

そこで「SD Card Formatter」を利用すればどうかとやってみたところ復活することができた

SS20260311_03.png

上書きフォーマットで全書き込みを行い初期化

SS20260311_02.png

書き換え限界を超えたカードは書き込み禁止(R/O)になる

物理的に破壊されているカードはドライブがSDカードと認識しないので何もできない

IMG_20260311_144555.jpg

この際なので読み込み不可以外の保存していたμSDカードも上書きフォーマットで初期化した

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/16 from 権限がありません
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/15 from admin
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/14 from 権限がありません
Re:NOAA受信システム復旧
2025/06/11 from admin
Re:NOAA受信システム復旧
2025/06/11 from とおりすがり

過去ログ

Feed