Argon ONE M.2 SSD Case for Raspberry Pi 4 Review
Latest Status – 20 June 2021: I’ve completed a review of an updated M.2 board. See the review here.
Following the firmware release which added the ability to boot the Raspberry Pi 4 from an SSD, the team at Argon40 have been busy updating their flagship Argon ONE case, creating the Argon ONE M.2 SSD Case which allows for an M.2 SATA (not NVMe) SSD to be installed within this beautifully designed case.
The M.2 case builds on the same metal top shell as used in the Argon One v2 (I reviewed the v1 version here). The v2 version looks similar, but switches the Micro HDMI video outputs for full-size HDMI and adds an IR receiver. In fact, both the top control board and the daughterboard that plugs into the side of the Pi are new designs.
The M.2 controller board is housed at the bottom of the plastic half of the case and connects to the Raspberry Pi 4 USB3 port via a short USB3 link adapter. If you already have an Argon ONE, you don’t need to buy the M.2 version, you can just purchase the M.2 expansion board and upgrade you’re existing Argon ONE. I think it’s great this is being offered, as the Argon ONE is quite an expensive case, so building on your investment is better than needing to replace it altogether.
Visually with the Argon ONE M.2 SSD case looks like a slightly taller version of the original ONE, (41mm vs 34mm tall). All the good bits from the original ONE remain, including the metal construction which allows the case to act as a huge heatsink and the magnetic cover that can be removed to access all the GPIO pins of the Raspberry Pi. Of course as mentioned all the connectors remain on the rear, creating a sleek and practical case for your Pi. However, with the M.2 version you do lose access to the SD card slot, you need to detach the bottom section to access the card. I don’t see this as an issue as this case is designed for you to run everything from the M.2 storage and no longer use the SD card slot.
In this post, I look at setting up the Argon ONE M.2 SSD Case, testing its thermal and storage performance and review how this enclosure appears to impact WiFi signals. For the TLDR version, you can jump straight to my conclusions.
Argon ONE M.2 SSD Case Image Gallery
Booting From M.2 SSD

The Raspberry Pi 4 needs to be initially set up using an SD Card. If you installed the Desktop version of Raspberry Pi OS, you can run the “SD Card Copier” utility from under the Accessories menu. Select the SD Card card as the source, and the M.2 drive as a destination. If you select the option New Partition UUIDs
when you reboot your Pi it will continue to boot from the SD-Card, so don’t do that. Without it checked, the Raspberry Pi OS will prevent both drives partitions with the same UUID being mounted at the same time.
You can of course also clone the SD card to the M.2 drive using various command-line utilities, or a little easier with utilities like PiClone, I’ve not tested these out, so ensure you do your research 1st.
Once the drive is cloned, you can shutdown and remove the SD Card if you wish and your Pi will now only use the M.2 storage.
Higher Idle Load
Shortly after booting the Pi in the Argon ONE M.2 SSD case, I noticed it was running warmer than my original ONE, checking the load average showed it under a slightly higher load when idle. The 1 minute load average of the idle devices was 0.86 for the ONE M.2 and 0.00 for the original ONE. A few minutes of research later and I discovered that increased load was due to the Pi regularly polling for the presence of an SD Card.
To prevent this problem you can ensure you keep an SD card in your Pi, or edit /boot/config.txt
adding a the line dtparam=sd_poll_once
After updating the boot configuration, rebooting and leaving the Argon ONE M.2 Pi idle for a few minutes, the 1 minute load average fell to 0.00.
IR Sensor
The Argon ONE M.2 and the revised v2 version of the Argon ONE now include an Infra-Red (IR) sensor, something likely to appeal to those using their Raspberry Pi 4 as a media player. In order to use and configure the sensor you need to install the Argon ONE software, per the link in the instruction booklet. Running argonone-config
provide the options to configure the fan speed for different temperature thresholds and also to configure the IR sensor. You can easily configure a remote to turn on and off the Pi, I used a cheap RGB LED remote and configured one of it’s buttons without any issue.
The configuration utility suggests that if you have an Argon Remote Control, something I’ve not found anywhere online, then this will work out of the box and be able to do more. If you want to use a different remote control then this relies on LIRC. The configuration utility attempts to automatically install the necessary components, however for me this didn’t work:
-------------------------------
Argon One IR Configuration Tool
--------------------------------
WARNING: This will install LIRC
and related libraries.
Press Y to agree:y
Thank you.
Select remote control to configure:
1. Use Argon Remote Buttons
2. Use Custom Remote Buttons
3. Cancel
Enter Number (1-3):2
Traceback (most recent call last):
File "/usr/bin/argonirdecoder", line 18, in <module>
from lirc import Lirc
ImportError: cannot import name 'Lirc' from 'lirc' (/usr/local/lib/python3.7/dist-packages/lirc/__init__.py)
Also trying to install the python library manually also failed. As this wasn’t a feature I plan to use I didn’t investigate further.
Testing
Testing Method & Configuration
An Argon ONE v1 and the Argon ONE M.2 SSD case were tested concurrently. Each running the same base image, reconfigured with unique hostnames. The Argon ONE used an 8GB Raspberry Pi 4 with a 32GB SanDisk Endurance SD Card. The Argon ONE M.2 SSD case used a 4GB Raspberry Pi 4 with a 240GB Kingston A400 M.2 SSD drive is installed. The difference in memory size has not been seen to impact previous tests.
The devices were tested concurrently, each running the same image only reconfigured with unique host names.
- Image: 2020-12-02-raspios-buster-armhf.zip
- Updates: All updates as of 29 December 2020
- Kernel: Linux raspberrypi 5.4.79-v7l+ #1373 SMP
- Firmware:
- Bootloader: Thu 3 Sep 12:11:43 UTC 2020 (1599135103)
- VL805: 000138a1
- Software/Configuration:
- WiFi configured and enabled
- Boot to console
- SSH enabled
- Samba installed and configured
- Stress
- Stressberry
- Python 3.7
- Initial tests performed without the Argon ONE software installed. Tests labelled “Controlled Fan” have the Argon ONE control software installed.
- Load Test configuration:
- Stress active concurrently on all 4 cores
- 5 minute idle period (once the temperature has reached steady state)
- 30 minute stress test run initially, this was extended to 60 minutes to attempt to find the limit of the cases.
- Overclock settings for OC test scenarios:
- over_voltage=7
- arm_freq=2147
- gpu_freq=600
Storage Performance Results
Likely the primary reason to buy the Argon ONE M.2 SSD case is to provide access to fast, reliable storage for your Raspberry Pi 4. I’ve previously tested the storage performance when using some old 2.5″ SSD attached via a SATA to USB interface, which shows several orders of magnitude improvements in storage performance. Performing a subset of the previous tests, I chose to run the PiDramble storage performance script, which runs dd and iozone utilities to characterise the performance, the PiDramble page has more information on the nature of the tests. Each test is repeated 3 times and the average shown in the graphs
The Kingston SATA M.2 drive in the Argon ONE M.2 SSD case is compared to the Original Argon ONE with a 32GB SanDisk Endurance SD Card and also with an NVMe M.2 SSD inside an external USB enclosure
As expected the USB3 M.2 storage options both massively outperform the SD card. The NVMe drive in an external enclosure pip the SATA based drive in all the tests, but the margins are pretty small. I’ll admit I was a little frustrated to discover that the Argon ONE M.2 only supported SATA M.2 drives, not NVMe, as I didn’t have a spare SATA M.2 drive to hand so had to postpone my testing till one arrived. The relatively minor difference in results between the two storage technologies is likely due to the different controllers. I don’t have any faster storage to be able to confirm the exact source of the performance bottleneck.
Thermal Testing Results
Aluminium cases make create solutions passive cooling and avoiding noisy fans. Both the Argon ONE cases both include a fan which can be temperature controlled by installing the Argon ONE software. Without it, the fan remains off.
At idle I was surprised that the Argon ONE M.2 SSD case felt noticeably warmer to the touch compared to my Argon ONE v1, even after addressing the issue with the SD card polling. Without any additional Argon ONE software installed the processor temperatures at idle (1, 5 & 15min load averages are 0.00) were:
- Argon ONE M.2: 43.3°C
- Argon ONE v1: 36°C
- Ambient temperature: 21°C
This additional heat load is caused by the M.2 drive and controller board, combined with reduced ventilation as the bottom ventilation holes on the case now being blocked completely by the M.2 expansion board.
30 Minute Load Test
Initial testing was performed using a 30 minute test period at stock 1.5GHz and overclocked to 2.147GHz. As the results showed the Overclocked M.2 case was getting close to the thermal throttling limit, tests were repeated with a 60 minute test period.
The higher idle temperatures seen with the M.2 version results in higher temperatures in each of the load test scenarios.
60 Minute Load Test
With a longer running load test able to generate higher temperatures, the Overclocked Argon ONE M.2 hits thermal throttling down from the 2.146GHz down to stock 1.5GHz for a significant part of the last period of the test. The Original ONE v1 stays around 10°C cooler. Enabling the Argon ONE Software to control the fan based on processor temperature sees all the tests avoid thermal throttling. Even with the fan running the Argon ONE M.2 runs hotter than the ONE without its fan running.
Active Cooling Fan
Whilst the Argon ONE is designed primarily for passive cooling, both cases are fitted with the same model of 30mm Fan, an RDKCooler RA0310HD5, though in the M.2 case the fan is significantly quieter, even at full speed. I’m unsure if I was unlucky with the fan in my original ONE case, or if the new control board in the M.2 case runs the fans at lower speeds. I don’t have a tachometer to be able to measure it.
WiFi Performance
Whilst testing I noticed that sometimes I’ve have issues connecting via SSH, or sessions would unexpectedly be dropped, or even just characters lost when typing. This isn’t something I’ve experienced during my numerous rounds of previous case testing. However, my home network has changed recently and I no longer have a wireless access point under the test bench, now the nearest access point is 5m away. This should be close enough that it shouldn’t cause any issues. Even the signal strength measurements show the signal is acceptable. This experience has me questioning the reliability of using signal strength as I’ve done in my previous assessment of the impact of metal cases on WiFi performance. So much so, that I feel I need to develop a new methodology and perform a new round of testing.
Based on having the Argon ONE M.2, Argon ONE v1 and the Argon NEO side by side on my test bench, only the M.2 variant had any issues with WiFi connectivity, so anecdotally at least, it seems the Argon ONE M.2 case has issues, either needing a stronger WiFi signal, or perhaps the M.2 board below the Pi is blocking the signal, or even causing additional noise which is interfering with the WiFi signal. For now, I’d recommend the Argon ONE M.2 is more suited to a wired connection.
Update 6 April 2021: Having contacted Argon40, they have indicated they are aware of an issue with the M.2 board blocking WiFi Signal and a revised board is available by contacting [email protected]. I’m awaiting the revised board and will share the results once I get my hands on it.
Update 26 April 2021: I received some replacement Argon ONE M.2 cases direct from Argon40 and set about testing. These new cases had a version 1.6 m.2 board compared to the v1.3 board I had originally. Sadly these v1.6 board performed worse than the originals. When I contacted Argon40 I was informed that the fixed board is V2.1 (and I guess later) and that’s what I should have been sent, sadly that wasn’t the case. I ended up wasting the best part of 3 days testing and re-testing different combinations and I now await a new delivery, hopefully of a board that fixes the WiFi problems.
Conclusions
The Argon ONE M.2 SSD case continues the good looks from the original with the benefit of wrapping up high-performance storage into the same package. Eliminating external drive enclosures hanging off the USB ports.
This enhancement does come at a price, in overclocking scenarios this case runs hotter and may need to use the fan more than the original case. On the plus side, the fan in my Argon ONE M.2 case is quieter than the original ONE v1.
WiFi reliability is a concern (update: 6 April 2021) known issue, hopefully, the new version of the M.2 board will address this problem. So for now, if you plan to use this case, ensure it’s very close to the access point, or better still uses a wired ethernet connection.
In terms of setup, I’d like to have seen Argon40 providing a bit more information on getting started with getting the Pi booting from the M.2 drive. The IR sensor worked in a basic sense but the LIRC setup failed, as this is a feature built into the Argon ONE configuration software, this should work and should have been tested on the modern Raspberry Pi OS distributions.
The Raspberry Pi OS issue with the Pi polling often when there isn’t an SD Card probably won’t be noticed by anyone, but having this tweak mentioned in the Argon40 setup guide would once again be useful.
Product Links
- Raspberry Pi 4 (Amazon) (ThePiHut)
- Kingston A400 M.2 240GB SSD (Amazon)
- Argon ONE M.2 SSD case (Amazon) (ThePiHut)
- Argon ONE case (Amazon) (ThePiHut)
- Argon ONE M.2 expansion kit (Amazon) (ThePiHut)
- Sabrent USB 3.2 M.2 NVMe Enclosure (Amazon US UK)
- TC SUNBOW 128GB NVMe SSD (Amazon)
Amazon links are affiliate links which help support the site, where possible I’ve used links which should take you to the product in the Amazon store in your region. Links to other suppliers are included for your convenience.
Excellent review. We’ll take into consideration your suggestions and feedback and see how we can improve the M.2. The IR software bug fix is on the way. We’ll add in the manual the SD polling once config too.
Great to hear you are continuing to make improvements. Look forward to updating my review once they become available. If you can let me know when that happens, that would be great.
I was not able to get my new Argon One M.2 to connect to my WiFi networks. I set up another RPi right next to the M.2 and it connected easily. I then flashed a fresh SD card, reinstalled the Raspberry Pi OS to retest and could not make the connection. Even tried connecting to the hotspot on my cell phone without success.
Hi Ken, I tried exploring this in another post: https://www.martinrowan.co.uk/2021/02/raspberry-pi-wifi-performance-revisited/ there is something going on, but I still have yet to pin it down. If you’re able can you test using a 5GHz WiFi, either 802.11n or 802.11ac assuming your WiFi supports this. You may need to determine the bssid for your 5GHz channel (Each SSID on each channel has a unique bssid). Once you determine this you can try specifying it in the wpa_suplicant.conf file. I found the Raspberry Pi at time very reluctant to jump channels and other times jumping when I was trying to have it pinned.
I’d be interested in learning more, if this works or not, then information around your WiFi environment. For example 802.11 standard, frequencies, channel numbers, channel widths, WiFi hardware vendor.
Thanks Martin
Hi there just read the review which was excellent.
With regards to WiFi Issues using this case. It has now been recognised by the Manufacturer that when connecting the USB connector to enable your M.2 SSD, interference knocks out your WiFi on the Pi. This has alos been reported by testers and users alike.
You can try this yourself. Disconnect your M.2 Drive and the USB adaptor and boot from Micro SD.
You will probably find everything working as expected.
As yet the manufacturer does not have an advertised fix.
Thanks for sharing this.
Obviously, the problem with removing the USB connector between the Pi and the M.2 board is that it negates the value of this case. The problem is unlikely to be the USB connector itself but more like the M.2 controller board itself.
I am waiting for an Argon ONE m.2 case to be delivered.
There was a delay in shipping from their official Amazon store, so I’m hoping it’s a newer build with a board revision that addresses the Wi-Fi issue.
I hope you do get the fixed version, else you’ll need to contact Agron40 support to try and source a replacement. Let me know the version number of the M.2 board when you get it. As interested in what’s currently shipping compared to the various versions I have.
Good day Martin.
Received my delivery this morning, and unfortunately it was a revision 1.5 unit.
I’ll send off a note to Argon40 to see if they’ll send me a replacement as Wi-Fi is my only option for using this case.
Hi Brad, If you have 5GHz WiFi you might be ok. I’d suggest you give it a try first if you can.
I took a closer look and believe I interpreted the version info incorrectly.
The top portion of the case is version 2.2.
The m.2 board is version 1.5.
Looks like I’ll be OK.
Brad, Sadly not, it’s the version of the M.2 Board that’s key. I have:
All combinations have the problem. I’ve had confirmation from Argon40 that the fix is in the M.2 Board versions 2.0 and later, the image I was shown was of a v2.1 board.
For some reason the site won’t let me reply to your latest response martin.
I did some tests and got some interesting results.
On 5Ghz connections, it was not bad, although it did take 4 minutes and 25 seconds to download 145 MB of updates, which I thought was a bit slow considering the access point was less than 2 meters away.
We have one of those “Whole Home” setups from our provider, so it has the same SSID for both 2.4Ghz and 5 Ghz wi-fi.
Running Ookla speedtests in Chromium I got around 29 Mbps download rates with or without the m.2 drive connected on 5Ghz.
My Windows 10 laptop got 40 Mbps in the same room right after those tests.
I did more tests later on, but the pi decided to use the 2.4 Ghz connection instead; that was really bad, to the point of triggering a socket error on one speed test.
I’ll be sending a note off to Argon40 in the morning.
Brad, thanks for bringing the issue with the replied to my attention, which should now be fixed.
If it helps you can probably get you Pi to only connect to 5GHz, to do this you need to edit
/etc/wpasuplicant/wpasuplicant.conf
and remove thessid
entry and add abssid
entry. Thebssid
is a MAC address for the specific SSID on a specific radio. With this set the Pi should only be able to connect to your 5GHz Radio on a specific access point.Just bought this case and was going crazy trying to figure out why my pi wouldn’t connect to the internet. Stumbled upon this review and now my suspicions have been confirmed. Thanks for the updates with the issues. I just bought on June 15th and was sent a version 1.6 m.2 board. Don’t know why they would keep selling this product if it doesn’t work. Just reached out to customer service in hopes of a solution.
I’ve received an updated M.2 case that has a version 2.2 M.2 board. Initial testing shows this has fixed the issue. I just need to complete my testing and I’ll be posting a new review of the update. My investigations in to the issue with the new PoE+ HAT has delayed this update. Hopefully, the Argon team can get you an updated version.