ceezblog.com

I like cat, isn't it obvious?

Category: PC build

  • Build my own custom NAS

    Build my own custom NAS

    If you have to ask what is a NAS, then you pretty much don’t need a NAS. Basically, a NAS (Network Attached Storage) is the same as typical Personal Computer: CPU, motherboard, ram, hard drive in a computer case that attaches to your home network or work network.

    The intro…

    Yes, a NAS primary use is for storing your data. It is simply just a glorified USB thumb drive in a nutshell

    This post is about my experience building my custom NAS.

    There are multiple reasons that make me build a custom NAS:

    • The Micro ATX case I am using doesn’t have enough space for a 3.5″ hard drive
    • I want to access the same file across work computer and entertainment computer, and sometime windows tablet
    • I don’t want to create a user account on my windows PC just to share some files temporary, as this user account will pop up in login screen.
    • I don’t want to type my login for my PC into some body else PC just to access windows share while being at my homelab
    • If I use windows file sharing and use my PC to share files, I have to turn on my PC like 24/7, yeah? Then how is it different than a NAS?
    • Isn’t it better to run a dedicated NAS than the janky windows sharing which hard to manage what to share and what is the priviledges of those who can access the share? Do I have to install windows server to get better control of this?
    • I want to automate the data backup process, which I haven’t done it yet until now
    • I want to stay away from microsoft and their bullsh~t: bitlocker, M$ account, M$ cloud backup
    • Commercial NAS still is a bit pricey and mostly with ARM chip to cut cost and also cut down power consumption

    You might say, why don’t I use cloud base to store data and backup data? Well, I say f*ck microsoft and its onedrive, and I don’t trust google, more info here. I rather rent a hosting or a VPS and use it as my file server instead. But why would I?

    Why would I choose 100Mbit internet speed over 1.0 Gbit local network, not to mention internet upload is only about 16Mbit for 100Mbit line. I can also go overboard with 10GBit network for a NAS if I want to!

    I did rent AWS for a while to run my file server and also my old blog (ceezblog.info), but the cost ate quite a chunk of my budget so I retired that old domain after about 10 years. I thought I gave up blogging for good, but still here I am.

    So yeah, building a custom NAS is pretty much the same as building a custom PC, just simple as that. Except it took me a few months from planning, buying stuffs to finishing the NAS. You know, buying stuffs from aliexpress is pretty much like lottery. If you’re lucky, you get delivery after 10 days. If not, it is 2 months or longer.

    Choosing a suitable case for NAS

    Some just uses ATX PC case, other picks HTPC (home theater PC) case, but the best is to use the case designed for quick-remove hard drive bay that designed for NAS.

    Below is visual comparision of different computer case sizes that I am currently using:

    You can buy a gaming PC case a lot easier than for NAS. It is understandable. It’s like 100 persons buy computer, where as 95 is for gaming, 5 is for office use, and virtually zero is for NAS. Yes, I just make up the number. But I can see the market of custom NAS case is quite small.

    The only place I can find NAS cases is amazon or aliexpress. Pretty much all of those NAS cases are made in china anyhow.

    My aim is to reuse 4x 3.5″ hard drives I have for the NAS. There is no point to build the NAS but buy new hard drives along the way. So, 4-6 bays for 3.5″ hard drive it is. There are a few choices with theirs dimensions:

    I decided to lock on UeNorth S6 NAS case instead of JONSBO ones. It is small enough and can hold 6 sata bays. I wonder if it is the same manufacturer of those constellation NAS cases (Aries, Sagittarius, Ursa minor), you know, North like in North star. I can see the design language of those cases are very much similar, like, the same power button, the same fabric tab to pull cover of the drive bays.

    FIY, the NAS case is categorized as OVERSIZED SHIPPING, and it is extremely slow. It was over a month to get here in Australia.

    Choosing the hardware: CPU and motherboard and PSU

    I tried to design my own NAS case before, but failed. Actually, design a mini ITX case is not hard, as everything has dimensions, screw hole locations and all. The hard part is to design the removable caddy for 3.5″ hard drive. I already bought the parts for that but decided to give up. I don’t want to buy caddy for DELL server or HP server. My target is not really a budget NAS, but more like to build something nobody’s done before, something like almost impossible, such as use 2.5″ laptop HDD box to run 3.5″ HDD, say, a fun challenge for myself.

    I originally had 2 plans:

    • USB HDD box + Mini PC (HP elitedesk) + 30A 12V PSU
    • ITX board (intel N150) + sata cable + old ATX PSU

    Those HDD boxes are for 2.5″ laptop HDD that lacks of 12V power, but I soldered extra wire for 12V DC to be able to use with 3.5″ HDD and it ran just fine. FIY, 12v rail for the motor to spin the plates, while 5v rail is for logic board of hard drive. And yes, without 12v power, 3.5″ hard drive just won’t work.

    My plan was to pull the pcb of those HDD boxes and solder extra wire to run with 12v 30A PSU. This to provide the missing 12v of those laptop hdd boxes

    Some guy reported the mini PC can actually run off 12v instead of 19.5v. Afterall, the voltage will be dropped down to, say, 1.25v for the CPU or RAM, or 3.3v for NVMe drive… The only thing I can think of that could use 12v or +/-12v is the amp for headphone output. But still headphone amp still can be done with capacitor output and run on single 5v rail. Really, the buck regulator will drop down to target voltage regardless of input voltage of 19.5v or 12v.

    The idea of attaching USB hard drives to a mini PC does have legs. Basically it is DAS + mini PC = NAS, where DAS is direct attached storage. I still have a bit of concern about 5v USB to power logic board of the hard drive. You know, USB is not the most reliable thing, we sometime have to unplug the USB to make it work again. I guess this is due to the 5v USB has to go through tracks and traces on the PCB and/or through mosfets on the motherboard, it is certainly not as reliable as 5v directly from the molex connector. So that I also had plan to have buck converters to have dedicated 5v rail feed to that usb box pcb.

    After a few weeks sitting on it without any progress, I decided it’s best to use my time for something else, and I moved on with buying an Intel N150 ITX board from aliexpress.

    I was tempted to buy the board with 4x RJ45 port thinking I could build it as a NAS + router + managed switch. Doing more research, I find out that each RJ45 port ties to an intel NIC (network interface controller), which ultimately connects to the CPU via PCIe lane, probably. So, any routed traffic from 1 NIC to another is done in software, bummer!

    So I chose the cheapest option for N150 NAS motherboard: N150 NAS DDR4 Motherboard 6x SATA3.0 2x Intel I226 2.5G Mini ITX. It’s the one on the right. I went with DDR4 for availability because you can buy used SODIMM DRR4 easier than SODIMM DDR5. Ram rarely fails, a used DDR4 is still plenty good for my needs.

    The use case for multi NIC computer like this is for multiple instances of virtual machine where each instance can have its own NIC and totally isolated, just like a completely different computer. I chose intel N150 for low power consumption, I don’t think I need to run any VM so I prefer a NAS with only 1 or 2 ethernet port but have plenty SATA ports for my hard drives. Additionally, my PC has only 1.0GBit NIC, and my switch is only 1.0GBit, there is no point having a 10GBit NIC for the NAS.The bottle neck is the HDD as it is about 120MB/s, the same speed of 1GBit ethernet. So I just pick the board on the right since I have some room for the board to fit inside the case.

    Running some power consumption tests yielded some interesting results:

    The test bench: 8GB ram + Sata SSD + USB 2.0 to RJ45 adaptor + 7″ LCD powering from USB port + running windows 11.

    While the setup with ATX PSU pulled about 31w at idle and around 53w at full load, the setup with 12V-20A switch mode PSU + Pico ATX PSU only took 22w at idle and 42w at full load. When I unplugged the USB power for the mini LCD, power consumption fell down to 16w. The math is about 70% efficiency (= 22w / 31w * 100%) for ATX PSU if we considering 12v-20A psu setup was 100% efficiency. So the actual efficiency is lower, about 50-60%.

    To be fair, ATX PSUs are designed to be highest efficiency when it is around 50-80% of max load and 31w is only about 6% load of 500w PSU. That is why the efficiency is terrible at light load.

    For the test system above, a 150w PSU is good enough. But, there are 6 sata bays for 6 hdds, each hdd can take extra 18w, make it around 108w. The maximum power consumption of this NAS would be around 170w. To be safe, The PSU for this NAS should be 250w or higher.

    Rule of thumb when choosing power supply for electronics: choose the power supply that can do at least 30% more of maximum load of the system. It’s just that the higher wattage, the pricier they get.

    I bought 350w flex PSU for this NAS. It costed me only AU$45 shipped from aliexpress.

    Of course, the cheap flex PSU doesn’t have fan speed controller to limit the noise of those crazy high speed 4020 fans. Those fans can spin very fast 5000rpm to 18000rpm. This high speed fan generates irritating high pitch noise, that I have to print a fan shroud to eliminate that noise

    Get the shroud for 4020 fan here

    Assembly the NAS

    The case came without any fan. It was expected, so I bought 3x 9015 fan for it.

    I also bought about 10x sata cable. Turn out those normal sata cables are too stiff to use in this tiny case. So that I had to buy sata cable bundle. Before I build this NAS, I didn’t know there is such a cable bundle like this.

    The intel N150 max TDP is 15w, it can be entirely cooled by passive heatsink. But since there is no exhaust fan in the upper half of the case, hot air will just be trapped and circulated around the CPU fan instead of going out of the case. After consideration, I flip the CPU fan from blowing down the CPU to blowing upward. So that a little bit of hot air will be forced to go through vent holes on the top panel and thus fresh air will get in through the front. I could design duct at the CPU fan to get more air come out easier, but meh.

    The case is laser-cut so that the edges are very sharp. It is understandable with low volume product to be laser-cut rather than made with punching or stamping machine. I had to run sand paper over all edges of the steel hdd trays. It just is too sharp, almost like razor sharp. It cut me when I tried to plug in those sata connectors at the backplane pcb.

    The process of assembly everything together is quite straight forward:

    • Install the motherboard
    • Install the PSU
    • Run power wires to the bottom half
    • Run sata cables to the backplanes
    • Cable management

    I have a 64GB NVMe 2230 that I want to use. This drive was from a steam deck. It’s quite useless for everything else except it’s perfect to use as boot drive for the NAS. I just have to design a bracket for 2230 to sit in 2280 and 2242 slot.

    If you have the same problem, you can download the 2230 bracket here

    Here comes the troubles : the software for NAS

    My needs from the NAS is pretty simple:

    • Backup my work data regularly
    • Only backup if there is any change to the data
    • File server to store movies

    My works are almost about firmware for microcontrollers. And the firmware rarely changed, unlike PC software that needs constant bug fixes. Once the firmware is at working state there won’t be much change. It could be only one minor change after 2 years or so. So that, backup everyday is just a waste and make it a lot harder to trace back where was the change was made when going through tons of archives, like 365 archives a year if I backup everyday.

    Of course, once in a while I should copy the archives into a USB drive and keep it offsite for extreme measure.

    My first try was trueNAS. It is generally very good, the web sysadmin to help you to control every aspect of the NAS is very straight forward and intuitive. But it requires to format the hard drives into ZFS. I have no problem with formating 1TB drives, but I also have 6TB drive that 70% full of movies that I don’t have any mean to dump those data to in order to format this drive into ZFS. Yes, it was currently NTFS.

    While experimental with trueNAS, I discovered cockpit. Which is exactly what I need. I don’t want to fiddle with command line for everything, too much to learn, so a web sysadmin interface is like a godsend for me.

    So I decide to have linux + cockpit + cockpit file sharing as my base software for the NAS.

    Then I tried debian 13, Ubuntu server 24.04.3 LTS. I also tried some desktop flavour like EndevourOS and KDE neon for this NAS. I know, I know, it is suppose to be a headless server, why would I want a distro with desktop environment? Debian 13 inet installer does have an interesting flavor: freedombox to be installed along. It’s like the desktop environment but on the webpage for the headless server, neat!

    Freedombox interface

    Heck, I even tried to install Arch, but the installer just boot into bash shell. There was no GUI, no instruction. I was lazy and gave up on Arch

    When testing freedombox, I tried install cockpit and config samba there but no joy, windows 11 couldn’t see samba share whatsoever. I spent a week trying debian 13 and ubuntu 24 with cockpit, you know, following instruction to install from the website but still there is no sign of life from windows 11. So, I had to get my hand dirty and dig deeper. I had to use a port scan tool, which I collected since 2012 and it was flagged by Windows Antivirus immediately the moment I unrar the file. Well, I’ve been using this tool for years, long before windows 10 without problem. Then I realized that port 139 and port 445 was not accessible from windows 11 machine. And sure enough, samba wasn’t installed along with cockpit file sharing even though samba was listed as dependency, as it should install all dependencies along with main package right? Then install samba for real this time and also install wsdd (web service discovery host daemon) just to place nice with windows. Windows 11 does work with samba now.

    Then I go ahead and install cockpit identities, cockpit navigator. But some how I broke cockpit while manually compile and install those. Do more reading, I realized one of those plugin only supports up to ubuntu 20!

    Up to this point, I already got my hand dirty and dip deep into linux command line world, like recompile those packages from source to install them, mostly still follow instruction though. I couldn’t fix the cockpit I broke, so I decide to install debian 12 and start fresh. Now everything works the way it should be.

    Lesson learned: do not install the newest version of linux for server, as too many packages are changed and it could break the software you want to use. Stay one or two version behind the newest one for a server. Say, debian 13 is newest at this time of this post, just use debian 12 instead. You have to give those software a few years to catch up with newest release of the OS. You know, linux world is mostly free, most of them are doing this at their spare time. Unlike microsh!t, its programmers get paid fulltime just to break the old trusty windows we used to use.

    On some side note: I did run KDE neon on a hp elitedesk mini pc a while ago until I gave that mini pc away as a part of firmware flashing machine. Yeah, instead of spending time, a lot of time to setup the flashing environment on customer PC, I just gave him the mini PC and that’s that, quick and easy.

    So this is the list:

    • Debian 12
    • Cockpit
    • Cockpit identities
    • Cockpit Navigator
    • Cockpit file Sharing
    • Samba
    • Wsdd
    • Transmission

    And my NAS just accept NTFS without any complaints, unlike trueNAS which requires to format the drives into ZFS.

    When I insert a new hard drive, I just have to mount it and assign a share to the location I mount. I can easily add new share for guest, a lot easier than mucking around with “sudo nano /etc/samba/smb.conf”

    Backup script to backup data

    As mentioned before, I need to backup data regularly but only backup if changed. So I wrote a shell script to do this job

    ShellScript
    #!/bin/bash# This script will backup a <source folder> to <sync folder>, checking for changes of subfolders# If there are any, it will zip each modified subfolder into a separated timestamped archive# Dependencies: p7zip, p7zip-full, rsync, pv (pipe viewer)#Location of Source foldersource_folder=/mnt/sdb/WORK_DATA/#Location of Destination folder that you want to backup to (existing extra file could be deleted)sync_folder=/mnt/sdc/SYNC/WORK_DATA/#Location of zip archives if there is any changes between synced folder and main folderarchive_folder=/mnt/sdc/ARCHIVE/WORK_DATA/#Log filelog=${sync_folder}../../backup.logcurrent_dir=$PWDecho -e "\n\n"echo "-----------------------------------------------------------------------------------------"echo "   This script will backup folder WORK_DATA from SEA1TB hard drive to WD1TB hard drive   "echo "-----------------------------------------------------------------------------------------"echo -e ""mkdir -p ${sync_folder}mkdir -p ${archive_folder}echo -e "--------------------------------------------\n$(date +'%Y.%m.%d %H:%M')\nStart Backup ${source_folder}\n" >> $logecho -e "Destination: \n     ${sync_folder}\n     ${archive_folder}\n" >> $log#Move to [source folder] to get a list of subdirs to sync_list.txtcd $source_folderfind . -mindepth 1 -maxdepth 1 -type d -exec basename {} \; >${current_dir}/sync_list.txt#Move back to current foldercd $current_dir#Loop through all subdir of [source folder] while read subdir; do	#Create folders again just to make sure	mkdir -p ${sync_folder}$subdir	mkdir -p ${archive_folder}$subdir		#echo "checking for different between source and sync"	diff --brief ${source_folder}$subdir ${sync_folder}$subdir > /dev/null	if [ $? -eq 1 ]; then		echo  -e "- Item $subdir has been modified since last sync"				#syncing		rsync -avh --ignore-existing --checksum --delete ${source_folder}$subdir ${sync_folder} | pv -F "     Syncing...  %t" > /dev/null				#zipping		7z a -t7z ${archive_folder}${subdir}/$(date +"%Y.%m.%d_%H-%M").7z ${sync_folder}$subdir | pv -F "     Zipping...  %t" > /dev/null				#logging		echo  -e "- $subdir changed -> synced + zipped" >> $log	else		echo  -e "- Item $subdir in synced drive is the same"		echo  -e "- $subdir not changed -> not synced" >> $log	fidone < sync_list.txtrm ${current_dir}/sync_list.txt echo -e "\n\n" >> $logecho -e "\nJob done!\n"

    So, my main data is in /mnt/sdb/WORK_DATA/ and a complete identical mirror is at /mnt/sdc/SYNC/WORK_DATA/ on a different drive as a backup. I also have archives stored in a third location /mnt/sdc/ARCHIVE/WORK_DATA/ which has zipped files. The script won’t zip the whole WORK_DATA folder, but zip each individual subdir into a zip file only if there is any change in that subdir when the script runs.

    Let say, I have

    • /mnt/sdb/WORK_DATA/kicad_project/ to store all PCBs I ever work on
    • /mnt/sdb/WORK_DATA/stm32_project/ to store all firmwares stm32 micros
    • /mnt/sdb/WORK_DATA/esp32_project/ to store all firmwares stm32 micros
    • and so on…

    So in ARCHIVE folder I’ll have

    • ./WORK_DATA/kicad_project/
      • 2025.11.10_07-54.7z
      • 2025.11.11_09-20.7z
    • ./WORK_DATA/stm32_project/
      • 2025.11.10_07-54.7z
    • ./WORK_DATA/esp32_project/
      • 2025.11.10_07-54.7z

    kicad_project archive folder has one extra file, because I only made changes in this folder between 2025.11.10 07:54 and 2025.11.11 09:20 while others folders are the same as before.

    This is very much the same as CCTV camera only records when there is movement on the screeen.

    Basically, I can put those 3 locations in separated drive to ensure highest chance of survival if one drive fails or acidental deletion or whatever. You know, nothing lasts forever, everything will fail eventually.

    For now, I just put both mirrored data and zipped backups in the same drive, it doesn’t matter much. I do copy the archives to USB drive every now and then for extra safety.

    Then next step was to setup cron job to run this script how frequently I want it to be. This is as easy as running crontab -e to edit the cron job config.

    The total budget for this custom NAS

    • intel N150 NAS motherboard — $205
    • SODIMM DDR4 8GB — $25
    • UeNorth S6 case — $108
    • Flex PSU 350w — $44
    • 6x Sata cable bundle — $12
    • 3x 9015 fan — $17
    • 64GB NVMe — free
    • 4x 3.5″ hard drives (6TB, 2x 1TB, 500GB) — free

    The total cost is AU$411, not as really in the budget that I thought it would be, but sure it isn’t bad compare to Synology NAS or alike. If I include the cost of the hard drives, it would rise up to about AU$800.

    Compare to prebuilt NAS that has only about 1 or 2GB ram and run on dual core ARM CPU @1.7GHz, it’s pretty much in the ballpark of AU$400 to AU$600 to this one.

    Certainly, this custom NAS cannot compare to those of one notch better, like MINISFORUM N5 AI NAS (AU$1700) or UGREEN NASync DXP6800 Pro (AU$1655). Those NAS have better CPUs for sure (intel i5 12th gen or Ryzen 7 255). Sure enough, those NAS will be a lot better in heavy tasks like plex transcoding 4k video. But for me N150 is well enough for my use and totally worth it. And it also doesn’t burn too much of electricity.

  • Building desktop PC with mobile chip 7945HX

    Building desktop PC with mobile chip 7945HX

    Why I want a new PC with mobile chip

    As recently, my 5 years old PC’s showing age: bsod and crash during web browsing. It was R5 5600G pairing with 1660 super, a mid-range budget build at the time. I don’t know what causes the crash, but I am not really interested in finding out. It’s served me well during the years. So yeah, let put it to rest and build a new PC.

    Choosing self-built PC instead of pre-built PC

    I’ve been contemplating for almost a month what CPU for my next PC. Thinking Strix Halo would be the best as the iGPU (8060s) is quite on-par with mid-tier discrete GPU, the like of RTX 4060. But the price is quite steep, such as Framework desktop Max+ 395 – 64GB for ~AU$2900 minimum. Let round it up to AU$3000 as you have to buy accessories and stuffs as well.

    I don’t care much about 10-20% CPU processing power difference, it still is huge improvement over my old PC. My work is about 2D and 3D cad (kicad + fusion) mostly. I also do some light gaming for entertainment.

    As for the budget AU$3000, I could build a better PC compare to Strix Halo. Just some rough estimate for AM5 R7 9700X system:

    • 600 for GPU
    • 600 for CPU
    • 300 for Motherboard
    • 300 for RAM
    • 300 for case + PSU
    • 300 for SSD

    That was around AU$2400 and I still had budget for better CPU or better GPU. Don’t get me wrong, I am not complaining about Framework desktop being overprice, because it isn’t. Of course, they have to make profit out of low volume product and that price point is quite good actually. Compare to HP Z2 Mini G1a for AU$3400 with lower specs, it is actually plenty cheap

    I could go with BD790i X3D with Zen 4 7945HX-3D (about 5-10% processing power lower from Zen 5 395+ AI Max), and still have ITX form factor (same as framework motherboard, but without the grunt of iGPU).

    The size is 170x170mm, very compact and small. But I have to pair it with a discrete GPU as well as SFF/SFX PSU which is not that small to fit into tiny case. I did have a thought about some fancy cases like Thermaltake tower 250, though it is huge considering support only ITX motherboard

    But then stepped down a notch, choosing mobile chip 7945HX coming with BD795M. I was lucky to get the low price before it was jacked up by tariff or whatever. And 3 weeks later, this is the new price almost as twice as much.

    US$360 = AU$546 and US$624 = AU$946 (exchange rate at the time of this post)

    Compare to R7 9700X, R9 7945HX is about 15% less to 9700X in single core task but overpower by 40% in multi-core task. This is quite easy to understand as it is 16 core Zen4 vs 8 core Zen5. This actually perfect for me. I don’t play game much so that single core task is less important for me, but I’d like to open multiple chrome tabs, like 20-30 tabs at a time.

    I saved about AU$350 out of AU$900 for similar performance.

    Yeah, this is mATX board and it takes SODIMM instead of DIMM. It’s common to use SODIMM in constrain space of small form factor PC, like Dell optiplex micro series, but there are plenty of board space here. It would be better to use DIMM ram instead. There are much more options to buy DDR5 desktop ram, but less options for DDR5 laptop ram.

    I feel funny about this board: AMD CPU but employs Intel 1700 socket heatsink fan. And of course, this spells trouble for me. More to it later.

    So, the TDP of CPU is configurable in BIOS for 75w or 55w, quite power hungry for a mobile CPU (a highend one actually).

    Assembly this PC is very much the same as normal desktop PC

    Except when it isn’t. This is the specs:

    • BD795M motherboard with mobile Ryzen 9 7945HX (soldered)
    • 2×32 DDR5 SODIMM Crucial 5600MT
    • 2TB Kingston NVMe
    • Old wifi module salvaged from broken laptop
    • XFX 9060XT 16GB
    • MSI MAG E240 AIO watercooler
    • 3x Thermalright 120 fan
    • Lian Li A3 mATX case
    • FSP Vita GM 750W (modular)

    The maximum power consumption is roughly 300w (CPU 75w + GPU 160w + FANS + SSD + RAM….). I was aiming for 500w or 550w PSU, say, 40% more for headroom. But for modular PSU, there is nothing below 750w, kinda sad.

    Overall, the process is quite straight forward:

    • sit ram, nvme ssd, wifi card on the board, install CPU bracket / backplate
    • put the board in the case
    • install GPU
    • plug in power cables
    • do cable management a bit
    • install radiator
    • install CPU cooler block/pump
    • install fans
    • boot up and install windows
    • do final cable management

    Nothing worth to note down really

    And here comes the trouble with AIO cooler

    It went smoothly but then I booted into windows the CPU temp was 95°C. I was kinda panic, as leaving CPU burning hot like this is not good. Fortunately, this board already has a beefy heatspreader, to prevent the CPU from release the magic smoke.

    Here is the problem: this AIO bracket/mount thing doesn’t have springs for compression like other waterblock mounting, but a fix-length spacer or standoff.

    The idea is good, as fix-height standoff like that won’t bend the motherboard if you tighten the nut too hard. I am sure it’d work wonderfully for Intel CPU.

    But… this isn’t genuine intel 1700 socket, so the height from the board to the top of the IHS isn’t the same. And that causes thermal throttling as the waterblock never touches the IHS of this CPU. When I removed the waterblock (also pump), the thermal paste, which applied in X pattern, was barely squashed down and still had the same X shape. Bummer! By judging the evidence of thermal paste, there would be about 1-2mm gap. I didn’t take picture of it so you have to take my word for it.

    Futhermore, the standoff doesn’t sit flat on the motherboard. The back plate was rattling around when I was installing the motherboard inside the case. I guess that is why they have 2 strips of double side tape on the backplate to keep it in place not rattling around.

    The solution is easy, 3D print a standoff 18mm height to replace original standoff. That is to reduce about 1.8mm off the height of original standoff of the cooler.

    These 3D printed standoffs combine with M3 screws 40mm long is perfect setup for me. I print this in PC. It has to be impact resistant as well as heat resistance. ABS or ASA may work but not PA (including PA-CF). Because PA does creep too much under compression, that’d potentially undo the nut holding it down.

    Well, if you don’t have a 3D printer or nuts or screws like what I have, then sucks for you. I really can’t imagine how you can deal this situation, probably return the MSI AIO cooler and try something else. I happen to have quite a collection of M3 screws and nylon standoffs for electronics and this designing and solving problem is kind of my work actually.

    You probably get away with 2x 8mm nylon standoff (PA6) + 2x washer + 40mm long M3 screw for each corner. These injection molded nylon part does not creep under compression unlike 3D printed PA6 part. However, it feels like fixing stuff with sticky tape, so that is why the 3D printed standoff instead.

    Yeah, I replace MSI fans to Thermalright TL-S12W since I bought 6 of them for matching style and lighting. Unfortunately, BD795M doesn’t have ARGB controller, which is quite odd. Nowadays all motherboards should have ARGB controller onboard already. I did have a thought to build the controller using arduino plaform since it is just Addressable RGB LED and mostly arduino library would run just fine, but meh! Just buy a off-the-shelf cheap controller and be done with it.

    The system runs very well and cool, and very quiet

    The CPU is cool, as it is watercooled of course. Anyhow, this thanks to great performance of MSI MAG CORELIQUID E240

    TDP of 7945HX is set 75w in bios, which is slightly higher than 65w of most AMD desktop chips but still no problem for MSI MAG E240.

    I really don’t care much about benchmarking number. It is like, your car can do 350 KMH but speed limit here in Australia is 110 KMH for motorways and 50 KMH for local streets. I agree you need some number to tell the performance differences between systems, but I’m just too lazy to install those benchmarking software (haha). A youtuber claims this BD7950M is quite close to Cinebench R23 benchmark of 7950X desktop variant, which is 170w TDP and costs twice as much.

    Compare to my old system, this is much aesthetically pleasing

    Possibly improvement CPU cooler mounting

    For now, the CPU cooler mounting is exactly the same, only the height of standoffs are different. And yes there is a tiny chance of the nut will loosen itself because of thermal cycling. To fully eleminate it, I have a plan to use blinded M3 nuts + springs to have constant pressure, which of course would be better. The blinded nuts still stop it from going down too far. Combine with the same spring at 4 corners, then you’d have same pressure on four corners.

    I saw some dude chipped off a corner of the die of AMD Athlon K7 (Thoroughbred or Barton, I forgot) while installing homemade watercooler, around 2003 or so. Yeah, the good old days.

    And this would complete the build. But for now it is well enough!

    ————————

    If you have the exact same system and want to print the standoff, here is the fusion archive file:

    standoff_msi_cooler_for_DB795M.f3d

    ————————

    Edit 30-09-2025:

    After a week of daily use, I found a small problem that I couldn’t solve: The SATA drive pops in the “safe remove menu” of windows and I eject it by mistake. Actually I was quite careful before I click but I wanted to try and see if it is possible to eject the SATA disk like a USB drive, it did actually eject the SATA drive. So, I had to open the side panel of the case and reconnect the sata cable and *voila* the drive enumerates itself back in the system.

    I tried to look for an option to disable hot-swap feature but failed. I didn’t have high hope anyhow as I knew the BIOS is just bare metal before I bought it.

    Support from MINISFORUM told me that this motherboard does not support SATA hot-swapping (as expected) and thus there is no option to disable it in the BIOS.

    I found a registry hack to hide these SATA drives from Eject menu

    TreatAsInternalPort.Reg
    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device]"TreatAsInternalPort"="01"

    That will hide SATA port 0 and SATA port 1 from Eject menu

    You just save as reg file or open regedit and create a string TreatAsInternalPort with content “01”, DWORD 32 or DWORD 64 type also works but the content is different as byte string {‘0’, ‘1’} convert to DWORD32 = {0x30, 00, 00, 00, 0x31, 00, 00, 00}. You know, DWORD32 = 4 bytes for a single character while byte string = 1 byte for each character.

    Just reboot and enjoy!