Hackaday.io Hackaday.io
Projects
Recently Updated Most Likes Newest Project Lists
Discover Contests Courses Stack
More
Courses Tutorials Events Hackerspaces Hackaday.com Tindie Marketplace
Sign up Log in
Close
0%
0%

NES Motherboard

Motherboard schematic for the original
Nintendo Entertainment System

jesse-robinson-beaconJesse Robinson (beacon)
Following Follow project
Liked Like project

Become a Hackaday.io member

Not a member? You should Sign up.

Already have an account? Log in.

Sign up with Github
Sign up with Twitter
OR
Forgot your password?

Just one more thing

To make the experience fit your profile, pick a username and tell us what interests you.

Pick an awesome username
hackaday.io/
Your profile's URL: hackaday.io/username. Max 25 alphanumeric characters.
Pick a few interests
Projects that share your interests
People that share your interests

We found and based on your interests.

Choose more interests.

OK, I'm done! Skip
Join this project
Similar projects worth following
23.7k views
2 comments
39 followers
34 likes
  • Description
  • Details
  • Files 4
    • View all
  • Components 0
  • Logs 6
    • View all
  • Instructions 0
  • Discussion 2
View Gallery
23.7k
2
39
34

Team (1)

  • jesse-robinson-beaconJesse Robinson (beacon)

Join this project's team
shelved project
hardware
nes

Related lists

Homebrew Videogames

Custom cartridges, homebrew consoles and homebrew clones

This project was created on 11/17/2016 and last updated 4 years ago.

Description

As a learning project I started drafting the schematic for my beloved childhood toy, the NES. The only schematics I could find are scans of old documents, with inaccuracies. I'm attempting to correct those and hope to eventually create an improved reference.

Files

MIT_LICENSE

MIT License - Most permissive license I could find

mit_license - 1.04 kB - 03/26/2020 at 00:03

Download

Clocksv1.JPG

Schematic - Clock Signals - JPG Format

JPEG Image - 65.01 kB - 11/23/2016 at 03:54

Preview
Download

NESMOBO.sch

Schematic - ICs, Reset Switch, Clocks - Eagle SCH format

- 538.80 kB - 12/03/2016 at 01:07

Download

NESMOBO.pdf

Schematic - ICs only - PDF format

application/pdf - 221.53 kB - 12/03/2016 at 01:07

Preview
Download

Project Logs
Collapse

  • Started breadboarding

    Jesse Robinson (beacon) • 03/26/2020 at 00:16 • 0 comments

    Stuck in isolation due to COVID-19 - what to do?

    Getting there......

  • License Added

    Jesse Robinson (beacon) • 03/26/2020 at 00:12 • 0 comments

    My work here is based completely on existing designs and publicly available information. Therefore all files here are released back to the public with the MIT license, the most permissive license I could find.

  • Diode Arrays (DA1 & DA2) added

    Jesse Robinson (beacon) • 12/03/2016 at 01:08 • 2 comments

    The NES has 4 diode arrays that appear to provide transient voltage supression (TVS) on the controller ports. They protect the CPU and hex inverters from damage while plugging in controllers.

    Each controller port is connected to two of the arrays. One array dissipates postive voltage spikes to the +5V rail, while the second array dissipates negative voltage spikes from ground.

    I beleive I have found a replacement part that combines both array types into a single package. So we only need one array per controller port now.

    Wurth Elektronic 82401646 TVS Diode Array WE-TVS

    MSOP-8L package

    http://www.mouser.com/ProductDetail/Wurth-Electronics/82401646/

    http://www.mouser.com/ds/2/445/82401646-253741.pdf

    I added the capacitors and pull up resistors on the controller lines as well.

    10 kOhm 0805 Resistors

    http://www.mouser.com/ProductDetail/ROHM-Semiconductor/ESR10EZPJ103/

    5.6 kOhm 0805 Resistors

    http://www.mouser.com/ProductDetail/ROHM-Semiconductor/ESR10EZPJ562/

    330pF 0805 capacitors

    http://www.mouser.com/ProductDetail/Kemet/C0805C331KDRACTU/

    Files NESMOBO.PDF and NESMOBO.SCH updated

  • Clocks added

    Jesse Robinson (beacon) • 11/23/2016 at 05:52 • 1 comment

    Schematic Progress:

    -Added the ~21Mhz crystal and supporting components, this connects to the CPU clock (CLK), the PPU clock (U5-CLK) and the cartridge (SYS_CLK) lines. Need to check if the NPN transistor I used in the schematic is a valid substitute for what Nintendo used.

    -Added the reset switch circuit from the Famicom.

    -Added the 4Mhz crystal and supporting components, this clock is used by the CIC (10NES) chips. (Both console and cartridge chips)

    I need to go back and change the package size used in CIC clk circuit. 0402 is unnecessarily small, 0805 is more than small enough.

    I'm numbering the passive components as I add them to my schematic, for now disregarding the numbering system obtained from the old schematics (see my research post.)

    As is, the design is a hybrid of the famicom and NES. So really I've building a clone motherboard that requires 4 of the original chips: the PPU, the CPU, and the 2 ram chips. (CIC chip optional) All of the other parts I find equivalents for, with the criteria that mouser.com sells it and the part also exists in an eagle library (or eagle has a similar part of the same package size.) Eventually I'd like to create forks of the schematic, one faithful to the famicom, one faithful to the NES, and various other ones integrating mods. That being said once the hybrid schematic is complete I'll probably start playing with the board layout of my clone first, and shelve the reference schematic forks for later.

    Regarding the CIC lockout chip. I had considered the standard disable method of leaving pin 4 (lock/key) disconnected (or pulled low), which changes the mode and effectively prevents the lockout chip from resetting the CPU due to poor cartridge connections. In this scenario the CIC, which is wired to the physical reset switch, will still reset the CPU when it senses that the reset button is pushed. My approach was to sever the connection from CIC pin 9 (host reset) to the CPU's reset line (/RST). This forces the use of the famicom reset circuit which connects the physical reset switch directly to /RST instead of the CIC. One benefit I see to this approach is that installing the CIC is completely optional at this point, if you don't want to bother transferring it from an old motherboard/cart to this replacement mobo that should be ok - everything will still work, including the reset button. I had considered omitting the CIC completely but I think it could be re-purposed. It was intended to be a DRM mechanism, but it also ended up being a mechanism that wouldn't allow you to play games with possibly bad cartridge connections. I'd like to turn it into a mechanism that merely indicates a connection issue, one that still allows you to play despite the warning.

    Parts added in update:

    -----------------

    cic clock circuit

    C2,C3

    220pf caps

    http://www.mouser.com/ProductDetail/Kemet/C0402C221J5GACTU/

    http://www.mouser.com/ds/2/212/KEM_C1003_C0G_SMD-356956.pdf

    0402 package size

    eagle part: rcl->C-US-> C-USC0402

    XTAL2

    4mhz XTAL

    http://www.mouser.com/ProductDetail/CTS-Electronic-Components/ATS040B/

    HC49U package

    crystal->8M10AHC49T

    R1

    1M ohm resistor

    http://www.mouser.com/ProductDetail/ROHM-Semiconductor/ESR01MZPJ105/

    0402 package size

    rcl- > R_US -> R-US_R0402

    -----------------

    system clock circuit

    XTAL1

    21.47727mhz XTAL

    http://www.mouser.com/ProductDetail/Citizen-FineDevice/HC49US-2147727MABJ-UB/

    HC49US package

    crystal->8M10AHC49T

    R2

    150 Kilo Ohm

    http://www.mouser.com/ProductDetail/ROHM-Semiconductor/ESR10EZPF1503/

    0805 package size

    rcl- > R_US -> R-US_R0805

    R3, R4

    510 Ohm

    http://www.mouser.com/ProductDetail/ROHM-Semiconductor/ESR10EZPJ511/

    0805 package size

    rcl- > R_US -> R-US_R0805

    R5

    220 Kilo Ohm

    http://www.mouser.com/ProductDetail/ROHM-Semiconductor/ESR10EZPF2203/

    0805 package size

    rcl- > R_US -> R-US_R0805

    C4,C5

    51 pF

    http://www.mouser.com/ProductDetail/Murata-Electronics/GRM0335C1E510JA01D/

    0603 package size

    eagle part: rcl->C-US-> C-USC0603

    C6, C7

    15 pF

    http://www.mouser.com/ProductDetail/Murata-Electronics/GRM0335C2A150JA01D/...

    Read more »

  • IC Connections Done

    Jesse Robinson (beacon) • 11/17/2016 at 03:14 • 0 comments

    Completed netting of all pins attached to IC's U1 - U10. Questionable assignments on a few pins though, would like review some more.

    Nintendo's custom 48-pin expansion header has been replaced with a 50 pin ribbon cable connector.

    The CIC chip is present but not wired to the CPU's reset line. Currently the CIC host reset line is wired to expansion pin 49.

    The following pins are not connected to anything:

    U3: 6,7,10,12

    U10: 5

    P2: 46,50

    Now on to the circuits with passive components......

    TO DO:

    Circuits:

    Reset Switch

    Power switch

    System Clock

    CIC Clock

    CPU Analog Audio IN/OUT

    PPU Analog Video OUT

    Joypad pullup resistor banks

    Joypad diode banks

    Joypad connectors

    misc pull resistors,caps

    AV line level output circuits

    usb power in

    Other:

    famicom io ports

    fork schematic,replace ram with sourceable chips, update pinout

    look for cheaper/smaller/modern components

    ....this could take awhile

  • Starts with research

    Jesse Robinson (beacon) • 11/17/2016 at 03:00 • 0 comments

    References:

    Schematics:

    NES: http://gamesx.com/wiki/doku.php?id=schematics:console_related_schematics

    FAMICOM:


    Pinouts:

    CPU: https://wiki.nesdev.com/w/index.php/CPU_pin_out_and_signal_description

    CIC: https://wiki.nesdev.com/w/index.php/CIC_lockout_chip_pinout

    NES EXP port: https://wiki.nesdev.com/w/index.php/NES_expansion_port_pinout

    60&72pin cart connectors: https://wiki.nesdev.com/w/index.php/Cartridge_connector

    Libraries:

    https://www.element14.com/community/docs/DOC-64303/l/fairchild-cad-libraries-for-cadsoft-eagle-software

    https://www.element14.com/community/docs/DOC-64304/l/texas-instruments-cad-libraries-for-cadsoft-eagle-software

    http://www.pcserviceselectronics.co.uk/eagle/con-3m-skt-header.lbr

    https://github.com/jpwright/eagle-lbr/blob/master/nintendo.lbr

    *renamed nintendo-cart.lbr

    https://github.com/Sputnick85/eagle_nintendo/blob/master/nintendo.lbr

    *renamed nintendo-av.lbr

    https://github.com/spacerace/Eagle-Libraries/blob/master/commodore/Mos6502.lbr

    *duplicated, edited each, and renamed as:

    Ricoh2C02.lbr

    Ricoh2A03.lbr

    Eagle Help:

    https://intranet.ee.ic.ac.uk/t.clarke/EAGLE/The EAGLE Guide.pdf

    https://learn.sparkfun.com/tutorials/using-eagle-schematic

    https://hackaday.com/2008/10/20/parts-chip-sockets-for-dual-in-line-package-dip/

    Rough BOM:

    Resistors

    RM1 10K 11x 12x?

    R1 100

    R2 100

    R3 10K

    R4 20K

    R5 12K

    R6 2.2K

    R7 100K

    R8 10K

    R9 1.2K

    R10 1.2K

    R11 220K

    R12 220

    R13 150K

    R14 1.2K

    Diodes:

    D1 1S953

    Caps:

    IC1 30p

    C1 0.47u

    C2 1u

    C3 51p

    C4 51p

    C5 5p

    C6 15p

    C7 0.1u

    C8 0.1u

    C9 220p

    C20 68p

    C21 330p

    C22 18p

    C23 30p

    Crystals:

    XTAL1 (CPU/PPU CLK): 21.477272 MHz

    XTAL2 (CIC CLK):4 Mhz

    Transistors:

    Q1 2SA937

    Chips:

    U1 SRAM (for CPU, PPU) 2048x8

    DIP 24 - ic-package->DIL24->DIL24-6 0.6inch

    http://pdf1.alldatasheet.com/datasheet-pdf/view/154361/SONY/CXK5816PN/M-15L.html

    U2 74LS373 - PPU Memory Bus latch

    TI SN74LS373DWR

    http://www.mouser.com/ProductDetail/Texas-Instruments/SN74LS373DW/?qs=sGAEpiMZZMu2QtOrmdJ1/TEA7XqGnVH%2bjIYdeprvKFA=

    http://www.ti.com/lit/ds/symlink/sn74ls373.pdf

    U3 LS139 - demulitplexer

    DM74LS139M Fairchild Semiconductor

    http://pdf.datasheetcatalog.com/datasheets/90/232315_DS.pdf

    http://www.mouser.com/ProductDetail/Fairchild-Semiconductor/DM74LS139M/?qs=0kuPHEOuoRTXyP%2bV8FErEw== - 74xx-us -> 74*139->74LS139N

    U4 SRAM (for PPU) 2048x8

    Same as U1: DIP 24 - ic-package->DIL24->DIL24-6 0.6inch

    U5 PPU RP2C02

    http://nesdev.com/2C02 technical reference.TXT

    U6 CPU RP2A03

    https://wiki.nesdev.com/w/index.php/CPU_pin_out_and_signal_description

    U7 40H368

    Inverting 3 state logic line driver

    http://www.mouser.com/Search/Refine.aspx?Keyword=CD74HC368

    http://www.ti.com/lit/ds/symlink/cd74hc367.pdf

    U8 40H368

    Same as U7

    U9 74HCV04

    hex inverter, 14-pin

    Texas Instruments SN74HC04N

    https://www.digikey.com/product-detail/en/texas-instruments/SN74HC04N/296-1566-5-ND/277212

    http://www.ti.com/lit/ds/symlink/sn74hc04.pdf

    U10 3193A (CIC)

    https://wiki.nesdev.com/w/index.php/CIC_lockout_chip_pinout

    16 pin dip

    P2 Expansion Port Substitute:

    8550-4500 3M Reverse IDC connector 50 pin

    https://www.digikey.com/catalog/en/partgroup/5100-series/27171

    http://multimedia.3m.com/mws/media/22253O/3mtm-100-in-plr-bmskt-100x-100cntrbmp-ra-sldrtails-ts0414.pdf //5100 series vertical connector

    http://www.pcserviceselectronics.co.uk/eagle/3msocket.php

    Planned Port numbering:

    P1 72 pin nes cartridge connector

    P2 nes expansion port

    P3/4 player1/2 controller ports

    P5 power&reset switches/mic in?

    P6 av out

    P7 usb power port

    P8 60 pin famicom cartridge connector

    P9 famicom expansion port

    P10 mic in?

View all 6 project logs

Enjoy this project?

Share

Discussions

Log In/Sign up to comment

Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.

Sign up with Github
Sign up with Twitter
OR
Alex wrote 08/19/2020 at 11:52 • point

I have some NES related scans here: stripclub.arcade-tv.de

  Are you sure? yes | no

sleepy9090 wrote 06/17/2017 at 10:54 • point

You probably found this already but Martin Korth has done some extensive documentation that might help you.

http://problemkaputt.de/nes.htm

  Are you sure? yes | no

Similar Projects

Custom-built general purpose, programmable, 6502-based computer and operating system.
Project Owner Contributor

Vectron 64

nick-bildNick Bild

Can we turn a cheap 90s word processor into a CP/M laptop?
Project Owner Contributor

Brother Super PowerNote Reverse Engineering

lincoln-rLincoln R.

As simple as possible single-board computer with the 6809 / 6309 CPU.
Project Owner Contributor

OMEN Kilo

martin-malyMartin Maly

The 2018 Hackaday Prize
PDP-11 compatible motherboard in mini-ITX form factor
Project Owner Contributor

PDPii

shaosSHAOS

Does this project spark your interest?

Become a member to follow this project and never miss any updates

Going up?

About Us Contact Hackaday.io Give Feedback Terms of Use Privacy Policy Hackaday API

© 2023 Hackaday

Yes, delete it Cancel

Report project as inappropriate

You are about to report the project "NES Motherboard", please tell us the reason.

Send message

Your application has been submitted.

Remove Member

Are you sure you want to remove yourself as a member for this project?

Project owner will be notified upon removal.