#severance #propreplica #3dprinting #raspberrypi
![[lumonmdr-frontmain.jpeg|600]]![[lumonmdr.gif|600]]![[lumonmdr-shelf.jpeg|600]]![[lumonmdr-back.jpeg|600]]
## Overview
I was inspired by this [great reddit post](https://www.reddit.com/r/SeveranceAppleTVPlus/comments/1io6n1l/built_a_miniature_mdr_computer/), from a maker who wrote a OpenGL MDR Terminal Simulator.
I elected to make my own version, using a Raspberry Pi 4 and a Raspberry Pi 7" Touchscreen. *It might benefit from a Pi5 and/or 4GB of RAM. p5 canvas is hungry.*
The shell is heavily modified (remixed) from [lumon terminal for raspberry pi by TheBackyardScientist - Thingiverse](https://www.thingiverse.com/thing:6948380):
- Converted the STL to a solid in Fusion360
- Simplified as many faces as I could
- Scaled the solid to be as large as I could print on my Prusa MK3.9S printer as well as to fit the Raspberry Pi touchscreen.
- Modified the interior structure of the shell to hollow it out.
- Added a flange and 6x2mm magnet recesses in the back for the rear access panel.
- Added a 3/4-10 UNC 1B thread on each side for the mounting knobs.
I designed the rest of the parts from scratch:
- Access Panel
- Uses 6x2mm round magnets
- Incorporates the Lumon logo
- Has a round through hole for the USB-C power supply plug (wide enough to accommodate the ferrite)
- Base Plate
- U-Bracket
- Knobs (with a modeled 3/4-10 UNC 1A thread)
- Front Panel
The access panel attaches quickly to the back using common 6x2mm magnets. The front panel friction fits into the shell. The base plate and U-Bracket are keyed to mate together and can be permenantly secured with CA (superglue).
The shell, base plate, u-bracket, and access panel are all printed in [Overture PLA - White](https://amzn.to/4jHOUvW).
The knobs are printed in [Overture PLA - Black](https://amzn.to/4jbqZ88).
The front panel is printed in [Overture PLA - Matte Navy Blue](https://amzn.to/4jbkjHb)
My version is powered by an Eve Thread Outlet and I have a HomeKit automation that sets all of my nerd display case items to turn on at 5PM and off at midnight.
My finished model: [Lumon Macrodata Refinement Terminal - Raspberry Pi - based on Severance by erikbuild \| Download free STL model \| Printables.com](https://www.printables.com/model/1269301-lumon-macrodata-refinement-terminal-raspberry-pi-b)
**Why?**
![[theworkismysterious.gif|500]]
## Parts
- 3D Printer Filament
- [Overture PLA - White](https://amzn.to/4jHOUvW)
- [Overture PLA - Black](https://amzn.to/4jbqZ88)
- [Overture PLA - Matte Navy Blue](https://amzn.to/4jbkjHb)
- [6x2mm Magnets](https://amzn.to/3GemMls)
- [Raspberry Pi 4 - 4GB](https://amzn.to/4cOaTiA)
- [Raspberry Pi 7" Touchscreen](https://amzn.to/3EsAVep)
- [USB-C Power Supply](https://amzn.to/4cBqWzX)
- [USB-C Right Angle Adapter](https://amzn.to/42B26fb)
- [64GB A2 microSD Card](https://amzn.to/3EpJmao)
- 32GB or even smaller is fine, I like a A2 rated card for durability with a Raspberry Pi.
## Build Guide
- Print all parts (see Printables link for details).
- Attach the U Bracket to the base plate (secure with superglue).
- Insert magnets into shell and access panel (observe polarity so they don't repel each other!).
- Attach the Raspberry Pi 4 to the Raspberry Pi 7" Touchscreen.
- Image the Raspberry Pi microSD Card with Raspberry Pi OS 64-bit (or your preferred distro).
- Edit the settings in Raspberry Pi Imager for...
- Local hostname (maybe *lumonmdr.local*)
- username / password
- WiFi Configuration
- Enable SSH
- Insert the microSD card into the Raspberry Pi.
- Insert the touchscreen assembly into the faceplate. Optionally secure with a little low-temp hot melt in the corners to keep it in place.
- Route the USB-C power supply cable through the access panel hole, attach to the right angle adapter, and then attach to the Raspberry Pi.
- Insert the faceplate assembly into the front of the shell.
- Attach the rear access panel to the shell (snaps together with the magnets).
- Attach the shell assembly to the stand, securing with the black knobs.
- Plug in the power supply to boot.
- Quick configuration
- `ssh
[email protected]`
- `sudo apt update`
- `sudo apt upgrade -y`
- (Optional, but recommend for easy management): Enable VNC
- `sudo raspi-config`
- Select Interface Options
- Select VNC
- Enable VNC
- Select Finish
- Configure your simulation!
- [[Lumon MDR Terminal#GitHub - Lumon-Industries/Macrodata Refinement]]
- This is my favorite currently.
- [[Lumon MDR Terminal#LumonMDR OpenGL Simulation]]
- [[Lumon MDR Terminal#GitHub - epassi/lumon-macrodata-refiner]]
- Set it to [[Lumon MDR Terminal#Run At Boot]]
## Simulation Options
### GitHub - Lumon-Industries/Macrodata Refinement
[GitHub - Lumon-Industries/Macrodata-Refinement: Marcrodata Refinement](https://github.com/Lumon-Industries/Macrodata-Refinement?tab=readme-ov-file)
- SSH to the Raspberry Pi: `ssh
[email protected]`
- Install Nginx (we need to serve this locally to work around CORS):
- `sudo apt install nginx -y`
- Edit the nginx config:
- `sudo nano /etc/nginx/sites-available/default`
```
server {
listen 80;
server_name _;
root /var/www/Macrodata-Refinement;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
```
- `cd /var/www && sudo git clone https://github.com/Lumon-Industries/Macrodata-Refinement.git`
- `sudo systemctl restart nginx`
- `sudo systemctl enable nginx`
- It should now be accessible at http://IPADDRESS/ and http://localhost/
- VISUAL TWEAK - fix the spacing of "X% COMPLETE" and the LUMON Logo on screen:
- `sudo nano /var/www/Macrodata-Refinement/sketch.js`
- Edit Line 423 to put the width to `w * 0.7` instead of the original `w * 0.8`:
- ``g.text(`${floor(nf(percent * 100, 2, 0))}% Complete`, w * 0.8, 50);``
- Save and restart nginx: `sudo systemctm restart nginx`
- VISUAL TWEAK #2 - change the File Names if you'd like (e.g. only display Cold Harbor):
- `sudo nano /var/www/Macrodata-Refinement/macrodata.js`
- Edit the `files` array to suit your Macrodata filename needs...
```js
const files = [
'Cold Harbor'
];
```
### GitHub - andrewchilicki/LumonMDR - OpenGL Simulation
[GitHub - andrewchilicki/LumonMDR: Lumon's Macrodata Refinement application inspired by Apple TV's 'Severance'.](https://github.com/andrewchilicki/LumonMDR)
Cool project, tricky to get to compile and run.
- SSH to Raspberry Pi (`ssh
[email protected]`)
- `sudo apt update`
- `sudo apt install vim cmake freeglut3-dev libglew-dev libglfw3 libglfw3-dev`
- `cd ~ && git clone https://github.com/andrewchilicki/LumonMDR.git`
- `cd ~/LumonMDR`
- `cmake .`
- `make`
- `cp settingsRPI.json settings.json`
- Edit settings.json:
- Change headerText to "Cold Harbor"
- Change gridSpacing to 200.00
- Change imageScale to 0.8
- Change noiseSpeed to 0.004
- From the device itself (e.g. touchscreen), click the Terminal...
- `./home/erik/LumonMDR --full-screen`
- This is your command to autostart on boot if you want
### GitHub - epassi/lumon-macrodata-refiner
[GitHub - epassi/lumon-macrodata-refiner](https://github.com/epassi/lumon-macrodata-refiner?tab=readme-ov-file)
I haven't tested this, but looks like a great simulation as well.
## Run At Boot
This is accurate as of 2025-04-18 with the current version of Raspberry Pi OS. The window server occasionally changes so the auto run on boot process seems to change every few years.
- Make the config file
```bash
mkdir -p /home/erik/.config/labwc
```
- Create and start editing the autostart file:
```bash
nano ~/.config/labwc/autostart
```
- Add the following to the user autostart file:
```bash
# I find that Firefox renders it better; sometimes Chromium will render it incorrectly and needs a refresh (ctrl+F5) to fix.
#/usr/bin/chromium-browser --kiosk "http://localhost" &
firefox --display=:0 --kiosk-monitor 0 "http://localhost" --kiosk &
```
- Save
- Reboot the Raspberry Pi: `sudo reboot`
## Reference Information
### Raspberry Pi Touchscreen 7" Specs
![[raspberrypi7touchscreen-specs.png]]
## More Photos
![[mdr-backoffaceplate.jpeg|800]]![[mdr-fromback.jpeg|800]]
![[lumonmdr-front1.jpeg|800]]