Pimoroni NVMe base Duo crahses my RPI5

Hi,

I got a few “base Duo” to run SSD and a Hailo AI acceleration module. Right now I’m only testing the SSD. This is my hardware setup:

  • RPi 5 8GB
  • RPi Active Cooler
  • Power supply (30W)
  • Pimoroni NVMe base Duo
  • SP Silicon Power 128GB NVMe M.2 PCIe Gen3x4 2280 SSD
  • 12mp arducam

I can boot from the SSD and run the Pi without a SSD card.
I have a python script that interacts with the Arducam.
What is happening is that after a few seconds of running my script, it crashes the PI completly. Not just the script, the whole OS.

In the log, I don’t see undervoltage error.
I know the issue is not the script, becasue I have a second PI, with the same hardware, the only difference is that is booting from an SD card and using the SSD just for storage, and it doesn’t crash.

any ideas will be very appreciated.

Try running sudo journalctl -f in a second window while your script is executing. Maybe you can see something in the logs. Chances are high that on a crash you loose this information.

Thanks for the suggestions.
Nothing in that log, I see the logs from my script. The PI just turns off, with no additional information.

Also, dmesg -T | grep -i voltage doesn’t show any clue.

What exactly is “turn off”? I would expect the Pi5 to be still turned on after a crash, but who knows.

It really depends on what is going wrong: massive under-voltage because of a current spike or maybe just a problem in the software (OS) that causes a kernel crash. You could have a look at Attaching to a Raspberry Pi's Serial Console (UART) for debugging | Jeff Geerling on how to attach to the hardware-console of the Pi from a second computer. If it is an OS problem, you maybe could see something on the console just before the crash is happening.

I don’t expect anything in the logs if something really bad happens (the OS can’t write to the logs anymore in this case). If I understand you correctly, the problem only exists if you boot from the SSD. Your script writes to the SSD regardless of the boot-process, correct? After boot, there aren’t many writes from the OS to the disk and most of them are buffered in memory anyhow. But it could very well be that whenever the system tries to flush the buffers, the SSD has problems. You could add sync-statements to your script to force a buffer flush once in a while.

Can you boot from the SD and do a full fsck on the SSD-partitions? After that, boot again from SSD and run sudo fstrim / to trim the SSD.

What you also could do is measure current during operation. But without the necessary equipment, chances are high that you would miss a dramatic rise in current shortly before the crash. That would happen if for some (thermal) reasons you would experience a short.