Since I started to play with Aranym and Hatari, about 10 years ago, I always had the objective to build a computer booting an Atari system with the highest compatibility possible and with strong performances..
The objetive was partialy achieved with BeeKey and BeePi, but still something was missing : the good old look and feel.
Recently, I have got a 3D printer . After many months learning 3D design, 3D printing, testing and failing, I am glad to share this project : a 60% scale Atari ST like case for Raspberry Pi, with a mechanical keyboard, SSD, audio and Midi interface and USB 3 hub. It has been originally designed for the Raspberry Pi 5, but can be adapted to the RPi 3 or 4.
This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
I have no commitment with Amazon or Kubi, links are just given as an example and for references. All the parts can be sourced internationally. Keep in mind that if you change the references of the keyboard, USB hubs, audio interface, ethernet or midi plugs, you will need to adapt the 3D model to the new dimensions.
The RPi3 doesn't have USB 3 ports. SSD access won't be faster than the SD card, just safer. For the best experience, I strongly recommend a RPi5.
Printer : FDM printer with a 0,4mm nozzle.
Bed : 320x320 mm PEI bed + PVP glue
3D modeler : Onshape
Slicer : Cura 5.9
Material : PETG
Case STL files : Case model
Alternatives plates for RPi3 and 4 : Plates for RPi3 / 4 and blank plates
3D sources : Onshape model (you need a free account to copy and edit the project)
Labels : ATAPI labels
The case is printed in PETG in order to withstand the RPi temperature. You can also print it in ABS but don't use PLA as it becomes weak at high temperature.
It is splitted into different parts which need a specific orientation to print properly. (see pictures below)
Partial supports are needed for some parts. Block the supports where they are not needed especialy under chamfers and filets. For aesthetic reasons, print with the front of each part in front and hide the seam in the back.
Layer 0.2 mm, 3 walls, 6 layers top and 6 layers bottom, 15% infill.
Print it flat, bottom on the bed. As the surface is big and the print long, there is a high risk of warping. Though it can be printed without supports, partial supports for the SD Card port only may be needed. Block the supports on the front and sides.
Layer 0.2 mm, 3 walls, 6 layers top and 6 layers bottom, 15% infill.
Print it upside down, top on the bed. Though it can be printed without supports, partial supports for the back of the part only may be needed. Block the supports on the front and sides.
Layer 0.2 mm, 3 walls, 6 layers top and 6 layers bottom, 15% infill.
Print it upside down, top on the bed. Supports for the logo cut and the back of the part only are needed. Block the supports on the front and sides
Layer 0.2 mm, 3 walls, 6 layers top and 6 layers bottom, 15% infill.
That's the most difficult part to print : the grid fins are printed first and as they don't have connection in the back they will warp. The solution is to print with a skirt of 10 lines, 1 layer height at a distance of 0.1 mm from the part. Print it upside down. No support needed.
Layer 0.2 mm, 3 walls, 6 layers top and 6 layers bottom, 15% infill.
Print it flat, bottom on the bed, without support.
Layer 0.2 mm, 3 walls, 6 layers top and 6 layers bottom, 15% infill.
Print it flat, back on the bed. without supports.
Layer 0.2 mm, 2 walls and 4 top and 4 bottom, 15% infill.
Print it flat, bottom on the bed, without supports. The button must be printed upside down.
Layer 0.2 mm, 2 walls and 4 top and 4 bottom, 15% infill.
Print it flat, bottom on the bed, without supports.
Layer 0.2 mm, 2 walls and 4 top and 4 bottom, 15% infill.
Print it flat.
Solder the switch cable.
Insert the shaft, smallest side through the hole.
Insert the button on the shaft.
Insert the switch and glue the cover.
Check that the switch is working properly before glueing it to the bottom case.
Putty, dust, solvant and paint are toxic.
Wear personal protection equipment : gloves, glasses, respiratory protection mask for dust and solvant vapours.
Spray in a well ventilated room.
You can find all the necessay products in any good car supply shop.
Trim each part with a cutter to remove plastic residue.
Sand with 80 grit paper to smooth the surface and round the filets.
Apply car putty for plastic on main scars, joints and cracks. Don't apply putty on the grid fins and cavities.
Remove the excess of putty with 80 grit paper, then sand with 150 and 220 grit. Repeat 3 and 4 until you have a filled every gaps.
Clean with soap and water to remove grease and dust. Don't soak the bottom part in water as the switch is already mounted.
Protect the parts which doesn't need painting with masking tape.
Spray several coats of filler until you have an uniform surface.
Wet sand with 400 and 600 grit. Repeat 6 and 7 until you have smooth surface.
Clean with soap and water to remove all dust.
Spray primer and lightly wet sand with 1000 grit to remove any orange peel texture.
Clean with soap and water to remove all dust.
Spray paint. Satin or matte paint will give the best result.
You may need to file hole and the inner side of the slots of the back top part as primer filler / paint can build up and reduce the tolerances.
M3 inserts for the front are angled, while inserts for the sides and back are vertical. Pay specific attention to this or the bottom screws won't fit in. Mount the inserts flush with the plastic.
Power switch : solder 2 pins header to the Raspberry Pi 5 PCB holes between the USB C power and HDMI 1 jacks , just below the RTC battery connector. Connect the switch wires to these pins header. For the RPi3 and 4, which don't have a power switch terminal, connect the switch wire to GPIO 3 (pin #5) and ground (pin #6).
MIDI : shorten the cable if necessary and solder the 2 midi plugs to the midi interface cable.
Remove the casing of the keyboard, audio card and USB hubs. Keep the keyboard screws.
HDD activity led : solder a 2K ohms resistor to the negative leg of the led. Solder the connection wires and protect them to avoid shorts . Keep the wires long enought for an easy connection when attaching the top case. Connect the positive wire to GPIO 27 (pin #13) and the negative to ground (pin #14). If the led is too bright, you can increase the resistor value.
Cable management : shorten if necessary the USB audio card, USB hubs and the ethernet expansion cables.
Attach the RPi 5 with 4X M2.5x8 screws.
Connect the power switch.
Attach the accessories bottom with 4X M3x12 screws.
Attach the audio card PCB with 2X M3x12 screws and the printed plastic washers ( short M3x4 can be used without washer).
Attach the midi plugs with 4X M2.5x8 screws and nuts.
Connect the Midi interface to the USB 2 port of the RPi.
Attach the SSD with 4X M3x12 screws.
Connect the SSD to the USB 3 port of the RPi.
Attach the accessories top with 4X M3x12 screws.
Attach the 2 USB hubs PCBs with 4X M2.5x8 screws.
Connect the USB 3 hub to the USB 3 port of the RPi.
Connect the USB 2 hub to the USB 2 port of the RPi.
Attach the ethernet plug with 2X M3x12 screws.
Connect the ethernet plug to the RPi.
Attach the keyboard with the 6x M2 screws coming with the keyboard. Be carefull not to break the pilars with the screws. If there is too much resistance, open the holes with a 1.8mm drill bit.
Connect the audio interface, keyboard and mouse receiver to the USB 2 hub.
Screw together the keyboard top, functions keys top and back top together with 8x M2.5x8 screws and nuts.
Glue the HDD led to the case top.
Connect the HDD led to GPIO.
Attach the case top with 4x M3x12 screws for the front and 5x M3x20 screws for the sides and back.
Glue the adhesive rubber feet to the bottom case.
Stick the labels to the Midi, left,right and logo plate. Glue the logo plate to the case top.
Install BeePi on the SSD.
Connect the SSD with the USB interface to a PC / Mac
Install BeePi on the SSD with Raspberry Pi imager as you would do for a SD card.
Boot and configure BeePi.
In a future update, the following changes will be integrated to BeePi, meanwhile this is the procedure to complete the installation.
Install the HDD activity led software.
Right click on the desktop , open the menu "Tools" and choose "Quit to host".
Log in with "pi" as user and your password ("beepi" as default).
We need to install WiringPi and build hddledPi from PiLEDlights : let's go.
For the RPi 3 :
cd ~
sudo apt update
wget https://github.com/WiringPi/WiringPi/releases/download/3.14/wiringpi_3.14_bullseye_armhf.deb
sudo apt install ./wiringpi_3.14_bullseye_armhf.deb
git clone https://github.com/RagnarJensen/PiLEDlights.git
cd PiLEDlights
gcc -Wall -O3 -o hddledPi hddledPi.c -lwiringPi
sudo cp hddledPi /usr/local/bin
For the RPi 4 and 5 :
cd ~
sudo apt update
wget https://github.com/WiringPi/WiringPi/releases/download/3.14/wiringpi_3.14_armhf.deb
sudo apt install ./wiringpi_3.14_armhf.deb
git clone https://github.com/RagnarJensen/PiLEDlights.git
cd PiLEDlights
gcc -Wall -O3 -o hddledPi hddledPi.c -lwiringPi
sudo cp hddledPi /usr/local/bin
Edit rc.local to start hddledPi at boot.
sudo nano /h/.system/rc.local
add at the begining of the file after the comments :
hddledPi -d -p 2
Save with ctrl + o and quit with ctrl + x
Configure Midi interface in Hatari.
Open Hatari Setup menu : AltGr + F12
Select "Devices".
Browse "Read Midi input from file" and "Write Midi output to file" and set it to midiCxD0
Save and repeat for each config file.
The case has been modeled with Onshape . You need a free account to copy and edit the 3D model : ATAPI model
This project is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International . Read carefully the license terms.
This is a fairly complex model with 276 steps in total, so take your time to study it in detail before modifying it. This is my first big 3D model, it can surely be improved. Feel free to send me comments. I have tried to make it as 3D printer friendly as possible and have done quite a lot of trials (I have printed the equivalent of 4 cases during the development ) before finalizing the model.
So, enjoy and keep me informed of your builds !
You have different "Part Studio" in the project :
ATAPI case (full model for RPi5 less the power switch)
Power switch,
Plate RPi3 (replacement of ATAPI case Back plate right),
Plate RPi4 (replacement of ATAPI case Back plate right),
Blank plates.
Each "Part Studio" contains several parts. In total you need 15 parts to print the full case :
Bottom case
Top case keyboard
Top case function keys
Top case back
Accessories bottom
Accessories top
Audio washer
Back plate left
Back plate right
Side plate midi
Logo plate
Switch plate
Switch Button
Switch Shaft
Switch Bottom
There is also harware parts ( KB, RPI5, USB hubs ...) which are there as dimensional references for the construction, not for print. There are identified with a different color than the case.
Each elementary steps to build a part (sketch , extrude, filet, chamfer ..) are grouped into one folder. For example all the steps to build the part "Top case keyboard" are stored in the "Top keyboard" folder ... with the exception of the "Bottom case" which has steps divided into 2 folders : all the base elements are in the "Bottom case" folder, and the keyboard pilars are in the folder "Hardware".
Be carefull that many sketches are dimensionaly relatives and position linked to other sketches.
Let's dive into basic dimensions change.
If you change the keyboard reference :
In "Hardware" folder, sketch "Keyboard", check that your keyboard dimensions are the same as the Ranked S60 Supernova and that you have enought clearance for the keys.
If it's not the case you will have to adjust first the sketch "Keyboard cut" in "Top keyboard" folder and then modify the sketch "Keyboard" in "Hardware" folder .
The keyboard PCB is placed 8mm bellow the "Top case keyboard", if your keys are deeper or smaller, you may need to adjust the "offset" in "Extrude 72" .
If the keyboard PCB is more than 1,5 mm deep change extrude "depth" in "Extrude 72"
Adjust in sketch "KB mounting" in "Hardware" folder , the mounting holes position of the keyboard.
Depending on the size of the keyboard screws, you may need to adjust the diameter in "Screws M2x6" sketch.
If you change the audio interface reference :
In "Accessories support" folder adjust the screws position, inserts diameter and PCB supports of the sketch "Plate bottom".
"Extrude 106" set the height of the audio card insert holes. If you have add more inserts in the sketch "Plate bottom", add them to the extrusion list.
"Extrude 111" set the height of the audio card support.
In "Back plate left" folder adjust the sketch "USB audio cut" to the new dimensions.
If you change the USB hubs references :
In "Accessories support" folder adjust the screws position and inserts diameter of the sketch "Plate top"
In "Accessories support" folder adjust the position of PCB supports "Pilars USB 3" and "Pilars USB 2"
"Extrude 107" and "Extrude 108" set the height of the insert holes and support pilars of respectively USB 3 and USB 2 hubs.
In "Back plate left" folder adjust the sketch "USB audio cut" to the new dimensions.
If you change the midi plugs reference :
In "Side plate Midi" folder adjust the dimensions of the sketch "Midi".
If you change the Ethernet plug reference :
In "Back plate right" folder adjust the dimensions of the sketch "Connectors cut".