---
# System prepended metadata

title: How to build a MiSTer FPGA on your own?
tags: [FPGA]

---

You don’t have to literally design the [FPGA board](https://www.onzuu.com/category/embedded-complex-logic-fpga-cpld) yourself to “build a MiSTer” — almost everyone assembles a MiSTer system from ready-made parts and then installs the MiSTer software stack.

![Mister-FPGA](https://hackmd.io/_uploads/ByLv9Xgfbl.jpg)

I’ll walk you through the realistic DIY route:

**1. Understand what a MiSTer actually is**

A MiSTer setup is basically:

1. Terasic DE10-Nano FPGA dev board (the heart, with Intel [Cyclone V](https://www.vemeko.com/cyclone-v/) [FPGA](https://www.ampheo.com/c/fpgas-field-programmable-gate-array) + ARM [SoC](https://www.ampheo.com/c/system-on-chip-soc)).
2. SDRAM add-on board (for many arcade / console cores).
3. Optional IO board (VGA, analog audio, [fan](https://www.onzuu.com/category/fans), buttons, etc.).
4. Optional USB hub board (for controllers, keyboards, Wi-Fi, etc.).
5. A microSD card with the MiSTer Linux image and cores.
6. Case, fan, PSU, and cables.

“Building your own MiSTer” = getting (or cloning) those pieces and putting them together.

Designing your own DE10-Nano alternative PCB is possible but much harder and not a beginner project.

**2. Absolute minimum hardware you need**

At the simplest:

* DE10-Nano board
* MicroSD card (32 GB or more is nice)
* 5V [power supply](https://www.onzuu.com/category/external-internal-power-supply) (DE10-Nano usually ships with one)
* HDMI cable + display
* USB OTG adapter + USB hub (or the MiSTer USB board)
* [Keyboard](https://www.onzuu.com/category/keyboards) / gamepad

Many cores also strongly recommend:

* 128 MB or 32 MB SDRAM MiSTer module

So the minimal cheap build is:

DE10-Nano + SDRAM module + microSD card + basic USB hub + HDMI + controller

**3. Optional, but very nice to have**

These things turn it from “bare dev board” into a polished console:

* IO Board (Analog IO board or Digital IO board)
  * VGA output, 3.5 mm audio, fan power, extra buttons, etc.
* Official MiSTer USB hub or a good external USB hub
* Case (3D-printed, metal, acrylic, etc.)
* Small fan + heatsinks for cooling

**4. Step–by–step: assemble a basic MiSTer**
**Step 1 – Get a DE10-Nano**

Buy a Terasic DE10-Nano from an authorized reseller.
(Most MiSTer documentation assumes this exact board.)

**Step 2 – Add MiSTer SDRAM module**

* Get a MiSTer-compatible SDRAM add-on (plug-in board).
* Power off DE10-Nano.
* Align the SDRAM module with the GPIO header (commonly labeled JP1).
* Carefully press it in so it sits firmly, pins all aligned.

**Step 3 – (Optional) Mount IO board & USB board**

If you bought an IO + USB board stack:

* IO board goes on top of the DE10-Nano using the long pin headers.
* USB board usually attaches on the bottom or side, depending on revision.
* Mount with standoffs/screws so nothing flexes.

If not using official boards:

* Use a USB OTG adapter cable on the DE10-Nano’s micro-USB OTG port.
* Plug in a powered USB hub for keyboard, controller, Wi-Fi, etc.

**Step 4 – Cooling and case**

* Add a small 40 mm fan blowing across or onto the FPGA.
* Add heatsinks to the warm chips if desired.
* Mount the whole stack in a case (3D printed designs and commercial cases exist), or at least on a non-conductive surface with standoffs.

**5. Install MiSTer software on the microSD card**
**Step 1 – Download MiSTer image**

On a PC:

1. Download the MiSTer main image (a .img file) from the official MiSTer repositories (usually the main GitHub / project page).
2. Use an imager like:
* balenaEtcher
* Raspberry Pi Imager (with “Use custom”)
* Or dd on Linux

**Step 2 – Flash the SD card**

* Insert the microSD in your computer.
* Flash the MiSTer image to it.
* Safely eject the card.

**Step 3 – First boot + update scripts**

1. Insert the microSD card into the DE10-Nano.
2. Connect:
* Power
* HDMI to your monitor
* Keyboard / controller via USB
* Ethernet cable (for fast updating)

3. Power on.
4. On first boot, it’ll create partitions and bring you to the MiSTer menu.
5. Run the update script (like update_all or update) from the Scripts menu:

* This downloads & installs:
  * Cores (console, arcade, computers)
  * BIOS/ROM packs sometimes (depending on legality / script options)
* You’ll then have a working system with lots of cores.

**6. If you truly mean “design my own MiSTer-compatible board”**

That’s a much harder route and only worth it if you:

* Already know [FPGA](https://www.ampheoelec.de/c/fpgas-field-programmable-gate-array) + high-speed DDR3 layout
* Can design and manufacture a board equivalent to DE10-Nano:
  * Cyclone V SoC FPGA
  * DDR3 memory
  * Power supplies for all rails
  * Ethernet PHY, USB PHY, HDMI
* Then port MiSTer’s HPS + FPGA part to your custom hardware

This is not a beginner hardware project. It’s a professional-level board design task.

Realistically, “build your own MiSTer” means:

* Assemble the stack from the DE10-Nano plus MiSTer add-ons.
* Maybe design your own IO board or case, which is a fun DIY project.

**7. Quick checklist: “I built a working MiSTer”**

You can happily say you’ve built one yourself once:

*  DE10-Nano in hand
*  SDRAM MiSTer module installed
*  SD card flashed with MiSTer image
*  USB input (keyboard/gamepad) connected
*  Cooling (fan) installed
*  Update script run (cores downloaded)
*  You can load at least one core (e.g., NES, Genesis, Minimig, etc.) and play something