Skip to the content
PCBKitNew board
2 layers99.1 × 99.1 mmNES Controller Board, the printed circuit board in 3D

NES Controller Board

giraffeics/BEEBA2

An 8-bit computer built using 7400 Series discrete logic chips.

Size
99.1 × 99.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
84
Pads
206
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 4
Created
14 Oct 2017
Updated
14 Oct 2017

Overview

NES Controller Board is an open-source printed circuit board by giraffeics, from the giraffeics/BEEBA repository on GitHub. It is a 2-layer board of 99.1 × 99.1 mm with 19 parts on 84 nets.

It is built around the 74LS193P-E, 74LS85DC and 74LS04PC. Its parts include 10 ICs and 1 crystal. It belongs with the retro computing and games boards of this library.

Main components

3

README

README.md

BEEBA

An 8-bit computer built using 7400 Series discrete logic chips.

Repository Layout

The "CAD" folder contains all design files for the printed circuit boards. These are KiCAD documents. The "Assembler" folder contains the C++ source code for the assembler, as well as the list of register names and some programs written in BEEBA assembly language. The assembler can be compiled with MinGW on Windows, and has not been tested on other compilers or operating systems.

Assembly Language

Assembly language programs can be in any plain-text file format. The language is not case-sensitive. Each instruction copies eight bits of data from one register location to another. A line of code can follow one of three formats:

COPY [read location] TO [write location]

Reads one byte of data from the register specified by [read location], writes data to the register specified by [write location].

SET [write location] TO [data]

Writes a byte of data specified by [data] to the register specified by [write location]. [data] can be a two-digit hexadecimal number or a marker.

MARK [marker name]

Marks the instruction position that corresponds to the following line of code. This does not represent an actual instruction. [marker name] can be referenced by SET instructions before or after the location of the marker, using a colon to specify which byte of the marker's location to use. This ranges from 0 (least significant) to 2 (most significant).

For all of these, any text after the last parameter will be ignored. However, it must be separated by a space or tab from the last parameter.

Register names are listed in REGISTER_NAMES.txt. The assembler uses this file to convert names to addresses while compiling programs.

Using The Assembler

To use the assembler, simply drag assembly source files onto the compiled executable.

As BEEBA uses two physical ROM chips to store 16-bit-wide instructions, the assembler will output two .bin files. One of these is loaded onto the ROM chip on the left, the other is loaded onto the ROM chip on the right. They are named accordingly.

Known Issues

When writing a constant to a register, the value will be corrupted unless the same data is sent to another register in the next instruction. The current workaround is to send data to NULL, which is an unused register.

The NES controller interface board cannot read the state of the A button. Pannenkoek2012 would love this.

The "Basic IO Board"'s input does not work at all. This was caused by oversights during the transition from TTL to CMOS. Output is still fully functional.

Parts

19
QtyValueFootprintReferences
41pinConnect:1pinMOUNT 1, MOUNT 2, MOUNT 3, MOUNT 4
374LS193Housings_DIP:DIP-16_W7.62mmU4, U7, U8
274LS595Housings_DIP:DIP-16_W7.62mmU2, U3
274LS85Housings_DIP:DIP-16_W7.62mmU5, U9
2CONN_01X12Socket_Strips:Socket_Strip_Straight_1x12H1, H2
2NES_Controller_Portcustom:NES_Controller_Port_RAPLAYER_1, PLAYER_2
11MHzxo_14s:XO-14SX1
174LS04Housings_DIP:DIP-14_W7.62mmU1
174LS08Housings_DIP:DIP-14_W7.62mmU6
174LS138Housings_DIP:DIP-16_W7.62mmU10

Questions

How big is the NES Controller Board PCB?

It measures 99.1 × 99.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the NES Controller Board use?

19 parts, built around the 74LS193P-E, 74LS85DC and 74LS04PC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the NES Controller Board KiCad files?

From the giraffeics/BEEBA repository on GitHub, at the commit this page was made from: the board is CAD/NES Controller Board/NES Controller Board.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the NES Controller Board design in my own project?

Its repository states no licence, so its author keeps all rights: ask giraffeics before reusing the design.

More from giraffeics/BEEBA

11
  • 2 layers99.1 × 99.1 mm100x100mm Computer Perf Board, the printed circuit board in 3D

    100x100mm Computer Perf Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    1,283 parts2
  • 2 layers99.1 × 99.1 mmBasic IO Board, the printed circuit board in 3D

    Basic IO Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    57 parts2
  • 2 layers99.1 × 99.1 mmInstruction Decoder, the printed circuit board in 3D

    Instruction Decoder

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    50 parts2
  • 2 layers99.1 × 99.1 mmRegister Board, the printed circuit board in 3D

    Register Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    35 parts2
  • 2 layers99.1 × 99.1 mmRAM Board MK2, the printed circuit board in 3D

    RAM Board MK2

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    32 parts2
  • 2 layers99.1 × 99.1 mmALU Board 02 - Copy, the printed circuit board in 3D

    ALU Board 02 - Copy

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    30 parts2
  • 2 layers99.1 × 99.1 mmALU Master Board, the printed circuit board in 3D

    ALU Master Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    29 parts2
  • 2 layers99.1 × 99.1 mmALU Board 01, the printed circuit board in 3D

    ALU Board 01

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    28 parts2
  • 2 layers99.1 × 99.1 mmROM Board MK2, the printed circuit board in 3D

    ROM Board MK2

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    15 parts2
  • 2 layers99.1 × 99.1 mmALU Master Board, the printed circuit board in 3D

    ALU Master Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    11 parts2

Similar boards

  • 2 layers486 × 306.3 mmMonacoGP, the printed circuit board in 3D

    MonacoGP

    stonedDiscord/MonacoGP

    Sega MonacoGP TTL Boards

    257 parts1
  • 2 layers630 × 300 mmSecretBase, the printed circuit board in 3D

    SecretBase

    stonedDiscord/SecretBase

    SEGA Secret Base Arcade Game

    441 parts
  • 4 layers121.9 × 91.4 mmAVG Discrete KiCad, the printed circuit board in 3D

    AVG Discrete KiCad

    nmikstas/atari-avg-replacements

    Atari AVG chip replacements. Both CPLD andTTL versions of the chip.

    214 parts14
  • 2 layers299.2 × 180 mm2layer, the printed circuit board in 3D

    2layer

    ceteras/CoBra

    A Z80 retro computer, ZX Spectrum compatible, can also run CP/M.

    369 parts11MIT
  • 2 layers450 × 160 mmSquale, the printed circuit board in 3D

    Squale

    jfdelnero/Apollo_7_Squale

    Apollo 7 Squale computer dev tools

    219 parts6
  • 2 layers299.2 × 180 mmCobra XP, the printed circuit board in 3D

    Cobra XP

    ceteras/Cobra-XP

    Derived from Cobra, an experimental board for testing all kind of mods.

    452 parts5MIT
  • 2 layers221.5 × 149.5 mmZX1, the printed circuit board in 3D

    ZX1

    misterblack1/zenith_zt1

    Information gathered on the Zenith ZT-1 / ZT-10 / ZT-11 and ZTX/ZT-x-A variants

    140 parts5
  • 4 layers304.5 × 217.2 mmLatest Full Backplane, the printed circuit board in 3D

    Latest Full Backplane

    Trilobyte-CPU/8-bit-computer

    A DIY 8-bit computer built mostly with discrete logic chips

    478 parts2