I believe this is a post for a smaller group of (somewhat nerdy) people, so I will instead write it in English, rather then in Swedish towards the usual Swedish blog audience. Enjoy!
2021-11-08: First public version of this post. 2021-11-10: Add information about (and pictures of) the I/O back panel. Correction of some layout and language mistakes. 2021-11-11: Cleaning in the page to make more intuitive. Adding some more pictures. 2021-11-12: Fixed some of the pictures to larger once. Minor text editing. 2021-11-25: Installed a modified (and externally powered) USB hub. 2021-11-29: Project paused. Trying to troubleshoot why MemTest give me errors. Order a new SDRAM from 🇬🇧 (misterfpga.co.uk). 2022-01-06: New SDRAM arrived, but with similar performance issues. Ordered a small 25x25 fan if the issues could be related to heat. Updated the MiSTer.ini file to disable the original logo. Ordered a CEC blocker to rule out of that can be causing the USB hub issue. 2022-01-14: The CEC blocker didn't do any difference for my build. Same issues remains. Disconnect of the PS1 Power supply seem to give me better MemTest results.
❌ Current non solved issues with this build
- When the PS1 PSU is uses the MemTest spot errors now and then. Also the USB hub is acting strange and power of and/or doesn’t start sometimes.
- Work around: Disconnect PS1 PSU and use the original one in the meantime. (This will disable the power button.)
- Also the PS1 PSU use approx 10 to 11 Watts, compared to the 6 to 7 Watts by the original DE10-Nano Power brick.
- Work around: Disconnect PS1 PSU and use the original one in the meantime. (This will disable the power button.)
- Connecting the HDMI-cable seem to power of the USB hub sometimes. When the HDMI gnd connects to DE10-Nano.
⏱️ Todo / Future backlog
- Fix PSU issues. If possible 🤔
- New down-step solution?
- Another PS1 power supply unit?
- Accept the defeat and use the DE10-Nano power adapter.
- Experiment with small fan(s). Because I can burn myself on the CPU heatsink. Figures that it could be a bad thing for the board in the long run.
- Optional: Make the Reset button on the Playstation case work (transistor solution connect to the I/O board P3?).
In my (from time to time) series with tech DIY guides (like the earlier Pacemaker SSD upgrade), I will here post an overview guide of my latest project. I reveal to you, *drum roll*… The MiSTer Station (whoops, you already knew that from the title). You can call it a Playstation 1 (aka. PSX, PS1) dyi case mod, if you like.
Pictures of the final result
Story behind the build
Main target were to build a gaming computer in a Playstation case. With the exterial look as intact as possible but work as modern tech redarding the Input/Output. For convenience USB and HDMI output was a minimum requirement.
With an already built-in PSU I early desided to keep this and the original power cord. This ment I was restricted to a 10 W for the internal parts.
After some research the choice fell on the DE10-Nano (5V, 2A) and the MiSTer project. I like the thought of accurate hardware as the backbone to run games on. Since some skilled programmers like FPGAzumSpass (Twitter, Youtube, Patreon) and Laxer3A (Twitter, Patreon) work(ed) on the MiSTer PSX core. It would of course be nice if this build could play PS1 games. And maybe, just maybe I could pick up some of the long forgotten PS1 games from the bottom of that old nostalgic box in the attic when this is all done.
Wait, what?! Not familiar with the MiSTer FPGA? OK, let’s start from the begin. I then recommend you to read a bit on the retro game phenomena Here, Here and/or watch some good YouTube clips on it, like this one bellow, before continuing this article:
My main concern before the start of this build was the power consumption of the Terasic DE10-Nano board, together with all the additional accessories like:
- a non-powered USB splitter or USB hub inside the case.
- the front port solution with the controls, and
- an analog extention I/O board.
I couldn’t find specifications for the majority of these parts before the purchases.
Playstation hardware – Space within the case.
I know that it is actually a lot of space to work with but from my previously case mod (a Raspberry Pi 4 in a NES). I also know that cable plugs sticking out of the board and the cables themselves take up tremendously more space then it initially look like.
- MiSTer project
I did know very little of this at the beginning of the build. Was there any restrictions, missing or buggy software?
I am in no means a master of soldering so bear with me 🙂. It can take a while and the result may vary, but will patience this should not be a major risk. In worst case I brake something and will pay extra for additional parts and just start over. For example the DE10-Nano itself (as I later on would be painfully aware of. Woops.).
- Playstation hardware
I did not knew a whole lot at the beginning of PSU or the controller ports, but I will gain more knowledge of the PS1 PSU and the electronic parts, as well as the plastic case itself, during the process. Will it output stable enough power? Will it be able to hold the parts in a good way (like via existing screw holes), or will I be able to use the control ports at all, etc?
Knowledge gained from a previous build of an NESPi 4 helped a lot.
Good, now when that is over with, we can begin to look at the accual hardware and the building process.
DE10-Nano schematic: https://www.intel.com/… /de10-nano-board-schematic.html
2.1 Now to the hardware DIY part of things
…and as always when you try to mix things together, it is good to have a recipe in hand. Here is my list of “ingredients”, split in three parts: Base, Full & Front ports:
- 1 pcs DE10-Nano board. I tried ordering from both MiSTer addons and Mouser. The later came without smashed cover glas, so I may use Mouser again if I were to buy another one in the future.
- Playstation 1 console. (SCPH-7002 in my case.. pun intended)
- SD Card. (8 GB minimum)
- RAM module (I choose 128 MB)
- Down-step LM2596 (max 3 A) …or XL6009/DSN6009 (max 4 A) or XL4005/Xl4015 (max 5 A) that should work even better.
- OTG-adapter with Micro-Usb
- Non-powered USB hub – (I choose “Deltaco PRIME USB 3.0 hub, 2xType A“)
- Soldering equipment/accessories of choice.
- Some sort of back plate material. (I used some sort of white plexiglas, 3 mm thick.)
- Powered External USB hub. For Bluetooth adapter, keyboard and WiFi adapter. Therefore 4 (or more) USB ports are recommended.
- 40-pin GPIO-extention cable
- 12×12 mm Heatsink (could not hurt right?)
- RAM heatsinks.
- Power cord, if you want the option to also use the DE10-Nano standard power socket for test or whatever purpose. (I also included an unnecessary switch in my build, don’t do that if you are looking for space optimisation.)
- IO Board (I used the MiSTer FPGA I/O board (v.6.1)
- Real Time Clock (RTC v.1.3) board
- CR1220 battery (if not included in the RTC delivery)
- 3,5 mm 10 cm angled audio cable
- Chassi/panel mounted 3,5 mm stereo audio out
- Some extention cables and adapters.
- USB to PS1 adapter Game USB Dual Player Converter Adapter for PS2 USB
- 1 or 2 original Playstation controllers (of course)
- Flat jumper cables. I mostly used 20 cm female – male but buy a bunch of different lengths before you begin.
2.2 Honourable mentions:
Inspiration for the front control port solution came from a Playstation Raspberry Pi mod on Hackster.io.
I also used these webshops to buy specific MiSTer hardware from:
2.3 How-to fit all the hardware parts in there
If you are going to install an I/O board and/or use the GPIO ribbon extention, you need to cut these “plastic towers” as well:
And also take the plastic pin out and cut of some of its holder, like this. Especially if you use the same USB mounting cable as me (See the chapter about the I/O back panel):
Maybe a heat sink on my LM2596 would be a good idea🔥. Even if I only down step it by 2.41 V (7,56 to 5,15) on ~2A. Maybe I should switch it to a better down step (XL6009 or XL4015) entirely, just to sleep better at night?
Not to high, because the network (Rj45) port will hit the top cover. In contrast it maybe will be a good idea to keep the board a bit tight to the top part over that network port just so that the DE10-Nano can’t move insite the Playstation case later on.
Note: If you will you can use the extra space under the board itself (for cable management or whatever) like USB cable or the extention 40pin ribbon cable (see chapter for the I/O board).
The front ports
Take a deep breath and heat up your solder iron. Note that a PS1 controller (sometimes) got 8 pins but we only use 7 here (1-6 & 8). For the rest I let the pictures (A, B, C) below talk for themselves:
Now back to the topic of power consumption (remember my risk Power consumption?). I write my conclusions down bellow and some numbers for whomever will find it helpful:
I bought myself an EU socket watt measurement tool, and a USB Volt/Ampere meter named “Charger Doctor“. And with internal 5.15 V, (down-steped from PSU voltage output 7,56 V, but should have been be 7,4 V according to Retroconsoles.fandom.com) from my PSU (being an EU plug running on 234-237 W), it show me these results:
The MiSTer (DE10-Nano with 128 RAM) with that PS1 PSU, use around 8,60 W (idle), 9,15 W (max) during startup, without any USB devices plugged in. With a USB adapter (micro to USB-A) adds 0,16 W (total 8,76 W). Adding (to the adapter) a non-powered 2 ports USB-hub lower the Watts to a total of 8,52 W. If I continue to add my blue PS1/PS2-hub (2 ports) to the USB-hub, it will use a total of 9,39 W (idle). Adding one PS controller (SCPH-1200) adds 0,03W and adding another (SCPH-10010) adds 0,44 W to the equation. Only one SCPH-1080 controller connected adds around 0.18 W. Note that I have not plugged in the HDMI nor started anything from the start menu during this test.
If I do so and start the DE10-Nano without USB devices connected but with the HDMI attached, it use 9,35 W (max) during startup, and 8,95 W (idle).
Also worth noting is that my BT USB dongle (CSR 4.0) adds almost 1 W when it is plugged in (while searching for devices to be paired with).
Only the PS1 (SCPH-7002) plugged in, not started will use 1,06 W.
The usb-micro port outputs ≈4,6 V with my 2 ports USB hub connected (with empty ports).
Also, if I add the down bellow I/O board (+ USB hub, HDMI, Analog audio cable, Front port hub and a SCPH-1200 controller.) it will reach over 10W (10.5 W) during start up sequence. But it seem to work fine (even under the pressure of some SNES Super Mario World play).
[Warning and disclaimer]
I did this so you don’t need to. Because I later found out I needed to swap out the SDRAM, since mine I did this test on were broken. I can’t say for sure that it weren’t the test that broke my RAM module.
How I did it: I ran MemTest in 45 minutes with clock speed at 167 MHz. (Yes, it failed every try.)
Start value at 10,98 W and the Max power consumption (watt/effect) at the end of the tests were 11,50 W.
Analog I/O Board
A good to have road map, to any electric DYI build, is the schematics. For the IO analog board v.6.1 you can find it Here.
Removed the fan for space optimasation, reduction of moving parts and effect efficency. I added a heatsink, because – could not be a bad thing.
One issue. The eurorack/ribbon connection doesn’t fit if we try to put the top cover part on. Solution 1: strip open mechanism of the case so that the CD cover will be unable to open. Not a nice one, so I went with Solution 2 instead which is modification of the ribbon cable like this:
Modified ribbon connector:
OK ..I confess, this is a bit overkill for me to put an I/O board like this inside the MiSTer Station. Because it is mostly for the audio out functionality this sounded like a good idea in the first place. But hey, this is more “retro proof” (opposite of future proof) this way with the analog video out in there in case of emergency. I will go full retro someday. The audio out port is worth it anyway now that I can only need a computer screen and some sort of headphones or audio receiver.
Now I got an other problem. The USB adapters, USB hub and USB cables take up tremendous amount of the space left in the case. And I haven’t yet got the back ports in place. Time to be creative.
Mounting I/O ports to the back.
First we need to add and create a new back plate for the I/O of your choice. In my case: one female USB and one female 3.5 mm analog audio out.
Start by find yourself a plastic/plexi board of that you have available.
Then saw/cut/file it so it will fit perfect in the case. As high as possible, put still low enough so we can close the case all together.
When you are going to close the top CD cover, you might realise that it doesn’t close properly. It is because the tight space here:
It is to narrow to the back plate, so I recommend you to cut in the case itself rather than in the home made back cover. End result after some dremel work:
Drilled holes to fit screws and audio jack. Incl. drilled sink in holes for screws not sticking out to much from the white plastic. Glued extra peices of plastic as support of the later force of cable insertions.
At last I needed to eliminate a grey cog of with my Dremmel. Just to be able to close the CD top cover lid, and not hit the inside of the USB connector (also carved in the black plastic of the USB, next to the screw as well, just to be sure).
Power vs USB hub. (Aka installing USB hub without back powering the MiSTer.)
One new issue appeared when I connecting my powered (5V 2A) USB 2.0 hub (Gembird UHB-U2P7-03) to MiSTer/DE10-Nano. When I shutdown the Playstation PSU the MiSTer didn’t shutdown with it, due to the 5V via the USB hub.
1. Cut the USB hub cord in half! 🙂
(…or just cut the red wire inside of the cable, if you are not going to use shrinking tubes as I did.)
2. Then solder it together without the red VCC +5V connected. See the USB pinout schematic for details.
3. Test the wires so there isn’t any shortages.
Not yet finished – But the idea is to control the I/O board P3, btn_reset pin3 (=pin 17 on GPIO1) & GND pin5, with a transistor (2N2222, datasheet) via the Playstation PSU (7,56 V pin1, & GND pin5) when activated by the momentary reset switch.
Heatsinks – Try to handle the heat in the closed case.
Ran the MiSTer MemTest for with an open CD top lid/cover. And it seemed stable first at 122 MHz (after about 2.5 hours). I then closed the lid and it first ran at 122 then down to 120, and finally ended up at low 110MHz. Got Informed by Nat from https://MiSTerFPGA.co.uk/, that the “fastest any core needs is 126Mhz, if the speed never drops below this it does not matter.
Will experiment with a chassi fan later on to find out if it does any difference to the SDRAM performance.
SEPA MFB25B05 Axial fan 5 V/DC 23 l/min (L x W x H) 25 x 25 x 6.5 mm
3. Software is what make the hardware worth it.
If you are like me, sitting and waiting for tech parts to arrive to Sweden in the year of 2021, you can always do a lite custom MiSTer logo in the meanwhile …or just use mine:
MiSTer image to a SD card
“Mr. Fusion is a tiny, custom Linux distribution designed to run on the DE10-Nano and install MiSTer.
It comes in the form of a compact image that you can download and flash onto an SD card of any size with a tool like Apple Pi Baker, balenaEtcher, Win32 Disk Imager or even dd.” – https://github.com/MiSTer-devel/mr-fusion
TBA Updater script for MiSTer
Online INI generator: https://ini.misterkun.io/ (unavailable in November 2021).
ROMS (.bin .cue)
Create copy of your PlayStation 1 games by for example with the classic programs like:
- Nero Burning Rom
Need more info? Search via DuckDuckGo (or Google) to find more detailed information about settings and how-to-use guides about this topic. This blog post is already a handful to read through.
Custom background picture and logo
I first created the wallpaper template (3840 x 2160) that I used together with Paint.net to add a custom background with a new MiSTer Station logo. This is it:
Then to remove the existing logo I hide the current one with a variable setting in the MiSTer.ini (/media/fat/).
; 0 - disable MiSTer logo in Menu core logo=0
Tips: Find some wallpapers to use with the above template here:
MiSTer Super Attract Mode (SAM) – A screen saver script for the MiSTer.
“Like a screen saver, MiSTer SAM comes on when your MiSTer is idle. Then SAM will launch a random game from your library every few minutes. If you like a game that’s currently playing, just pick up your controller and push a button, press a key, or move the mouse. SAM will start another game once you return to the main menu. Then the gaming tour begins again!” – https://github.com/mrchrisster/MiSTer_SAM (2021)
Forum post on the topic https://misterfpga.org/viewtopic.php?t=2493
Playstation MiSTer FPGA core. Is it a good idea? Yes. Is it a total awesome idea? Absolutely! It it finished in the time I write this? Nope.
Conclusion it is worth supporting the developer with a few bucks. Mr. obvious: “Go find and support FPGAzumSpass via Patreon.”
MiSTer IO Board v6.1 with Fan
“Configuration of the video output signal on the IO board is controlled via the MiSTer.ini file, more information on how to configure and download of the MiSTer.ini file see the MiSTer.ini configuration page.” – (2021, misterfpga.co.uk)
Bonus: As a celebration to the Sony PlayStation you can look at this massive (1:22:25) history lesson:
Thank you and good luck!