Skip to the content
2 layers360.1 × 141.4 mmWe816-mark2, the printed circuit board in 3D

WE816 PC Mark/2

Size
360.1 × 141.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
136
Nets
328
Pads
1,124
Tracks, vias
5,905, 317
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
15 Jul 2024
Updated
2 Feb 2025

Overview

We816-mark2 is an open-source printed circuit board by danwerner21, from the danwerner21/we816-mark2 repository on GitHub. It is a 2-layer board of 360.1 × 141.4 mm with 136 parts on 328 nets, routed with 5,905 tracks and 317 vias.

It is built around the 74LS245SC, 74LVC245AD and MAX232N, with the 27C256-17/J, 74AC04PC and 74LS14PC among its other parts. Its parts include 44 capacitors, 31 ICs, 26 resistors, 15 connectors and 4 crystals. It belongs with the RP2040 and FPGA and CPLD boards of this library.

Main components

7

README

README.md

WE816-MARK2

The WE816-MARK2 is the second iteration of a 16-bit 65816 based system with 512K of System RAM, 96K of System ROM, a Raspberry PI Pico based graphics processor and an AY-3-8910 Sound chip. The system runs a custom version of BASIC and supports commodore compatible IEC disk drives.

EhBASIC by Lee Davison was ported to the 65816 CPU on the WE816 computer. It is designed to allow a full 64K bank for BASIC code and variables with the BASIC interpreter running in a totally different bank. Full documentation on the basic intrepreter can be found in the support folder

System System


Bugs:

  • V0.08 board U13 should be a 22V10 rather than a 20V8 (no patches required) U31 should be 74ALS245 rather than 74AC245 (no patches required) The Footprints for the expansion(J7) and Keyboard(J3) connectors are wrong -- special cables are required to connect this version to keyboard and expansion RTC IS STILL BROKEN, DO NOT POPULATE U7,U8,X3,C36,C37,C34,R1,R2,R3,U9,BT1,K4,JP1, & JP2

  • V0.9 board U16 should not be populated -- the wait state generator is not functional, maximum successful tested clock speed is 2.4576 Mhz Higher CPU speeds are possible, but the video will not function at much beyond this speed.

To Do:

  • Document Jumper Settings
  • Document IO Ports
  • Memory Map
  • Video speed is not fast enough to deal with a clock speed > (around) 2mhz (2.4576 works perfectly) Need to add wait state hardware for video
  • Add Pictures to this Document

What is included in this repo?

As of this time, the repo includes

  1. The WE816-Mark2 Mainboard PCB Kicad design and Gerber files
  2. The source code and binaries for the WE816 BASIC interpreter
  3. The source code and binaries for the WE816 BIOS firmware
  4. The source code and binaries for several hardware test programs
  5. The logic equasions for the 4 GALs
  6. **OpenSCAD and STL files for a 3d printed case
  7. The Firmware for the Raspberry Pi Pico Video

Mainboard Assembled


Known Bugs

System Jumpers

jumpers

Jumper P9 -- stereo channel mixer

  • no jumpers, channel a left, channel c right, channel b left and right
  • 1-2 and 2-3 , channel a,b,c mixed to left and right

Jumper K1 - SRAM chip selection

  • 1&2 - 512K chip used (AS6C4008)
  • 2&3 - 128K chip used (AS6C1008)

Jumper K2 - ROM chip selection

  • 1&2 - 27c256 chip used
  • 2&3 - 29c256 chip used

Jumper K3 - ROM size

  • 1&2 - 16K rom page 0 memory map @ $C000
  • 2&3 - 32K rom page 0 memory map @ $8000

Power P1

  • 1- NC
  • 2-GND
  • 3-GND
  • 4-+5VDC 2A Regulated

Reset P2

  • NO Switch (Short to put system in reset)

Jumper J1, Interrupt Select

  • 1&8 UART Interrupt enabled
  • 2&7 VIA 1 Interrupt enabled
  • 3&6 VIA 2 Interrupt enabled
  • 4&5 TMS9918 Interrupt enabled

interrupt

expansion

keyboard

serial


Video Programming

IO PORTS

AddressDescriptionValueValue
$fe30Scan Line Emulationonoff
$fe31Display Pagepage 0page 1
$fe32character generator write offsetwrite offset
$fe33character generator writeValue
$fe34device commandCommand
$fe35Text Modeonoff
$fe36Lores Modeonoff
$fe37Double Lores Mode (must be in lores first)onoff
$fe38Hires Modeonoff
$fe39Double Hires Mode (must be in hires first)onoff
$fe3A80 Col Mode (must be in text mode)onoff
$fe3bMixed Mode (must be in lores/hires first)onoff
$fe3cQuad Hires (must be in hires first)onoff
$fe3dMono Hires (must be in hires first)onoff

Bill Of Materials

Mainboard

QtyReference(s)Value

Keyboard

The Keyboard used in the WE816 is identical to the keyboard used in Sergey Kiselev's MSX compatible OMEGA computer. See the Schematics, PCB layout and build instructions here

Case

The case in the following images is a 3D print manufactured by the 3D print service offered by JLCPCB.com. The case was originally designed to be 3D printed by a FDM printer such as the Anycubic Chiron. It was originally intended that threaded inserts be melted into the stand off posts so the diameter of the holes were sized accordingly. If a printing service (such as JLCPCB) is used that uses resin printing, it is necessary to slightly drill out the holes in the stand offs so that threaded inserts can be glued in. It should also be noted that the design tolerances are quite tight and variations in printing can mean that some slight adjusting may be needed in order to get a good fit.

A 12V to 5V converter can be seen in the image that was added into the case in order to convert the 12V power input to the 5B required by the main board.

System System System System System

Questions?

If there are any questions, I can be reached at vic2020Dan at gmail dot com.


Parts

136
QtyValueFootprintReferences
340.1 µFCapacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mmC1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +18
91KΩResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR5, R6, R7, R8, R9, R10, R17, R18, R19
51.0µFCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC39, C40, C41, C42, C43
5MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4, H5
410KΩResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR11, R12, R13, R14
474LS245Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU20, U22, U23, U24
31KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR21, R24, R27
32KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR22, R25, R28
3510Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR20, R23, R26
374LVC245Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU32, U33, U34
3GAL16V8Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU6, U12, U14
210 µFCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC46, C47
2270 pFCapacitor_THT:C_Rect_L7.0mm_W2.0mm_P5.00mmC44, C45
247Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR29, R31
24700ΩResistor_THT:R_Array_SIP6RR2, RR3
24700ΩPotentiometer_THT:Potentiometer_ACP_CA9-V10_VerticalRV1, RV2
2CXO_DIP14Oscillator:Oscillator_DIP-14X1, X4
2DB9_MaleConnector_Dsub:DSUB-9_Male_Horizontal_P2.77x2.84mm_EdgePinOffset9.90mm_Housed_MountingHolesOffset11.32mmJ9, J10
2W65C22NxPPackage_DIP:DIP-40_W15.24mm_Socket_LongPadsU1, U5
11&2 FOR 27C256, 2&3 FOR 29C256Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalK3
1100ΩResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR15
110KResistor_THT:R_Array_SIP6RN1
110ΩResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR4
116550Package_DIP:DIP-40_W15.24mm_Socket_LongPadsU15
11KΩResistor_THT:R_Array_SIP6RR1
122 µFCapacitor_THT:CP_Radial_D4.0mm_P2.00mmC35
127C256Package_DIP:DIP-28_W15.24mm_Socket_LongPadsU28
127C512Package_DIP:DIP-28_W15.24mm_Socket_LongPadsU29
14700ΩResistor_THT:R_Array_SIP10RR4
1658C16Package_DIP:DIP-40_W15.24mm_Socket_LongPadsU11
17406Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU2
174AC04Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU10
174ALS245Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU31
174ALS373Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU30
174LS06NPackage_DIP:DIP-14_W7.62mm_Socket_LongPadsU3
174LS14Package_DIP:DIP-14_W7.62mm_Socket_LongPadsU4
174LS244Package_DIP:DIP-20_W7.62mm_Socket_LongPadsU21
1ATF22V10Package_DIP:DIP-24_W7.62mm_Socket_LongPadsU13
1AY-3-8910Package_DIP:DIP-40_W15.24mm_Socket_LongPadsU25
1AudioJack3Connector_Audio:Jack_3.5mm_CUI_SJ1-3533NG_Horizontal_CircularHolesJ1
1BICOLOR LEDLED_THT:LED_D5.0mmD1
1Battery_CellCUSTOMLibrary:Battery_Holder_Coin_2032_BS-7_FIXEDBT2
1CASELEDSConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5
1CHAN_MIXConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalP2
1CLK_CPUOscillator:Oscillator_DIP-8P5
1CRYSTAL 32.768 KHzCrystal:Crystal_Round_D1.5mm_VerticalX3
1CXO_DIP8Oscillator:Oscillator_DIP-8X2
1DE15_Receptacle_HighDensityConnector_Dsub:DSUB-15-HD_Female_Horizontal_P2.29x1.98mm_EdgePinOffset3.03mm_Housed_MountingHolesOffset4.94mmJ11
1DS1233Package_TO_SOT_THT:TO-92L_HandSolderU37
1DS1501WNPackage_DIP:DIP-28_W15.24mm_Socket_LongPadsU19
1Expansion PortConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_HorizontalJ7
1IEC PORTCUSTOMLibrary:din6J4
1INTERRUPT SELECTConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ6
1KeyboardConnector_PinHeader_2.54mm:PinHeader_2x08_P2.54mm_VerticalJ3
1LM3940Package_TO_SOT_THT:TO-220-3_VerticalU35
1MAX232Package_DIP:DIP-16_W7.62mm_Socket_LongPadsU17
1POWERTerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalP3
1PicoRPi:RPi_Pico_SMD_THU36
1RESETConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalP4
1SERIALConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalP1
1SRAM_512KOPackage_DIP:DIP-32_W15.24mm_Socket_LongPadsU26
1TTL SerialConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ2
1USE FOR 512K SRAM OR 128K SRAMConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalK2

Similar boards

  • 2 layers244 × 244 mm6809PC-6U, the printed circuit board in 3D

    6809PC-6U

    danwerner21/6809PC

    6809 PC

    167 parts2
  • 2 layers235 × 160 mmProcessor.tms9995, the printed circuit board in 3D

    Processor.tms9995

    lynchaj/duodyne

    Duodyne is a hobbyist retrocomputer system designed to run ROMWBW. It is comprised of modules on a system bus

    105 parts15
  • 2 layers360.1 × 141.4 mmWe816, the printed circuit board in 3D

    We816

    kitspace-test-repos/kicad6-file-collection

    135 partsMIT
  • 2 layers244 × 244 mmCortexPC, the printed circuit board in 3D

    CortexPC

    danwerner21/CortexPC

    Powertran Cortex clone. PC formfactor, based on Stuart Conner's MiniCortex

    167 parts7
  • 2 layersCompaqportableIII, the printed circuit board in 3D

    CompaqportableIII

    raymondh2/CompaqPortableIII

    Current PCB Memory Expansion board layout is untested. The backplane for the expansion cards is tested and working.

    123 parts17
  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12
  • 2 layers100 × 100 mmZ80CTCDART2, the printed circuit board in 3D

    Z80CTCDART2

    lynchaj/nhyodyne

    Modular Backplane Computer

    75 parts31
  • 2 layers218 × 125 mmEVA1 production, the printed circuit board in 3D

    EVA1 production

    roberto314/EVA-1_Reproduction

    Recreation of the very rare K-K Systems EVA-1 Display Adapter for the Epson HX-20 Computer

    116 parts

Questions

How big is the We816-mark2 PCB?

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

What parts does the We816-mark2 use?

136 parts, built around the 74LS245SC, 74LVC245AD, MAX232N and 27C256-17/J. 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 We816-mark2 KiCad files?

From the danwerner21/we816-mark2 repository on GitHub, at the commit this page was made from: the board is Hardware/we816mark2.kicad_pcb and its schematic Hardware/file5FFCADA1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the We816-mark2 design in my own project?

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