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 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.
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!
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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. 🙂
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…
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.
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.
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.
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.
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.
The kit itself is a little smaller than the original control panel; photo from the creators blog above. This is not a real PDP-8, it is a front panel with a Raspberry Pi on the back of it. The Raspberry Pi has an image that is on the user forums (which are incredibly helpful as well as a nice community) which boots very quickly and dives right into the modified emulator. The design is wonderful and just uses the pinout on the Pi.
I got the kit, then ended up moving across the country and did not setup the kit for several months. When I got to building the kit (2015 version, pictured above) it was 2016 and instructions were up for both version. Not many differences except the switches, and how they are mounted. My version needed me to remove pins from each switch then mount each on a rod to keep them aligned. The 2016 version also has more authentic looking switches. I got the switch rod put together with no difficulties.
Then it was down to soldering the trillions, well it felt that way, LEDS to the PCB that came on the kit. Small soldering is not my favorite thing, so this took a bit; but in the end it was done and I was happy with it.
I wanted to test my soldering skills, or lack there of. I plugged the Pi in, and started the image. A few of the lights dimly came up, the rest of them just were dead. Darn this means somewhere it’s broken. I did some traces with a multi-meter, and couldn’t find the fault. Then I realized while it was plugged in the one integrated circuit that handles the LEDs were was getting very hot. I emailed Oscar who made the project and he quickly responded and said it sounded like the integrated circuit was dead and he would mail one the next day or so.
He was extremely helpful and kind, and I got the new chip a few days later. I had to go to Radioshack, (I was surprised I could find one! And its no longer there a few months later) to get a desoldering wick. I haven’t used this before, but it helped me remove the old chip. I soldered the new chip in, and powered it up. Instantly it all came online! I wanted to check all the LEDs, to verify if the OS was keeping some off, or if the circuit was bad, I got a diagnostic program that was written for this system. It did indeed show there was a error, and after resolding a small point then everything was working!
Now that the system works, and I sized it in the box; it was time to paint the switches! I covered half of them with painters tape and painted some brown. Then later did another coat. Then did the white ones so they were not off white or having the red dots on them.
After it dried, I cut a hole in the side of the case so that I could access the USB ports of the Pi. I just had a tiny hobby hack saw and a drill, these were not the best tools to cut the hole but it worked out. I also put electrical tape over the edges of the hole to cover up my handiwork. Then I mounted the PCB with wooden blocks for support into the box. I got some velcro with tape on the back so attach the front panel; that way I can remove it whenever I want for service and easily reattach it.
I got a power switch that is inline with a USB cable. That way I can have a switch to power on and off the device. Then I thought the blinky lights were neat, so I mounted it on my wall for now. It boots directly into OS/8 and in idling does a little light show.
The project came out well, and I am excited for Oscar to release his PDP-11 clone he has been working on in the background. I haven’t spent that much time programming it, but it is nice to have a piece of computer history above my desk. A big part of this project has been the awesome community over at the forum https://groups.google.com/forum/#!forum/pidp-8 and the kindness of the project owner and his willingness to help. Oscar’s blog has some cool stuff as well, http://obsolescenceguaranteed.blogspot.com/ .
Someone years ago gave me a Compaq Portable II. I always have loved this machine. Coming from the days of “luggable” computers, it weights over 20 lbs, and has a tiny CRT. The model I have has a “Type 2” (20MB) hard drive, and 640KB of RAM. For a little bit I thought my parents had accidentally thrown it away, as I was storing it at their house. Then it was found again and much rejoicing was had. The system is a Intel 286, with no math co processor.
Recently the one I have has come down with a few problems, so after seeing a brave young soul take their apart (https://www.youtube.com/watch?v=DqaWCobAbQ4) I decided I should give it a go. First the battery on the motherboard started to fail, not only resetting the clock when it lost power, but also forgetting the type of hard drive it had. This made it so every time the system was used, you would boot a 5 1/4″ floppy of MS-DOS, then change floppies to the Compaq Diagnostic disk, and configure the BIOS, and finally go back to the MS-DOS disk. I was lucky that some places still have the disc images online; http://yesterbits.com/2012/09/23/booting-the-compaq-portable-ii/ . I attached those disks to the bottom of this page just so there is another mirror online for others.
I knew that the BIOS battery needed replacement, but when I recently turned the system on the old hard drive had finally given up. At about 30 years old I can not blame it. A fun fact about the drive in this system, it is actually a MiniScribe MFM hard drive (more info here http://www.seasip.info/VintagePC/compaq2.html) that has a MFM->IDE conversion board on it. The drive is also shock mounted, this computer is portable after all! Knowing that, I decided it was time to swap that dead drive for a Compact Flash -> IDE adapter. This would be a size and speed improvement over this old hdd. Luckily someone else had already attempted this! http://tkc8800.com/post/compaq-portable-ii-restoration
Armed with all that info (and the manual – http://www.minuszerodegrees.net/manuals/Compaq%20Portable%20II%20-%20Maintenance%20and%20Service%20Guide.pdf) I took the system apart, and very carefully avoided the high voltage CRT area. After getting the top cover off, then the front bezel; I needed to remove was the floppy and hdd caddy. I removed the cover of the caddy as well as the rear card cover. Then I could get access to the ISA cards. This system has the standard IDE control board, the video board, then a blank, and finally a board called EVEREX with a crazy connector. I have no idea what that last board ever went to. Some quick googling says it may be a tape controller card, or an special external monitor. My plan was to use the third slot to put the Compact Flash adapter, that way I can access it externally. (Here is it being tested)
I got a 8gb card off Amazon because it was fairly inexpensive and that would be so much more than plenty. After looking through all the options the system gave me, I settled on a “Type 41” hard drive even though the system auto detected it as a “Type 14” This gave me around 250MB of storage, for my uses that was plenty.
Now to replace the BIOS battery. The manual covered this. The battery is under the cover, where the extra RAM would be, IF I HAD IT. I took the bottom off, cut the zip tie that held the battery, and replaced it with one off Amazon. That first battery lasted about 25 years before it finally stopped remembering, I think that is a good battery.
One thing that stood out was the battery. I got a battery from the same company as the original, photo above; the battery on the left is the new one, the one on the right is the 30 year old battery. These batteries are 30 years apart, yet they look almost identical. I think that’s hilarious and interesting.
It came time to close up the case, mostly replacing metal covers around the system then placing the cover over it all. I ran into a little problem replacing the ISA card cover, there are little feet that hold the cards in place, but my IDE cable and power cable were in the way. I had to push the cables closer to the ends of the cards to make the cover fit. Then I used plastic twist ties to hold the power cable in place.
Right before sealing it up again, I cleaned the cases because it was already off. Below are some photos of the final system. The next thing I would need to do is replace the keyboard cable, the plastic is chipping off. I did a quick glance at how hard that repair would be, the issue is the cable goes into the monitor compartment (high voltage capacitors are scary) and I will need to solder a new cable to the keyboard/cable which is more than I was looking to do in this first repair session. I also one day should get a ISA RAM expansion card. A giant benefit to having the Compact Flash card slot on the side, is if I want to load more software I can just take the card out and plug it into a modern PC. I also can create a VM and use that card as the hard drive, making for easy dsk file image installation. This is close to infinite times faster than serial connections to transfer files.
This system has a Intel 286 with 640KB of RAM. To run Windows 3.1, you need extended memory; which I currently do not have. If I had a 386, then I could create a page file, and use disk space as memory, but a 286 does not have this ability. To have some version of Windows I installed Windows 3.00a off of https://winworldpc.com/product/windows-3/30, they have a great collection of Windows versions, with different languages and builds. I have a ton of old Windows versions in packaging, but this was simply easier. I also got a MS-DOS 6.22 bootable installation image off of https://www.kirsle.net/blog/entry/ms-dos-and-windows-3-1 and installed that as my base.
All in all, this PC got some much needed attention and is now back to its old self. The Compaq Portable II is back to its old brilliance with Windows 3.0 on its 250MB SDD (technically it is a SSD), 5 1/4″ drive, and tons of games, as it should be.
Random bonus: I enjoy the Compaq Setup Disk load screen, it has a animation with the logo that uses the slow refresh time for an interesting effect. Below is a Imgur upload of it.
I was very excited to see Susan Kare borrow of of the mini Macs from a friend and give it a shout out on Twitter! These kind words from someone responsible for a lot of the original Macintosh design are quite humbling. 🙂
In building the project I wanted the computer to have the closest to the original feel as I could get. There were a few difficulties in the project, from the TFT screen, to the OS configuration. Yet in the end, I got a cute little replica running on top of a Raspberry Pi. I am not trying to break copyright, or profit from this. I simply do it as a fan of good hardware and past operating systems.
To start I want to mention that there are areas of this “guide” where I have been short, if you are unfamiliar with Linux, some of the parts in this config may give you problems. This project includes compiling code, adding scripts to boot, and configuring systems like VNC.
I loaded the standard Debian install onto a SD card to start (which at the time was Debian 6 or 7), then I started investigating the different original Motorola Mac emulators. The two main ones I found were Basilisk II and Mini vMac. Basilisk offers features such as Color, networking, and advanced features over Mini vMac. A very useful feature that Basilisk has is supporting a shared drive. You can tell the emulator that a folder on your Pi or any PC should show up as a hard drive in Mac OS 7. That way you can easily download games/software from archive.org or other locations, then load it onto the virtual system!
Mini vMac did offer greater compatibility for apps, while only being black and white, it seems to do a much deeper level of emulation; this makes it slower, but some apps that wont work on Basilisk will work on it. My solution in the end was to put both of the emulators on the box, pointing to the same virtual hard drive.
A script wraps the system, by default it auto boots into Basilisk, but if you “shutdown” the Mac in the emulator, you get a options screen that will allow you to switch modes the emulator is running in, the emulator itself, or some other settings. Some of the other settings including pairing Bluetooth, shutting down, or dropping to the console.
These files are available under https://github.com/daberkow/minimacparts. There is a SYSINIT script that starts the script, aka the wrapper, and gets the session started under the “pi” user, this goes in the /etc/init.d folder. Then there are folders for the different emulators in the /opt/mac folder.
Note: I used the current Raspberry Pi Debian build when I did this project, which at the time was using SYSINIT over the newer SystemD. If you want to use a newer build (which you probably should) you will have to translate my crummy SYSINIT script into a SystemD script. Feel free to pull request the repo! 🙂
One of the larger issues that had to be overcome was screen scaling. The screen I used is 480×320, but the original Macintosh resolution was 512 × 342. This had some of the emulators either cut off, or scrolling around the screen when the mouse got to a corner, which was not great. I could run the emulators at a smaller resolution, but some software was designed with that screen in mind and applications were cut off!
My solution was to use VNC, the system starts the emulator in a VNC session running at the native resolution, then the Pi screen connects to that session and enables scaling mode, shrinking it to the proper size. This way VNC worries about all the scaling, at a minor speed loss. I looked at different X configs to try to do the scaling that way, but the way this screen works, it gets upset and has problems very easily. The screen does not have a scaler of any sort, so you HAVE to send that resolution of 480×320 to it. The VNC solution works well. The different emulators have VNC config files that are copied to the running config right before its run depending on the emulators properties.
At this point we should discuss dependencies; TightVNC server was used for VNC. A quick minor note about VNC, you need to config the VNC users password, and then setup the script to auto-login with that password for the above script to work. Bluez Bluetooth stack and utils were used to be able so use Bluetooth peripherals. Basilisk and Mini vMac were compiled from source on the Pi 2 so that I could squeeze the most performance out of the little PC. Also its hard to find the latest versions ARM compiled online.
The authors website offers a nice little service to have the website compile to code for you, or you can compile it yourself. Depending on your screen and how you want the app to start (a lot of those settings are hard coded in at compile time) http://www.gryphel.com/c/var/index.html.
I made one virtual hard drive, that both emulators used. Luckily they use a compatible hard drive image format. I set the first image up on my desktop just because it was easier. Then copied it over once I got the image in a good state. For years Apple gave out for free on their website Mac OS 7.5.3, then after a website update it seem to break a lot of the links. A few still worked but most over the years have stopped working. A lot of different sites have mirrors of those disks available though, if you search “System_7.5.3_01of19.smi.bin”, that should bring you to one of the mirrors. The one other thing you need is a ROM for a original Macintosh. I have some classic Macs at home, and you can dump the ROM from those. Or there are sites out there that have them hosted, I would guess that would not be to hard to find.
I put the virtual hard drive, and the ROM in a folder called “Shared” in the /opt/mac directory. You may have to tweak some of the configs/scripts to get everything working your way.
Once you get it working, there are a ton of games and pieces of software on archive.org for the old Macintosh, just make sure you get the 680*0 versions not the PowerPC versions. There are also a ton of abandonware sites, since half the companies that made this software are out of business, I doubt they will mind you taking a look, though legally its a grey area.
Those are the basics for how I got the system setup. One item that gave me a bunch of problems was the TFT screen. At the time you needed to load separate kernel modules and configure boot parameters for it. I think newer kernel images have added this, so that should be a simpler task for everyone.
The units themselves are laser cut acrylic. The front face that was put on the painted units was 3D printed. The designs for those pieces are on my GitHub page, https://github.com/daberkow/minimacparts . The original design was a tad bit smaller than the final unit. I ended up making it exactly about 1/3 scale, then realizing that there was not a screen on the market to do what I wanted to do. When I moved up to the 4″ screen, the resolution went up to a incredible 480×320. There were a bunch of issues around that resolution that I will get into in a later article.
For the Raspberry Pi I used a Raspberry Pi 2. The first version I made had a Pi 1 in it, and I ended up upgrading to the 2 just for the speed and added cores. With the system running a emulator, core 1 can get used up by that; having more available made sure things like SSH didnt lock up.
I designed two brackets, one set that holds the screen in place, and another that mounts the Pi to the inside of the case. The screen mounts are just two bars that are the exact with of the screen and help mount it inside, while leaving the port available for the IDE cable. The mount for the Raspberry Pi made it easier to take the Pi in and out of the case when building the unit. And a nice list so the Pi doesn’t get glued or screwed right into the side of the case.
For the front USB port, I got a USB 3.0, 6 inch cable. The most important part of this cable is finding one with a 90 turn at the end that does not stick out a lot. The Raspberry Pi is mounted in the end to the side wall of the case, and there is not much clearance. A USB cable that comes out from the top of the Pi is better as well. I ordered the wrong one for this last build, and then had to bend it a bit so it wouldn’t push against the side of the case.
A simple micro-usb extension cable was used for powering the Pi. The female jack goes to the back of the case, so that the unit can be powered. Again, the 90 degree male plug was important because that side sits right next to the screen. Audio was a random 90 degree 3.5mm extension cable off amazon. The first unit, the clear one, had a different make than ones i got later. Some of the later units had a splitter instead of a single extension. The original idea was to have a speaker inside for the start up sound. That quickly added to the complexity and was cut from the final project.
The networking port was important so that I could easily add new programs to it. The systems also had a tiny wifi receiver, but I figured hard wiring was also easy. That was a custom keystone jack to a RJ45 port.
I mentioned in Part 1 that the screen was connected to the Pi via a IDE extension cable. After looking around for other solutions that worked cleanly, this was the best one. The cable can handle the frequencies, and was easy to find. It also doesn’t do any flipping of pins or roll-over shenanigans.
To bring it all together, super glue was used, not the most glamorous, but strong and holds. I made a few little tools to help me try to put better right angles together when gluing the cases. Those didnt always work out great.
To wrap up, I will go over my build order, just in case anyone decides to try to make one of their own. I would first get the front piece, and glue that to the side walls. Let that dry for a few hours at least, superglue likes to dry fairly fast, but I wanted it to be solid through and through. Then I would add the bottom front panel area, and the sliver that goes between the front bottom, and that bottom panel. After I put the bottom of the unit on, I would stop working on the main body. Now its time to get the screen, with it powered on and working with the Pi, line it up to where it looks good in the cut out.
After I have found the spot the screen should go, put the brackets on it, and glue it into place. This has to be a little carefully done, any spare glue that drips into the screen can make it look bad. Once the screen has dried, getting the mounting arms for the Pi bracket, and gluing them in place was done. There is not a real science to where it went, I would put the whole Pi sled in, then see where it seemed to work well with all the cables attached. Then sharpie those spots and glue the arms down, watching them long enough to make sure they didnt fall over. Once that was done, and I felt good about where the Pi was, I would glue two tiny blocks I 3D printed to hold the Pi sled in place.
Gluing the front USB isnt too bad, its putting it in position then gluing the edge of the extender into the place it should sit. The hardest part is not getting glue in the connector, and doing multiple layers so that it doesnt move with normal user use.
Getting the back to stay in place was my least favorite part. There are little L brackets I 3D printed that the back could screw into. They work well but lining them up and gluing them into place, and not the back itself was tiring. I would tighten the brackets a fair amount to the back plate, then get the plate into position and glue the bottom two brackets into place. Then I would do the top two. At this point gluing the different connectors into the back ports isn’t too bad. I also made brackets for them, the brackets are bigger than the whole so that it covers the whole port when the piece is in it. These brackets weren’t held with little arms like the Pi, just glued into place.
Finally the top was glued in, and then the last little top slant area. The screen I mentioned getting before may not be available from Amazon, but there are a ton of others that are all seem to be made by the same place, then had another brand stamped on them. For the last build I did, I grabbed another brand (link) and it worked with the same drivers out of the box.