Argon ONE NVMe Board - Fixed! - Martin Rowan (2024)

I reviewed this expansion board last month in my post: Argon ONE NVMe Board (maybe) Slower than SATA, where I discovered that some boards have shipped running the incorrect firmware leading to poor performance. Due to the Chinese New Year holidays resolving this issue with the Argon Forty team has taken longer than desired.

Joseph Zapanta, COO at Argon40 Technologies Inc has confirmed:

  • Early batches of boards had the correct firmware but an incorrect VendorID, VID: 199d instead of VID: 174c.
  • The most recent batch of boards were flashed with the wrong firmware. The boards they have on hand are being updated with the correct firmware and vendor ID. Those already out in the channel will need to updated manually, see below.
  • Argon Forty have made further changes to their quality control process to mitigate a reoccurrence of these issues.

The incorrect VendorID (VID) can impact software that has been adapted to work specifically with the ASM2362 controller chips for example smartmontools which provide SMART disk statistics including in tools like OpenMediaVault.

Updating the Argon ONE NVMe Board Firmware

Argon Forty have released the firmware, necessary flashing tools and instructions via their GitHub repository. The process is straightforward.

Step 1: Connect the board to your PC

  • You need to have an NVMe drive installed in the Argon ONE NVMe enclosure for it to be recognised.
  • Connect the board to your computer, using either a USB A plug to plug connector, or if you don’t have one you can use a USB extension cable (plug to socket cable) and use the USB adapter that comes with the board to hook it up.
Argon ONE NVMe Board - Fixed! - Martin Rowan (1)

Step 2: Download the files

Step 3: Prepare to flash the firmware

  • Run the flashing utility ASM236xMPTool.exe. Windows may warn that this is an unrecognised application, click more info, then Run anyway.
  • Select the Key icon, and enter the password asmedia to unlock the software.
  • Select the Folder icon and select the firmware file AS_PCIE_200811_81_00_00.bin.
  • The table at the bottom shows the currently detected device, as you can see this has the wrong firmware, VID and PID.
  • The settings in the INI file should open the utility with the correct settings. But confirm the settings are set per the screenshot.
Argon ONE NVMe Board - Fixed! - Martin Rowan (2)

Step 4: Flash the updated firmware

  • Press the Play button icon to start the flashing process.
  • If successful the screen will report the status as PASS.
  • The table will show the corrected VID, PID and firmware
  • Disconnect the board from your PC and reconnect it to the Raspberry Pi.
Argon ONE NVMe Board - Fixed! - Martin Rowan (3)

Storage Performance

NVMe storage is intended to be directly attached to the PCIe bus, with at least x4 PCIe lanes to provide the throughput the technology is capable of. The Raspberry Pi 4’s USB 3.0 ports support data rates of 5 Gbit/s (500 MB/s after encoding overhead) are going to be the limiting factor and I know I’m not going to get close to the 3300MB/s read speed of the WD Blue SN570 NVMe drive. In fact, the SATA drive performance is around the same as the maximum data rates for USB 3.0, so really there isn’t any apparent benefit from using NVMe over SATA, except that you may have some NVMe drives lying around that you might want to use on your Raspberry Pi project.

Testing Methodology

I’ve used a benchmarking script provided by Jeff Geerling to perform the testing which uses fio and iozone to measure the performance for 1MB sequential reads, 1MB random reads and writes and 4k random reads and writes. Each scenario was repeated 3 times and the results averaged.

The Raspberry Pi 32bit desktop image (2022-09-22, with latest updates as of 8th Jan 2023) was used, installed initially to an SD Card and then replicated to the other storage types using the built-in SD Card copier.

Whilst testing with other storage, the MicroSD card is removed to avoid any chance of accidentally testing the wrong storage.

Devices under test:

  • MicroSD Card – SanDisk Max Endurance 32GB
  • M.2 SSD – Kingston SA400M8/240GB
  • NVMe – WD Blue SN570 250GB
    • Argon ONE NVMe Expansion board (original/incorrect firmware)
    • Argon ONE NVMe Expansion board (updated/correct firmware)
    • Sabrent USB NVMe enclosure
Argon ONE NVMe Board - Fixed! - Martin Rowan (4)

Storage Performance Results

Focusing initially on the difference between the original/incorrect firmware and the updated firmware we can see massive improvements in performance across all of the measurements used in the test:

  • 4k random writes: 62% improvement
  • 4k random reads: 46% improvement
  • 1M random writes: 38% improvement
  • 1M random reads: 40% improvement
  • 1M sequential reads: 152% improvement
Argon ONE NVMe Board - Fixed! - Martin Rowan (5)

Updating the performance comparison with data from testing with the updated firmware, we can see that the Argon ONE NVMe is the highest-performing storage solution of those tested. The repeated 1M sequential read tests generated identical results, suggesting a bottleneck may have been hit during that test.

Comparing the Argon M.2 SSD board vs the NVMe board shows small gains for the NVMe version.

  • 4k random writes: 0.6% improvement
  • 4k random reads: 10.6% improvement
  • 1M random writes: 8.7% improvement
  • 1M random reads: 23.1% improvement
  • 1M sequential reads: 6.5% improvement
Argon ONE NVMe Board - Fixed! - Martin Rowan (6)

Power Consumption

Power consumption figures were the same as in my original testing regardless of firmware running on the board.

Trim Support

Running the command sudo fstrim -v / returns an error fstrim: /: the discard operation is not supported. So like the SATA version before it, this Argon ONE expansion board doesn’t support trim without some tweaks. Following Jeff Geerling’s guide Enabling TRIM on an external SSD on a Raspberry Pi worked, though the step to update /sys/block/sda/queue/discard_max_bytes gave an error, that step doesn’t seem to be necessary for this board, which essentially means the only change necessary is to edit /etc/udev/rules.d/10-trim.rules

ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="2362", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"

Upon rebooting the Pi fstrim now works.

pi@storage-test2:~ $ sudo fstrim -v //: 14.3 MiB (15032320 bytes) trimmed

Weekly automatic trimming is then enabled with the command: sudo systemctl enable fstrim.timer

Conclusion

The NVMe board with the correct firmware installed addresses most of the problems identified in the original review. The NVMe version uses more power, and therefore generates more heat. NVMe drives are normally a little more expensive than M.2 SATA in equivalent sizes. Though they do provide a small performance gain. So think this enclosure for the Argon ONE may make sense if you have a spare old NVMe drive and want to give a massive performance boost to your Raspberry Pi. If you have an M.2 SATA version of this enclosure, I don’t see value in changing to an NVMe version.

I’d like to thank Argon Forty for responding to the issues raised and taking action to address the problems.

Product Links

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.

Argon ONE NVMe Board - Fixed! - Martin Rowan (2024)
Top Articles
Latest Posts
Article information

Author: Clemencia Bogisich Ret

Last Updated:

Views: 5865

Rating: 5 / 5 (80 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Clemencia Bogisich Ret

Birthday: 2001-07-17

Address: Suite 794 53887 Geri Spring, West Cristentown, KY 54855

Phone: +5934435460663

Job: Central Hospitality Director

Hobby: Yoga, Electronics, Rafting, Lockpicking, Inline skating, Puzzles, scrapbook

Introduction: My name is Clemencia Bogisich Ret, I am a super, outstanding, graceful, friendly, vast, comfortable, agreeable person who loves writing and wants to share my knowledge and understanding with you.