"I'd prefer something that supports ECC at a price point of ~$150 or below."
Well, wouldn't you know it, I just finished building a new Ryzen system with ECC!!!! Literally one week ago!!!!
So as far as X470 motherboards supporting ECC go, I know of two sets:
(1) Almost anything Asrock (both X470 and B450), and
(2) The Gigabyte X470 Gaming Aorus 7 Wifi - specifically this particular board, and not any others from Gigabyte
I see the Asus X370 board you mentioned does support ECC, but it looks like Asus's X470 boards do NOT support ECC. And I'd recommend X470 so that you can take better advantage of XFR2 and Precision Boost 2.
I wanted X470, and since every X470 board is automatically premium, it was hard to choose. You can't really go wrong. So between the Asrock and Gigabyte, I chose the Gigabyte because it has heatpipes on its motherboard heatsinks, and because it has lots of thermal sensors all over the place. It was really a toss-up. But I'm very happy with my choice. Still, take a look at all the Asrock boards to see if you like them better. If you're trying to cap the motherboard at $150, then the Gigabyte is too expensive - it's $220 - but you can probably get an Asrock B450 within your price range.
In fact, on Newegg, the Asrock X470 Master SLI/AC is exactly $149.99, and the ASRock Fatal1ty X470 Gaming K4 is just barely above your price range, at $157.99. And the ASRock Fatal1ty B450 GAMING K4 is $99.99. Interestingly, the Master SLI/AC seems to have the most features: it has integrated Wifi and Bluetooth, which for me makes it a better deal. So take a look at Asrock's boards.
The ECC is installed in my Gigabyte and as far as I can tell, it's working. I created a BAT file with the line "cmd /k wmic memphysical get memoryerrorcorrection", and it returns "6", which is supposed to mean "multi-bit ECC."
By the way, it's hard to find high-speed unbuffered ECC. Most of it is 2400 MHz, but I found that Kingston sells 2666 Mhz:
(1) 8 GB: https://shop.kingston.com/partsinfo.asp ... M26ES8/8ME
(2) 16 GB: https://shop.kingston.com/partsinfo.asp ... 26ED8/16ME
I bought two sticks of the 16 GB.
If you want to search for a different size, go to https://www.kingston.com/US/memory/serv ... y-standard
, then click "Show All Locked Build Server Memory" (instead of searching for compatibility with a specific motherboard), then tell it the module capacity you want (there are no matched pairs, so don't try to specific a kit capacity), tell it 2666 MHz, tell it unbuffered, and tell it DIMM form-factor. I see only 8 and 16 GB.
Anyway, I bought two sticks of the 16 GB, and it worked right out of the box. I was also able to overclock it without any memory errors. I went up to 3000 MHz, didn't see any performance benefits in the programs I use, so I just reverted it back to stock. I was also able to tighten up the timings quite a bit, but again, I didn't see any performance benefits in the programs I use, so I just went back to stock. (After all, the whole point of ECC is stability, so I'm not going to overclock and risk even the slightest chance of instability unless there's a very clear and meaningful performance benefit. I won't overclock just for the hell of it. But just in case you care, this Kingston 2666 MHz ECC DDR4 is not only the fastest stock I could find, but it overclocks too.)