Your cart is empty.
Your cart is empty.AreYouRichYet
Reviewed in the United States on February 1, 2025
I had a Pi 5 and a WD Blue sitting around so I decided to marry them with this hat.I use Pis a lot but this is the first time I've bought an actual hat. It took me a few minutes to figure out how it goes in, as well as took me longer than it should have to connect the included cable (I had poor close vision) but it went together just great.As long as the Pi can connect to wifi it is dead simple to install an OS on the SSD. Hold down shift, plug power in, and the Pi Imager automatically pops up. It just couldn't be any easier.Performance over using an SD card is outstanding. I'm glad i bought two, this first venture was for a server and I'm about to do the same for a Pi 5 desktop.
Mark Twain
Reviewed in the United States on January 27, 2025
Works great. Easy install (look on youtube). Good price. 512 GB Samsung 980 Pro gets SEQ1M reads of 753 MB/s and SEQ1M writes of 794 MB/s which is close the theoretically max of the PCIe 2.0 x1 of the RPi5B. (iozone v3.506/linux kernel 6.6.74). iozone -e -I -s 1g -r 1m -i 0 -i 1
Mark Twain
Reviewed in the United States on January 12, 2025
use to install a 2TB SSD for Samba server. so far so good.
L. B. Holtby
Reviewed in Canada on September 27, 2024
Unlike the OEM hat this one fits on top of the Raspi 5 board. It was easy to install and has worked with problems over the past few months.
Liam
Reviewed in Australia on June 15, 2024
New Edit: This drive randomly disconnects while transferring larger files. Anything over about 6GB the device disconnects and no longer works. I do not recommend this.I was a bit dumb installing this. Here is a guide that worked well for me:# Copied:## How to setup mount / auto-mount USB Hard Drive on Raspberry PiFollow the simple steps in the order mentioned below to have your USB drive mounted on your Raspberry Pi every time you boot it.These steps are required especially if your are setting up a Samba share, or a 24x7 torrent downloader, or alike where your Raspberry Pi must have your external storage already mounted and ready for access by the services / daemons.Step 0.Plug in your USB HDD / Drive to Raspberry PiIf you are using a NTFS formatted drive, install the following```sudo apt-get install ntfs-3g```Step 1.Log on pi using ssh terminal and execute:```sudo blkid```You will see something like the following:lrwxrwxrwx 1 root root 10 Jan 1 1970 0AC4D607C4D5F543 -> ../../sda1Note down the value of the UUID --> 0AC4D607C4D5F543Step 2.Create a location for mount point:```sudo mkdir /mnt/volume```Give proper permission:```sudo chmod 770 /mnt/volume```Step 3.Get the uid, gid for pi user and group with id command (usually 1000)Step 4.Mount the USB Drive and then check if it is accessible at /mnt/volume```sudo mount -t ntfs-3g -o nofail,uid=1000,gid=1000,umask=007 /dev/sda1 /mnt/volume```Or:```sudo mount /dev/sda1 /mnt/volume```Note:ntfs-3g for NTFS Drivesvfat for FAT32 Drivesext4 for ext4 DrivesStep 5.Now, we will configure RasPi to do this after every reboot:Take a backup of current fstab and then edit```sudo cp /etc/fstab /etc/fstab.backupsudo nano /etc/fstab```Add the mount information in the fstab file (replace UUID with your own):```UUID=0AC4D607C4D5F543 /mnt/volume ntfs-3g async,big_writes,noatime,nodiratime,nofail,uid=1000,gid=1000,umask=007 0 0```Or:```/dev/sda1 /mnt/volume ntfs defaults 0 0```Step 6.Reboot```sudo reboot```Step 8. (Optional, required if using as data storage for owncloud)If you are configuring ownCloud's data directory on your NAS drive, it should be having a 770 permission for www-data user. You can simply add user www-data to pi group, since its already having 770 as permission as set above in fstab.```sudo usermod -a -G pi www-data```## Alternative 2This is a short guide on how to connect an External Hard Drive to the Raspberry Pi! Most external Hard Drives are quite juicy and will require a USB Hub to run in a stable manner, so please do check this before trying to install your drive!First step is to plug it in, and then switch on your Pi! It should boot up as normal, so go ahead and log in to Raspian as usual.Step 1. Is it there?!If you want to check for the current storage devices attached to your Pi, simply run the command:```sudo blkid```This reveals that we currently have our “Seagate Expansion Drive” attached.Step 2. Check the PartitionsWe now need to check the boot name of our Seagate’s partition.```sudo fdisk –l```Reveals that our drive is located at /dev/sda1Step 3. Mounting it.Now we know where our drive is, we need to mount it:```sudo mount /dev/sda1 /mnt/volume```The folder “/mnt” is the standard location for mounting permanent media, but you can always create your own folder if required using the “mkdir” command.That’s it! Our drive is mounted.Step 4. Permissions.As our drive is formatted in NTFS, we might need to change the /mnt drive permissions in order to enable proper access. Simply run the following command:```sudo chmod 775 /mnt/volume```This will change your permissions and allow you to access the drive.To test this, let’s try to create a folder. . .```cd /mnt/volumemkdir IMAFOLDERcd IMAFOLDER```Great! So we can read and write to our hardrive!Step 5. Automounting our drive.If you want your Hard Drive to mount from boot, we need to set this up!First step is to edit our "fstab" file```sudo nano /etc/fstab```This will open up the file in nano text editor:We need to add the following line to have our hard drive mount at boot!```/dev/sda1 /mnt/volume ntfs-3g uid=1000,gid==1000,umask=007,nofail,x-systemd.device-timeout=30 0 0```You can now reboot your Raspbery Pi, and your Hard Drive will automatically mount!Step 5. How to unmount.To unmount the drive, simply run the command:````sudo umount /mnt/volume````As long as you’re not currently accessing the drive, it should unmount successfully.
KJC
Reviewed in Canada on February 24, 2024
It's a tricky install but that's because of the design of the Raspberry Pi itself. This board fits on very nicely and works very well.I do have to get a different case as it doesn't fit in the official case - no big deal I wanted a better one regardless.I did have to image my drive twice to get running. This is again a Raspberry Pi issue not this board.Speed of the drive is phenomenal!
Jon Pienkowski
Reviewed in the United States on February 20, 2024
If you are running an OS other than RaspberryOS, you will need help.I got this HAT to use an M.2 SSD with Kali. I did all of the directions and instructions provided by the Geekwork Wiki page, but I need help getting the SSD to be detected. So I swapped SD cards to my RaspbienOS install and THEN was able to update the EEPROM and THEN was able to get the SSD HAT to work and the drive to be recognized. I then used the Raspberry Pi Imager App to install Kali to the SSD, changed the boot settings, and was off to the races. Not an easy setup/install by any means, but you can get to where you want to go, if you take the right steps.
JLM
Reviewed in Canada on December 2, 2024
This hat was easy to install and worked great with a trashy no-name brand NVMe drive. Definitely happy with this purchase.
Cadstar
Reviewed in the United States on October 3, 2024
There are 2 issues with standard sdcard storage: it's slow and it has a limited lifespan. You can eliminate both of these problems moving to an NvME storage solution. SSD's are made to standup to constant read/write of a linux system that kills sdcards over time. For me I went to SSD mainly to get better speeds. My Pi5 8GB could only do 85MB/s on a Teamgroup HighEndurance 128GB microSD, but with an NvME drive installed I now I knock on the 800MB/s door with a Samsung 970 EVO 250GB. Highly recommended upgrade.I decided on the Geekworm X1001 card as it leaves the GPIO header completely open. Most SSD's will be fine without additional power and I needed my two 5V pins to feed the display panel. This card also features connector for adding power if needed. This board blocks off much less of the Pi active cooler than a lot of it's competitors do.I prefer the 52Pi brand for most accessories, but this Geekworm product is of the same great quality standard and it's opened me up to trying more of their stuff.
Brian
Reviewed in Canada on January 29, 2024
After following the instructions I was able to set this up fairly easily. I have a USB-C NVMe enclosure so I used raspberry pi imager to install the Raspberry Pi OS on it and then edited the config.txt on the bootfs partition to add the line for PCI-E. Instructions for that is easily found on Google. I have the case from 52pi which holds the active cooler and NVMe board but note that I had to purchase smaller 2.5 standoffs to get it to fit in the case. But it boots up significantly faster and has a noticeable increase in speed. I recommend it. I bought this one because I had a 512gb M.2 2280 SSD so I needed a board that supported the 2280, which this one does. Note - please don't leave a bad review just because you get upset when you can't get it working. I was hesitant to buy this because of a bad review but thankfully I got it anyway. If you have trouble, there are several videos and KB articles available to help you.
Ceramic
Reviewed in the United States on January 21, 2024
Super solid, works great. As it's HAT+ specification you might not actually need to add to these lines to /boot/firmware/config.txt but I did anyways:# Enable the PCIe external connectordtparam=pciex1# Force Gen 3.0 speedsdtparam=pciex1_gen=3And what I'm getting with a Sabrent 1TB PCIe 4:jazzy@pi-five:~ $ sudo nvme listNode Generic SN Model Namespace Usage Format FW Rev--------------------- --------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------/dev/nvme0n1 /dev/ng0n1 48790459505660 Sabrent SB-ROCKET-NVMe4-1TB 1 1.00 TB / 1.00 TB 512 B + 0 B RKT4B5.1jazzy@pi-five:~ $ sudo hdparm -Tt /dev/nvme0n1p2/dev/nvme0n1p2: Timing cached reads: 4322 MB in 2.00 seconds = 2164.56 MB/sec Timing buffered disk reads: 2244 MB in 3.00 seconds = 747.52 MB/secjazzy@pi-five:~ $ fio --name=writefile --size=1G --filesize=1G --filename=/tmp/fiotest.tmp --bs=1M --nrfiles=1 --direct=1 --sync=0 --randrepeat=0 --rw=write --refill_buffers --end_fsync=1 --iodepth=200 --ioengine=libaiowritefile: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=200fio-3.33Starting 1 processJobs: 1 (f=1)writefile: (groupid=0, jobs=1): err= 0: pid=3385: Sat Jan 20 22:33:28 2024 write: IOPS=773, BW=774MiB/s (812MB/s)(1024MiB/1323msec); 0 zone resets slat (usec): min=31, max=5255, avg=42.96, stdev=163.15 clat (msec): min=54, max=512, avg=251.31, stdev=94.73 lat (msec): min=54, max=512, avg=251.35, stdev=94.72 clat percentiles (msec): | 1.00th=[ 55], 5.00th=[ 55], 10.00th=[ 104], 20.00th=[ 209], | 30.00th=[ 257], 40.00th=[ 257], 50.00th=[ 257], 60.00th=[ 257], | 70.00th=[ 257], 80.00th=[ 257], 90.00th=[ 380], 95.00th=[ 447], | 99.00th=[ 498], 99.50th=[ 506], 99.90th=[ 510], 99.95th=[ 514], | 99.99th=[ 514] bw ( KiB/s): min=790528, max=794624, per=100.00%, avg=792576.00, stdev=2896.31, samples=2 iops : min= 772, max= 776, avg=774.00, stdev= 2.83, samples=2 lat (msec) : 100=9.67%, 250=14.36%, 500=75.20%, 750=0.78% cpu : usr=18.15%, sys=3.10%, ctx=1033, majf=0, minf=8 IO depths : 1=0.1%, 2=0.2%, 4=0.4%, 8=0.8%, 16=1.6%, 32=3.1%, >=64=93.8% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=99.9%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=0,1024,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=200Run status group 0 (all jobs): WRITE: bw=774MiB/s (812MB/s), 774MiB/s-774MiB/s (812MB/s-812MB/s), io=1024MiB (1074MB), run=1323-1323msecDisk stats (read/write): nvme0n1: ios=3/972, merge=30/0, ticks=16/217358, in_queue=217374, util=84.17%jazzy@pi-five:~ $ fio --name=readfile --size=1G --filesize=1G --filename=/tmp/fiotest.tmp --bs=1M --nrfiles=1 --direct=1 --sync=0 --randrepeat=0 --rw=read --refill_buffers --end_fsync=1 --iodepth=200 --ioengine=libaioreadfile: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=200fio-3.33Starting 1 processJobs: 1 (f=1)readfile: (groupid=0, jobs=1): err= 0: pid=3392: Sat Jan 20 22:33:36 2024 read: IOPS=828, BW=828MiB/s (869MB/s)(1024MiB/1236msec) slat (usec): min=21, max=532, avg=58.84, stdev=73.93 clat (msec): min=35, max=476, avg=236.92, stdev=86.88 lat (msec): min=35, max=476, avg=236.98, stdev=86.83 clat percentiles (msec): | 1.00th=[ 37], 5.00th=[ 58], 10.00th=[ 109], 20.00th=[ 211], | 30.00th=[ 241], 40.00th=[ 241], 50.00th=[ 241], 60.00th=[ 241], | 70.00th=[ 241], 80.00th=[ 241], 90.00th=[ 355], 95.00th=[ 414], | 99.00th=[ 464], 99.50th=[ 472], 99.90th=[ 477], 99.95th=[ 477], | 99.99th=[ 477] bw ( KiB/s): min=839680, max=849920, per=99.58%, avg=844800.00, stdev=7240.77, samples=2 iops : min= 820, max= 830, avg=825.00, stdev= 7.07, samples=2 lat (msec) : 50=4.30%, 100=4.88%, 250=72.36%, 500=18.46% cpu : usr=0.00%, sys=5.43%, ctx=994, majf=0, minf=12808 IO depths : 1=0.1%, 2=0.2%, 4=0.4%, 8=0.8%, 16=1.6%, 32=3.1%, >=64=93.8% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=99.9%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1% issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=200Run status group 0 (all jobs): READ: bw=828MiB/s (869MB/s), 828MiB/s-828MiB/s (869MB/s-869MB/s), io=1024MiB (1074MB), run=1236-1236msecDisk stats (read/write): nvme0n1: ios=949/0, merge=0/0, ticks=200810/0, in_queue=200811, util=92.38%
Recommended Products