Okay, let's continue with our exploration of the fanless HUNSN/CWWK i3-N305 computer discussed last week. This time, we'll focus on what I did here to get it running as my music end-point (for Roon), in particular creating multiple output options for multichannel, stereo crosstalk cancellation (XTC) DSP, and also for those times when I want the highest 2-channel resolution playback to the USB DAC.
Most of the time this computer will be running "headless" although it is connected to my TV and I will on occasion watch movies using Kodi. And since the machine is quite powerful (>100GFLOPS on Linpack stock), I turned down the power utilization for my purposes which in turn will keep the fanless solution cooler.
Let's get going!
Part I: Setting up the computer (Power-Limiting in BIOS for lower temperatures & power draw)
To start, as I typically do with my streaming computers, there's no need for too much CPU speed. Often I do this to slow down the fan speed so the machine can be quieter, but in this case with a fanless machine, it'll keep the components and case cooler under heavy load.
An optional first step is to open up the computer, and replace the stock thermal compound with something probably of higher quality. You can easily remove the 4 screws holding down the motherboard. Here's what the stock thermal compound looked like when I flip it over to have a look at the CPU:
As you can see, it's pretty uneven and globular. There's a nice chunk of copper that makes contact with the CPU. Let's clean that stuff off and replace with a thin even layer of some good compound like Arctic MX-4:
Notice the i3-N305 is a two-chip package - the larger one is the CPU+iGPU, the smaller one is the Platform Controller Hub (PCH). The other thermal pad is for the four 2.5GbE Intel ethernet chips. |
That should help improve heat transfer off the CPU a bit although ultimately I don't expect case temperature to necessarily improve since it's still fanless and dependent on passive radiation into the air. Make sure there's plenty of space around the box and some air circulation would be important especially if you live in a warm place; absolutely no issue this time of the year (winter) in Vancouver!
Okay, so let's get into the BIOS to do a few tweaks:
The settings above "power-limits" the machine so that it averages down to 13W over about a minute but will allow shorter bursts up to 20W turbo. This is down from the default Power Limit settings where PL1 is 20W, and PL2 can burst up to 35W.
While I'm in the BIOS, I also turned off the rather loud boot-up beep and turn off Wake-On-LAN since the machine will only need to wake up when I'm listening/watching media in the AV room:
As a reminder from last time, make sure to put the JPWR1 jumper to the front 2 pins if you want to wake the computer using a USB keyboard/mouse.
Also, you can check the ACPI settings to see if Sleep/Suspend-To-RAM/S3 and Hibernate/Suspend-To-Disk/S4 are activated if you want to use these features:
S3 will put the computer to "sleep", save power by turning off much of the hardware, but retain the RAM so the machine starts up quickly (I measure ~3W during sleep). S4 will "hibernate" the computer by transferring the RAM contents to your SSD and shut down the hardware, saving even more energy almost equivalent to the machine being completely off. When you wake it up, it will now load the RAM contents from SSD. S4 takes longer to awaken and is more important for mobile machines like laptops where you want almost no power draw if it's off for a few days. Power failures will not cause a problem in hibernation whereas the computer will need to be rebooted fresh if there's a power failure during sleep.
The BIOS is quite full-featured with technical tweaks like memory parameters and such so feel free to experiment if you know what you're doing. Worse comes to worse, press the "CLR CMOS" button at the front of the machine to get BIOS back to defaults.
With these settings, we can run Linpack Xtreme to get a sense of the speed reduction and make sure everything is stable:
If you compare this to the stock performance last week, you'll see the drop from 114 down to 87 GFLOPS which is still fast. Clearly it remains stable over 20 runs (10GB stress setting) which took about 1.8 hours without any evidence of thermal throttling.
What is nice to see is the very significant reduction in temperature with the peak internal TMP now closer to 60°C than 70°C and the Silicon Power (SPCC) M.2 drive less than 70°C compared to above 80°C with the stock settings. This is at about 21°C ambient temperature in the room.
Likewise, the total system power utilization dropped from 33-37W during stress testing at stock settings to between 25-30W thus the lower heat production. When idle, the total system power utilization stayed around 15-16W.
For comparison, 87 GFLOPS is about twice that of the under-powered 42 GFLOPS Beelink EQ12 (Intel N100) I used over the last year, the price to pay being around +10W more under load. A doubling of performance like the GFLOPS is a significant upgrade.
Part II: Windows 11, Multichannel Setup
Okay, with the machine running at the speed I want, let's now move on to the Windows 11 23H2 installation itself. I'll connect this computer to my receiver since I want to use it for HDMI multichannel audio + video output. Let the machine reboot and we can set the audio preferences' target resolution and channel layout.
The default HDMI output goes to my Yamaha receiver and TV is the Vizio P75-C1 (released 2016 - time flies!):
Multichannel lossless 24/192 is not a problem given the speed of HDMI and this is more than enough high-resolution for audio output and processing such as 4fs oversampling if for example I want to stream upsampled content from Roon.
Let's configure the channel layout for that HDMI output:
Multichannel 7.1 selected here as an example, I usually run 5.1 for my 5.2.2 Atmos system.
Next, let's make sure to adjust the Windows power settings for how long the machine takes to fall asleep - 1 hour unused should be good enough without wasting any more power:
Notice I use Hybrid Sleep on this machine. It'll turn off most of the computer and initiate low-power RAM mode to retain contents plus save to a hibernate file on the SSD in case power dies. |
In general I don't want the HDMI display to turn off until the computer goes to sleep so I set them both to 1 hour. Let's disable wake timers so the machine doesn't wake up for whatever reason (like running backups or updates in Windows).
Tip: If for whatever reason the computer still doesn't go to sleep by itself after the set period, you can check if there are still wake requests running in the background. Go into the Windows Terminal as Administrator, and issue: "powercfg -requests" to check if there's anything preventing sleep.
Even if everything looks good, if your computer still wakes up, you can have a look at the reason it was last stirred with the "powercfg -lastwake" command.
One reason I use Hybrid Sleep is that I find Hibernate a bit unpredictable with times where it doesn't stay off as it transitions between Sleep and Hibernate - not sure why.
If you're doing some troubleshooting around Hibernate, you can try turning it off in the Terminal with "powercfg -h off", then reboot, at which time you'll see the hibernation file "hiberfil.sys" in the root directory will be deleted. Then turning Hibernate back on with "powercfg -h on" and recreate that hibernate file again with "powercfg /h /type full" then reboot to see if things are fixed. "Full" size as per the command line will correlate to the size of your RAM and can be adjusted (much more info here):
Recreate hibernation file, and show the supported power modes. BTW Hybrid Sleep not available with virtualization (Intel VT-x) on. |
As I did with the previous Beelink system, let's install and run Coffee_FF so the computer will stay awake when streaming through the network - that is, the computer knows not to go to sleep when we're streaming music even if not touching the keyboard or mouse based on network traffic:
Make sure to point Coffee_FF to the correct ethernet port. Then set your threshold (I have 175KB/s here, 100KB/s would be fine). I was streaming just 16/44.1 music but with some volume normalization DSP from Roon at the time and the download rate was 245KB/s - we obviously want our threshold below that. Then go to the "Extra" tab and click on "Run with Windows" to make sure Coffee_FF starts automatically.
As a media streaming device, we just require a single ethernet port. To reduce any confusion, we can disable 3 of the 4 ports:
Since I'll be using this fanless box as an "appliance", I want Windows to log in directly upon boot-up and ready to go. I will not store any private or sensitive material on this machine. Follow these instructions - the netplwiz portion is particularly important and potentially the Registry setting needed as well depending on your Windows version.
Also, I don't need Windows to update unless I say so; maybe every few months. Use Windows Update Blocker:
Part III: Setting up the machine as Roon Endpoint and using JRiver for DSP plugins.
Next, let's talk about what I want this machine to do for me as a Roon streamer endpoint. I want to be able to select 3 playback variants off this machine under Roon depending on what I want to play and what I'm in the mood for:
#1. Multichannel 5.1 / 7.1 output to HDMI directly.
#2. Crosstalk cancellation stereo 2.0 output indirectly using the JRiver 32 WDM driver, apply DSP processing, sent to HDMI.
#3. Pure stereo 2.0 output to high-resolution USB DAC directly.
So let us set this up one at a time...
#1 is straight forward, we'll just install Roon Bridge on the computer, and tell it to output to the HDMI audio port, WASAPI is fine, let's name it "Soundroom - MultiCH":
#2 is more involved. I like my soundstage to be more immersive, so this is a way to expand that experience with standard 2-channel audio as per discussions on ambiophonics/XTC using a DSP plug-in in JRiver. In order for Roon to speak to JRiver, we use the JRiver WDM virtual driver.
First, I installed JRiver (latest version 32, 32-bit or 64-bit install depending on which DSP plug-in you want to run), turn on the WDM driver feature, and allow JRiver to run at Windows start-up:
Make sure to point the player to output to the appropriate device - in my case, I want the DSP processed output to go to the HDMI port (similar to #1 multichannel output, but we'll use either #1 or #2 at a time):
Let's now load up the DSP plugins in JRiver's "DSP Studio". I used 32-bit JRiver for compatibility with AmbiophonicDSP (older 32-bit software) in this example:
Notice that I've got Home Audio Fidelity's X-talk Shaper also installed in the screenshot above; this is another commercial XTC DSP to consider. You can download the demo here - available as Windows (VST/VST3, 32/64-bits, standalone) and Mac (Audio Unit or standalone) versions, registration costs €129. With both AmbiophonicDSP and X-talk Shaper available, I can easily switch between them to compare the difference in sound quality.
Due to the length of this post already, we'll talk more about the X-talk Shaper plug-in another time. Suffice it to say that the quality of this plug-in sounds excellent on my system. Even if you have speakers 60° apart, give that 30° setting in the picture a try and experiment. Although it depends on the music, the soundstage surround and depth expansion should not be subtle when you A/B with the Bypass button - for fun, have a listen to Jain's "Makeba" off Zanaka (2015, DR7), or Dua Lipa's single "Houdini".
Crosstalk cancellation also works well to expand the soundstage from downfolded higher dynamic range multichannel/Atmos mixes to 2-channel stereo. As you can see on the Home Audio Fidelity site, they offer room correction services and other plugins also.
Considering the reasonably priced DSP options available, I'm shocked that uBACCH has pushed their price to US$980 since I had a look at it back in October 2023 when it was listed as US$399! That uBACCH asking price I'm afraid appears excessive.
With the JRiver side done, in Roon, we can tell the fanless computer's Roon Bridge to activate JRiver's WDM driver as another output device, 2.0 channels, which I'll call "Soundroom - Stereo XTC".
For #3, I connected my USB DAC to the fanless i3-N305 computer and pointed Roon Bridge to output to that device. For this, I'll use the Sabaj A20D 2022 DAC (as reviewed previously) with its very high resolution ES9038PRO chip. This output allows me to directly connect the XLR from the DAC to a hi-res amp like the Topping PA5 Mk II+ when I just want clean 2-channel audio. I'll call this output "Soundroom - USB DAC":
With bitperfect WASAPI and Exclusive mode, the Sabaj DAC can also be used to play DSD content through the DoP protocol. In truth, I rarely play DSD these days but it's good to have the capability for my old SACD rips.
DSD256 (11.29MHz) playback from fanless MiniPC over Roon. |
After these steps, we see that the fanless computer which I've named "Arch-Soundroom" has 3 audio outputs for me to choose from under Roon depending on my mood and how I want to listen to the audio (direct vs. crosstalk correction DSP), and to which audio device (HDMI receiver or USB DAC):
Part IV: Other software...
Another one to consider is Juice Hifi's Audiolense (€250 for Audiolense Surround, €390 for Audiolense XO), also room correction software with the ability to create multichannel (5.1/7.1) filters easily. I haven't spent much time on this one yet. Will be interesting to create filters using both this and Acourate for comparison.
Having a listen to Mitch's Sennheiser HD800 headphone filter... Latest version of HLC is 1.2.2 with r8brain PRO resampler algorithm. |
Allow audio bitstream passthrough from computer to the receiver so it can decode all the audio formats including lossless DTS-HD Master Audio and TrueHD-Atmos to a supporting receiver. |
Fascinating read! I may not be quite so ambitious, but I have something similar using a mac mini hooked up to a Yamaha receiver. It works (mostly) fine as long as I don't try to get atmos sound over HDMI. Multichannel FLAC works, using Roon. Atmos tracks whether via Apple Music or from downloads played in VLC produce sound but don't trigger the 'Atmos' indicator on my receiver. Have you heard of anyone doing this with Apple hardware? Everything I find on this subject, including the ripping of atmos music discs seems to at least involve using Windows. Indeed the complexity (and cost) for all of this can escalate rapidly if one has the ambition. I've really been enjoying you site since finding it last summer so thanks!
ReplyDeleteHey there Brian,
DeleteThanks for the comment and happy to put out content for fellow audiophiles!
I hear you. Atmos content can be a pain and given that it's proprietary to Dolby, perhaps not unexpected. When we have an Atmos audio stream (EAC3-JOC or TrueHD-Atmos), it needs to be bitstreamed perfectly to the receiver to turn the indicator on. At least on the Windows side, I can do this with software like Kodi or more generically install K-Lite Codec Pack with bitstreaming turned on.
While my wife still insists on using her Mac, I'm firmly in the Windows world so not as familiar. The Computer Audiophile I see uses the Dolby Reference Player to decode on the Mac but alas that's a US$400 investment to buy the Dolby Encoder package.
Until Apple changes their OS (not only MacOS but also AppleTV so software like Infuse Pro can send TrueHD-Atmos, not just EAC3-JOC) to allow bitstreaming, sadly I think hobbyists and developers are stuck.
Regardless, multichannel 5.1/7.1 with DSU and DTS Neural:X upmixing on the receiver still sounds pretty good for the time being...
We might have more luck propositioning Roon to consider supporting decoding of EAC3(-JOC) or TrueHD(-Atmos), even better yet, bitstreaming these to HDMI outputs than other worthless features! 😉
Great post, Arch. This one, together with last week's gives anyone looking to build a home theater around a PC everything they need. The system you outline is amazingly powerful, and versatile. No need for multi kilobuck receivers, streamers, Baetis boxes, et al. This thing will do it all for l.t. $500. Right now I'm sticking with my $200 Mele Quieter 3Q which does everything for me from running JRiver, Dirac DLBC, and uBacch to stream Netflix, Prime, Tidal and Qobuz to a 5.2 system. It's just barely good enough. Which is, of course, perfectly good enough. But someday the upgrade itch will strike, and now I know where to go to scratch it.
ReplyDeleteThanks once again you definitively answer a whole host of questions that no one else seems to even be attempting to address.
Thanks Phoenix,
DeleteI'm sure the MeLE Quieter3Q is absolutely fine! The quick pace of hardware development clearly is ahead of what most of us use the computers for. Already, you're doing so much with that $200 box!
Yup, some day, I'm sure there will be a itch... 🤪
Thanks. Great write up! Been a big fan of fanless PCs for several years now. (Excuse the pun!) One recommendation for anyone wanting a very good solution for room-correction, EQ and endpoint : MathAudio's RoomEQ is free for use with Foobar2000. It is extremely easy to use and from what I can gather, an extremely good option. It uses little resources, so is also ideal as an efficient, low-power option. I actually have several fanless PCs as end-points. Each in a different room, running room-correction specific to each room.
ReplyDeleteJust my 2c...
Great stuff LC8.
DeleteIt's been awhile since I looked into MathAudio's work. Looks like an excellent option for those on Foobar2000. No doubt as computers continue to get faster and more efficient, fanless designs will become more common I suspect. Perhaps at some point fanless options will even be commonplace for much of our day-to-day office/work computers.
Keep rockin'...
Just for comparison, my now 7(!) year old Coffee Lake i5 manages just over 70 gflops and gets as hot as 80C (briefly) with 2 fans... time to upgrade maybe?
ReplyDeleteHey Phil,
DeleteYeah, maybe you should look into it man! Especially if this is your soundroom machine and "the sound of silence" is essential. :-)
I have the N100 version of this from Topdon that has a different case but with a similar level of passive cooling. The CPU, memory, and SSD all get very hot under sustained medium/high loads. These fanless devices are best suited to bursty loads where the case can quickly soak up heat spikes and then have time to slowly cool. While adding fans to the case can improve cooling, they aren't really designed to use fans. For one thing, adding a fan on the base plate will just result in circulating hot air and not cooling much. The best approach I have seen is to attach a Noctua 120mm fan to the top fins of the case and connect it, via an adapter, to the fan header on the motherboard. Once you've done this, however, you'll be left wondering why you just didn't get a machine more suited to the task since these are firmly intended for use as firewalls and routers.
ReplyDeleteI think that there is still a benefit over an internal fan. Where an internal fan is fitted there will be ventilation slats/holes. These facilitate the ingress of dust which is detrimental to longevity. An external fan added to the cooling fins does not.
ReplyDelete