Projects

Mac SE Restoration

Years ago someone gave me a Macintosh SE, 20MB SCSI HDD, with 1MB of RAM. I had it sitting in storage and decided it could use some new life; this involved what I found out to be repairing, upgrading, and getting parts for the little machine. Then I was able to come up with a modern way to transfer files to it, so I can get software off the web, then get it onto the system without too much hassle, but that is getting ahead of myself.

Cleaning/Repairs

Last time I used the machine I remember it working, but then when I went to turn it on the system gave a sad mac with an error. In looking it up, http://www.midiguy.com/MGuy/MacQs/SadMac.html#anchorSE&II, I was told it was a RAM error. Power cycling the machine would periodically change the error, and once in a while get the machine to power up.

Getting the case off needs a special long screw driver, which I happen to have. The back only has 4 screws and then lifts off. Any repairs to these systems have to be done with a lot of care since there is a high voltage CRT. Very carefully I removed the cables from the motherboard, and then removed the motherboard itself.

After I removed the case and looked at the RAM, it was fairly oxidized. I happened to have a can of deoxite, I removed and cleaned all the ram and then the DIMMs. After, what I will say was jankily setting up the motherboard, it booted the first time. I did notice one of the legs on the the little slots didnt look at good as the rest, but it seems to work fine now.

Luckily for me the 20MB, 3.5″ SCSI drive still works fine. I ran diagnostics on it and them came back clean. I wanted to be able to download files from a more modern system by I will do a different post about that.

There were 2 more upgrades I wanted for this machine; first the original 1987 PRAM battery was still on the board. Fortunately it had not leaked at all, but I still want to remove it. I purchased a new 1/2AA, 3.6V battery holder and thought I could use the expansion slot in the back to hold it. I am not using the slot, and that way when the system goes into storage I can pop the battery out easily. I had recently gotten a new 3D printer (Ender v3 Pro), and made a mounting bracket. It needed to be mounted on the inside of the bracket because of the high of the battery holder, but it works well!

The last upgrade I wanted was some sort of mass storage. (Mass storage being anything over a floppy with a few MB) I do have a second Macintosh, I think its a Classic but I need to go get it. Someone gave me a Zip 100MB external SCSI drive, but to get that working you need at least Mac OS 6, with the driver installed. The Mac also only has a 800KB floppy drive, making it hard to transfer files to. I have a USB floppy drive, but these newer USB drives are fairly locked to 1.44MB floppies, as well as I couldnt easily read the file format for it.

Enter the SCSI2SD (v5.5 Pocket Edition)! I got it on ebay from https://www.ebay.com/itm/SCSI2SD-V5-5-Pocket-Edition/193496539667, I don’t know the seller, but the item is great. It allows you to write a disk image you make with Mini vMac or Basilisk II onto a micro SD card, then boot the Macintosh from it! Boom solid state drive for your Macintosh. This also allows you to kickstart the process of getting an OS and software you need to hook the Macintosh up to something more modern. There are different models of these SCSI2SD adapters and different versions. Apparently v6 is faster for some systems version of SCSI. My main feature I wanted was a DB-25 connector directly on it, since a lot of these adapters come with an internal header, and I wanted this to be able to go between Macs.

In researching I found this blog, https://www.savagetaylor.com/2018/01/05/setting-up-your-vintage-classic-68k-macintosh-using-a-scsi2sd-adapter/ it has a great guide on how to setup the device and even images to get you going! (I backed up a lot of the files related to the adapter on archive.org if years later anyone needs them) I’ll skip over that since that blog covers it so well. The device allows multiple SCSI device emulation. Note, if you have a Macintosh like mine that has an internal HDD, that is SCSI ID 0, so make your device 1 or later. When booting the Macintosh you can hold Command-Option-Shift-Delete-# to boot to that device. With this setup I was able to transfer an OS install onto the ZIP disk (at 100MB plenty of space), and update the internal system.

I installed Mac OS 6.0.8, later editions need more than 1MB of RAM. For anyone with a similar system I would suggest running in Finder mode, and not Multifinder. Multifinder kept running low on RAM when trying to run applications. At this point the system is up and running, reliably, and I was able to put some games on it. I will have another article about using our old reliable Kermit to transfer files to the Mac!

Email Alerts on Different Platforms

Different network gear I have has had many problems trying to get email alerts working. I thought I would document them. All of these systems use a service gmail address I made on free/public gmail to send alerts to me.

Sophos, and LibreNMS gave me no problems; if you have issues with them drop a comment below and I can post my settings.

Ruckus AP

The trick to getting Ruckus Unleashed, I used “smtp.gmail.com” and port 587. The issue I ran into is the service email I use to send emails had a long password. Ruckus Unleashed v200.8 supports a maximum of 32 character passwords. I would also mention it dumps the password raw into the logs, so make an account you dont care much about.

Unifi Controller

After digging through logs and getting lots of “There was an error sending the test email to x@gmail.com. Failed to send email for unknown reasons.”, I found one post that mentioned a fix for the console log of “fail to send email: api.err.SmtpSendFailed”. You need to once again use smtp.gmail.com, and port 587, but since its TLS, you need to counter intuitively UNCHECK “Enable SSL”.

Altair 8800 Kit

This post will be a bit more brief than some of the others, I was relaxing around Thanksgiving and put this together. Only afterwards did I realized that I was having such a good time, that hadn’t taken too many photos.

The kit comes from Chris over at https://www.adwaterandstir.com/altair/. The version I have is The Altair-Duino v1.4, which came in a bamboo box. There are now other versions, some with acrylic cases! This post will be about version 1.4.

The Kit

The kit comes with all the parts you need inside the box. The main controller is an Arduino, hence the name The Altair-Duino. There is an SD card that you bend the prongs on (more on that later) which holds the disk images. This is a fun straight forward kit, that comes with everything you need minus solder. The Arduino came with the firmware it needed, and the SD card came with disk images preloaded onto it.

Assembly

The kit comes with a spiral notebook of instructions on how to put it together. These are great, color photos of step by step what to do. You can see them here, https://www.adwaterandstir.com/instructions-14/ , keep in mind this is for my specific version. Like many of the other kits, the longest part of this kit is soldering all the LEDs and resistors onto the board. There are a few ribbon cables that go into place, and you are set. Be slightly careful when putting the switches in, they can be a tighter fit into the holes which is great for stability, but they are at the center of the board and it can flex. Once you get it all in the case and screwed down, clearance is a bit low, so make sure the board is ready to go in, when you put it in.

The one part of the setup that is a bit scary, the system comes with a SD card reader that sits flush with the board; if you want it to be accessible from the back of the case you need to bend the 4 legs on it. I used my trusty Radioshack wire stripper/pliers for that!

Software

I connected over USB, the kit also supports Bluetooth on Windows, to get the serial line out and console in. The system supports loading a bunch of programs that are included. The creators website, https://www.adwaterandstir.com/operation/ includes a bunch of guides on things to do. I loaded up CP/M and for fun, of course Zork!

A easy kit to put together, and a fun little project. I now am amassing a wall of these projects, and will have to get a new shelf for this one. Then I will just wonder where Chris found 256mb micro SD cards!

Windows Server DNSSEC Error 9110

TL;DR; Check that your Domain Controllers are in the correct OU and that Microsoft Key Distribution Service is running

I ran into an issue recently when DNSSEC signing a dns zone where Windows Server 2019 gave a very vague error, and would only display that error after 10 minutes of timeout. This made iterating on it very slow since every change I made was a 10 minute wait. Every guide to setup DNSSEC mentioned right clicking the zone, then clicking sign and as long as you select the default it should just work. On another domain, that happened for me and it just worked; except the one original one that kept timing out.

In setting a custom DNSSEC signing policy I noticed that there were different keystores each of which gave a different error. This made me think it was something to do with the specific one I was using. It was time to troubleshoot the service itself not DNSSEC.

I got a list of the services from a known good, and signing, domain controller; then compared that to the bad one to see what was different. Part way down the list I noticed that Microsoft Key Distribution Service was failing to start, and if I tried to start it, there was an error.

Group Key Distribution Service cannot connect to the domain controller on local host Status 0x80070020.

Checking the Event Log showed an issue in finding the Domain Controllers on the network (error above), which was weird because it is a Domain Controller… In looking at where this system was placed in the domain tree, I saw it had been moved from the original OU for domain controllers to another place. I dragged it back, after applying all the GPOs that were on that other folder to the original Domain Controller folder. Then held my breath, hit start on the Key Distribution Service and it started right away.

After that DNSSEC signed with no issues. Long story short, dont move your DCs it’ll only end in pain. And to the one other person on the internet who has seen this problem and never solved it, 5+ years ago https://www.reddit.com/r/sysadmin/comments/3dedwm/dnssec_will_not_sign/ there is your answer!

How to use AD users as Admins on Sophos XG v18

As I will be speaking about more on this site soon, I use Sophos XG Home for my homelab (just upgraded to v18). I was attempting to have specific a OU in AD to be able to login and administer the firewall but kept hitting issues. That’s when I found this one support thread, https://community.sophos.com/products/xg-firewall/f/authentication/10879/add-domain-user-account-as-administrator and thought it was worth amplifying.

Setting up AD auth in the product is straight forward, set your domain search as wide as you are comfortable with, because next you import groups that are under that search. Next, make sure to hit the little icon that imports all the AD groups you want, it is easy to overlook.

Import groups button

Now go to the Services tab, and include your new AD servers in your group for Admin Authentication methods. The guides say to make AD first, and in testing I just put one of the servers above local; but this shouldn’t matter too much, local auth still works.

Admin Authentication Methods

Now here is the trick that got me. TO HAVE THE USER SHOW UP IN THE USER AREA OF AUTHENTICATION, YOU MUST HAVE THEM LOGIN TO THE USER PORTAL FIRST. Thus the User Portal needs to also be setup to allow AD auth. After that, the user will appear like below, and you can click in to edit them.

User admin panel

Clicking into the user you can make them an Admin, and set their group. You have to provide a email at this point for the user. BEWARE, MAKING THE USER AN ADMIN IS NOT REVERSIBLE! IF YOU WANT TO MAKE THEM A NORMAL ACCOUNT AGAIN YOU NEED TO DELETE THE USER, AND IF THIS USER IS USED IN ANY FIREWALL RULE OR SETTINGS THIS WILL BE BLOCKED UNTIL THEY ARE REMOVED FROM ALL OF THEM. One fix for this is to make them part of a Admin group that has no rights to anything, but that doesn’t feel like the proper way.

User panel making a user an admin
Error if you try to delete a user tied to policies

Then you should be good to go!

Troubleshooting

Some troubleshooting techniques I used while fixing this: if you don’t have the user imported into Sophos XG, and attempt to login to the Admin panel, you will get “Wrong username/password” and looking at the logs in Sophos you will see “Wrong credentials entered for x@domain”. This is not exactly true and can throw you off. If you login to AD and look at your servers Security logs, it says “User login successful”. That is a good indicator that at least your login is working correctly, don’t get fooled by AD saying success, while Sophos says wrong; the user just needs to login to the User panel first to link the accounts.

Homelab: Ubiquiti Mesh Link

In my apartment I needed to get wired networking with VLANs across the apartment. I didn’t want to run a wire since I thought my roommate would not appreciate that. I wanted to have a switch near my desk, that allowed different devices I have like file server, desktop, and a few other things to have a wired link; then, connect to the modem/firewall and rest of the networking gear across the apartment.

Long story short, I ended up using a trick I didn’t know would work till I tried it. I have 2 x UAP-AC-M, they work decently well, topping out at 867Mbps and 2×2 MIMO; as well as being able to get them on sale in a 2 pack for a decent price made them a great deal. I have run 1 of them for 4 years as my main access point. Then when I wanted to get this wire connection in a new room configuration I tried to do a wireless uplink to the second one. This makes it mesh with the first access point. Now the important item I don’t seem written anywhere but works well (caveats below):

Ubiquiti access points in wireless uplink/mesh will bridge that network to the wired port on the device

This means if you have a trunk port going into your original/base mesh AP, you will have the same trunk port coming out the other end. This also means anyone who is running mesh points, and hasn’t secured the wired port may want to think about doing so. I am will skip over HOW to set this up, Ubiquiti has a good guide https://help.ui.com/hc/en-us/articles/115002262328 to walk you through it, and most APs can do wireless uplink at this point; this is more about saying it can be done, and works well from my experience to anyone thinking about implementing this or wants a solution for their home/apartment that is not powerline networking. The APs I have are 2×2 802.11AC, I’m sure with a 4×4 AP like the AC-Pro as your base you may see better performance on higher trafficked lines.

This setup has worked well for me for over 6 months now, I can easily hit the 300Mbps I get from my internet connection on a desktop plugged into this meshed AP’s port; I also get 6ms pings to servers while playing games. You get the benefit of real commercial grade antennas and radios in the APs you are using instead of a tiny wifi chip in a laptop, desktop, or device. This also lowers the number of wireless devices (since all the wired devices would have been wireless instead). I also disabled the secondary AP from hosting any of the SSIDs I have in the apartment, so it just works as a wireless uplink. My apartment is not big enough for 2 AP’s for devices.

Caveats

I am looking to move away from this setup for a few reasons. It has worked well and if you are in a pinch I would recommend this setup much more than powerline networking which I have also tried and used several times. I am hoping to move to 10gb/s networking at home with my growing homelab setup; thus, no more wireless link. The other limitation that 99% of people probably would not care about is that you can not do jumbo packets over wireless, so that means it can not be done from all I have read over a wireless link of this type.

Network Topology

The first caveat is that this configuration slightly confuses the access point when it first starts up. The first 60 seconds or so when the access point is online it will think the wired connection is its uplink and attempt to ping out over it. After that it realizes it cant hit anything and will go to wireless uplinking. Sometimes everything just works then, sometimes I have had my switch be confused about where traffic should go and had to power cycle it; in this case it was just a Netgear Prosafe switch with VLANs, not especially smart, but not the dumbest switch. This is similar to a enterprise networks re-converge time when a link is downed. Overall it is rarely a problem and these APs are solid and can go months between restarts, but this is something to lookout for.

Remember that if a Ubiquiti AP cant get an IP, then it doesn’t broadcast SSIDs; this is important since if the base AP boots (like after a power outage) and doesn’t get a DHCP address quick enough, it wont broadcast, then the mesh side will never find an uplink to connect to.

Management

With the earlier mentioned topology issues you can run into, that can make management difficult. You need to make sure the base side of the network is stable. You can get into a position where you did a bad config push or a setting is wrong on the secondary/mesh side and the only way to fix the config is bringing that AP back to the original wired network and pushing a config to it, before the secondary AP can go back into wireless uplink mode.

US Patent US10530642B1

One of the projects I currently work on at work, and have for the last few years is how to go from a blank stack of servers to a fully configured cluster with my companies software running on it. While some projects were starting and getting going in the open source field when I started this project 5+ years ago, a lot of them kept rewriting their API every minor version rev. That started my down a path that has now become a decently large internal network booting infrastructure, and managing interconnects to our inventory system as well as other systems such as Tenable Nessus. I recently was awarded my first patent! This one is specifically about how my system interacts with the inventory to dynamically assign systems as they come online to clusters.

https://patents.google.com/patent/US10530642B1/en?oq=US10530642

My part of the code was all written in Java and continues to evolve as a platform, I hope to open source a good amount of it down the road. I started the project by reading the RFCs for DHCP/PXE and then writing code. I have grown to enjoy writing libraries and some project this way of adhering to the standard (more on that some other time). The general platform can handle ProxyDHCP PXE booting, and then uses iPXE to create menus and boot systems. I spent many hours debugging different vendors PXE code and BIOS vs UEFI to get all the systems to work. The platform now supports plugins for many different aspects of server configuration.

I could write page about small details I have learned a long the way; one issue that has been driving me crazy recently, if you want to ProxyDHCP instead of using your main DHCP stacks these days is Secure Boot. iPXE does not have a Secure Boot signed image, I have tried to get Microsoft to sign it but they will not unless you are selling a product using that the sign iPXE. I am not I just wanted it for internal use. That means you may want to use grub2 as your loader, but there is a bug that has been outstanding for over 6 years and makes ProxyDHCP with grub basically impossible, https://savannah.gnu.org/bugs/?55636 which is sad.

Dell Inspiron 3050 Ram Upgrade

This is a short post about a Dell Inspiron 3050 I upgraded a little bit ago. This is a tiny pc, similar to an Intel NUC. Its a Intel Celeron, and came with a 32GB SSD. I got it for around $150, with an Office 365 subscription; thus it was worth it to me. It came with 2GB of ram, and a 32GB SSD, these days those are not expensive to swap; I wanted to swap the components for 8GB of ram and a 512GB SSD. Below is a short guide with some photos of opening this thing up.

First we needed to remove the case, this involves flipping it over, and taking the 4 screws out that are in the little feet.

Inspiron Bottom

That gives you access to the RAM DIMM. Easy to swap if you want to do just that. Now there are 4 screws at the outer corners, those come out then the board can fold out keeping the antenna and other cables connected. Flipping that over and putting on the table shows the CMOS battery, as well as the SSD.

Underside of board

After replacing the SSD its just a matter of flipping the board back onto the posts, and screwing it all back together. Fairly easy to do, but I couldn’t find a ton of photos online so I thought I would put some up. I ended up installed Hyper-V 2019 on it, the box is fairly slow with its Celeron dual core J1800 processor; but can run a Linux VM or two. Plus its a cute little computer that uses very little power.

One last note about putting it back together, there are little metal spokes that stick out from the top metal mount, those need to line up with the motherboard the system wont go back together correctly.

Little metal spokes

Building a PDP-11 Kit (PiDP-11)

A few years ago I put together a kit from Oscar from http://obsolescence.wixsite.com/obsolescence. It started with soldering, went through setting up a Raspberry Pi image to emulate a PDP-8, and ended with a functioning simulated PDP-8 with working front panel! I was having some issues with one of the integrated circuits; but Oscar, being a great guy, sent me another one and I was able to prove to myself I wasn’t crazy and everything worked. Enjoying the project a lot, I was excited to see he has started production of a PDP-11 kit, this time with a nice plastic injection molded case, and compared to my rev 1 PiDP-8, nicer switches. So I had to order one.

I was able to get the kit working within a few hours of starting, I think part of this is Oscar has gotten better at making these kits; with having the board illustrate where parts go, and having a clean layout, it was fairly easy to put together and solder up. Also my poor soldering skills may have gotten a bit sharper.

While I was at it, I thought I would get my brother a kit so he could get into soldering, which he hasn’t done much of. In going through the instructions I found them a bit light for a novice. To remedy this, I took a bunch of photos during the process and will post them below. The official instructions have more details so I intend just to be additive to those with additional hints, details, and photos.

To start, 30 diodes must be soldered to the board, followed by a few resistors. The tan ones are the 1K ones and go in between some diodes on the bottom row, these spots are labeled “1K”. The 390 ohm resistors go in their labeled spot in the middle of the board. These are put through the board, soldered in, then their legs are cut. Polarity doesn’t matter for these.

Now the GPIO connector for the Raspberry Pi can be soldered in THE BACK of the board, making sure its flat. Followed by the chip socket that goes on the front, in the middle-ish near the rotary encoders. Don’t solder this in with the integrated circuit in it. Note my board is a newer one with some expansion options that Oscars site doesn’t show, make sure to use the correct chip socket location.

Later photo with chip socket and chip installed

This step is the longest and a bit tedious, you need to get 64 LEDs, each with a little riser, and stick it into the board with the correct polarity. That is long leg matching the icon to on the board, for me it was to the left.

Soldered LEDs with board indicator

Now there is a piece of board that comes with the kit, that can sit over all the LEDs to line them up, and once they are all in straight and aligned, they can be soldered in. I would recommend not snipping the legs off until you have tested and are sure they all work. The last soldering steps are to solder the rotary encoders in. After that put the integrated circuit in the socket, and test it out!

Oscar has a bunch on how to test the board so I will leave that to him. One note I will add, my Raspberry Pi had to be a good amount in the socket before it would work well, but this led to the RJ45 port hitting some of the LED contacts and shorting a row. I found getting the anti-static bag the Pi came in, and placing it between the top side of the Pi and the board solved all these problems.

Jumping ahead, I want to mention putting the switches in since this is the one other part of the kit that is a bit confusing and may give people issues. Using the switch lining up tool, that is included with the kit, I found the easiest way to hold everything in place and solder was suggested by Neil over at the PiDP-11 Google group, https://groups.google.com/forum/#!topic/pidp-11/E-RMRVQ15NQ%5B1-25%5D

Neil’s way to hold switches in place

Using this technique, I was able to solder the switches in easily and without difficulty. Follow what the tool says and you should be good. Make sure you are in a well lit room, since in the dark the red and purple can be a bit hard to distinguish.

Using this technique, I was able to solder the switches in easily and without difficulty. Follow what the tool says and you should be good. Make sure you are in a well lit room, since in the dark the red and purple can be a bit hard to distinguish.

Finishing up, consists of more testing with the Pi installed; then going and screwing it all into the case. Be careful, these don’t need to be screwed in very tightly and you can fairly easily crack the acrylic (this I have learned from other projects in the past).

This was a fun kit, and I hope Oscar keeps making more of them. If you have any issues head on over to the PiDP-11 Google Group, and if my guide helped out out, please let me know in a comment below. 🙂

Building a Classic Mac Inspired PC Case

Over the last few months I decided my aging 2012 i5 wasn’t enough to play the latest games. The biggest deciding factor was in I playing Battlefield 1, all 4 cores it had went to 100% and stayed there until the game was over. Not being a stranger to building PCs I quickly put together a a build I wanted involving a AMD Ryzen 2600X, kept my NVIDIA GTX 970, and got the other RAM (16GB for now) and SSD (Samsung 970 Evo 512GB) pieces I needed. Then I had the idea that this time I should not just buy a PC case, but do something interesting. My first thought was to get a Classic Mac that was broken and then put my PC inside that case. I got a classic Mac, and then quickly was able to get it working again…

mac_classic

At this point I had also done some math, and my 11″ long GTX 970 would not fit anyway into that case. And at this point the decision to make an Mac-Inspired case was made. I designed a case, a bit larger than the original by an inch or so in Illustrator, then went and laser cut it. I ended up giving myself another inch, so that I could get a Mini-ATX motherboard over a Mini-ITX one. This gave me 4 DIMMs for ram over 2, and an extra PCI slot for the future. Note: some of the final designs on Github don’t perfectly line up, or have holes that are not positioned right; mostly this is only for the lid, but since it is held in by gravity I did not do extensive work to fix the issue.

To go back to the start, I liked the little screen on the front of the original Macs, my thought was if I had a tiny PC like a Raspberry Pi running the screen, I could have it show information about the computer. And then via a relay turn the main PC on and off. I also figured this PC could be used to play music/videos, and have a KVM that would switch over to the main computer, then back again. That idea was going until I got everything in the case and realized it was very tight. At this point I also just wanted the machine to work so I could play games, so the second computer and KVM idea was scrapped.

The front screen is a touch screen, as well as a secondary screen to the main monitor. At 1080P I can put Spotify on it and have touch screen controls, or play movies. I tend to leave a GPU and Task manager on it while playing games to see how much I am using the system. I have had these Eyoyo brand screens at work before, they are cute, fairly inexpensive (~$90) little screens that offer a lot of inputs (HDMI, VGA, Composite, BNC); their main draw back is the LED on the front is brighter than the Sun.

General Construction:

The main method of construction for the case is “Interlocking T Bolts”, as described in https://www.instructables.com/id/How-to-Make-Anything-Using-Acrylic-and-Machine-Sc/ . This allows 90 degree acrylic pieces to snap together and hold together tightly. The primary design has the two sides doing the main support and sitting on the table, with a few layers internally. This has the added benefit of not having the motherboard sit on the ground. I left a good amount of room over the motherboard for airflow, then have 2 fans out the back, and 2 out the top. The main air comes in the front, and then goes over the GPU and motherboard to go out the back and top. The motherboard I got only had 1 fan plug on it, so I used a fan multiplier.

20180718_183746638_iOS
Empty early case

The bottom has an area for the motherboard to go in via a tray. The second layer of the case has a screen mount in front, then the PSU sits flush with the back. A hole brings the power cables down to the motherboard from the second level. On the third layer, the graphics card exhaust, and ports go to the front screen and the two back hookups, and I put the fan distributor. I needed to be careful with wire management at this point since there are a lot of cables up top, and the fans up top as well.

The hardest part was getting the graphics card to stay. Its held in place by a bracket, and then I used a piece that I am usually opposed to, a PCI Express Extension cable. So far, after a few months of use, it has worked perfectly.

The side walls hold the whole case together, I found putting a lot of the middle pieces into one wall, securing them, then laying that wall on its side lets you easily add the other wall to the top. Note, I do this without any components in, once they are in taking the case apart is much more difficult. The front grill has to go in when the middle pieces do, since it is also secured on both sides and can’t slide in and out. The top, back, and front pop on after the middle pieces are secured. Its a good idea to keep the side screws loose till the front and back are in since sometimes you need a little wiggle room. These last pieces don’t need to go in till the last second though, since they give access to the motherboard, and screen.

The power button ended up being an arcade button I had laying around from another project. I did put a USB 3.0 port out the front, where the original Mac had a keyboard port.

Materials:

Most of the things in this list are self explanatory. RAM with LEDs is silly, but then it was a few dollars more and looked cool so I got that, I obviously had to get it. The air conditioner foam I put on the inside of the front grill where most of the air comes in to filter the air for dust. I found nice 80mm fan grills online, they work so I have something to screw the fan into, as well as keeping dust/fingers out of the fans. I got HDMI and DisplayPort extender cables to go from the graphics card to ports in the back of the case.

20180731_174607167_iOS
Front of case with PSU in back

The motherboard stand offs are a must. The motherboard tray has larger holes than the standoffs by a good amount. To hold the standoffs into the motherboard tray, I screwed the standoffs on the motherboard, then put the ends of them onto the tray while the motherboard was upside down. Doing this, I was able to put super glue in the holes of the tray and stand offs to hold it in place. This isn’t the best, but I was having issues of getting exact Mini ATX dimensions and this worked for me. Just make sure to not get super glue on the motherboard. Then the motherboard can be removed and the tray screwed into place of the main case.

Before getting all the PC components into place, I got the front screen bracket installed, then installed the screen itself, running all the wires where they would be easy to get to, and also out of the way. I got the motherboard in the bottom of the case, followed by wiring the PSU. As mentioned before, now the hardest part was getting the long graphics card in, it sits with the normally external PCI plate at the top of the case, and is slotted in from the top. I got the card straight down the hole, then used bolts and washers to secure it up top, with the help of a laser cut bracket. Once the PCI-express extension ribbon, which aren’t may favorite but needed to make everything fit, was in place, I tested powering it up. Once everything was working it came down to installing the solid state drive, and mounting it where I wanted it, and wiring up all the assorted fans.

For software, I am running Windows 10 Pro with UEFI. Also because its 2019 I decided to get a TPM chip for this motherboard, and use Bitlocker for whole disk encryption. There is not a real performance hit these days so why not.

In the end it was a fun project, but took slightly longer than I had hoped. The things I was originally worried about, airflow and the PCI ribbon, have turned out not to give me any issues. I tend to not use the screen in the front too much, and the system is not too portable since the 1/4 inch acrylic is a bit heavy, but it looks neat next to my desk, and in the end, wasn’t that the point?

A small shout out to a new store in NYC, I am a member of Fat Cat Fab Lab (http://fatcatfablab.org/), and they have a new store near by for Acrylic. MakerKraft, a division of BeadKraft, offers free shipping to the lab at prices that are very reasonable. I also had issues with my order and they called me, offered options, and a discount, very nice people doing great work. If you are in or around NYC and need acrylic, https://www.makerkraft.com/ is cheaper than the Canal Street places at this time. Note: I am not paid by them, just had a really good experience.

Ryzen 2600Xhttps://www.amazon.com/gp/product/B07B428V2L/
GIGABYTE GA-AB350M-DS3Hhttps://www.amazon.com/gp/product/B079NH98GS/
Corsair Vengeance RGB PRO 16GBhttps://www.amazon.com/gp/product/B07D1XJWSJ/
Samsung 970 EVO SSD
Air Conditioner Foamhttps://www.amazon.com/gp/product/B000BO68BU/
80mm fan grillshttps://www.amazon.com/gp/product/B0040JHMHQ/
80mm fanshttps://www.amazon.com/gp/product/B002QVFN7G/
EZDIY-FAB New PCI Express PCIe3.0 16x Flexible Cable Card Extension Port Adapter High Speed Riser Cardhttps://www.amazon.com/gp/product/B01NH0GW7Z/
228pcs Personal Computer Screws & Standoffs Set Assortment Kit for Mother Boardhttps://www.amazon.com/gp/product/B01I4SOVDG/
4-40 Screwshttps://www.amazon.com/gp/product/B07B7K9NKC/
4-40 Nutshttps://www.amazon.com/gp/product/B001B2QP3C/
1″ 4-40 Screwshttps://www.amazon.com/gp/product/B07B7K63CF/
HDMI Extenderhttps://www.amazon.com/gp/product/B00VUFQH4C/
DisplayPort Extenderhttps://www.amazon.com/gp/product/B07CYY2J41/
USB3 Motherboard headerhttps://www.amazon.com/gp/product/B010NBLRHK/