Skip to the content
PCBKitNew board
4 layers330.2 × 215.9 mmRetroii, the printed circuit board in 3D

Retro ][ is a 6502 based computer based off of the Apple ][.

Size
330.2 × 215.9 mm
Copper layers
4
Thickness
1.6 mm
Parts
302
Nets
364
Pads
1,774
Tracks, vias
5,499, 391
Pours
23
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
10 Apr 2019
Updated
27 Apr 2021

Overview

Retroii is an open-source printed circuit board by jonthomasson, from the jonthomasson/retroii repository on GitHub. It is a 4-layer board of 330.2 × 215.9 mm with 302 parts on 364 nets, routed with 5,499 tracks and 391 vias.

It is built around the LM2576-12BT, LM2576-5.0WU and LM2576-3.3WT, with the 74LS00SC, 74LS11DC and 74LS32SC among its other parts. Its parts include 90 capacitors, 89 resistors, 14 ICs, 13 connectors and 10 inductors. It belongs with the retro computing and games boards of this library.

Main components

12

README

README.md

retroii

Retro ][ is a 6502 based computer based off of the Apple ][.

Growing up in the 80's I was part of an amazing and special time for computers. Every school I remember had a computer lab loaded with Apple ]['s running such iconic games as Oregon Trail, Odell Lake, and Number Munchers. My mom was a school teacher and somehow we were lucky enough to actually buy an Apple ][ to use at home. That to me sparked an interest in computers and technology that has followed me all these many decades later.

Towards the beginning of 2019 David Murray, best known as The 8 Bit Guy, posted a video where he described his dream computer. In his video David tells about his childhood, growing up with a VIC 20 computer, and how he missed the closeness to the hardware that those early 8 bit computers provided. David's video got me thinking, and made me ask the tough life question, "what was my dream computer growing up, and what would that look like today?". That question would eventually give way to a year long project I called RETRO ][. The name Retro ][ came as a result of it being inspired and compatible with the original Apple ][, but also because it is a descendant of my first 6502 computer I built in 2015 which was called Retro 1. Retro 1 was similar to the Apple 1, with basically a terminal window to type in BASIC programs. With Retro ][ I wanted to add graphics. I used the Parallax Propeller for video generation in Retro 1, and I knew it could handle the task of more video processing. This is why I'm using it again in Retro ][.

Some basic design decisions for the project. I wanted it to feel like an 80's era computer, with the big beefy through hole components. I wanted it to be simple to understand and easy to program. I wanted it to be made from off the shelf parts that are still being produced today. I wanted it to have at least VGA output so that it could be connected to modern monitors. And for storage I wanted to be able to use a simple SD card. At its core, I wanted this project to be about learning. I wanted something that could give my kids the same sort of experience I had with the Apple ][ so long ago. The simplicity of being able to flip a bit at a ram location and see it result in drawing a pixel on the screen was eye opening to me as a youngster, and I was hoping to replicate that experience now with my own kids.

To meet my design decisions I needed to make a few changes to the original Apple ][ schematic. There were a number of components that were no longer made, like the keyboard encoder, the quad 558 timer, the RAM chips, etc. In addition the timing circuitry needed to be reworked to accommodate the new video requirements. The Apple ][ timing was tightly coupled with the video signal, the RAM refresh rates, as well as the keyboard multiplexer. I wanted to simplify all of this by feeding a simple 1MHz clock into all the key timing circuits. Later on I programmed the Parallax Propeller to take care of the timing. This enabled me to not only stop or single step the clock, but I could overclock the computer as well. I found that the max rate I could reliably get was around 4MHz. At the heart of Retro ][ is a WDC 65C02. I had to modify the original Apple ][ address decoding scheme a bit in order to get it to work for this project. By using the same address decoding as the original Apple ][ I'm able to run the same programs. I got rid of the DRAM and instead used a single 64K dual port static RAM. By using dual port ram, I can easily share the needed video RAM with the Propeller without having to worry about DMA.

I have two Parallax Propellers in Retro ][. One is solely responsible for video. It simply reads from the video RAM and outputs a VGA signal. The other Propeller is in charge of routines related to the PS/2 keyboard, SD Card, and clock signals. The two Propeller's communicate with one another over an I2C bus. The Propeller ended up being a great fit for this project due to how it can easily handle many parallel processes at once. Instead of using interrupt routines like traditional microcontrollers, the Propeller has what are called "cogs". These cogs are basically tiny single core processes that can run independently. There's 8 cogs in each Propeller. The ability to handle these parallel processes make the Propeller unique in that it's easily programmed like a traditional microcontroller, but you can take advantage of running things in parallel similar to what an FPGA could do.

For the power supply, I wanted to support the same voltages as the original Apple ][ (+5v, -5v, +12v, -12v) as well as 3.3v to power the Propeller's. I settled on the LM2576. I liked the flexibility that the LM2576 provided. It was able to meet the current demands of the project, and came in an easily solderable through whole version. I did find that there was a large inrush current when first applying power, especially for the +12/-12 supply. I'm going to try and rectify this in the next revision.

The last large part of this project are the peripherals. I wanted it to have the same options for expansion as the original Apple ][. I have 8 expansion slots, compatible with existing Apple ][ cards. In addition there are two DB9 Apple ][ joystick ports, as well as two DB15 Gameports.

For sound output, there's a built in speaker, as well as a headphone jack and a volume control knob to turn the game sounds down when playing at night or around other people. There's also a cassette out/in jack for loading programs on and saving programs to a device like a cassette, or these days a smart phone etc.

That's it for now! I'll post more project updates as I have time. If you're interested, please make sure and follow my project here on Hackaday, as well as subscribe to my Youtube feed.

Parts

302
QtyValueFootprintReferences
261Kretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R3, R4, R5, R6, R7, R10, R14, R28, R42, R58, R69, R70, R71, R72, R73 +10
26DNPretroii_footprints:C_Disc_D3.0mm_W2.0mm_P2.50mmC58, C59, C60, C61, C62, C63, C64, C65, C66, C67, C68, C69, C70, C71, C72, C73 +10
21.1uFretroii_footprints:C_Disc_D3.0mm_W2.0mm_P2.50mmC4, C10, C12, C38, C42, C43, C47, C48, C49, C50, C51, C52, C53, C54, C74, C75 +5
20.1ufretroii_footprints:C_Disc_D3.0mm_W2.0mm_P2.50mmC1, C2, C13, C14, C15, C16, C17, C18, C34, C35, C36, C39, C40, C41, C44, C45 +4
170retroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR34, R35, R36, R37, R38, R39, R40, R43, R44, R45, R46, R48, R82, R84, R86, R88 +1
13Jumper_NO_SmallConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP2, JP3, JP4, JP5, JP9, JP10, JP11, JP12, JP13, JP14, JP20, JP21, JP22
11100retroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR18, R20, R21, R22, R23, R51, R52, R63, R64, R65, R66
10100uFCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC19, C20, C21, C25, C26, C27, C28, C29, C32, C33
8DNPretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR41, R47, R55, R83, R85, R87, R89, R91
710Kretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR53, R54, R59, R60, R61, R62, R68
51000uFCapacitor_THT:CP_Radial_D13.0mm_P5.00mmC22, C23, C24, C30, C31
512Kretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR16, R17, R19, R29, R30
51N5822Diode_THT:D_DO-201AD_P15.24mm_HorizontalD1, D2, D3, D4, D5
520uHretroii_footprints:Pulse_PF0382.223NLTL4, L5, L6, L9, L10
5240retroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR11, R12, R13, R27, R31
568uHretroii_footprints:Bourns_SRP1770TA-101ML1, L2, L3, L7, L8
4.022uFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC5, C6, C7, C8
410kretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R32, R33, R50
474LS138retroii_footprints:DIP-16_W7.62mm_Socket_LongPadsF12, F13, H2, H12
4Jumper_NC_SmallConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP16, JP17, JP18, JP19
4MountingHoleMountingHole:MountingHole_4.3mm_M4_Pad_ViaH3, H4, H5, H6
374LS08retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsB11, H1, U10
21ufCapacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mmC3, C37
224LC256_EEPROMretroii_footprints:DIP-8_W7.62mm_Socket_LongPadsU5, U17
25MHz 20pfmod_crystal:crystal_hc-49sY1, Y3
274LS04retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsC11, U18
274LS257retroii_footprints:DIP-16_W7.62mm_Socket_LongPadsB6, B7
274LS74retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsB10, J13
2LM2576-12retroii_footprints:TO-220-5_Horizontal_TabDownU11, U13
2LM2576-5retroii_footprints:TO-220-5_Horizontal_TabDownU12, U15
2NE556retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsH131, H132
2PROP_PLUGConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalP1, P2
2Prop_P8X32Aretroii_footprints:DIP-40_W15.24mm_Socket_LongPadsU4, U16
2SW_PUSH_SAFEretroii_footprints:TE_1825910-6SW1, SW5
11KResistor_THT:R_Array_SIP6RA1
11K R_NetworkResistor_THT:R_Array_SIP4RA2
11Mretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR15
11N914Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalCR1
12.2Mretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR26
127retroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR25
12N3904Package_TO_SOT_THT:TO-92_InlineQ5
13.3Kretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR92
1330retroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR49
147Kretroii_footprints:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR24
1555 Timerretroii_footprints:DIP-8_W7.62mm_Socket_LongPadsA13
165C02retroii_footprints:DIP-40_W15.24mm_Socket_LongPadsH7
174LS00retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsU1
174LS02retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsA12
174LS11retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsU3
174LS251retroii_footprints:DIP-16_W7.62mm_Socket_LongPadsH14
174LS259retroii_footprints:DIP-16_W7.62mm_Socket_LongPadsF14
174LS32retroii_footprints:DIP-14_W7.62mm_Socket_LongPadsU9
1AT28C256_EEPROMretroii_footprints:28-526-11-SOCKETU6
1BARREL_JACKretroii_footprints:Barrel_Jack_PJ002AJ10
1Cassette Inretroii_footprints:SJ13525NHeadphoneJ7
1Cassette Outretroii_footprints:SJ13525NHeadphoneJ8
1Conn_01x02Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ23
1Conn_01x09Connector_PinSocket_2.54mm:PinSocket_1x09_P2.54mm_VerticalJ22
1Conn_02x10Connector_PinSocket_2.54mm:PinSocket_2x10_P2.54mm_VerticalJ11
1DB15_Female_Stackedretroii_footprints:Amphenol_L17H2440131J3
1DB9_Female_Stackedretroii_footprints:Amphenol_L17H2220131J2
1ECS-2100X-1MHZretroii_footprints:ECS-2100AXY2
1Edge mounted connectorretroii_footprints:PinSocket_2x08_P2.54mm_VerticalJ6
1Fuse 2.5 ampretroii_footprints:littlefuse_5.08_radialF1
1Game_IO_SocketPackage_DIP:DIP-16_W7.62mm_Socket_LongPadsJ14
1Headphoneretroii_footprints:SJ13525NHeadphoneJ24
1IDT7008_Dual_Port_RAMretroii_footprints:Assman_PLCC84_ACCS084GTU8
1JP_RAM_ENConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP7
1JP_RAM_OEConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP8
1JP_ROM_ENConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJP6
1JumperConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP15
1Keyboard ConnectorPackage_DIP:DIP-16_W7.62mm_Socket_LongPadsA7
1LEDretroii_footprints:WP1503CB_LEDLED1
1LM2576-3.3retroii_footprints:TO-220-5_Horizontal_TabDownU14
1LM741retroii_footprints:DIP-8_W7.62mm_Socket_LongPadsK13
1LOADretroii_footprints:TE_Tactile_2-1825027-0SW4
1LOGOretroii_footprints:logoG***
1LOGOretroii_footprints:6502_insideG***
1LOGOretroii_footprints:copyrightG***
1MISC1retroii_footprints:TE_Tactile_2-1825027-0SW7

The 282 most common of 302 parts.

Questions

How big is the Retroii PCB?

It measures 330.2 × 215.9 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Retroii use?

302 parts, built around the LM2576-12BT, LM2576-5.0WU, LM2576-3.3WT and 74LS00SC. 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 Retroii KiCad files?

From the jonthomasson/retroii repository on GitHub, at the commit this page was made from: the board is rev1.a/retroii/retroii.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Retroii design in my own project?

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

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
  • 2 layers379.1 × 273.4 mmNE Delta, the printed circuit board in 3D

    NE Delta

    frubem/NE_Delta_Schematics

    Forked from https://codeberg.org/hkzlab/NE_Delta_Schematics

    185 parts
  • 2 layers279.9 × 76.1 mmAmdekDVM, the printed circuit board in 3D

    AmdekDVM

    schlae/AmdekDVM

    Reverse engineering Amdek DVM video card for the Apple II

    69 parts4CERN-OHL-P-2.0
  • 2 layers236.8 × 169.8 mmTK2000, the printed circuit board in 3D

    TK2000

    clemarfolly/Microdigital-TK2000

    Reprodução da PCB do TK-2000 da Microdigital, clone do Micro-Professor MPF-II

    212 parts17
  • 2 layers338.7 × 107.7 mmQuapple, the printed circuit board in 3D

    Quapple

    kitspace-test-repos/kicad6-file-collection

    122 partsMIT
  • 2 layersNewBrain Original, the printed circuit board in 3D

    NewBrain Original

    flypie/NewBrain

    Newbury/Grundy NewBrain schematics

    209 parts5GPL-3.0
  • 2 layers407 × 184 mmTRS-80-Model I G E1, the printed circuit board in 3D

    TRS-80-Model I G E1

    RetroStack/TRS-80-Model-I-G-E1

    Hardware Replica of the TRS-80 Model I Revision G

    230 parts57MIT