Hi everyone! James Wages @JDW reached out to me about sharing my experience with building a tiny mac, powered by a Raspberry Pi 2W and running Mini vMac from the Gryphel Project. It was a fun build, and I worked through a few kinks that I wanted to share with you should you decide to tackle the project yourself.
First, the Tiny Mac project is located at the following link on instructables.com:
https://www.instructables.com/Making-a-Tiny-Mac-From-a-Raspberry-Pi-Zero/
Follow the instructions, and I’ll highlight key steps along the way.
Supplies
I obtained all the items listed in this section, minus the Bluetooth speaker which is optional. I used a reasonable facsimile of a Waveshare 2.8” display purchased from Amazon at the following link:
https://www.amazon.com/dp/B08LYYDH8Y?ref_=ppx_hzsearch_conn_dt_b_fed_asin_title_1
You will want to follow the Waveshare instructions later in the project.
Step 1: 2 Versions of the Case and 4 Fronts
I found the instructions here a little confusing, but it was likely me. There are 4 choices for the front in two versions, either V1 with the SD card internal and installed on the Pi with a faux floppy disk in the front case, or V2 using the disk slot and a USB extender cable to mimic installing floppy disks with the SD card. I chose the latter and the SE/30 front.
Step 2: Case
To follow my lead, you will need the following three STL files:
As written.
Step 4: Version 1 Faux Disk
Skip this section if you chose V2 like me.
Step 5: Version 2 SD Card
As written if you chose V2 like me.
Step 6: Setting up Raspberry Pi
As written. Use the Raspberry PI OS (Legacy, 32-bit) “Bullseye” version per the instructions. Other versions of the OS do not work well with the precompiled binaries for Mini vMac or the Waveshare overlays. Believe me, I went through hours of unresolved troubleshooting when I used the 64-bit version and the 32-bit Debian Bookworm version. Spare yourself the trouble and use “Bullseye.”
As suggested, connect your Raspberry Pi via HDMI to an external display. You’ll go through extra steps later to attach and configure the Waveshare display, which is best done once the rest of the OS is configured.
When you are configuring the OS through the desktop once installed, add one more step if you intend on using your Tiny Mac as an always-on display like I do:
As written. I chose going with color and Mac OS 7.5.5
Step 8: Transferring Files to Pi via CyberDuck
As written.
Step 9: Setting up Mini vMac
As written.
Step 10: Optional Upgrade
As written if you are like me and go all the way to 7.5.5.
Step 11: Adding Software
As written. I use my Tiny Mac as an always-on display running the After Dark flying toasters, so I installed After Dark.
Step 12: Assembling the Tiny Mac
As written. I found the photo of the Pi and display a bit confusing, yet it is important to get the configuration right because the GPIO header and display are unkeyed. Basically, without the cable the Pi and Waveshare should make a U shape, with the display aligned on top of the Pi. Now, imagine connecting the cable to maintain that same orientation. if you connect the display wrong and make an S shape between the Pi and display, it will fry the display. Ask me how I know.
Step 13: Installing Drivers for Waveshare Display
This is a critical step. Read through the entire section carefully. The goal is to configure the Waveshare display and ensure the rotation is correct - without these instructions the Waveshare display won’t work, and Mini vMac won’t run in portrait mode on this display.
https://www.waveshare.com/wiki/2.8inch_DPI_LCD
The text to add to the config.txt file is listed below:
Install the overlays as written.
One more line to add configures the rotation. By default, my Waveshare displayed in portrait mode. Through trial an error, I found the 90 degrees clockwise setting rotated to landscape and nightside up. Your mileage may vary, hence these are the options for all four orientations.
Choose one of the following:
Step 14: Boot Up
As written.
Step 15: Adding Sound (optional)
I skipped this section since I didn’t care about sound.
Step 16: Launch on Startup
As written, but do this only if you have tested the configuration and showed that everything works as expected. Doing launch on startup gives the authentic feel of starting up a real Mac by firing up Mini vMac at startup.
To go the extra mile, I also installed a custom splash screen of a smiling Mac to replace the Raspberry Pi Desktop logo that appears on startup. If you would like to do the same, add a splash screen per the following link:
https://forums.raspberrypi.com/viewtopic.php?f=66&t=276545
This is what my cmdline.txt file looks like; please note that your root entry will be different:
where I also removed console=tty0 to avoid getting messages and the raspberry pi logo on screen after my custom splash screen appears.
Here is my Tiny Mac running After Dark flying toasters:
Good luck, and enjoy!
First, the Tiny Mac project is located at the following link on instructables.com:
https://www.instructables.com/Making-a-Tiny-Mac-From-a-Raspberry-Pi-Zero/
Follow the instructions, and I’ll highlight key steps along the way.
Supplies
I obtained all the items listed in this section, minus the Bluetooth speaker which is optional. I used a reasonable facsimile of a Waveshare 2.8” display purchased from Amazon at the following link:
https://www.amazon.com/dp/B08LYYDH8Y?ref_=ppx_hzsearch_conn_dt_b_fed_asin_title_1
You will want to follow the Waveshare instructions later in the project.
Step 1: 2 Versions of the Case and 4 Fronts
I found the instructions here a little confusing, but it was likely me. There are 4 choices for the front in two versions, either V1 with the SD card internal and installed on the Pi with a faux floppy disk in the front case, or V2 using the disk slot and a USB extender cable to mimic installing floppy disks with the SD card. I chose the latter and the SE/30 front.
Step 2: Case
To follow my lead, you will need the following three STL files:
- SE30 - front_SE30_a.stl
- Case back - caseBack_SDcard.stl
- Toggle - toggle_SDcard.stl
As written.
Step 4: Version 1 Faux Disk
Skip this section if you chose V2 like me.
Step 5: Version 2 SD Card
As written if you chose V2 like me.
Step 6: Setting up Raspberry Pi
As written. Use the Raspberry PI OS (Legacy, 32-bit) “Bullseye” version per the instructions. Other versions of the OS do not work well with the precompiled binaries for Mini vMac or the Waveshare overlays. Believe me, I went through hours of unresolved troubleshooting when I used the 64-bit version and the 32-bit Debian Bookworm version. Spare yourself the trouble and use “Bullseye.”
As suggested, connect your Raspberry Pi via HDMI to an external display. You’ll go through extra steps later to attach and configure the Waveshare display, which is best done once the rest of the OS is configured.
When you are configuring the OS through the desktop once installed, add one more step if you intend on using your Tiny Mac as an always-on display like I do:
- Preferences…Raspberry Pi Configuration…Display…Screen Blanking->OFF
As written. I chose going with color and Mac OS 7.5.5
Step 8: Transferring Files to Pi via CyberDuck
As written.
Step 9: Setting up Mini vMac
As written.
Step 10: Optional Upgrade
As written if you are like me and go all the way to 7.5.5.
Step 11: Adding Software
As written. I use my Tiny Mac as an always-on display running the After Dark flying toasters, so I installed After Dark.
Step 12: Assembling the Tiny Mac
As written. I found the photo of the Pi and display a bit confusing, yet it is important to get the configuration right because the GPIO header and display are unkeyed. Basically, without the cable the Pi and Waveshare should make a U shape, with the display aligned on top of the Pi. Now, imagine connecting the cable to maintain that same orientation. if you connect the display wrong and make an S shape between the Pi and display, it will fry the display. Ask me how I know.
Step 13: Installing Drivers for Waveshare Display
This is a critical step. Read through the entire section carefully. The goal is to configure the Waveshare display and ensure the rotation is correct - without these instructions the Waveshare display won’t work, and Mini vMac won’t run in portrait mode on this display.
https://www.waveshare.com/wiki/2.8inch_DPI_LCD
The text to add to the config.txt file is listed below:
Code:
gpio=0-9=a2
gpio=12-17=a2
gpio=20-25=a2
dtoverlay=dpi24
enable_dpi_lcd=1
display_default_lcd=1
extra_transpose_buffer=2
dpi_group=2
dpi_mode=87
dpi_output_format=0x7F216
hdmi_timings=480 0 26 16 10 640 0 25 10 15 0 0 0 60 0 32000000 1
dtoverlay=waveshare-28dpi-3b-4b
dtoverlay=waveshare-28dpi-3b
dtoverlay=waveshare-28dpi-4b
Install the overlays as written.
One more line to add configures the rotation. By default, my Waveshare displayed in portrait mode. Through trial an error, I found the 90 degrees clockwise setting rotated to landscape and nightside up. Your mileage may vary, hence these are the options for all four orientations.
Choose one of the following:
Code:
display_rotate=0 #Default orientation
display_rotate=1 #Rotate 270 degrees clockwise
display_rotate=2 #Rotate 180 degrees
display_rotate=3 #Rotate 90 degrees clockwise (this is the one I used)
Step 14: Boot Up
As written.
Step 15: Adding Sound (optional)
I skipped this section since I didn’t care about sound.
Step 16: Launch on Startup
As written, but do this only if you have tested the configuration and showed that everything works as expected. Doing launch on startup gives the authentic feel of starting up a real Mac by firing up Mini vMac at startup.
To go the extra mile, I also installed a custom splash screen of a smiling Mac to replace the Raspberry Pi Desktop logo that appears on startup. If you would like to do the same, add a splash screen per the following link:
https://forums.raspberrypi.com/viewtopic.php?f=66&t=276545
This is what my cmdline.txt file looks like; please note that your root entry will be different:
Code:
console=serial0,115200 root=PARTUUID=01dff835-02 rootfstype=ext4 fsck.repair=yes rootwait plymouth.ignore-serial-consoles logo.nologo consoleblank=0 loglevel=3 quiet vt.global_cursor_default=0
where I also removed console=tty0 to avoid getting messages and the raspberry pi logo on screen after my custom splash screen appears.
Here is my Tiny Mac running After Dark flying toasters:
Good luck, and enjoy!