<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>fpga Archives - Krystof.IO</title>
	<atom:link href="https://krystof.io/tags/fpga/feed/" rel="self" type="application/rss+xml" />
	<link>https://krystof.io/tags/fpga/</link>
	<description>Numerous hobbies, various ramblings.</description>
	<lastBuildDate>Mon, 29 May 2023 20:37:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>

<image>
	<url>https://krystof.io/wp-content/uploads/2019/10/cropped-site-icon-low-32x32.jpg</url>
	<title>fpga Archives - Krystof.IO</title>
	<link>https://krystof.io/tags/fpga/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MiSTer FPGA Initial Setup and Network Mounting</title>
		<link>https://krystof.io/mister-fpga-initial-setup-and-network-mounting/</link>
					<comments>https://krystof.io/mister-fpga-initial-setup-and-network-mounting/#respond</comments>
		
		<dc:creator><![CDATA[Eric R. Krystof]]></dc:creator>
		<pubDate>Sat, 08 Apr 2023 02:24:56 +0000</pubDate>
				<category><![CDATA[Retro Gaming]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Emulation]]></category>
		<category><![CDATA[Build Log]]></category>
		<category><![CDATA[fpga]]></category>
		<guid isPermaLink="false">https://krystof.io/?p=2216</guid>

					<description><![CDATA[<p>Gathering a bunch of parts and building a MiSTer FPGA kit and case and performing some initial setup and network share mounting.</p>
<p>The post <a rel="nofollow" href="https://krystof.io/mister-fpga-initial-setup-and-network-mounting/">MiSTer FPGA Initial Setup and Network Mounting</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-what-is-mister-fpga">What is MiSTer FPGA?</h2>



<p>I like to think of MiSTer FPGA as <em>hardware emulation</em> vs the <em>software emulation</em> I&#8217;m used to.  The MiSTer suite of cores and utilities are designed to be installed on the Terasic DE10-Nano FPGA board, and various add on boards to support more USB components or video/audio output.  MiSTer FPGA is a project that coordinates different &#8216;cores&#8217; (e.g. old computer systems or game consoles) and applies them to the FPGA board, effectively instructing the FPGA board to act as the chipsets of these old retro computer and console systems. </p>



<p><em>FPGA</em> itself stands for &#8216;Field Programmable Gate Array&#8217;.   It is a type of integrated circuit that can be programmed by the user to perform specific functions.  So think of it like a blank slate chip that you can program to act as another chip.  That&#8217;s how we do the hardware emulation.  Since this reprogramming of the chip can happen without having to manufacture a new chip, we can use the term &#8216;Field Programmable&#8217; &#8211; you can reprogram it <em>in the field</em>, outside of a chip manufacturing plant.</p>



<h2 class="wp-block-heading">Why MiSTer FPGA?</h2>



<p>I wanted to try MiSTer FPGA because I&#8217;ve never messed with <em>hardware</em> emulation.  It&#8217;s always been on the real deal or with software emulation (like DOSBOX or VICE).  My understanding is that lag is nearly non-existent when compared to emulators, and the &#8216;cores&#8217; (the systems we&#8217;re emulating) run more true to the original hardware than their software emulating counterparts.  Want to know some of the cores directly supported?  Check out the <a href="https://github.com/MiSTer-devel/Wiki_MiSTer/wiki/Cores" target="_blank" rel="noreferrer noopener">core list here</a>.</p>



<p>My motivation for doing this is because while I like to have genuine retro systems of the old systems I had as a child, I don&#8217;t care to try to own an Apple IIe, or an Atari ST.  I was a Commodore guy, so while I want to tinker with those systems, I definitely don&#8217;t want to hit up e-bay and start trying to build my own piece-by-piece setup for a system I never owned or had no vested interest in.  (See how I through that line in there?  I never owned a Commodore PET, but I wouldn&#8217;t turn a free one down)</p>



<p>The <a href="https://github.com/MiSTer-devel/Wiki_MiSTer/wiki" target="_blank" rel="noreferrer noopener">MiSTer Wiki</a> page has excellent information, tutorials, and references.</p>



<h2 class="wp-block-heading">The Parts List</h2>



<p>So from the hardware standpoint, we need at a minimum the Terasic DE10-Nano board.  This is the specific model of FPGA board that the open source MiSTer FPGA project software (Mr. Fusion) expects to be installed on, so it&#8217;s a must.  After that you have all sorts of add ons and adapters (adapters to even hook up old console specific adapters like light guns) to enhance your retro gaming experience.  I went with the following (links to where you could find them included &#8211; not necessarily the only place, but at least one place)</p>



<ul>
<li><a href="https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&amp;No=1046&amp;PartNo=8#order_list" target="_blank" rel="noreferrer noopener nofollow">Terasic DE10-Nano board</a> &#8211; The bare minimum as stated above.  I ordered mine from Terasic directly.</li>



<li><a href="https://misterfpga.co.uk/product/usb-hub-for-mister-fpga/" target="_blank" rel="noreferrer noopener nofollow">USB Hub V2.1 for MiSTer</a> &#8211; This gives us more USB ports to connect keyboards, mice, joysticks, etc. to the Terasic board.  It&#8217;s a powered HUB that is designed to mount underneath the Terasic.  It comes with a splitter power cable to split your power supply between the USB board and the Terasic <em>(but if you use the digital IO board you don&#8217;t use the splitter, see that part for more detail)</em></li>



<li><a href="https://misterfpga.co.uk/product/mister-sdram-128mb-module/" target="_blank" rel="noreferrer noopener nofollow">128MB SDRam Module</a> &#8211; Not required for all the cores, but it is required for enough of them that I wanted to mess with.  This slides into the top part of the Terasic board.  You can see the <a href="https://github.com/MiSTer-devel/Wiki_MiSTer/wiki/Cores-that-use-SDRAM" target="_blank" rel="noreferrer noopener">cores that require SDRam here</a>.</li>



<li><strong>I/O Boards:</strong> There are typically two I/O boards that people use for this.  I&#8217;m going to try both, but you only install one at a time.  Generally, for those that want to stream HDMI but play on a CRT, you&#8217;ll get the Analog board.  The Digital board offers some extra expansion capabilities, though.  Regardless of which one you get, <strong>this board sits on TOP of the Terasic, so when combined with the USB hub below, the Terasic is in the middle.</strong> Of note are the three switch buttons on top to easily access Reset, OSD (On screen display), and user defined functions.  Cases for these are also available, and assume you have the standard 3 board setup (USB board + Terasic board + IO Board)
<ul>
<li><a href="https://misterfpga.co.uk/product/mister-digital-io-board/?attribute_fan-type=Noctua+NF-A4x10" target="_blank" rel="noreferrer noopener nofollow">MiSTer Digital IO Board v1.2</a> &#8211; The MiSTer FPGA Digital IO Board v1.2 provides the following features: a dedicated power switch to turn the unit on and off with over-voltage protection, a 3.5mm audio jack for ADC In (Tape Input) a separate ADC-In addon board is not required, 3.5mm&nbsp;Mini-TOSLINK &amp; Digital TOSLINK Connectors, a secondary microSD card slot the functionality depends upon the core being used, a fan speed control jumper providing 3.3 volts or 5 volts, three status LEDs (red, yellow, green), three large push buttons providing system reset, on screen display menu and game reset, an expansion connector in the form of a USB 3.0 connector however this is not for standard USB devices. <strong>If you use this board, it comes with a cable so you power your entire setup through this board, power goes through the GPIO pins into the Terasic, and then you use the included barrel cable to go from the Terasic to the USB board.  So one power cable powers all three boards connected together.</strong>  <strong><a href="https://misterfpga.co.uk/product/mister-case-acrylic/?attribute_mister-case-colour=Neptune+Blue&amp;attribute_io-board-type=Digital+IO+v1.2" target="_blank" rel="noreferrer noopener">Acrylic Case Link</a></strong></li>



<li><a href="https://misterfpga.co.uk/product/mister-fpga-analog-io-board/?attribute_fan-type=Noctua+NF-A4x10" target="_blank" rel="noreferrer noopener nofollow">MiSTer Analog IO Board v6.1</a> &#8211; The MiSTer FPGA Analog IO board v6.1 includes the following useful features: a VGA (DB15) connector allowing for the output of a VGA/RGB/YPbPr signal depending on the cable being used, a 3.5mm audio jack with Mini-TOSLINK providing analog audio output and digital audio output, a secondary microSD card slot the functionality depends upon the core being used, a fan speed control providing a 3.3 volt / 5 volt selector jumper, a status LED control jumper allowing switching on or off the built in LEDs, a Sync-on-Green switch, three status LEDs (red, yellow, green), three large push buttons providing system reset, on screen display menu and game reset, an expansion connector in the form of a USB 3.0 connector however this is not for standard USB devices.  <strong><a href="https://misterfpga.co.uk/product/mister-case-acrylic/?attribute_mister-case-colour=Neptune+Blue&amp;attribute_io-board-type=Analog+IO+v5.5+%28Or+Newer%29" target="_blank" rel="noreferrer noopener">Acrylic Case Link</a></strong>
<ul>
<li>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 <a href="https://github.com/MiSTer-devel/Wiki_MiSTer/wiki/Configuration-Files" target="_blank" rel="noreferrer noopener">https://github.com/MiSTer-devel/Wiki_MiSTer/wiki/Configuration-Files</a> configuration</li>
</ul>
</li>
</ul>
</li>



<li><strong>Wifi/Bluetooth USB Dongles</strong> &#8211; Generally, I think you can use whatever ones you may already have.  Terasic sells some from their site, I used some I already had.  They fit nicely into the USB board to give you connectivity as you desire.  Not every dongle dangles properly, so here are some recommended adapters for <a href="https://mister-devel.github.io/MkDocs_MiSTer/basics/wifi/" target="_blank" rel="noreferrer noopener nofollow">Wifi </a>and <a href="https://mister-devel.github.io/MkDocs_MiSTer/basics/bluetooth/" target="_blank" rel="noreferrer noopener nofollow">Bluetooth</a>.</li>
</ul>



<p>I also picked up some more &#8216;odd&#8217; add ons for this as well, more specific to my gaming taste:</p>



<ul>
<li><a href="https://ultimatemister.com/product/mister-snac-iec-c64/" target="_blank" rel="noreferrer noopener nofollow">MiSTer SNAC-IEC CBM 1541 Connector</a> &#8211; I believe with this I can hook up a real 1541 drive to the kit and use it with the C64 core. </li>



<li><a href="https://ultimatemister.com/product/ultimate-deamon-pro-dual-genesis/" target="_blank" rel="noreferrer noopener nofollow">Ultimate Dameon x2 Player MiSTer FPGA adapter</a> &#8211; The&nbsp;<strong>Ultimate Deamon PRO USB Dual Encoder</strong>&nbsp;for ATARI / SEGA MEGADRIVE / GENESIS.  This small form-factor USB adapter makes it possible to use SEGA MEGADRIVE / GENESIS controllers on your PC (Windows, Mac OS X, Linux), Raspberry Pi or MiSTer. The adapter has a&nbsp;<strong>native 1ms/1000Hz polling rate</strong>&nbsp;so input lag is minimal (the average is 0.75ms with a wired controller). Fully assembled in a Aluminium enclosure and includes&nbsp;<strong>USB-C cable</strong>&nbsp;to connect this adapter to your favorite&nbsp;setup.  (from <a href="https://ultimatemister.com/" target="_blank" rel="noreferrer noopener">ultimatemister.com</a>)</li>



<li><a href="https://misterfpga.co.uk/product/mister-real-time-clock-board-rtc/" target="_blank" rel="noreferrer noopener">MiSTer RTC Real Time Clock Board 1.4</a> &#8211; For cores that use a clock, mainly if your FPGA kit isn&#8217;t going to be internet connected for automatic time syncing, this one&#8217;s for you. I don&#8217;t believe you need this if you&#8217;ll have internet connectivity, though.</li>
</ul>



<h2 class="wp-block-heading" id="h-putting-the-parts-together">Putting the parts together</h2>



<p>While you don&#8217;t *need* a digital IO board or USB hub connected to your DE10-Nano, it sure makes things easier.  Our final configuration when this is setup will be the DE10-Nano sandwiched in between the USB hub board on the bottom, and the digital IO board on the top.  Wrap the acrylic case around it and we&#8217;re done.</p>



<h3 class="wp-block-heading">A note on orientation.</h3>



<p>When I say &#8216;top&#8217; or &#8216;right&#8217;, I&#8217;m orienting my Nano like the pictures on Terasic&#8217;s website.  The ethernet adapter is on the right side when the board is facing up:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" src="https://krystof.io/wp-content/uploads/2023/04/image-5-1024x779.png" alt="" class="wp-image-2231" width="512" height="390" srcset="https://krystof.io/wp-content/uploads/2023/04/image-5-1024x779.png 1024w, https://krystof.io/wp-content/uploads/2023/04/image-5-300x228.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-5-768x585.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-5-1170x891.png 1170w, https://krystof.io/wp-content/uploads/2023/04/image-5-585x445.png 585w, https://krystof.io/wp-content/uploads/2023/04/image-5-1320x1005.png 1320w, https://krystof.io/wp-content/uploads/2023/04/image-5.png 1390w" sizes="(max-width: 512px) 100vw, 512px" /></figure></div>


<h3 class="wp-block-heading">Heatsink</h3>



<p>Nothing wrong with that.  Picked mine up from <a href="https://misterfpga.co.uk/product/mister-fpga-ultimate-heatsink/" target="_blank" rel="noreferrer noopener nofollow">https://misterfpga.co.uk/product/mister-fpga-ultimate-heatsink/</a>, made to fit the Cyclone V SoC on the DE10-Nano board.</p>


<div class="wp-block-image">
<figure class="aligncenter size-medium"><img decoding="async" loading="lazy" width="300" height="208" src="https://krystof.io/wp-content/uploads/2023/04/image-300x208.png" alt="" class="wp-image-2224" srcset="https://krystof.io/wp-content/uploads/2023/04/image-300x208.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-768x533.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-585x406.png 585w, https://krystof.io/wp-content/uploads/2023/04/image.png 877w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>


<h3 class="wp-block-heading">USB HUB Board</h3>



<p>The USB Hub board sits below the DE10-Nano, and you&#8217;ll need to remove the standoffs from the Nano (I gently twisted with pliers, keep the screws for later but you&#8217;ll need to remove them) so that you can mount the USB board below it.  On the ethernet side of the Nano, on the very top right, there&#8217;s the USB-Micro style OTG (On The Go) port, which is how we connect the HUB to the Nano.  My board comes with a slick adapter that plugs into four pins of the USB board:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-3.png" alt="" class="wp-image-2229" width="323" height="297" srcset="https://krystof.io/wp-content/uploads/2023/04/image-3.png 646w, https://krystof.io/wp-content/uploads/2023/04/image-3-300x275.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-3-585x537.png 585w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">The adapter that joins the USB board to the Nano. Top is for the Nano, bottom is for the USB board.</figcaption></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-1.png" alt="" class="wp-image-2226" width="278" height="280" srcset="https://krystof.io/wp-content/uploads/2023/04/image-1.png 370w, https://krystof.io/wp-content/uploads/2023/04/image-1-298x300.png 298w, https://krystof.io/wp-content/uploads/2023/04/image-1-150x150.png 150w" sizes="(max-width: 278px) 100vw, 278px" /><figcaption class="wp-element-caption">USB Board, Top right side &#8211; four pins where the adapter plugs into.</figcaption></figure></div>


<p>and then zig zags up and out to the plug into the Nano&#8217;s OTG port:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-2.png" alt="" class="wp-image-2227" width="338" height="375" srcset="https://krystof.io/wp-content/uploads/2023/04/image-2.png 451w, https://krystof.io/wp-content/uploads/2023/04/image-2-271x300.png 271w" sizes="(max-width: 338px) 100vw, 338px" /></figure></div>


<p>So with the standoffs screwed into each other (leaving the top screws since we&#8217;ll be putting the digital board on top), we&#8217;re ready to continue.</p>



<h3 class="wp-block-heading">128MB SDRam Addon Board</h3>



<p>I next installed the ram board.  I could have done this prior to the USB board, but if nothing else I wanted to do it before a placed the I/O board on top of the Nano.  The two large SDRam chips face the inside of the nano for my version, and there&#8217;s a label on the opposite side that says &#8216;this side faces outwards&#8217;, so that helps orient you.  The SDRam goes into the pin header on the TOP of the Nano.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-4.png" alt="" class="wp-image-2230" width="375" height="266" srcset="https://krystof.io/wp-content/uploads/2023/04/image-4.png 750w, https://krystof.io/wp-content/uploads/2023/04/image-4-300x212.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-4-585x414.png 585w" sizes="(max-width: 375px) 100vw, 375px" /><figcaption class="wp-element-caption">This side faces inward, towards the center of your Nano.</figcaption></figure></div>


<h3 class="wp-block-heading">Digital IO Board (Or Analog if you have that)</h3>



<p>Next up is the IO Board, but before we install it, <strong>(for Digital IO Boards only),</strong> we need to flip a switch on the Nano.  Namely, SW3, and it&#8217;s right here (in our orientation, SW3 is on the left side of the bank, SW0 is on the right side)</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="616" height="330" src="https://krystof.io/wp-content/uploads/2023/04/image-6.png" alt="" class="wp-image-2232" srcset="https://krystof.io/wp-content/uploads/2023/04/image-6.png 616w, https://krystof.io/wp-content/uploads/2023/04/image-6-300x161.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-6-585x313.png 585w" sizes="(max-width: 616px) 100vw, 616px" /><figcaption class="wp-element-caption">Flip this baby UP.</figcaption></figure></div>


<p>After flipping it on (UP) (and ONLY for the digital IO board &#8211; for the analog IO board, all switches should be down/off), we&#8217;re ready to put the Digital board on top.  Our orientation has the &#8216;green&#8217; LED above the Red LED, this is how the IO board will look when putting it on top of the Nano if you&#8217;re using the orientation we are for our Nano (ethernet port on the right side).  We also put another set of standoffs on top of the Nano for this to rest on.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-143124.png" alt="" class="wp-image-2233" width="381" height="231" srcset="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-143124.png 762w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-143124-300x182.png 300w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-143124-585x355.png 585w" sizes="(max-width: 381px) 100vw, 381px" /></figure></div>


<p>One troublesome thing I noticed was there are more headers (holes) on the Nano then there are pins on the IO board, so you&#8217;ll want to be careful.  With our orientation we&#8217;ve been using, the digital IO board <em>carefully</em> slides into the pins on the Nano. Gently make sure all of the pins line up. On the both top and bottom sides of the Nano, you&#8217;ll have more headers (holes) on the Nano then you actually will pins from the digital IO board.  Here are some shots from the <a href="https://misterfpga.co.uk" target="_blank" rel="noreferrer noopener nofollow">misterfpga.co.uk</a> site that show the differences of top and bottom headers/vs pins:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-7.png" alt="" class="wp-image-2234" width="582" height="370" srcset="https://krystof.io/wp-content/uploads/2023/04/image-7.png 582w, https://krystof.io/wp-content/uploads/2023/04/image-7-300x191.png 300w" sizes="(max-width: 582px) 100vw, 582px" /><figcaption class="wp-element-caption">View on the &#8216;BOTTOM&#8217; side of the nano/io board.  Red LED in front if you have the bottom facing you.</figcaption></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="576" height="378" src="https://krystof.io/wp-content/uploads/2023/04/image-8.png" alt="" class="wp-image-2235" srcset="https://krystof.io/wp-content/uploads/2023/04/image-8.png 576w, https://krystof.io/wp-content/uploads/2023/04/image-8-300x197.png 300w" sizes="(max-width: 576px) 100vw, 576px" /><figcaption class="wp-element-caption">View on the &#8216;TOP&#8217; side of the nano/io board.  Green LED in front if you have the top facing you.</figcaption></figure></div>


<p>At pretty much anytime during this install, we could have turned the whole thing on and tried things out (hooking up a keyboard, HDMI, and power), but we&#8217;re going to cover that later.  For now, on to the Acrylic Case.  (If you&#8217;re not using a case, you can screw the IO board into the brass standoffs it should be touching &#8211; but if you ARE using a case, no screws yet)</p>



<h3 class="wp-block-heading">Acrylic Case</h3>



<p>More parts!  Don&#8217;t worry &#8211; it&#8217;s not uncommon that you will leave here with more brass standoffs than you started with, as individual parts often come with extras.  My case is designed for the digital IO board AND USB board in the mix.  There are other case variants that use the Analog IO board and USB board, naturally.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="631" src="https://krystof.io/wp-content/uploads/2023/04/image-9-1024x631.png" alt="" class="wp-image-2237" srcset="https://krystof.io/wp-content/uploads/2023/04/image-9-1024x631.png 1024w, https://krystof.io/wp-content/uploads/2023/04/image-9-300x185.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-9-768x474.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-9-1170x721.png 1170w, https://krystof.io/wp-content/uploads/2023/04/image-9-585x361.png 585w, https://krystof.io/wp-content/uploads/2023/04/image-9.png 1257w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>


<p>Put the top standoffs into your digital IO board now, before you start building your case walls.  (You can do it afterwards, it&#8217;s just annoying).  Rest the MiSTer on top of the bottom part of the case, and build your walls up by aligning holes to case sides.  The tabs on the case sides slid together easily enough for me.</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="851" height="419" src="https://krystof.io/wp-content/uploads/2023/04/image-10.png" alt="" class="wp-image-2239" srcset="https://krystof.io/wp-content/uploads/2023/04/image-10.png 851w, https://krystof.io/wp-content/uploads/2023/04/image-10-300x148.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-10-768x378.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-10-585x288.png 585w" sizes="(max-width: 851px) 100vw, 851px" /></figure>



<p>The part that was roughest for me was the three little separate plastic buttons that rest on top of the Digital IO board&#8217;s buttons.  I found it easiest to put the buttons in the top side of the case, turn the MiSTer upside down, and align the case top and buttons that way.</p>



<p>With the case top on, and making sure the buttons were in place, I put the four screws in to the top of the case, securing the boards and case all together.  We&#8217;re done assembling our FPGA sandwich!</p>



<h3 class="wp-block-heading">Power setup</h3>



<p>When using this style of kit, where we have the IO board on top of the Nano on top of the USB hub, we really only need to give power to one component, and then we daisy chain power down to the other two boards.  We power the Digital IO board directly, which then gives power to the Nano, then we use the included Male to Male barrel connector to go from Nano to USB board.  So my power side/HDMI side looks like this:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="689" src="https://krystof.io/wp-content/uploads/2023/04/image-11-1024x689.png" alt="" class="wp-image-2241" srcset="https://krystof.io/wp-content/uploads/2023/04/image-11-1024x689.png 1024w, https://krystof.io/wp-content/uploads/2023/04/image-11-300x202.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-11-768x517.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-11-1170x787.png 1170w, https://krystof.io/wp-content/uploads/2023/04/image-11-585x393.png 585w, https://krystof.io/wp-content/uploads/2023/04/image-11.png 1185w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>


<p>Don&#8217;t forget, the Digital IO board also comes with a power switch on the bottom left (a simple slider switch).  I&#8217;m also using an inline switch power adapter, just make sure you&#8217;re turning all the right parts on.  I just leave the digital board switch on and use the inline adapter switch, but you do you. 🙂  After this point, I hook up the HDMI, and USB keyboard/mouse and I&#8217;m ready to go&#8230; after we flash the SD card with the Mr. Fusion software.</p>



<h2 class="wp-block-heading">Flashing the MicroSD card with Mr. Fusion</h2>



<p>If you have your case on, you&#8217;ll notice that the SD card is a royal pain in the ass to get out easily.  If I just trimmed my fingernails, I end up having to use a tiny pliers to grab the card after I release it with a push (it&#8217;s a spring-loaded-grabber SD Card type, but when releasing the card it *barely* clears the case if at all).  This is another reason I want to avoid having to take the SD Card in and out of the kit, it&#8217;s too damn annoying.  This is why I&#8217;m thinking most people would want to SCP into their MiSTer, use USB memory cards, or use network shares instead of ever having to remove the microSD card every time they wanted to add something.  I&#8217;m going with the network mount for the purposes of this document.</p>



<p>So, if you haven&#8217;t yet, remove the SD Card and put it into your favorite PC.  I like to use <a href="https://www.balena.io/etcher" target="_blank" rel="noreferrer noopener nofollow">balenaEtcher</a>, so I grab that and the <a href="https://github.com/MiSTer-devel/mr-fusion/releases" target="_blank" rel="noreferrer noopener">latest Mr. Fusion release</a> (at time of writing, 2.7), and let the etcher do its thing.</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="802" height="511" src="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-103639.png" alt="" class="wp-image-2243" srcset="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-103639.png 802w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-103639-300x191.png 300w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-103639-768x489.png 768w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-103639-585x373.png 585w" sizes="(max-width: 802px) 100vw, 802px" /></figure>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="214" height="299" src="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-103800.png" alt="" class="wp-image-2244"/><figcaption class="wp-element-caption">This is your goal.</figcaption></figure></div>


<div data-padding="10" class="wp-block-simple-blocks-info-block" style="background-color:#1a6ad9;color:#ffffff;padding:10px"><div data-iconsize="20" data-iconspace="20" class="icon" style="margin-right:20px"><span class="dashicon dashicons dashicons-info"></span></div><div>Having troubles getting a successfully validated flashing of the Mr. Fusion image?  I shut down my anti-virus temporarily, and made sure any Windows explorer windows weren&#8217;t open (I think the windows auto mounting of cards after the initial writing of the image causes some confusion when validating the image etching)</div></div>



<p></p>



<p>Putting this back into the MiSTer (the MicroSD card slot is on the bottom side of the Nano board, so you should make the gold contacts of the MicroSD face UP when you slide it in), we&#8217;re now finally ready to boot this thing up and configure some of the software.</p>



<h2 class="wp-block-heading">First boot</h2>



<p>If everything has gone okay (and why wouldn&#8217;t it, things never break or go wrong, right?), you&#8217;ll see this on your monitor:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-12-1024x576.png" alt="" class="wp-image-2247" width="768" height="432" srcset="https://krystof.io/wp-content/uploads/2023/04/image-12-1024x576.png 1024w, https://krystof.io/wp-content/uploads/2023/04/image-12-300x169.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-12-768x432.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-12-1536x864.png 1536w, https://krystof.io/wp-content/uploads/2023/04/image-12-1170x658.png 1170w, https://krystof.io/wp-content/uploads/2023/04/image-12-585x329.png 585w, https://krystof.io/wp-content/uploads/2023/04/image-12-1320x743.png 1320w, https://krystof.io/wp-content/uploads/2023/04/image-12.png 1920w" sizes="(max-width: 768px) 100vw, 768px" /><figcaption class="wp-element-caption">You made it!</figcaption></figure></div>


<p>This will reboot, and then come to a screen that at first, made me think the flashing didn&#8217;t work right.  I didn&#8217;t know what to expect, so don&#8217;t be alarmed, and in fact, you should expect see this:</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="576" src="https://krystof.io/wp-content/uploads/2023/04/image-13-1024x576.png" alt="" class="wp-image-2252" srcset="https://krystof.io/wp-content/uploads/2023/04/image-13-1024x576.png 1024w, https://krystof.io/wp-content/uploads/2023/04/image-13-300x169.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-13-768x432.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-13-1536x864.png 1536w, https://krystof.io/wp-content/uploads/2023/04/image-13-1170x658.png 1170w, https://krystof.io/wp-content/uploads/2023/04/image-13-585x329.png 585w, https://krystof.io/wp-content/uploads/2023/04/image-13-1320x743.png 1320w, https://krystof.io/wp-content/uploads/2023/04/image-13.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Everything is fine.  Seriously.  I&#8217;m not kidding. No /s here.  For reals.</figcaption></figure>



<p>All this means is that you&#8217;ve loaded up Mr. Fusion and are looking at a blank core menu because, well, the initial flashing doesn&#8217;t install <strong>any</strong> cores.  We&#8217;ll have to do that ourselves in a bit.  First things first.  Connectivity.  <strong>Well, one more thing first.  If the flashing static background starts annoying you, hit F1 on your keyboard to change it.  This also easily screws up encoding, as I was streaming his at the time and all of the static made the rest of the stream overlays pixelate.</strong></p>



<h2 class="wp-block-heading">Initial Network Connectivity</h2>



<p>If you&#8217;re hard wired in, you should already have an IP address.  If not, you should hit Escape,  which will bring up the system settings, and select the &#8216;Scripts&#8217; directory.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-14.png" alt="" class="wp-image-2255" width="387" height="316" srcset="https://krystof.io/wp-content/uploads/2023/04/image-14.png 773w, https://krystof.io/wp-content/uploads/2023/04/image-14-300x245.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-14-768x627.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-14-585x478.png 585w" sizes="(max-width: 387px) 100vw, 387px" /></figure></div>


<p>At the warning, type yes (since you do want to run the script), and select &#8216;wifi&#8217; and hit return.  Assuming you have a wifi dongle plugged in (and if not, you should just go hard wired with ethernet), you&#8217;ll see the list of SSIDs &#8211; select yours and enter your password.  After that point, you should get taken back to the main menu, but you&#8217;ll have a little &#8216;Wifi&#8217; signal icon in the upper bar of your menu now.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-15.png" alt="" class="wp-image-2256" width="384" height="311" srcset="https://krystof.io/wp-content/uploads/2023/04/image-15.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-15-300x243.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-15-585x474.png 585w" sizes="(max-width: 384px) 100vw, 384px" /></figure></div>


<p>Now we&#8217;re cooking.  Next steps are to download the well known &#8216;update_all&#8217; script (not the stock update script that comes with the install &#8211; which definitely works if you only want to use that) that downloads all the stuff that the update script does, as well as a lot of neat and/or experimental features <em>should you desire it</em> and performs general updates and downloading of additional scripts.  But first let&#8217;s go over where I&#8217;m storing all of the files the downloader is going to download.</p>



<h2 class="wp-block-heading">MiSTer file paths and network mount considerations</h2>



<p>MiSTer FPGA has a fairly standard directory structure it uses to look up files, be it cores or roms.  Whether it&#8217;s network storage or the SD Card itself, MiSTer mounts a well known directory structure referenced here: <a href="https://mister-devel.github.io/MkDocs_MiSTer/cores/paths" target="_blank" rel="noreferrer noopener">https://mister-devel.github.io/MkDocs_MiSTer/cores/paths</a></p>



<p><strong>to do any of the following, we need to login via SSH to our running MiSTer.</strong>  To see these directories in action, you can use <a href="https://www.putty.org/" target="_blank" rel="noreferrer noopener">PuTTY</a> to open up a terminal into your MiSTer.  The default account is root and the default password is 1.  (So&#8230; maybe we&#8217;ll change that later)</p>



<p>After you login, know that all of the directories MiSTer is going to care about are under /media.  The basic key directories are:</p>



<figure class="wp-block-table"><table><tbody><tr><td>/media/fat</td><td>The root of your SD Card.  If you were to shutdown the MiSTer and mount your card in your windows machine, the contents of that card would be here.</td></tr><tr><td>/media/fat/_Arcade</td><td>Arcade cores go here.  Cores are the systems, not the games, remember.</td></tr><tr><td>/media/fat/_Computer</td><td>Computer cores go here.  These are things like the Apple II, Commodore 64, etc.</td></tr><tr><td>/media/fat/_Console</td><td>Console cores go here &#8211; Nintendo, Genesis, etc.</td></tr><tr><td>/media/fat/config</td><td>Configuration files &#8211; generally for each core as you modify and save configurations.</td></tr><tr><td>/media/fat/games</td><td>These are where all your games go.  Generally subdirectories under here line up with cores, so /media/fat/games/c64 would be where you put your C64 disk/cart/program images.</td></tr></tbody></table></figure>



<p>You won&#8217;t have some of these directories yet because we haven&#8217;t downloaded anything with the update_all script yet (you&#8217;ll at least have a Scripts directory because we&#8217;ve already run files from there).  Previously I mentioned that I did NOT want to constantly remove the MicroSD card to add content to my MiSTer.  I would think most people don&#8217;t want to do this, especially with a case because getting those SD cards in and out easily is <strong>annoying</strong>.  So, I figure I had these options:</p>



<ul>
<li>Use the SD card for primary storage, let the update_all script download cores to the SD card, and use SCP/SSH to transfer files to the MicroSD card to my computer.  Doable, but slightly cumbersome</li>



<li>Use a USB Stick (which the MiSTer should automount according to the core paths page referenced in the github link above.  Here we can at least windows to do a little easier transfer, but we still have to move the stick between files.</li>



<li>Use a Samba share &#8211; You can enable the Samba (Windows file share) service on the MiSTer and expose your SDCard over the network as described here: <a href="https://mister-devel.github.io/MkDocs_MiSTer/setup/games/" target="_blank" rel="noreferrer noopener">https://mister-devel.github.io/MkDocs_MiSTer/setup/games/</a>  Also doable, but I prefer to not really use the SDCard except for booting up the MiSTer and storing some configuration data.</li>



<li>Use the CIFS mount scripts and download all cores and games onto my Synology NAS, and then have MiSTer mount those directories instead (even thinking it&#8217;s /media/fat, when it&#8217;s really talking to my NAS).  I liked this because virtually all files are on my NAS, so I can use that from windows more easily than SFTP, and I&#8217;m not constantly writing to the MiSTer SD Card.  <strong>This is the option this document will describe further down below</strong>.</li>
</ul>



<p>So, my goal is to create a NAS share, and have MiSTer mount the FPGA directories for cores, systems, etc. on the NAS, but making it think it&#8217;s still under /media/fat (reason being if anything we ever install assumes /media/fat is used, it will just work).  The primary directories we&#8217;ll leave on the SD card itself are /media/linux and /media/config, which are much more towards MiSTer even running things properly.  The cores and games, however, will live on my NAS.</p>



<p>So I created a share and made a dedicate user for it, this way it wasn&#8217;t going to see any other directories on the NAS and things are neatly organized.  For the CIFS mount to work, the directories must already exist, so I created the directories I needed by using a template.zip file from a forum thread I found on doing this exact thing, referenced <a href="https://misterfpga.org/viewtopic.php?t=3246" target="_blank" rel="noreferrer noopener">here</a>.  However, I found I needed to add a couple of directories to that template, so I&#8217;ve created my own, which you can grab here.  It&#8217;s just a zip file with empty directories to get you started.  All I did was just unzip it to the root of my NAS MiSTer share.</p>


<div class="sdm_download_item "><div class="sdm_download_item_top"><div class="sdm_download_thumbnail"></div><div class="sdm_download_title">MiSTer FPGA NAS Directory Template</div></div><div style="clear:both;"></div><div class="sdm_download_description"><p>This zip is a bunch of empty directories you unzip to the root of your NAS share dedicated to your MiSTer FPGA.  These directories should exist on the NAS share so when you run the cifs_mount.sh script, your MiSTer will see those /media/fat/ subdirectories, but they&#8217;ll actually point to the NAS and not your SD card.</p>
</div><div class="sdm_download_link"><span class="sdm_download_button"><a href="https://krystof.io/?sdm_process_download=1&download_id=2260" class="sdm_download green" title="MiSTer FPGA NAS Directory Template" target="_self">Download Now!</a></span><span class="sdm_download_item_count"><span class="sdm_item_count_number">1710</span><span class="sdm_item_count_string"> Downloads</span></span></div></div><div class="sdm_clear_float"></div>



<p>(The reason we do this is that those directories must exist to mount them on the MiSTer, otherwise when the download runs it will download files to the /media/fat/games directory on the SD CARD, not the network mount that we want.  We&#8217;re using CIFS to trick MiSTer into thinking /media/fat/games is on the SD card when it&#8217;s really on the network, remember.)</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="673" height="734" src="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-104946.png" alt="" class="wp-image-2265" srcset="https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-104946.png 673w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-104946-275x300.png 275w, https://krystof.io/wp-content/uploads/2023/04/Screenshot-2023-04-07-104946-585x638.png 585w" sizes="(max-width: 673px) 100vw, 673px" /></figure>



<p>These are the empty directories included in the zip file.  (Ignore #recycle, that&#8217;s from my Synology NAS)</p>



<h2 class="wp-block-heading">Download and configure the CIFS_MOUNT scripts</h2>



<p>Now that we have those directories created, we need to tell the MiSTer how to mount them.  To do that, we&#8217;ll download to our /media/fat/Scripts directory (which will NOT be part of our NAS) the two scripts cifs_mount.sh and cifs_umount.sh from <a href="https://github.com/MiSTer-devel/Scripts_MiSTer" target="_blank" rel="noreferrer noopener">https://github.com/MiSTer-devel/Scripts_MiSTer</a>.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
cd /media/fat/Scripts
wget https://raw.githubusercontent.com/MiSTer-devel/Scripts_MiSTer/master/cifs_mount.sh
wget https://raw.githubusercontent.com/MiSTer-devel/Scripts_MiSTer/master/cifs_umount.sh
</pre></div>


<p>Now, in that same directory, we need to create a cifs_mount.ini file.  Here&#8217;s mine, you&#8217;d obviously use a real IP address for your NAS, a real username, and real password.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
# NAS IP (If server name doesn&#039;t work, use IP)
SERVER=&quot;192.168.50.10&quot;

#The share name on the NAS
SHARE=&quot;mister&quot;
USERNAME=&quot;mister&quot;
PASSWORD=&quot;mister&quot;

#Local directory/directories where the share will be mounted.
LOCAL_DIR=&quot;*&quot;

#mfsymlinks most likely is necessary so the update_all ArcadeOrganizer download works.
ADDITIONAL_MOUNT_OPTIONS=&quot;vers=3.11,mfsymlinks&quot;

#&quot;true&quot; in order to wait for the CIFS server to be reachable;
#useful when using this script at boot time.
WAIT_FOR_SERVER=&quot;true&quot;

#&quot;true&quot; for automounting CIFS shares at boot time;
#it will create start/kill scripts in /etc/network/if-up.d and /etc/network/if-down.d.
MOUNT_AT_BOOT=&quot;true&quot;

#========= ADVANCED OPTIONS =========
BASE_PATH=&quot;/media/fat&quot;
#MISTER_CIFS_URL=&quot;https://github.com/MiSTer-devel/CIFS_MiSTer&quot;
KERNEL_MODULES=&quot;md4.ko|md5.ko|des_generic.ko|fscache.ko|cifs.ko&quot;
IFS=&quot;|&quot;
SINGLE_CIFS_CONNECTION=&quot;true&quot;
#Pipe &quot;|&quot; separated list of directories which will never be mounted when LOCAL_DIR=&quot;*&quot;
SPECIAL_DIRECTORIES=&quot;config|linux|System Volume Information|#recycle&quot;
</pre></div>


<p>You can see in the SPECIAL_DIRECTORIES section we ignore config and linux, which we&#8217;ll always want to leave on our SDCard for stability.  The rest of the directories are mounted from the NAS IF they exist on the NAS already.</p>



<p>So, saving that file, my scripts directory now looks like this:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
/media/fat/Scripts# ls -l
total 160
-rwxr-xr-x 1 root root   911 Apr  6 00:18 cifs_mount.ini
-rwxr-xr-x 1 root root 12993 Apr  6 00:17 cifs_mount.sh
-rwxr-xr-x 1 root root  1051 Apr  6 00:17 cifs_umount.sh
-rwxr-xr-x 1 root root  4662 Jan  1  1980 update.sh
-rwxr-xr-x 1 root root 10638 Jan  1  1980 wifi.sh

</pre></div>


<p>I then invoked the ./cifs_mount.sh command to make sure it worked, and voila, here was my output:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
./cifs_mount.sh
</pre></div>


<figure class="wp-block-image size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-16.png" alt="" class="wp-image-2268" width="347" height="524" srcset="https://krystof.io/wp-content/uploads/2023/04/image-16.png 463w, https://krystof.io/wp-content/uploads/2023/04/image-16-199x300.png 199w" sizes="(max-width: 347px) 100vw, 347px" /></figure>



<p>And now, all of these new directories appear on /media/fat (but most of them are on our NAS!)</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-17.png" alt="" class="wp-image-2269" width="609" height="639" srcset="https://krystof.io/wp-content/uploads/2023/04/image-17.png 812w, https://krystof.io/wp-content/uploads/2023/04/image-17-286x300.png 286w, https://krystof.io/wp-content/uploads/2023/04/image-17-768x806.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-17-585x614.png 585w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<p>Now, if you&#8217;re ever unsure as to whether or not the directory you see under /media/fat is local to the SD card or not, check out the mounts by doing a cat /proc/mounts.  You&#8217;ll see output like this:</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="840" height="612" src="https://krystof.io/wp-content/uploads/2023/04/image-18.png" alt="" class="wp-image-2270" srcset="https://krystof.io/wp-content/uploads/2023/04/image-18.png 840w, https://krystof.io/wp-content/uploads/2023/04/image-18-300x219.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-18-768x560.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-18-585x426.png 585w" sizes="(max-width: 840px) 100vw, 840px" /></figure>



<p>You can see all of the directories that are actually mounted to the NAS.  These are the same directories our update_all script is going to download to (as well as config/linux/Scripts, but those stay local on the SD card because we&#8217;ve either ignored them or did not create a matching directory on the NAS).</p>



<p><strong>You should be able to reboot your MiSTer and SSH into it again and see these mounts are still there.</strong></p>



<h2 class="wp-block-heading">Download and run theypsilon&#8217;s update_all.sh script</h2>



<p>Finally, the moment we&#8217;ve all been waiting for&#8230; let&#8217;s get things updated and downloaded.</p>



<p>SSH back into your MiSTer if you rebooted, and in the Scripts directory download the update_all.sh script from theypsilon&#8217;s git hub.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
cd /media/fat/Scripts
wget https://raw.githubusercontent.com/theypsilon/Update_All_MiSTer/master/update_all.sh
</pre></div>


<p>Then, execute it.   The update_all.sh script takes a while to run &#8211; you may want to run it from the OSD on the MiSTer, or you can still run it via SSH if you prefer.  On the MiSTer OSD you&#8217;d see this (Hit ESC to get to the System Settings menu, then select Scripts):</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-19.png" alt="" class="wp-image-2272" width="387" height="311" srcset="https://krystof.io/wp-content/uploads/2023/04/image-19.png 773w, https://krystof.io/wp-content/uploads/2023/04/image-19-300x241.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-19-768x618.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-19-585x471.png 585w" sizes="(max-width: 387px) 100vw, 387px" /></figure></div>


<p>Select update_all and you&#8217;ll be greeted with a preamble.  If you want to use default download options, just let it go, otherwise, hit UP ARROW and you can configure to download optional items. (If you&#8217;re on Wifi, this may take a while, might be best to do an initial update via ethernet cable)</p>



<p> </p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-20.png" alt="" class="wp-image-2273" width="404" height="461" srcset="https://krystof.io/wp-content/uploads/2023/04/image-20.png 539w, https://krystof.io/wp-content/uploads/2023/04/image-20-263x300.png 263w" sizes="(max-width: 404px) 100vw, 404px" /></figure></div>


<p>I hit UP and was greeted to the main settings page.  Where I enabled this and that, but regardless it&#8217;s going to download the primary cores, scripts, and folder setup structure for /media/fat/games.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-21.png" alt="" class="wp-image-2274" width="452" height="260" srcset="https://krystof.io/wp-content/uploads/2023/04/image-21.png 603w, https://krystof.io/wp-content/uploads/2023/04/image-21-300x172.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-21-585x336.png 585w" sizes="(max-width: 452px) 100vw, 452px" /></figure></div>


<p>You can always just take the defaults, &#8216;Exit and Run update all&#8217;, and run it later if you want to download Disabled items.  </p>



<p>That runs for a looooooong time.</p>



<div data-padding="10" class="wp-block-simple-blocks-info-block" style="background-color:#000000;color:#ffffff;padding:10px"><div data-iconsize="20" data-iconspace="20" class="icon" style="margin-right:20px"><span class="dashicon dashicons dashicons-info"></span></div><div>Note &#8211; if you enabled the Arcade Organizer and run into an error regarding symlinks, make sure you look at the details of my cifs_mount.ini file &#8211; it attempts to address that in there, and once I made the change (mfsymlinks), I had no issues running update_all.</div></div>



<p>At the very end of the script, barring any issues, you&#8217;ll see this:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-22.png" alt="" class="wp-image-2275" width="332" height="336" srcset="https://krystof.io/wp-content/uploads/2023/04/image-22.png 663w, https://krystof.io/wp-content/uploads/2023/04/image-22-296x300.png 296w, https://krystof.io/wp-content/uploads/2023/04/image-22-585x593.png 585w" sizes="(max-width: 332px) 100vw, 332px" /></figure></div>


<p>Your MiSTer will now reboot, and we&#8217;re done with the initial downloading.  If you look at your NAS share now, you&#8217;ll see it holds plenty of files and takes up a bit more space:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://krystof.io/wp-content/uploads/2023/04/image-23.png" alt="" class="wp-image-2276" width="867" height="690" srcset="https://krystof.io/wp-content/uploads/2023/04/image-23.png 867w, https://krystof.io/wp-content/uploads/2023/04/image-23-300x239.png 300w, https://krystof.io/wp-content/uploads/2023/04/image-23-768x611.png 768w, https://krystof.io/wp-content/uploads/2023/04/image-23-585x466.png 585w" sizes="(max-width: 867px) 100vw, 867px" /></figure></div>


<h2 class="wp-block-heading">Rebooting and final touches</h2>



<p><strong>A note on starting up your MiSTer now that you&#8217;re mounting a bunch of folders on your NAS:</strong>  Now that you&#8217;re &#8216;tricking&#8217; MiSTer into thinking /media/fat/&lt;some of your directories&gt; are local and not on the NAS, you may be occasionally surprised if you menu under &#8216;Arcade&#8217;, &#8216;Console&#8217;, or &#8216;Computer&#8217; is empty when you first start up.  Don&#8217;t be.  Just go back to the root of the menu (hit that OSD button on your case, or just escape out), wait a tick for the cifs_mount.sh script to finish in the background, and then you&#8217;ll see your cores and games visible.  It&#8217;s just on the initial boot up, and usually only takes a few seconds after the menu shows up.</p>



<p>Once that was all said and done, I went to the Scripts directory again and executed the timezone script to set my timezone properly.</p>



<p>Now, that pretty much concludes this round documenting my initial setup.   Some good reference links:</p>



<p><strong>HotKeys:</strong> <a href="https://mister-devel.github.io/MkDocs_MiSTer/basics/hotkey/" target="_blank" rel="noreferrer noopener">https://mister-devel.github.io/MkDocs_MiSTer/basics/hotkey/</a></p>



<p><strong>Defining GamePads:</strong> <a href="https://mister-devel.github.io/MkDocs_MiSTer/setup/controller/" target="_blank" rel="noreferrer noopener">https://mister-devel.github.io/MkDocs_MiSTer/setup/controller/</a></p>



<p>MiSTer FPGA Documentation: <a href="https://mister-devel.github.io/MkDocs_MiSTer/" target="_blank" rel="noreferrer noopener">https://mister-devel.github.io/MkDocs_MiSTer/</a></p>



<p>MiSTer Wiki on GitHub: <a href="https://github.com/MiSTer-devel/Wiki_MiSTer/wiki" target="_blank" rel="noreferrer noopener">https://github.com/MiSTer-devel/Wiki_MiSTer/wiki</a></p>



<p>SMB/CIFS Mount Threads: <a href="https://misterfpga.org/viewtopic.php?t=3246&amp;start=30" target="_blank" rel="noreferrer noopener">https://misterfpga.org/viewtopic.php?t=3246&amp;start=30</a><a href="https://misterfpga.org/viewtopic.php?t=4972" target="_blank" rel="noreferrer noopener">https://misterfpga.org/viewtopic.php?t=4972</a></p>



<p>theypsilon&#8217;s Update_All_MiSTer repo: <a href="https://github.com/theypsilon/Update_All_MiSTer" target="_blank" rel="noreferrer noopener">https://github.com/theypsilon/Update_All_MiSTer</a></p>



<p></p>
<p>The post <a rel="nofollow" href="https://krystof.io/mister-fpga-initial-setup-and-network-mounting/">MiSTer FPGA Initial Setup and Network Mounting</a> appeared first on <a rel="nofollow" href="https://krystof.io">Krystof.IO</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://krystof.io/mister-fpga-initial-setup-and-network-mounting/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<series:name><![CDATA[FPGAdventures]]></series:name>
	</item>
	</channel>
</rss>
