Public Beta Test: Audio Without Compromise - Refining the Future of Volumio on Bookworm

Hey @voltim,

Excellent setup report, thank you for sharing such detailed confirmation.

Regarding your question - in Volumio’s overlayfs model, your additions do not overwrite system defaults but augment them. This means your custom Python script and service entry effectively layer on top of the read-only base image. Unless a future update introduces a file with the exact same path and name, your entries will remain intact. Same goes for the python version - for as long as there is no major shift in upstream.

  • OTA updates: safe - your overlay changes persist and augment defaults.
  • Factory or user data reset: will discard /data and revert /etc to defaults.
  • Backup: keep a copy of /data/argon/ externally if you rely on it.
  • Service naming: using unique names helps prevent accidental collisions with future system units.

Kind Regards,

Hey @michel8166,

Thanks for confirming. That login popup loop is usually caused by a stalled or cached MyVolumio session after OTA or a plugin store token not refreshing in time.
A full logout followed by login normally clears it, and a reboot works too because it forces token re-initialization and cache invalidation.

Good to hear that playback and audio quality are fine on 4.062.

Kind Regards,

Hey @rost21A,

No need to apologize at all - your report was excellent and helped confirm the situation clearly.

The new log looks perfectly clean - no undervoltage, no backend warnings, and all subsystems (UI, MPD, websocket, and albumart) are running as expected. That confirms Volumio itself is stable.

Your follow-up tests make complete sense: fractional display scaling (like 125%) on Ubuntu 25.10 with Chrome affects the CSS viewport calculations, which explains why Firefox behaves normally. The frontend did not change between 4.061 and 4.062 in any way that would cause this directly, so this aligns with a system-level scaling interaction rather than a Volumio regression.

Thanks also for confirming that all your Raspberry Pi units and DACs perform well under 4.062 - that feedback is very valuable for verifying platform consistency.

Kind Regards,

@nerd
Any possibility to try Bookworm on Rivo?

Raspberry Pi 4 with original Raspberry screen and USB DAC Micca Origen+, on wi-fi, with music library on a SSD connected to another Volumio device

Plugins: Radio Paradise, Mother Earth, Qobuz, System Information, Touch Display, Music Services Shield, Now Playing

Update ok from 4.061 to 4.062 (as all previous updates)

Everything works as expected, great work!

Hello, I have 2 raspberry (RPi 2 and RPi 3 both in version 4.062) at home and when I try to switch control from the RPi 2 to the RPi 3 the cover image does not appear.

And congratulations on all the work you’ve done.

Edit:

if i play music on the RPi3, the cover is correctly recovered on the RPi2

Good Morning,

OTA Update 4.030 → 4.062 on RPi 4 (Model B Rev 1.1) - 2GB RAM SD card (WiFi setup) → OK
Allo DigiOne Signature HAT → OK

Installed plugins :

  • Touch Display 3.5.6 (HDMI touch Screen 800 x 480) → OK
  • Squeeze lite MC → OK
  • Radio Paradise → OK

Music tested :

  • FLAC up to 24bit @192kHz (NAS) → OK
  • Radio Paradise → OK
  • Radio Streams (radio france streams @192kbps) → OK
  • Squeeze Lite → OK

Logs if usefull for community

And, on the other hand,OTA update 4.030 → 4.062 on RPi 4 (Model B Rev 1.5) - 4GB RAM SD card (eth setup) → OK
Allo DigiOne Signature HAT powering Pi by GPIO → OK

Installed plugins :

  • Touch Display 3.5.6 (Official Touch Display V2 MIPI DSI port) → OK
  • Squeeze lite MC → OK
  • Radio Paradise → OK

Music tested :

  • FLAC up to 24bit @192kHz (NAS) → OK
  • Radio Paradise → OK
  • Radio Streams (radio france streams @192kbps) → OK
  • Squeeze Lite → Not tested yet

Logs for that config if usefull for community

Regards

Hey @jacobacci,

Please wait until Volumio OS v4 enters stable release channel. Only then work on OEM will commence.

Kind Regards,

1 Like

Hey @Jeremy_Carlier,

Thanks for the report and for testing two units. To see exactly why the artwork is missing when switching control from the RPi2 to the RPi3, I need debug logs from both devices captured right after reproducing the issue.

Please do this once:

  1. Reproduce the problem:
  • On RPi2, switch control to RPi3 until the cover image is missing.
  • Note the exact time and which track and service you were using.
  1. Collect logs from each device:
  • On each unit, open http://<volumio_IP>/dev
  • Press Send Log
  • Copy the resulting URL.
  • Tell me which URL belongs to which device.
  1. Add these details:
  • Source and service used when the cover was missing (local files, Web Radio, TIDAL, Qobuz, Spotify, etc.).
  • Exact device names shown in the screen you posted.
  • Any artwork or display related plugins enabled on either unit.

Quick check you can try once before sending logs:

  • Settings → Music Library → Album Art → Clear album art cache on both devices, then retry.

With the two log links and the notes above, I can pinpoint where the artwork URL or caching fails between the peers.

Kind Regards,

@nerd

I see others are not experiencing this issue so I did a bunch of testing. On my pi4 8gb and clean flash 4.062, I can not connect to my wifi. Everything shows up but when I click connect and the page refreshes, nothing happens. I have then went back to 4.061 for testing and I was able to connect to my wifi normally. Again, I have seen others with similar hardware OTA updating to 4.062 and having no issues with wifi so I can’t rule out it’s isolated to me, but I applied the wifi settings right after first boot settled with no other settings and plugins, and in this same scenario with 4.061, I was able to connect to my wifi network no problem.

EDIT: So seeing the log, it seems this is a matter of the “Single Network Mode”, so perhaps I need to change my workflow to initiate directly to wifi thru hotspot, instead of thru ethernet?

EDIT 2: I’ve got it initialized thru hotspot. Just some feedback. My Pi4 has POE and this would exclude me from using POE and then switching to wifi No biggie, since I may be a fringe use case.

info: CoreCommandRouter::executeOnPlugin: system , getPrivacySettings
info: CALLMETHOD: system_controller my_volumio retreiveBackendEventStates undefined
info: CoreCommandRouter::executeOnPlugin: my_volumio , retreiveBackendEventStates
info: Received Get System Version
info: CoreCommandRouter::executeOnPlugin: system , getSystemVersion
info: Received Get System Info
info: CoreCommandRouter::executeOnPlugin: system , getSystemInfo
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , getThisDevice
info: Discovery: Getting this device information
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: CoreCommandRouter::executeOnPlugin: network , getCachedIPAddresses
info: CoreCommandRouter::executeOnPlugin: network , saveWirelessNetworkSettings
info: Saving new wireless network
 volumio : PWD=/ ; USER=root ; COMMAND=/bin/chmod 777 /etc/wpa_supplicant/wpa_supplicant.conf
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , onNetworkingRestart
info: Discovery: Restarting Advertising due to device name change
 volumio : PWD=/ ; USER=root ; COMMAND=/bin/systemctl restart wireless.service
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Stopping wireless.service - Wireless Services...
wireless.service: Deactivated successfully.
Stopped wireless.service - Wireless Services.
Starting wireless.service - Wireless Services...
WIRELESS.JS: Single Network Mode enabled, only one network device can be active at a time between ethernet and wireless
WIRELESS.JS: Wired network status changed to: ---connected---
WIRELESS.JS: Wireless.js initializing wireless flow
WIRELESS.JS: Cleaning previous...
    root : PWD=/ ; USER=root ; COMMAND=/usr/sbin/ip addr flush dev wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
pam_unix(sudo:session): session closed for user root
    root : PWD=/ ; USER=root ; COMMAND=/usr/sbin/ifconfig wlan0 down
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
info: Discovery: A device disappeared from network
info: Discovery: Device volumio-pi4-beta disappeared from network
info: Discovery: A device disappeared from network
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
WIRELESS.JS: Stopped aP
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0 up
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
brcmfmac: brcmf_cfg80211_set_power_mgmt: power save disabled
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iw reg get
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0 up
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iw wlan0 scan
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session closed for user root
WIRELESS.JS: SETTING APPROPRIATE REG DOMAIN: DE
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0 up
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iw reg set DE
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
WIRELESS.JS: SUCCESSFULLY SET NEW REGDOMAIN: DE
WIRELESS.JS: Single Network Mode: Wired network active, not starting wireless flow
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
WIRELESS.JS: Notified systemd about wireless ready
Started wireless.service - Wireless Services.
pam_unix(sudo:session): session closed for user root
brcmfmac: brcmf_cfg80211_set_power_mgmt: power save disabled
info: Discovery: Started advertising with name: Volumio-Pi4-beta
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root


info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , initSocket
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: Discovery: adding a319ebc4-1066-4470-bcd8-828eaab2b9d7
info: Discovery: Found device Volumio-Pi4-beta
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: Discovery: this is already registered,  a319ebc4-1066-4470-bcd8-828eaab2b9d7
info: Discovery: Found device Volumio-Pi4-beta
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , initSocket
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: wizard , reportWirelessConnection
info: CoreCommandRouter::executeOnPlugin: network , getWirelessInfo
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: upnp , onRestart
info: CoreCommandRouter::executeOnPlugin: network , onNetworkingRestart
info: Refreshing Cached IP Addresses
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig eth0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig eth0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session closed for user root

info: CoreCommandRouter::executeOnPlugin: my_volumio , getAutoUpdateCheckEnabled
info: CoreCommandRouter::volumioGetVisibleSources
info: CoreCommandRouter::executeOnPlugin: my_music , getDisabledSources
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: CoreCommandRouter::executeOnPlugin: metavolumio , getInfinityPlayback
info: CoreCommandRouter::getUIConfigOnPlugin
info: CoreCommandRouter::executeOnPlugin: multiroom , getMultiroom
info: Received Get System Info
info: CoreCommandRouter::executeOnPlugin: system , getSystemInfo
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , getThisDevice
info: Discovery: Getting this device information
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: CoreCommandRouter::executeOnPlugin: network , getCachedIPAddresses
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: Listing playlists
info: CoreCommandRouter::executeOnPlugin: appearance , getUiSettings
info: CoreCommandRouter::executeOnPlugin: system , getPrivacySettings
info: CoreCommandRouter::executeOnPlugin: system , getAdvancedSettingsStatus
info: CoreCommandRouter::executeOnPlugin: network , getInfoNetwork
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iwconfig wlan0
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ethtool eth0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: network , getWirelessNetworksScanCache
info: CoreCommandRouter::executeOnPlugin: network , getWirelessNetworks
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iwconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iwconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig eth0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/iwlist wlan0 scan
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: updater_comm , getUpdateMessageCache
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: wizard , getOnboardingWizard
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: my_volumio , getMyVolumioStatus
info: Received Get System Info
info: CoreCommandRouter::executeOnPlugin: system , getSystemInfo
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , getThisDevice
info: Discovery: Getting this device information
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: CoreCommandRouter::executeOnPlugin: network , getCachedIPAddresses
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: my_volumio , getMyVolumioStatus
info: Received Get System Info
info: CoreCommandRouter::executeOnPlugin: system , getSystemInfo
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , getThisDevice
info: Discovery: Getting this device information
info: CoreCommandRouter::volumioGetState
info: CorePlayQueue::getTrack 0
info: CoreCommandRouter::executeOnPlugin: network , getCachedIPAddresses
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
info: CoreCommandRouter::executeOnPlugin: appearance , isLatestTOSAccepted
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root
 volumio : PWD=/ ; USER=root ; COMMAND=/sbin/ifconfig wlan0
pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
pam_unix(sudo:session): session closed for user root

Hey @RedEyeNinja,

Your observation is correct. The SMN changes connection workflow. As you can read in the SNM announcement post:

Kind Regards,

Rpi4 - No issues on 4.062. Only tested the WiFi since I don’t use ethernet

Raspberry Pi 4. 4Gb+ HIFI Berry DAC.Volumio 4.062 Sounds better than the Volumio 3.832

@nerd
Responding to your request to speak up😁
Update from 4.061 to 4.062 successful for systems described below, with Now Playing, Pandora, Youtube and System Info plugins

Audio info

  • Hw audio configured: Innomaker Dac
  • Mixer type: Hardware
  • Number of channels: 2

Board info

  • Manufacturer: Raspberry Pi Foundation
  • Model: Raspberry Pi 3 Model B Plus Rev 1.3 Raspberry Pi
  • Version: a020d3
  • Firmware Version: Aug 20 2025 17:04:09 Copyright (c) 2012 Broadcom

And

Audio info

  • Hw audio configured: IQaudIO DAC Plus
  • Mixer type: Hardware
  • Number of channels: 2
  • Supported sample rate: 22050 44100 48000 88200 96000 176400 192000 384000

Board info

  • Manufacturer: Raspberry Pi Foundation
  • Model: Raspberry Pi 4 Model B Rev 1.5 Raspberry Pi
  • Version: b03115
  • Firmware Version: 2025/05/08 16:21:35 version 69471177ba7e4cb7597cb2496f2a0b23f19c1113

Regards

I would strongly suggest that You replace sdcard with M.2 NVME drive if You have chance.
Here’s a short comparision.

Metric SD / microSD M.2 NVMe SSD
Typical interface max (today’s non-Express SD) UHS-I up to ~104 MB/s, UHS-II up to ~312 MB/s Wikipedia+2Wikipedia+2 PCIe x1/x2/x4, so NVMe SSDs easily hit 1,500-7,000+ MB/s depending on generation and lanes
Realistic sustained speeds (good card vs good SSD) ~80-200 MB/s read, ~20-90 MB/s write (varies wildly) ~1,000-3,500 MB/s read, ~500-2,500 MB/s write (on a decent interface)
Random I/O / small block performance Very weak (especially writes) — becomes a bottleneck for OS tasks Strong. SSD controllers optimize for random access, much better for OS / boot
Reliability / endurance under write stress Lower endurance (fewer write cycles, simpler controllers) Higher endurance, sophisticated wear leveling & error correction

@voltim

You know you’re replying to a user with a rPi3B. A rPi3B with USB2.0 booting from NVMe?

@voltim
Thanks for the suggestion.
I normally use an eMMC card, but for the Testing, i preferred to use an old SD Card (preserve working config on eMMC in case something wrong with testing and i really want to listen to music)
M.2 NVME would be if i switch to Raspberry Pi 5
I think it is difficult to have Raspberry Pi 3 and NVME (my understanding, might be wrong)

Everything is possible. But investing in a NVMe to USB converter, next plug it into a USB2 port, doesn’t make much sense.

Raspberry Pi 3A+ new fresh install Volumio 4.062 - working ok inside Denon POA F100 ( Power Amplifier 3 x 25 Watt ).
First-time installation using Wi-Fi only.
The Raspberry PI 3A+ works only using Wi-Fi inside a Denon POA-F100 enclosure and a Denon POA-F100 power amplifier.
Bluetooth Remote - Remote Bluetooth Plug-in works with Raspberry PI 3A+.
Audio streamer for the kitchen for Tidal - Internet Radio etc.

https://hifi-wiki.com/index.php/Denon_POA-F_100

Which one?