IntroductionI'm a PC gaming enthusiast, and I follow a handful of related YouTube channels, one of which is Linus Tech Tips (LTT). A few years ago, they built a computer into a desk that looked really cool! I had recently gotten into woodworking with a small collection of tools, so I decided to build a desk PC of my own! DesignThere's a lot that I liked about the LTT design. It's a fairly simply construction without any weird contours, there's a lot of space to put components, and the glass top makes everything easily visible. So I ended up following their general design, but changed some of the things I didn't like (I'll get to those later). The first step was actually figuring out the glass top. It's possible to order custom sized glass panes, but they get expensive quickly. Another option is to buy a used glass-top table that's close to the right size. This saves a lot of money, but means the desk size is constrained to whatever you can find. For me, the ideal size was roughly 3x5ft. I did consider 2x4ft, but it really wasn't enough space for components to fit like I wanted, and I also just appreciate having more desk space. I kept searching Craigslist for a couple weeks until I found this Ikea GRANAS dining table pop up. It's a little smaller than the 3x5ft I was looking for, but it was definitely big enough. And I was tired of waiting, and they were selling it for cheap, so I bought it! Up until this point, I had tinkered with a few different layouts in CAD with various glass dimensions. But now that I had finalized the glass, I could finalize the layout. This is what I had come up with in my CAD software: This is where my design starts to differ from LTT's. I wasn't a fan of how they placed their motherboard (MOBO), graphics card (GPU), and power supply (PSU) off to the right. Those are the core parts of a computer, so I feel they should be centered. In addition, I made space for some extra storage drives on the left, and an uninterruptible power supply (UPS, basically a battery for your computer during blackouts) on the right. The whole desk is supported by a couple of IKEA drawers, because I can never have enough storage space. I was planning to build the whole thing from a sheet of MDF, so I extended the back of the bottom piece a few inches to create a shelf for some cable "management" (just throw cables back there and don't look at it!). LTT cut out the front rectangle, but I decided to keep it. I initially used it as a shelf for storing things I use frequently, with my keyboard and mouse (KB/M) sitting on the glass above it. But I found this to be a little uncomfortable, and I was frequently moving my KB/M around as I worked on stuff, so I eventually put my KB/M on the shelf instead. The CAD model was a useful tool for playing with layouts, but it's sometimes difficult to get a sense of scale. So I made some cardboard cutouts of the components and moved them around on the glass table. This was a great way to get a sense for the spacing between components, and to verify the dimensions in my model were actually correct. Computers have components that get hot, so cooling is pretty important. In my initial design, I made space for several intake fans at the front. My original plan was to have 10 intake fans and exhaust all the air out the back, but I eventually changed this. Given all the components on the back wall, adding vent holes would have been tricky. 10 intake fans also would have been excessive, so I moved the 4 side intakes to the front faces above the drawers and made them exhaust fans. Air comes in from the middle, flows outwards, then back out the front sides. In winter, this makes for good hand warmers! LTT created a custom water cooling loop for their system, which I was interested in doing, but really didn't want to pay for. It's hundreds of dollars worth of stuff for really marginal benefits. Sure, it could cool down some components by a few degrees, but that wouldn't translate into any performance benefits for me. Plus water cooling is just a pain to deal with from a maintenance perspective, and it would have at least doubled the cost of the desk for just a little more cool factor. But that's not to say I'll never do it. It's conceivable that I'll want to add water cooling at some point, so I took care to make it possible. Specifically, the exhaust holes are designed to accommodate a pair of 240mm radiators, and the sides are have space for water cooling hardware like reservoirs and pumps. Whether I end up adding water cooling is up in the air, but it's possible! I later updated my CAD model to include my KB/M and monitors (more on those later), which ended up very similar to the real thing! ConstructionWith the design and layout finalized, it was time to start building! Like I said, I wanted to construct the whole thing from a sheet of MDF. I did consider plywood, but the good stuff is fairly expensive, and it has a tendency to chip and splinter in my experience. Plus I hadn't really used MDF before, so it was a good excuse to get some experience with it! I bought a 4x8ft sheet of 3/4" MDF from Home Depot, which had enough area to make all the parts I needed. And I quickly learned that MDF is quite heavy. I don't know exactly what the weight was, but I think it was around 100 pounds! That was quite the struggle to move by myself, I would definitely recommend having a friend help! I eventually got it home and started cutting out pieces with a circular saw. Once I had all the side pieces cut to length, I did a quick test layout to verify my dimensions. All was looking good! I also wanted to verify that the air would flow how I expected. It was important that there was sufficient airflow everywhere inside, so I set up this test with all the intake fans in position. I dropped in little pieces of paper, which got blown around by the fans. I also did a smoke test by lighting a piece of scrap wood on fire, and placing the end of it at various location to see the airflow. This worked pretty well, and I could see decent airflow everywhere! My next step was adding fan holes. In hindsight, the best way to do this is with a hole saw. However I rarely make big holes, so that idea didn't occur to me. Instead, I used a handheld router. I wasn't very experienced with routers, so I made a fan cutout on a test piece first. After drawing a circle of the right size, I cut out a slightly smaller circle with the router, then slowly approached the line until I was happy with it. I then wont over the edge with a roundover bit, which made a nice smooth transition. Turned out pretty well! Now that I was feeling more comfortable, I just had to repeat it 10 more times on the real parts! Fortunately I didn't make any major mistakes, they all turned out fine. I also learned how much dust routers can create, this shirt I was wearing is normally dark blue! Definitely glad I had a good dust mask for this one! As I was cutting these parts out, I did come close to ruining a part and injuring myself with the router. In order to get the router bit deeper into the wood, some handheld routers have a mechanism to plunge the bit into the material. But mine did not, so I was making helical plunges like you'd see a milling machine do. I was taking it really slow, so I didn't have any issues there. But at one point, I had the idea to drill a hole first so I didn't have to plunge. The largest drill bit I had was 1/4", and my router bit was also 1/4". I did my best to hold the router steady in the middle of the hole, but I don't have the strength and precision of a milling machine. When I turned on the router, the bit was not perfectly centered (obviously!), so the bit caught on one side of the hole. Because it wasn't up to speed, rather than cutting that material, it shoved the router to the side. The router bit then caught on that edge, shoving the router again, repeat. And because the router was speeding up very quickly, this became very violent before I could react. In a fraction of a second, the router jumped out of the hole, and its momentum caused it to twist towards my arm. Fortunately it didn't touch me, but that was pretty scary! It also ended up creating a large gouge in the piece, but it was all contained in the area I was cutting out anyways. So that was pretty stupid of me. Lesson learned, don't start up the router while the bit is touching stuff! Once I finished, I did a test fit with the fans, and it turned out great! I needed 4 more holes in the bottom of the desk to add some wiring grommets. This would allow me to connect stuff from the front shelf to the motherboard by routing underneath the desk. And I finally remembered that hole saws exist, so I used that instead of the router. My cheap hand drill struggled with this, but it eventually succeeded, and was a lot safer than the router. I also bought some of these cable management tracks that I was planning on sticking under the desk to prevent cables from dropping. They came with some double sided tape for mounting, which is actually really strong, it's basically permanent! However, I didn't want these to be permanently attached in case I needed to put the desk on the ground (such as during transit). So I've omitted them for now, I don't mind a bit of caple droop where I can't see it. One option is to attach them with screws, but I didn't get around to that. I was getting to the point where I needed to make cutouts for all the components, so I took apart my computer and did a test fit. Everything looked good! There was a few more things to do before I could start gluing all the pieces together: add cutouts for components with external connections. This included the motherboard, GPU, PSU, UPS, and front IO. For the front IO, I bought a panel that's designed to go into a 5 1/4" bay of a normal case. It has multiple USB ports, a couple SD card slots, plus a couple other connectors I've not heard of before. As you can see in the photo above, this went on the left side of the front shelf. I like symmetry, so I wanted something else on the right to match it. My old computer case had a CD drive in it, so I figured I could use that. Yeah, I know, CDs are outdated, no one uses them any more. But I already had it, and figured I could prevent more E-waste by reusing it. Plus I have actually found a use for it like every other year, so it's been useful! I made these cutouts with the router as well. Rather than doing it by hand, I clamped a makeshift fence to the part to guide the router along the top line. This worked really well, there was minimal cleanup to do along that edge afterwards. However it did make the corners rounded, whereas I needed them to be sharp. I just trimmed these down with a file, and eventually got a nice fit with both parts. I also added the power button on the left side. For the components along the back wall, I did pretty much the same thing by making cutouts with the router. The PSU is secured in place with screws on the rear, so I was careful to create these tabs for those screws. The UPS I bought is intended to sit on a desk, so it doesn't really have a way to mount it. But I wanted it in the desk. It has a taper to it, so it couldn't come out of the cutout. But you could push it further into the desk while plugging stuff into it, so I 3D printed these little brackets that screw into the bottom. These do a good job of preventing the UPS from going anywhere. The GPU was a little more complicated than the other parts. It's normally secured by the PCIE slot on the motherboard, and the side bracket. However I wanted it to be mounted separate from the motherboard, and instead connect with a PCIE riser cable. This required me to elevate the GPU to make space for the cable, so I put a couple wood blocks under it. This also meant the only way of securing the GPU was with the PCIE bracket. With the router, I carved out a thin cavity in the rear side panel in the same shape as the bracket. I then added a couple screws on either end of the bracket, which does a decent job of holding the GPU in place. It probably won't work well if the desk gets inverted, but I don't intend on doing that any time soon! And with that, I could finally start gluing everything together! Those holes for the wiring grommets actually proved to be quite useful, I could put my clamps through them to hold the inner pieces. Here's how it looked after all the glue dried: If you recall from before, I also wanted to include a handful of extra hard drives for storage. I ended up buying 4x2TB drives that I later configured as a RAID 0 array for 8TB of storage! In order to mount these securely, I constructed this bay that just screws into the bottom of the desk. Before I could begin painting, there was one more thing I needed to add. You see, I really like putting LEDs on stuff. It's not an addiction, I swear! I can stop anytime I want, I just don't want to stop! LTT put LEDs on their desk too, and I ended up copying how they did it. There's an extra strip of wood glued onto the top edge of the side pieces, and the LEDs are mounted on the bottom of these strips pointing downwards. This creates an even illumination along the inside surfaces, which looks awesome! This is the last strip being glued into place: That was the last piece to be glued, so it was now ready for painting! As any good painter will tell you, good paint jobs are all about the preparation. And my preparation actually began with a couple tests. If you research properties of MDF, you'll hear a lot of people saying that it soaks up water like a sponge and inflates when exposed to water. A lot of sources I saw recommended using sanding sealer to help with water protection, so I bought some. I was curious to test this out and see how significant the effect is, so I applied it to a test piece and compared it to paint versus nothing. I learned that it's really important to sand between the layers of sealer, otherwise it creates a very rough surface. I poured some water over the piece, and was happy to see no inflation. But I also so no inflation of the bare MDF. I grabbed a scrap piece and dunked it into a glass of water for a few minutes, and almost nothing happened. The thickness only increased by a few thousandths of an inch, I wouldn't exactly call that "inflating". Maybe it's a slow effect, or maybe I just have water resistant MDF, I don't know. Sounds to me like the sanding sealer is not really necessary, especially if the MDF is painted. But I had a whole container of it, so I decided to use it anyways, couldn't hurt. I first sanded down all the surfaces of the desk until they were nice and smooth. I then added a few layers of sanding sealer, being sure to sand between coats to prevent any rough texture. Once that dried, it was time to actually start putting paint on it! Using a roller, I added a couple coats until it was all even. This is another spot where I differed from the LTT desk. They painted theirs black in order to not make the LEDs overwhelmingly bright. I, on the other hand, don't believe LEDs can be too bright, so I made my desk white for maximum brightness! I was also planning on controlling the LEDs with a microcontroller, so I could program it to have reduced brightness if it was really needed. Once the paint was dry, I excitedly assembled everything and added the LEDs. It looked fantastic! However assembly wasn't as smooth as I'd hoped it would be. For the front IO and storage drives, I manufactured the parts with a slight friction fit. However I didn't account for the fact that paint has some thickness to it, which completely ruined the nice fit I had created. Rather than slight friction fits, they had turned into interference fits (the hole is smaller than the object going into it). For the front IO, this meant I had to hammer them into place, which unfortunately chipped off some paint on the left side. I couldn't hammer the hard drives into their bay, because that would most likely damage them. So I instead used a clamp to slowly push them into place. This wasn't exactly comfortable to do, but it was fine in the end. For some reason I decided to add the screws, even though they were absolutely not necessary! MonitorsIf you've been paying close attention, you'll notice that I had 2 monitors in the picture above, but my design actually included third monitor. That was intended to be the Odyssey G9, which Samsung had recently released. I really wanted to buy one, but I couldn't find them in stock anywhere. Supposedly there was a manufacturing defect in the early batches, and I suspect Samsung was working to fix that for while. But I eventually found it restocked with a big discount, and I instantly bought one. It was delivered a few days later, and holy moly is this monitor huge! This one monitor is bigger than both of my old monitors combined! I got it set up on my desk, it takes up quite a lot of space! Importantly, this monitor is not to replace my old monitors. Oh no, I can never have enough monitors! I bought a tall dual-arm monitor stand to hold my old monitors above the new one, here's the final setup with an example of how I utilize all the monitors while doing homework: Another feature I added was a script on my computer that updates the desktop wallpaper to a live satellite view of Earth. This runs every 10 minutes, and grabs the latest image from the GOES-East satellite. I made the code available on this GitHub page if you're interested in trying it out for yourself. Note that it's designed for my specific monitors, so it will require tweaking for a different arrangement. Component ListFor anyone curious what components I have in my system, here's the list of parts:
FansWhen I first started looking to buy fans, I hadn't realized just how expensive they can be! Some of the nicer quality ones, such as those from Corsair, can go up to $40 per fan! For my desk, that would have been at least a couple hundred dollars just to blow some hot air! I kept researching, and eventually found this 6-pack from a company called upHere for just $45! And they're not even bad, they actually push air pretty well with no annoying whining, and the LEDs are diffused nicely. They don't light up the fan blades like their product images show, it's mostly just the hub, but I still think it looks cool. And they come with a connector hub so it's easy to connect to the motherboard. All the fans are at the front, meaning they're prone to people sticking their fingers into them. So I wanted to add some mesh over the front of them for finger safety, as well as dust filtering. I ordered a pack of 120mm dust filters, but I wasn't really happy with them. They blocked a lot of airflow, and made the lights on the fans appear very dim. So I started looking into alternatives. My next idea was to use screen door mesh. I ordered some material and cut it out to size. This was much better for airflow and light, but the mesh was very flimsy because I couldn't tension it properly. So I kept trying alternatives. The next idea that came to mind was to 3D print a mesh! Then I could customize the spacing and thickness to get something I was happy with. After a couple tests, I got something that worked well for all my requirements. It's modelled as a solid rectangle with holes in the corners, then I changed my slicer settings to create the mesh pattern. I reduced the number of top and bottom layers to 0, set the number of perimeters to 1, and used a rectilinear infill with 30% density. The total thickness is 0.8mm, printed at 0.2mm layer height in PLA. It's really important to have minimal squish on the first layer, otherwise it blocks light and airflow. So I raised my nozzle a bit, which unfortunately resulted in a few strands of the first layer not sticking well, causing them to get pulled sideways by the second layer. Though this is only a visual flaw, they still work just as well! And here's my comparison between each of the different meshes I tested out, along with their results for my requirement categories. I was happy with the 3D printed one, so I stuck with that. These have also proved to be fairly effective as dust filters. Over a few months, the front shelf accumulates an obvious layer of dust and hair, but there's almost none inside the desk. The meshes end up with a layer of dust that can be cleaned off, but not super easily. Removing them requires unscrewing the fans, which is more of a pain than it's worth. So I just scrape what I can off the front, which does leave some dust trapped in the mesh, but it gets most of it. Here's a comparison between a dusty mesh (right) and clean mesh (left): As I said, the fans came with a hub to easily connect them to the motherboard, but I wasn't really happy with it. It took up a lot of space, and the pre-programmed animations weren't what I wanted. And my motherboard doesn't have an ARGB header, so I couldn't customize it easily. So instead, I used a microcontroller! These fans are actually really easy to control. There are 2 connectors, one for controlling the fan, the other for the LEDs. Let's start with the fan connectors, since that's a bit simpler. This is what the connector looks like, and the function of each pin (source): The ground and 12V pins just provide power to the fans. The pulse width modulation (PWM) pin is used to control the speed of the fan. If you're not familiar with PWM, the basic idea is to create a voltage that rapidly jumps between 0V and 5V, usually at least 20 thousand times per second. The more time spent at 5V than 0V, the faster the fan spins. If it's constantly at 5V, the fan spins at max speed (around 1700RPM). If it's constantly at 0V, the fan stops. The tachometer pin indicates the current speed of the fan, which is the result of a hall effect sensor on the fan hub. The rotating part of the fan has a couple magnets that pass over the hall sensor, which measures the magnetic field created by them. When the magnet polarity changes, the hall sensor changes its output voltage. This is a digital sensor, so the signal jumps between 0V and 5V as well. The faster these pulses occur, the faster the fan is spinning. The LEDs are a little more interesting in my opinion. Something important to note is the difference between normal RGB and ARGB (addressable RGB) LEDs. Normal RGB devices use a 4-wire connector, and all the LEDs are the same color. ARGB devices use a 3-wire connector that looks almost identical to the 4-wire connector, and allows each LED to be different colors. These are what the LED connectors looks like, and the function of each pin (source): The fact that these 2 different types of LEDs use the same connector boggles my mind, these should absolutely be different from each other. Connecting an ARGB device into a normal RGB header can kill the LEDs. And this connector is also really easy to plug in backwards, which may not cause damage, but can waste your time as you figure out what the problem is. Ok, let's put my gripes about this connector aside and talk about the LEDs! It appears to me that most ARGB devices use the WS2812B for the actual LEDs. I'm not certain about they, but they use the same communication protocol, so I can only assume they are. These LEDs are very popular among maker communities, so they're very well documented and easy to use. The 5V and ground pins provide power to all the LEDs, then the data pin goes just to the first LED. The data signal looks a lot like a PWM signal, where a short duration pulse indicates a binary 0, and a long duration pulse indicates a binary 1. If we take a look at the WS2812B datasheet, this is what those pulses look like: Each LED uses 8 bits for each color (red, green, and blue), or a total of 24 bits of color data. Once the first LED receives its 24 color bits, it passes the rest of the data onto the second LED. Once that gets its 24 bits, it passes the rest of the data to the next LED, and so on. This data is sent very quickly, 800 thousand bits per second! Each fan has 8 LEDs, so all the data can be sent in just 240 microseconds! After sending no data for the reset period of another 50 microseconds, the LEDs are ready to be updated again. My first implementation used an Arduino to control the fans, making use of the FastLED library (it's very popular for these kinds of projects). My code just set the LEDs to a rainbow pattern, which worked perfectly. As I was playing with it, I set the brightness really low on the LEDs. They change their brightness by just flashing really quickly, which normally isn't visible. However because the fan was spinning, this meant the blades were illuminated very briefly at some point in their rotation. The fan speed happened to be close to a multiple of of the LED flashing rate, so this caused a strobing effect on the fan blades. This gave me an idea! What if I were to intentionally turn the LEDs on and off at just the right time so the fan blades were always illuminated at the same location? After a couple hours of writing and debugging my code, I got it to work! In this photo, the fan on the right is stationary, and the fan on the left is actually spinning! The brief pulses of light just make it appear to be stationary, but it's actively pushing air through it! Here's a brief explanation of how the code works: The tachometer is used to measure the fan speed. The sensor pulse durations have to be averaged, because they tended to fluctuate a bit, but the true fan speed was very steady. Once the fan speed was measured, the LEDs get turned on very briefly, then off again. It then waits for the fan to rotate 1/9th of a revolution, because there are 9 fan blades, then briefly turns the LEDs on again. The fan speed is measured constantly, so even if the fan speed changes, the blades appear to remain in the same location. Because I'm averaging the tachometer pulse durations, this causes a fun effect when the fan speed changes. If the fan speeds up, the blades appear to slowly catch up due to the strobing rate being too slow. If the fan slows down, the opposite effect happens. I was mesmerized by this effect, it worked so well! The only downside is that it's fairly dim, because the LEDs are only turned on very briefly. For this reason, I've not implemented it into the final code since it's too dark to see, but it's still super cool anyways! ResultsThe final implementation looks very similar to my initial designs, so I'm very happy with that! And my love for LEDs is very well satisfied, I could stare at my desk all day long. On top of that, the amount of monitor real estate I have is fantastic for the stuff I do, it's hard for me to use any computer with fewer monitors. I'm super happy with how this all turned out! Another benefit of the glass top with white paint is that I can use my desk as a whiteboard! I really like having whiteboards for making quick sketches or writing equations, it's great for doing homework! One other feature I considered adding is "smart glass" to the glass top. If you've ever seen one of those fancy conference rooms with windows that turn opaque for privacy, that's what it is. I thought this would be fantastic as a whiteboard surface that can be toggle on/off!
More accurately, it's called PDLC glass, or polymer dispersed liquid crystals. The idea is exactly the same as any other liquid crystal display, except it's one big cell rather than many small pixels, and there's no backlight other than whatever is behind the glass. Under normal conditions, the liquid crystals are randomly ordered, causing light to be reflected in all directions. But when a voltage is applied across it, all the crystals align with each other, allowing light to pass through. There are other ways of creating smart glass, but this seems to be the most common. You can order these as films that are applied to a glass surface, there's a number of companies that sell it. However that's when I learned just how expensive this stuff is. If I wanted to cover my whole top surface, it probably would have cost around $1k. On top of that, they require high voltage to operate, which I didn't really want to deal with. So I've not included it, but if I ever build a second version of this desk, I'll certainly consider it again! And that's all I have on my desk! I've been using it for over a year, and I'm very happy with it! It's always been a joy to use, especially with all the unicorn vomit, that makes me way happier than it should! I've not had any major issues with it, except for a few small gripes here and there. I've considered building another one in the future to address those issues, but that won't be for a while longer. I'll keep using this one for the foreseeable future!
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
May 2022
Categories |
RSS Feed