So, I got the urge to build something again. As I looked around my room, I noticed the five Linksys WRT54GL routers I had bought from Amazon.com when they were on sale. Of course I immediately thought, “I wonder if that would fit nicely in a Lego case?”. So I opened one up and measured the circuit board. It looked like it would be a good fit, so I decided to go ahead and design a case for it. This is the result.
My goal was to recreate, as much as possible, the stackable design of the original WRT54GL case while maintaining full functionality of the router (buttons, LEDs, ports). I also wanted to keep some air flowing through the case to avoid overheating the board.
The first step was to take detailed measurements of the WRT54GL PCB. It turns out that the board is exactly 160mm x 144mm, which means that it fits perfectly within the dimensions of Lego bricks (which are multiples of 8mm).
Over the course of the next two days, I drew the design using MLCAD. I kept with the style of my previous Lego computer: a sleek exterior, smooth top, and subtle air vents.
The design I finally decided on has two air vents (one on each side), a row of clear bricks for the LEDs to shine though, a hole for the front button, and an opening for the ports in the back. The PCB is secure in the case, so there is no trouble with it moving around when you connect/disconnect cables.
After I was happy with the design, I exported it to BrickLink to find a seller who had all the parts I needed. My order came to about $50, but I added some extra “just-in-case” parts which bumped the total to $60. (Twenty dollars more than I paid for the router itself!)
The PCB for the WRT54GL is an “L” shape, which presented an interesting challenge. The small side of the “L” is just shy of 61mm, which is 3mm short of being a multiple of 8mm. Initially, I thought I would have to leave a big gap, or just design a square inset.
However, Lego plates are 3.2mm tall. I took advantage of this by using hinge pieces to rotate the orientation of the bricks by 90 degrees, and using a flat tile as a spacer. This brought the width of the inset to be exactly the size of the PCB by filling in that extra 3mm.
I also learned from my previous mistake, and lined the top of the case primarily with flat tiles. The top is secured by only four small plates, one in each corner, which makes it much easier to remove without having to dismantle the whole thing.
Aside from assuring the board fit snugly in the case, I also took into account ventilation. The back and two sides of the case are open, allowing air to flow through. Additionally, the top to the case is thin to reduce the potential insulating effects of the Lego bricks.
Lego bricks are actually manufactured to be slightly smaller than 8mm to allow them to sit nicely against each other when connected. I took advantage of this fact by making a large section of the top only one tile thick, which leaves gaps through which hot air can escape from the case.
The lid also makes the case stackable with itself, although, unfortunately not with the original WRT54GL. Left to right, and width-wise, the feet of the original case fit great, but they are not spaced a multiple of 8mm from front to back, so they could not line up with my design. I can pretend though :)
First, the top pieces were not high enough to go over the antenna connectors. Somehow I measured wrong and omitted one layer of plates. Luckily, I bought enough extras to fix the mistake.
After I resolved that, the antennas wouldn’t screw on because they were too big to reach the connectors. As it turns out, the wide plastic piece at the base of the stock antennas is removable! Popping it off exposes the TNC connector (in the same style as the high-gain HGA7T antennas) and allows the antennas to attach without issue.
Ultimately, I am very pleased with how this project turned out and I hope you enjoyed reading about it. If you’d like to try making a case for your own WRT54GL, I’ve packaged all of the design documents and images and released them under the by-nc-sa Creative Commons license. You can choose the small download (155 KB), which contains only the documents and part lists, or the full download (5.5 MB), which contains all of the assembly images as well. Check out the included README.html for details.
Oh, and here is the obligatory time lapse video…
Thanks for reading!