Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Awesome, thank you for taking the time to include so many details. I can see myself easily building the aforementioned plywood+foam sandwich platform, sounds like a more solid platform to put the NAS case on (mid tower).
The subwoofer feet also look fun, I remember reading about them back in the reddit days. After revisiting my notes and the post, there were some concerns about harmonic vibrations and oscillations from the drive having an negative impact. But reading it again, I don't think that this will be a problem.
I think I'll start with the feet and see how they perform while I source the plywood and foam. Maybe there are also some foam / rubber mounts for the disks themselves, I should be able to find suitable one as it's a more common problem to have.
Do you have recommendations for how I should best measure the results? Preciously I looked into the raw acceleration data to see how strong the vibrations are, and then I looked into the spectrum to find the vibration frequencies. All with consumer / noob friendly tools (phyphox), hoping that the change will be measurable and the results - meaningful.
I work in railway noise and vibration mitigation, and @scrion@lemmy.world has given you a great starting point. When we build rails and want to mitigate ground-borne noise and vibration (typically up to ~200 Hz), we generally mount the rails on soft pads and add extra mass to isolate the rails from the surroundings. The exact same approach will work at your computer. We don't typically use tuned mass dampers for ground-borne vibration, so I think that will be overkill for you, but you can try if you like.
I wanted to suggest that, in addition to the feet/foam/plywood, you can also add a big chunk of something heavy to help with isolation. Like put a heavy rock on top of the foam, and your computer on the rock. The trick is this: if k is the stiffness of your foam, and m is the mass of everything on top of the foam, then your isolating frequency is at √(2k/m). All frequencies above the isolating frequency will by mitigated (the further above, the more they're mitigated), while all frequencies below will be amplified.
(Quick aside if you actually want to calculate frequency with √(2k/m): check that your units for k and m are compatible, you should end up with a result in units of 1/s, which is actually radians per second, then multiply by 2π radians per cycle to convert to Hertz).
When it comes to measuring results, since your problem is in low frequencies, you can probably use your phone's accelerometer assuming it reads fast enough (the sample rate must be at least double the highest frequency you care about). Mount it as rigidly as you can to your computer, since if the connection is soft, the phone will be in its own isolating system. The quickest way to test your isolator would be to hit close to the base with a hammer; impacts excite a wide range of frequencies equally, so in the frequency domain you should see vibration amplitudes following a shape something like these.
But as @scrion@lemmy.world notes below, you don't really care about your isolator's response, you care about what trains are doing to your computer. However, he said one thing I disagree with: it's not the amplitude of the acceleration that you care about, it's the amplitude of energy, and therefore velocity. This article gives a good introduction to ways you could analyze that. But now we're getting way in to the weeds on what should be a simple project!
One last aside: if the vibrations in your building are bad enough, you could raise it as an issue with the metro operator. The US Federal Transit Administration sets standards that are commonly followed even outside of the US (see Table 8-1 in their Noise and Vibration Manual); if your measurements show vibration exceeding those limits then they might pay me to fix it :D.
Hey, great that you chimed in, I agree with the points you're making. As for my remark regarding amplitude, what I wanted to convey was: in the measurement scenario using the PhyBox smartphone app, OP should see an overall smaller signal envelope if the NAS was properly decoupled, compared to the previous plot.
As for your comment regarding the Nyquist theorem, PhyBox maintains a list of devices and their sensors so it would be possible to lookup the available sampling frequency. There are other factors potentially limiting the sample rate (e. g. switching offl microphone access for the app on Android), but it's a good starting point.
https://phyphox.org/sensordb/
However, I think we agree this should be solvable without much theoretical effort.
Wow, I hadn't heard of phyphox before (hadn't even noticed @khorak@lemmy.dbzer0.com mentioned it in the OP). That's very cool and I've installed it now.
I'm wondering, now that you've seen the app, do you have some practical advice on how to measure the difference without having to spend a few hours researching and refreshing on high school physics? It seems that my only option is to run the "Acceleration without g" experiment and work on the csv export.
A probably naive approach would be to filter out values below a certain threshold (a 'low pass filter' of sorts to deal with a noisy sensor) and then try to meaningfully sum the acceleration by time period. But just as I wrote this I realized that I can't simply sum a few values from several rows and call it a day.
The article you linked explained the idea behind the pseudo velocity well, I'm wondering if I can.. "sum the area" (assuming interpolated data) under the various measurement points. Without completely nerding out and investing too much time :D My sensor seems to have a rate of 200Hz, so it should be good for measuring vibrations up to 100Hz.
Edit, it's integrals, right? This is actually exciting, haven't touched math since university. Also here's an example of how the acceleration graph looks like when the phone is on the heating / radiator (more or less worst case):
None of the included experiments look to be exactly what you need. For characterizing your isolator, the included Acceleration Spectrum is close, though it records continuously, making it difficult to use to record impact response. For evaluating actual train vibrations, the user-defined Integrated Acceleration might be a start, but it doesn't include the filtering needed to get good information. You could define your own experiments, but that's probably even harder than analyzing the CSV data on your computer. At least on your computer you can change your analysis freely and immediately see results, rather than re-running the experiment every time.
I've been a bit busy so I haven't had the time to figure out what and how much I need to compensate so the sensor data is more useful. One of the sensors seems to be detecting something reminiscent of a sine curve, so this will involve some extra high school math to find a function to cancel it out. Busy dad etc, maybe next week. In the mean time I started putting together the case and ordered the springy subwoofer legs. Here is how a simple plot of the raw acceleration looks like.
It's obvious which one is the before and after. The second one even includes two trains arriving back to back.
Now I need to figure out a few things:
Thanks for the update and graphs. That is an amazing improvement. In the "after" plot, it looks like any acceleration from the train is well below the noise level of your accelerometer. So, within the limits of your measuring equipment, you've effectively eliminated all train vibration. If I were in your place, I would declare success and move on with life! Don't even bother with foam and rubber feet, because this configuration is working great.
But you could analyze further if you really want; there could be some train signal hiding in all that noise. Since there's periodic noise in the Z axis, you could take a reading during a still time (computer off, no trains) and see where your spikes are in the frequency domain. Then you could apply a filter (or filters) to cut out that periodic noise.
But unless you're really into learning about signal analysis, I'd say you could skip it.
Honestly, I think your approach using the MEMS accelerometer in your smartphone is fine - just make sure to tape the back of your phone firmly to the board to get a rigid connection. This will be of particular importance if you want to do any kind of tuning, as you might measure spurious frequencies if the device is not properly attached.
Smartphone accelerometers are actually used in civil engineering / industrial applications to determine frequencies of e. g. bridges or check for bearing wear. If you are interested, here are some papers:
https://www.spiedigitallibrary.org/conference-proceedings-of-spie/9804/98040C/Identification-of-the-operational-frequencies-of-300-bridges-using-smartphones/10.1117/12.2222097.short#_=_
https://www.scielo.br/j/lajss/a/ZnWZ8T86HHBLFvdksCh7g9s/?lang=en
https://www.mdpi.com/1424-8220/19/14/3143
https://www.mdpi.com/1424-8220/15/2/2980
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9824767/
That being said, the accuracy of the frequency readings is not super important for your application, as what you are after is pretty much only a reduction in amplitude. I would assume spinning hard drives show different responses to different vibrational frequencies, but I did not have the time to research this myself. However, here are two papers that explore what you are trying to do, which I will link since they also mention a few related papers that show the impact of vibrations on hard drives:
https://link.springer.com/article/10.1007/s00542-012-1592-z
https://content.iospress.com/articles/shock-and-vibration/sav00458
This would in theory incentivise to optimize dampening certain frequencies, but I suspect you will quickly get into the realm of overengineering / premature optimization, as the dampening might be good enough to tune out all relevant frequencies without simulations or tuning etc. However, it's still certainly a worthwhile effort for educational purposes though.
As for a practical approach, I'd probably simply start out with some super cheap foam obtained at the nearest home improvement or crafts store and see how a sandwich using that affects signal amplitude. You could even introduce artifical vibrations using a DC motor with a weight mounted off-center on the shaft, which you can get ready-made for next to nothing on eBay ("vibration motor", ~ $2).
If you want to get into tuning / experiment / analysis territory, I would like to include additional motivation. Not only might proper decoupling increase the lifetime of your drives, but it could also improve performance. I will include the following video as humorous proof of that:
https://www.youtube.com/watch?v=tDacjrSCeq4
P.S.: I firmly believe that research should be freely accessible, so I feel obligated to mention that all papers linked above are, if not available for free on their respective webpages, obtainable via a certain scientific hub.
Here is an alternative Piped link(s):
https://www.piped.video/watch?v=tDacjrSCeq4
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source; check me out at GitHub.
HDDs latency will go up from external vibrations (even yelling at your system will do the trick). This would be a good direct source to see if the vibrations are negatively impacting it.