Skip to the content
2 layers178 × 711 mmMSAP-2 rev.A SMD, the printed circuit board in 3D

MSAP-2 rev.A SMD

mehrantsi/MSAP-213

An 8-bit computer. Successor to MSAP-1

Size
178 × 711 mm
Copper layers
2
Thickness
1.6 mm
Parts
658
Nets
780
Pads
3,771
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 7 (file 20221018)
Created
14 Jul 2026
Updated
3 Aug 2026

Overview

MSAP-2 rev.A SMD is an open-source printed circuit board by mehrantsi, from the mehrantsi/MSAP-2 repository on GitHub, published under the MIT licence. It is a 2-layer board of 178 × 711 mm with 658 parts on 780 nets.

It is built around the SN74AHCT541PWRE4, 74HC245D and 74HCT245, with the CH9350L, CP2102N-A02-GQFN20R and DM3AT-SF-PEJM5 among its other parts. Its parts include 197 resistors, 186 capacitors, 152 ICs, 85 diodes and 6 transistors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

12

README

Schematics/README.md

MSAP-2 hardware exports

The files in this directory are generated from the simulator hardware registry in simulator/src/core/modules.ts. That registry supplies the simulator, pin inspector, power model, netlists, modular PCB layouts, procurement mapping, and monolithic production board.

Development exports

  • MSAP-2 rev.A.net — consolidated KiCad netlist for every declared chip, passive, pin, and net.
  • MSAP-2 rev.A.kicad_pcb — THT-preferred/hybrid development layout.
  • MSAP-2 rev.A SMD.kicad_pcb — SMD-preferred development layout.
  • KiCad/ — one standalone KiCad schematic per logical module: POWER_CLOCK_RESET, PROGRAM_COUNTER_14B, A_X_REGISTERS, STACK_POINTER, ALU_FLAGS_IRQ, BOOT_ROM_SHADOW_USER_RAM_16KB, CONTROL_4xAT28C256, UART_SD_TIMER_IO, OUTPUT_7_SEGMENT, ADDRESS_PATH, and BUS.

The two rev.A PCBs are consolidated, two-layer, module-grouped layouts. Their exporter uses simplified generated pad geometry; SMD-only devices remain SMD on the hybrid target. They are unrouted placement/net starters, not exact-footprint, DRC-approved, or routed manufacturing releases. The standalone module sheets use generated symbol boxes and explicit global-label stubs for registry inspection. Each sheet's project suppresses only KiCad's expected isolated_pin_label rule for singleton module-boundary nets; native ERC must otherwise pass with zero findings.

Regenerate them after any hardware-registry change:

sh
cd ../simulator
node scripts/export-schematics.mjs

The simulator's Export menu produces the same files interactively.

Monolithic production board

Production/ contains the special rev.C, full-SMD, six-layer board intended for a PCB assembler. It is a separate target rather than a flattened copy of the development layout.

The production transform:

  • retains the 20-package fixed-function ALU;
  • uses exact orderable manufacturer part numbers and LCSC/JLC references;
  • changes the development ROM implementation to six JLC-assembled Connfly DS1032-32SSKT1LA PLCC-32 sockets (C72280) holding loose, user-installed AT28C256-15JU devices: immutable boot/fallback firmware, four control-store lanes, and the display lookup;
  • provides J2 PC / POWER, a CP2102N terminal, a power-off-only PC / STANDALONE selector, a mode-dependent TPS2553 main-current limit followed by a TPS630701 fixed-5 V buck-boost stage, power-good reset, and protected crossings between the always-powered USB domain and regulated 5 V logic;
  • adds J7 KEYBOARD HOST with TUSB320LAI attachment detection, TPS2552-1-limited keyboard VBUS, CH9350L USB boot-keyboard decoding, and an ATmega4809 115200-to-9600-baud ASCII bridge; standalone power enters through J2, not J7;
  • retains external TTL UART, microSD, UPDI, RUN/STEP/RESET controls, selectable 921.6/460.8/230.4 kHz CPU clocks, test points, the functional LEDs, the port-3 signed/unsigned four-digit display, and protected keyed connectors for one selectable SSD1309 or SSD1306 local OLED;
  • uses official KiCad footprints except for project footprints checked against manufacturer drawings;
  • creates JLC BOM/CPL files and checks their populated references against the PCB;
  • requires a fresh, hash-bound FreeRouting route for rev.C; the checksum-bound rev.B routing/stage-01 data remains historical provenance only;
  • emits Gerbers, drills, renders, and the release ZIP only after zero-violation/zero-unconnected KiCad DRC.

Generate the manifest, BOM, programming/assembly-operation list, CP2102N policy, EEPROM images, and deployable MOS.BIN without routing:

sh
cd ../simulator
node scripts/export-production.mjs --source-only

The display lookup is derived from Mux7-Segment, with A8 as the low-order digit bit and A9 as the high-order digit bit. The production image is inverted for the active-low common-anode XL-SB2401SRWC hardware and padded to AT28C256 size.

The six parallel EEPROM images are factory hardware firmware. JLC assembles the sockets, not the EEPROMs. Program and read-back verify the loose devices, keep their reference assignments, and insert them after PCBA delivery with pin 1 aligned to the matching socket/PCB marks; the board has no in-system parallel-EEPROM programming interface. At reset, U36 supplies the immutable bootloader and fallback MOS while writes populate hidden lower shadow SRAM. A validated deployment/MOS.BIN is loaded from microSD, then write-only port 6 exposes that lower shadow as read-only runtime MOS until reset. Missing or invalid media leaves the factory fallback active. User programs and data use the unchanged upper SRAM through the UART monitor or microSD.

The checked-in rev.B route stage does not contain the rev.C keyboard-host circuitry. The current complete release therefore requires KiCad and a completely fresh npm run production with FREEROUTING_COMMAND; use a deterministic finish-stage flow again only after a rev.C route has been frozen and checksum-bound. See Production/README.md for the reproducible release and order procedure.

The exact PCB/BOM/CPL flow is separate from programming readiness. A clean rev.C package may record firstArticleOrder.inputsReady: true for an explicitly approved two-board prototype upload while retaining orderAuthorized: false and turnkeyAssemblyReleaseAllowed: false; physical programming and qualification remain post-delivery gates. The pinned PlatformIO build now produces a real U140 HEX with SHA-256 a0ce14514700d34f87a239f6a3d433811e78247802356a7ebcc51cb7f086390d, and that exact artifact is included in the rev.C release packaging. No programmed ATmega4809 readback exists yet. A deterministic CP2102N prototype policy is also included, but a vendor-generated/device-read-back-verified CP2102N configuration record remains outstanding. U140 provides disk service, OLED output mirroring, and the standalone keyboard bridge, so all three functions belong in its first-article firmware test.

Source-of-truth rule

Do not hand-edit a generated rev.A netlist, PCB, or per-module schematic and expect the change to persist. Make electrical changes in the hardware registry and regenerate. Production-only transformations, exact footprint loading, placement, release validation, and manufacturing exports live under simulator/src/export/production.ts and simulator/scripts/production/.

Passing simulation and DRC proves digital consistency and manufacturability against the encoded rules. Physical timing, signal integrity, power integrity, connector mechanics, and firmware still require validation on fabricated hardware.

Parts

658
QtyValueFootprintReferences
166100nFCapacitor_SMD:C_0805_2012MetricC3, C10, C11, C12, C24, C25, C26, C27, C170, C172, C400, C401, C402, C403, C404, C405 +150
843.3KResistor_SMD:R_0805_2012MetricR200, R201, R202, R203, R204, R205, R206, R207, R208, R209, R210, R211, R212, R213, R214, R215 +68
5033RResistor_SMD:R_0805_2012MetricR25, R26, R27, R189, R190, R191, R192, R600, R601, R602, R603, R604, R605, R606, R607, R608 +34
30#ffd60aLED_SMD:LED_0805_2012MetricD232, D233, D234, D235, D236, D237, D238, D239, D244, D245, D246, D247, D248, D249, D250, D251 +14
20#34c759LED_SMD:LED_0805_2012MetricD202, D203, D204, D205, D206, D207, D208, D209, D210, D211, D212, D213, D214, D215, D240, D241 +4
18#4c8dffLED_SMD:LED_0805_2012MetricD200, D201, D258, D259, D260, D261, D262, D263, D264, D265, D268, D269, D270, D271, D272, D273 +2
1710KResistor_SMD:R_0805_2012MetricR3, R4, R5, R14, R15, R16, R20, R21, R22, R23, R24, R29, R30, R31, R32, R33 +1
16#ff453aLED_SMD:LED_0805_2012MetricD216, D217, D218, D219, D220, D221, D222, D223, D224, D225, D226, D227, D228, D229, D230, D231
1274HC161Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU5, U6, U7, U9, U47, U48, U49, U56, U57, U59, U63, U64
11100KResistor_SMD:R_0805_2012MetricR17, R42, R43, R44, R45, R180, R700, R702, R713, R716, R718
111KResistor_SMD:R_0805_2012MetricR13, R34, R35, R36, R37, R38, R39, R40, R41, R176, R720
974HC151Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU157, U158, U159, U160, U161, U162, U163, U164, U165
974HC173Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU10, U11, U23, U24, U25, U30, U31, U32, U35
874HC153Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU70, U71, U72, U73, U74, U75, U76, U120
8SN74AHCT541PWRPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU168, U178, U181, U182, U183, U184, U185, U186
774HC157Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU28, U29, U116, U117, U119, U128, U129
774HC245Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU8, U14, U15, U19, U115, U122, U124
64.7KResistor_SMD:R_0805_2012MetricR172, R173, R174, R175, R710, R714
674HC138Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU37, U46, U51, U58, U69, U90
674HC283Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU77, U78, U79, U80, U147, U148
6AT28C256-15JUPackage_LCC:PLCC-32_SocketU36, U41, U42, U43, U44, U62
510uF/25VCapacitor_SMD:C_0805_2012MetricC13, C14, C15, C19, C705
574HC08Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU95, U118, U126, U153, U154
5SN74HC688PWRPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU65, U92, U98, U139, U166
474HC193Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU12, U13, U16, U17
474HC273Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU40, U52, U55, U60
474HC74Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU97, U100, U135, U179
474HC86Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU149, U150, U151, U152
474HCT245Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU22, U34, U54, U141
474HCT273D,653Package_SO:SOIC-20W_7.5x12.8mm_P1.27mmU130, U131, U132, U133
4AO3401APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
4SN74AHCT00DRPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU66, U67, U68, U251
4TPD2E2U06DRLRPackage_TO_SOT_SMD:SOT-553U146, U172, U173, U195
3100pFCapacitor_SMD:C_0805_2012MetricC173, C180, C181
31uFCapacitor_SMD:C_0805_2012MetricC22, C23, C171
322uF/16VCapacitor_SMD:C_0805_2012MetricC16, C17, C18
3SN74AHCT14PWRPackage_SO:TSSOP-14_4.4x5mm_P0.65mmU2, U175, U188
3SN74AHCT32DRPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU136, U176, U187
2100RResistor_SMD:R_0805_2012MetricR701, R717
2200KResistor_SMD:R_0805_2012MetricR171, R711
22N7002,215Package_TO_SOT_SMD:SOT-23Q181, Q182
24.7uFCapacitor_SMD:C_0805_2012MetricC7, C9
247uFCapacitor_SMD:C_0805_2012MetricC4, C21
25.1KResistor_SMD:R_0805_2012MetricR6, R7
274HC00Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU96, U125
274HC04Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU93, U127
274HC32Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU155, U156
274VHC161FT(BJ)Package_SO:TSSOP-16_4.4x5mm_P0.65mmU1, U45
2MC74VHC1GT125DBVT1GPackage_TO_SOT_SMD:SOT-23-5U105, U196
2S4B-PH-SM4-TB(LF)(SN)Connector_JST:JST_PH_S4B-PH-SM4-TB_1x04-1MP_P2.00mm_HorizontalJ1, J6
2SN74AHCT125DRPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU180, U252
2SN74AHCT1G125DBVRPackage_TO_SOT_SMD:SOT-23-5U143, U253
2SN74LVC1G17DBVRPackage_TO_SOT_SMD:SOT-23-5U107, U171
2TPS2553DBVRPackage_TO_SOT_SMD:SOT-23-6U102, U169
2USB4105-GF-A-120Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ2, J7
2USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U104, U194
10RResistor_SMD:R_0805_2012MetricR9
10R DNPResistor_SMD:R_0805_2012MetricR10
11.5KResistor_SMD:R_0805_2012MetricR181
11.8432MHz OSCMSAP2:SCTF_SX5M_SMD5032-4PX1
110uFCapacitor_SMD:C_0805_2012MetricC20
1180KResistor_SMD:R_0805_2012MetricR170
11N4148W-7-FDiode_SMD:D_SOD-123D180
120.5KResistor_SMD:R_0805_2012MetricR703
122.1KResistor_SMD:R_0805_2012MetricR11
1220uF/16VCapacitor_SMD:C_0805_2012MetricC700
13.16KResistor_SMD:R_0805_2012MetricR182
1330RResistor_SMD:R_0805_2012MetricR28
145.3KResistor_SMD:R_0805_2012MetricR712
147.5KResistor_SMD:R_0805_2012MetricR12
162KResistor_SMD:R_0805_2012MetricR8
174HC139D,653Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU167
174LVC1G157GV,125Package_SO:TSOP-6_1.65x3.05mm_P0.95mmU197
1887KResistor_SMD:R_0805_2012MetricR719
1ATMEGA4809-AFRPackage_QFP:TQFP-48_7x7mm_P0.5mmU140
1CH9350LPackage_QFP:LQFP-48_7x7mm_P0.5mmU193
1CP2102N-A02-GQFN20RPackage_DFN_QFN:SiliconLabs_QFN-20-1EP_3x3mm_P0.5mm_EP1.8x1.8mmU103
1CPU SPEEDButton_Switch_SMD:SW_SPST_TL3342SW6
1DM3AT-SF-PEJM5Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5J3
1IS62C256AL-45ULI-TRPackage_SO:SOP-28_8.4x18.16mm_P1.27mmU33

The 633 most common of 658 parts.

More from mehrantsi/MSAP-2

3

Similar boards

  • 2 layers17.5 × 12.4 mmJigkick, the printed circuit board in 3D

    Jigkick

    HDR/Baryon-Sweeper-Jigkick-Board

    Small cheap JigKick pcb for unbricking the PSP-3000

    9 parts4
  • 4 layers104 × 64 mmFYDP, the printed circuit board in 3D

    FYDP

    mingzejin11/FYDP

    4B capstone project repository containing PCB design files

    259 parts
  • 2 layers34.1 × 45 mmSnes fpc, the printed circuit board in 3D

    Snes fpc

    fliperama86/superpico-digital

    SuperPico Digital is a digital-to-digital HDMI mod for 2-chip SNES consoles using the Raspberry Pi Pico 2 (RP2350)

    12 parts41
  • 2 layers90 × 90 mmRev.1 f, the printed circuit board in 3D

    Rev.1 f

    cel366/dendy_clone_smd

    Dendy_clone

    131 parts1
  • 2 layersKeyboard Memory Emulator, the printed circuit board in 3D

    Keyboard Memory Emulator

    ShreksHellraiser/Vintage-Keyboard-Memory-Replacement

    ABANDONED UNFINISHED - A memory replacement PCB that adds sample loading and saving to the SK-1

    40 parts
  • 4 layers115.5 × 96.2 mmClosed deck x4, the printed circuit board in 3D

    Closed deck x4

    OpenLogicEFI/Hardware

    Hardware is based off an open source project called Speeduino by Josh Stewart.

    245 parts19
  • 4 layers165 × 100 mmUsb scoring platform, the printed circuit board in 3D

    Usb scoring platform

    AndrewCraswell/agency

    Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

    224 partsMIT

Questions

How big is the MSAP-2 rev.A SMD PCB?

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

What parts does the MSAP-2 rev.A SMD use?

658 parts, built around the SN74AHCT541PWRE4, 74HC245D, 74HCT245 and CH9350L. 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 MSAP-2 rev.A SMD KiCad files?

From the mehrantsi/MSAP-2 repository on GitHub, at the commit this page was made from: the board is Schematics/MSAP-2 rev.A SMD.kicad_pcb and its schematic Schematics/KiCad/ADDRESS_PATH.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MSAP-2 rev.A SMD design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).