This is a software install guide for the DaftMike DIY clone build. DaftMike was the original creator of this project and has made several video guides and blog posts on the topic. However, he never shared how to do advanced features like NFC tag writing and cooling fan software. This guide will include instructions to create a full featured mini NESPi build.
If you have been following DaftMike's progress, this guide should look very familiar to you with a few small changes. The code files have been changed, and several steps have been removed / added to fix some common issues like controller configuration permissions.
This guide assumes that you already have an Electronics Kit and have assembled all the wiring. If you still need to assemble your Electronics Kit, visit the Assembly page. If you have any questions, please post them to the Facebook Mini NES Builders Group.
Before we start you'll need to make sure you have:
You can follow this guide without the Electronics Kit. However, this guide will be focusing on NFC / Arduino integration using the Electronics Kit. The Electronics Kit can be purchased or built. Sellers and Schematics are available on the Facebook Mini NES Builders Group.
Start by downloading the RetroPie image. The RetroPie project also has a installation guide that is really useful as a reference.
Ensure that the following are installed on your Raspberry Pi:
The Raspberry Pi can be directly powered by plugging the USB power cable into Raspberry Pi, or indirectly powered by the Electronics Kit by plugging the USB power cable into the Electronics Kit. To power on your Raspberry Pi using the Electronics Kit, hold down the RESET button until the status LED flashes white. The status LED will then turn Blue or Orange (depending on if you have a NFC tag near the reader) and the front red LED will pulsate.
Using an ethernet connection is recommended but you can also use WiFi.
Your Raspberry Pi should now be powered on and will start to boot. Your Raspberry Pi will reboot a couple of times to finish installing the RetroPie software. Eventually, you will be greated by the welcome screen.
Use the keyboard and press and hold any key to continue to the controller configuring page. Go through this process pressing the keys on the keyboard to map to the controller inputs. Setting up your keyboard now will let you navigate EmulationStation for the purposes of setting everything up. After controller setup you will be sent to the main menu of Emulation Station. You will notice that there are no emulators and the only option is the settings page, this is because we have not transferred any games yet.
You may now configure wifi if you like, go here for instructions to configure
To command the Raspberry Pi from your PC, download PuTTY. This programs allow us to connect to the Raspberry Pi so we can install and setup the dependent software on the Raspberry Pi. For the following steps, it is recommended that you copy the lines below and paste them into the PuTTY terminal by right clicking inside the window. More instructions are available here.
sudo apt-get update
sudo apt-get install python-dev python-pip python-gpiozero
sudo pip install psutil pyserial
Next we need to change the default settings for the serial port.
sudo raspi-config
sudo nano /boot/config.txt
Change the RetroArch settings to enable RetroPi network commands:
sudo nano /configs/all/retroarch.cfg
network_cmd_enable = "true"
The Network Commands are used by the NESPi python script to send Reset Emulator commands.
Tip: The keyboard is no longer needed for setup. You may now setup your USB controller using the Quick Menu and then select Configure Input.
To transfer the files, use WinSCP. This program allow us to connect to the Raspberry Pi so we can transfer files. The steps here are a summary of the official file transfer guide for RetroPie found here.
Download the NESPi project zip.
Tip: If you are using a momementary pushbutton switch for the POWER button instead of the recommended latching type, then you need to make some modifcations per the notes commented in the nespi.py file.
opt/retropie/configs/all/autostart.sh
opt/retropie/configs/all/runcommand-onstart.sh
opt/retropie/configs/all/runcommand-onend.sh
home/pi/NESPi/nespi.py
sudo reboot
The Raspberry Pi will now reboot, when finished we should be ready to play with some cartridges.
In addition to reading, the Electronics Kit is capable of writing NFC tags. To do this you need to first transfer some games to your system as above, then follow these instructions:
The status LED shows us the status of the system. It gives us information about the cartridge slot and system status. If your status LED is dark, press the RESET button twice to enable/disable.
In normal operation the status LED will be Orange, this tells us that there is no cartridge in the slot.
When you insert a cartridge with an compatible NFC tag, the status LED will turn Aqua.
If your tag is blank, then the status LED will stay Aqua however if there is data written to it then it will change color to Green.
(if not, try removing the cart and blowing on it before re-inserting).
The system checks the rom filename and if it's correct then the status LED will turn Green and you can start the game by pressing the 'POWER' button.
Writing your carts with the system itself as described above should mitigate errors.
If there is a problem with the cartridge, the status LED will turn Red.
Check you have the rom in the correct folder, including the extension.
Example: rom_name.nes