macintosh-mini-part-a.stl
(stl)macintosh-mini-part-b.stl
(stl)
$ sudo apt install -y git tightvncserver
$ git clone https://github.com/tj/n /tmp/n && cd /tmp/n && sudo make install $ sudo n v10
$ cd ~/ $ git clone https://github.com/xpertsavenue/WiringOP-Zero
$ sudo vi /boot/armbianEnv.txt # or use armbian-config ! overlays=spi-spidev analog-codec usbhost2 usbhost3
$ mkdir ~/.vnc $ vncpasswd ~/.vnc/passwd
$ git clone https://github.com/likeablob/macmini ~/macmini $ cd ~/macmini $ sudo ./install.sh
$ cp /path/to/vmac.rom ~/macmini/minivmac/vMac.ROM # Mini vMac ROM file $ cp /path/to/vmac.dsk ~/macmini/minivmac/system.dsk # Mini vMac disk file $ cp /path/to/.basilisk_ii_prefs ~/.basilisk_ii_prefs # Basilisk II config file $ cp /path/to/macboot.wav ~/macmini/macboot.wav # Boot sound (optional)
$ sudo reboot now
$ pacmd list-sinks | grep -e 'name:' -e 'index:'
index: 0
name:
index: 1
name: DISPLAY=:1 pavucontrol
and alsamixer
to adjust volume
[Tips]: Here is my working .basilisk_ii_prefs.
Wire the display & USB boards to the OPi
OPi | Peripherals |
---|---|
PA15/SPI1_MOSI | LCD MOSI |
PA16/SPI1_MISO | LCD MISO |
PA14/SPI1_CLK | LCD CLK |
PA13/SPI1_CS | LCD CS |
PS12 | LCD RESET |
PA11 | LCD DC |
PA06 | Push Switch |
GND | Push Switch |
USB-DP2 | USB (Front) Data+ |
USB-DM2 | USB (Front) Data- |
5V | USB (Front/Rear) 5V |
GND | USB (Front/Rear) GND |
LINEOUTL | (Optional) Amplifier Input |
fbtft_device
kernel module is loaded and it initializes the LCD as /dev/fb0
.nodm
starts an X session and ~/.xinitrc
get executed.~/.xinitrc
launchs matchbox-window-manager
and ~/macmini/switcher/*js
.~/macmini/switcher/index.js
reads the scripts ~/macmini/switcher/sh.d/*sh
and spawns them one by one when there is a HTTP GET request at localhost:5501/
.~/macmini/switcher/gpio-reader.js
watchs the push SW at GPIO7(PA06) and send a request to localhost:5501/
.Internally tightvncserver
and ssvncviewer
are used to scale the display.
1_large_minimac.sh
launches:
tightvncserver
to create a virtual display (512x384) at DISPLAY=:1
(:5901
)minivmac
in DISPLAY:1
ssvncviewer -scale 0.625
in DISPLAY:0
(By the -scale
option, low-res LED get upscaled)![]() |
![]() |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Name | Quantity | Descriptions |
---|---|---|
OrangePi Zero Plus 2 (H3) | 1 | H5 ver. might work too. |
2.4inch SPI Display (ili9341, 320x240, with flat cable) | 1 | |
Generic micro-USB Breakout Board | 2 | |
M2 x 6 mm Self Tapping Screw | 16 | |
D10mm Rounding Magnet | 2 | |
7x7 mm Push Switch | 1 | |
2W Small Speaker | 1 | (Optional) |
ClassD Audio Amplifier Board | 1 | (Optional) PAM8403 |