PicoNES - RaspberryPi Pico Based NES Emulation Console
by DynaMight in Circuits > Electronics
88 Views, 1 Favorites, 0 Comments
PicoNES - RaspberryPi Pico Based NES Emulation Console



PicoNES is a NES emulator running on the Raspberry Pi Pico and also Pico 2 (RP2040 and RP2350), the project was created by fhoedemakers and is located here: https://github.com/fhoedemakers/pico-infonesPlus It supports various Pico boards as well as various controllers.
The creator also has similar projects for SMS/GG, Gameboy and a WIP MegaDrive emulator. Check the Github page for links if these are of an interest to you, they use the same menu system and work well.
This project focuses on a simple PCB with easy to obtain, via AliExpress mostly, components to create a NES like console to play your NES games via HDMI (with sound). The case is 3D printed, but of course you dont need the case if you dont have access to a printer or you could get them professionally printed via various services such as PCBWay or JLCPCB, you might be surprised at the low cost, even local libraries offer 3D printing services.
There will be some micro soldering with the worst being the HDMI port, followed by the SD Card slot. You will need to have good soldering skills as well a good soldering iron and suitable tip for the small components.
If your soldering skills are limited and you would still like a similar project, I would recommend checking out THIS It is essentially the same thing however uses breakout boards for the SD and HDMI which is a lot easier to make. It is a little bigger due to the breakout boards but the end result is exactly the same.
There are two versions:
PicoNES Mini - 2 Player via original/aftermarket NES controllers
PicoNES Micro - Single player via USB controller
It might be a little confusing, the Mini has a more NES like feature with the case design as well as the use of original/aftermarket NES controllers. The Micro is designed to be as small as possible so only supports a single USB controller. Both do use similar components, however the Micro is even more of a soldering challenge due to the smaller SMD components.
Supplies
You will need to order the PCB's from your chosen PCB manufacturer (PCBWay or JLCPCB are popular). Stock settings will be fine, 1.6mm PCB thickness. Choose whatever colour you prefer. Gerber files are HERE
PicoNES Mini:
- RP2040 Zero: https://www.aliexpress.com/item/1005007650325892.html
- or
- RP2350 Zero (recommended): https://www.aliexpress.com/item/1005008123701162.html
- MicroSD Adaptor: https://www.aliexpress.com/item/1005001331379046.html
- NES Ports: https://www.aliexpress.com/item/1005003699734963.html
- 0805 270ohm Resistors: https://www.aliexpress.com/item/1005005600798857.html
- 0805 10k Resistors: https://www.aliexpress.com/item/1005005600798857.html
- 0805 10uF Capacitors: https://www.aliexpress.com/item/32964553793.html
- HDMI Ports: https://www.aliexpress.com/item/1005001412266648.html
- 12mm M3 Countersunk Screws: https://www.aliexpress.com/item/1005006951618861.html
- NES Controllers: https://www.aliexpress.com/item/1005006635972534.html (original controllers can also be used but I have found these aftermarket ones to be suitable for the price)
PicoNES Micro:
- Waveshare RP2350 USB A: https://www.aliexpress.com/item/1005008519098883.html
- MicroSD Adaptor: https://www.aliexpress.com/item/1005001331379046.html
- 0603 270ohm Resistor Array: https://www.aliexpress.com/item/1005005580079760.html
- 0603 10k Resistors: https://www.aliexpress.com/item/1005001436923851.html
- 0603 10uF Capacitors: https://www.aliexpress.com/item/1005008841132875.html
- HDMI Ports: https://www.aliexpress.com/item/1005001412266648.html
- M2 10mm Pan Head Screws: https://www.aliexpress.com/item/33043885403.html
As for USB controllers, please checkout the official Github: https://github.com/fhoedemakers/pico-infonesPlus?tab=readme-ov-file#gamecontroller-support
Building PicoNES Mini











As for building the PicoNES Mini, its probably best to do it in some kind of order, just to make some of the harder to solder items easier.
I tend to start off with the 270ohm resistors in front of the HDMI port, these are not too bad but easier when you have plenty of space. I tin one pad with a good amount of solder, heat the pad and then using tweezers slide the resistor onto the pad, once its flat and mostly level, add solder to the other pad. If the solder looks a little messy, since the flux in the solder can wear off, I will add additional flux to each pad a reflow to give a nicer finish. Next is the HDMI port.
Its important to get the HDMI well lined up and flat to the board, personally I place the HDMI port into the board and solder one anchor point from the bottom as this will allow you to heat and adjust to ensure its flush, level and that the pins are lined up, once everything is good, properly solder all the anchor points and then solder the pins. You want to make sure the pins are solid but not bridged, I use a good amount of flux, load some solder onto the iron and slowly bring the tip of the iron to a pin at a time, with the flux it should draw the solder from the tip onto the pin, do a few pins at a time and load up some more solder on the iron when it runs out, there are other ways, whatever works for you.
I would heavily suggest checking for shorts at this stage with a multimeter, put one probe on the top of the HDMI port then use the 8 resistors (the ends facing port) there shouldnt be any connected to ground, if there are you have a short. Also check to make sure you havent connected any data lines together by checking the resistors (again the ends facing port) are not bridged together.
After the HDMI, I would next do the MicroSD slot and resistors/capacitors, probably easier to the resistors/capacitors first but either way is fine. Followed by the Pico, ensure the Pico is lined up with the pads and not bridged.
Lastly add the NES ports, push the port onto the board, it can be quite tough so just be a little careful you dont damage anything! I do find that the pins need to be bent a little to allow them to slot into the board along with the mounting pegs. Once the port is on, its as flush and level, solder the pins from the bottom.
The board should now be complete.
Building PicoNES Micro











The PicoNES Micro can be hard to solder due to the smaller components used and also due to smaller spacing between components! Since this is the more advanced project I'll assume you have a better understanding of soldering so less info here but you can also use PicoNES Mini section above too, its pretty much the same, just smaller! (thats what she said)
To make life as easy as possible, I would recommend soldering the 0603 resistor arrays first, these are surprising hard (and annoying) to solder as they are easy to desolder when attempting to touch up! Its one of those things that you either get first time or it'll take 5 attempts! I would suggest using a multimeter afterwards to ensure theres no bridges as its easier to correct on an empty board. If you make a mess, just add loads of solder, remove it, wick the pads clean, get a new one and go again.
Next do the Pico as it'll be easier to solder that now as some pads will end up being close to the HDMI port when fitted. Ensure the Pico is flush with the board and even as the case may not fit well other wise.
Now do the HDMI port, I recommend placing the port into the board, soldering one anchor point on the underside so you can check its flush and lined up, if its not, heat the anchor point and move until its flush and level, then continue to solder all the other anchor points followed by the pins, I tend to use plenty of flux, load the iron with some solder and generally do a few pins at a time. Make sure no pins are bridged, solder wick can help remove excess solder.
The top side is complete so continue to solder the bottom sides MicroSD slot and capacitors/resistors. Either order is fine.
Printing the Case
You can download the STL files here: https://github.com/DynaMight1124/pico-infonesPlus/releases/tag/Mini%26Micro and also via Thingiverse: Mini & Micro
The case is designed to be printed without supports with 0.2mm layer height. Theres only 2 parts, a top and base and screw together.
If you have a Bambu printer with an AMS, checkout these as they have profiles for the black NES style accents
PicoNES Mini: https://makerworld.com/en/models/1462532-picones-mini-case#profileId-1778465
PicoNES Micro: https://makerworld.com/en/models/1678938-picones-micro-pico-based-nes-emulator#profileId-1778454
Programme the Pico and SD Card Setup
Programming a Pico is very easy thankfully, hold down the 'Boot' button on the Pico (or the button on top of the case) and plug in the USBC port into a PC/Laptop. It'll load up as a flash drive and then copy the correct .uf2 file. As soon as it copies, it'll disconnect the drive, reboot and it should start to work.
The firmware/uf2 files will vary depending on the device, also if its a Pico1 or Pico2. For the PicoNES Mini, you can download from the official Github site: https://github.com/fhoedemakers/pico-infonesPlus/releases and look for XXXX_PlusRP2XX0ZeroWithPCB.uf2 if you have a Pico 1 then look for 'Pico' if you have a Pico 2 then you can either use 'Pico2' or 'Pico2_RISCV'.
As for the Micro, it hasnt had official support yet so I have compiled it and linked here: https://github.com/DynaMight1124/pico-infonesPlus/releases/tag/Mini%26Micro
The MicroSD card for PicoNES doesnt need to be a large or fast card, NES roms are not be very large and I'd imagine every game ever released wouldnt be any larger than 1GB so no need to buy the fastest 256GB card you can, just buy a decent branded 16/32GB card or check your drawers for some old ones.
Format as FAT32 and copy the roms, you can just copy every rom to the root of the card and it'll show in the menu or you can setup a directory system if you have lots of roms e.g. A-F & G-Q etc or a folder for each letter, entirely up to you!
Once you have your roms on the SD Card, plug it into the PicoNES, plug into your TV and power and it should just work!
PicoNES Usage
PicoNES is very easy to use. Plug in a controller, HDMI and power via a USB power supply, its pretty low power so any 5v USB will be fine, including powerbanks. I would imagine that USBC>USBC cables might cause an issue so best stick with USBA>USBC.
The menu system is very well done and easy to use. The below is taken from the official Github here: https://github.com/fhoedemakers/pico-infonesPlus?tab=readme-ov-file#gamepad-and-keyboard-usage
Menu Usage
Gamepad buttons:
- UP/DOWN: Next/previous item in the menu.
- LEFT/RIGHT: next/previous page.
- A (Circle): Open folder/flash and start game.
- B (X): Back to parent folder.
- START: Starts game currently loaded in flash.
The colors in the menu can be changed and saved:
- Select + Up/Down changes the foreground color.
- Select + Left/Right changes the background color.
- Select + A saves the colors. Screen will flicker when saved.
- Select + B resets the colors to default. (Black on white)
When using an USB-Keyboard:
- Cursor keys: Up, Down, left, right
- Z: Back to parent folder
- X: Open Folder/flash and start a game
- S: Starts game currently loaded in flash.
- A: acts as the select button.
Emulator (in game)
Gamepad buttons:
- SELECT + START, Xbox button: Resets back to the SD Card menu. Game saves are saved to the SD card.
- SELECT + UP/SELECT + DOWN: switches screen modes.
- SELECT + A/B: toggle rapid-fire.
- START + A : Toggle framerate display
- SELECT + LEFT: Switch audio output to the connected speakers on the line-out jack of the Pimoroni Pico DV Demo Base. The speaker setting will be remembered when the emulator is restarted.
When using a Genesis Mini controller, press C for SELECT.
When using an USB-Keyboard
- Cursor keys: up, down, left, right
- A: Select
- S: Start
- Z: B
- X: A
Play Some Mario and Have Some Fun
Yes, you can now actually play some classic games in full speed with sound, even using a proper NES controller.
It is also worth noting that if NES isnt your thing but the MasterSystem/Game Gear is, as of now, the PicoNES Mini is fully supported by SMSPlus: https://github.com/fhoedemakers/pico-smsplus Hopefully the PicoNES Micro will be supported in the future.
I would recommend keeping an eye out for future PicoNES updates as the developer is very active and making constant updates to the project.