
Econopet
DLehenbauer/econopet
Mainboard replacement for Commodore PET/CBM series machines

Mainboard replacement for Commodore PET/CBM series machines
Econopet is an open-source printed circuit board by DLehenbauer, from the DLehenbauer/econopet repository on GitHub, published under the CC0-1.0 licence. It is a 2-layer board of 262.5 × 107.9 mm with 305 parts on 346 nets, routed with 5,449 tracks and 2,192 vias.
It is built around the SN74LS07D, 74LS245SC and SN74LVC4245APW, with the AMS1117-3.3, SS54 and TS-1088-AR02016 among its other parts. Its parts include 116 capacitors, 77 resistors, 14 ICs, 12 diodes and 11 connectors. It belongs with the computers and single-board computers and retro computing and games boards of this library.
Open hardware mainboard replacement for Commodore PET/CBM 2001/30xx/40xx/80xx machines. The EconoPET can also run standalone with HDMI display and USB keyboard.

See the project page for user manual and firmware updates.
⚠️ Warning: Rev A is not perfect. Before ordering, review the currently known issues and understand that new issues may be discovered over time.
Rev. A has been released. For manufacturing and assembly instructions, go here.
This project uses a Dev Container for a consistent development environment on Windows, macOS, and Linux.
This project uses CMake to manage the build process for firmware, gateware, ROMs, and SD card package.
# Configure
cmake --preset default # Do this first
# Build
cmake --build --preset all # Build everything
cmake --build --preset boot # Build the EconoPET SD-card bootloader
cmake --build --preset fw # Build firmware only
cmake --build --preset fw-test # Build firmware tests only
cmake --build --preset sys-test # Build system integration tests
cmake --build --preset gw # Build gateware only
cmake --build --preset rom # Build ROMs only
cmake --build --preset sdcard # Build SD card package
# Build and Program
cmake --build --preset prog-boot # Build and program bootloader over SWD
cmake --build --preset prog-fw # Build and program firmware over SWD
cmake --build --preset prog-gw # Build and program gateware over SWD
cmake --build --preset prog # Build and program bootloader, firmware and gateware over SWD
# Test
ctest --preset all --parallel # Run all tests
ctest --preset fw --parallel # Run firmware tests only
ctest --preset sys # Run system integration suite only
ctest --preset gw --parallel # Run gateware unit tests only
ctest --preset gw-boot --parallel # Run full-boot benches (Verilator, minutes)Gateware benches run under both simulators. gw runs both quick suites;
gw-iv and gw-vl run only Icarus or Verilator, respectively. Verilator is
two-state and settles differently, so it catches races Icarus tolerates. Each
suite takes under a minute. ECONOPET_MEDIA_DIR must point at the directory
containing roms/ and disks/; top_tb and the boot bench load real ROMs
from its roms/ subdirectory.
The integration-test author guide covers host, board
and firmware fixtures, checked CPU programs, ROM calls, and cooperative phases.
Use its nested CTest commands to filter individual integration cases or set
inner parallelism. The root sys preset selects the aggregate wrapper.
gw-boot is separate because it simulates seconds of PET time: it boots the
stock BASIC-4 ROMs on the soft 6502 and passes only once the banner, the RAM
sizing result and the READY. prompt are all on screen. That takes ~5 minutes
under Verilator and is impractical under Icarus. It prints the screen at the
end and writes gw/EconoPET/outflow/stock6502_boot_tb.pgm:
|*** COMMODORE BASIC 4.0 *** |
| |
| 31743 BYTES FREE |
| |
|READY. |ctest hides that on success, so use ctest --preset gw-boot --parallel -V to see it, or
run ./verilate.sh stock6502_boot_tb 0 directly. See
docs/dev/verilator.md for the Verilator runner and
docs/dev/testing.md for test seeding and replay.
This project is released under the CC0 1.0 Universal (CC0) license, placing it in the public domain.
Exception: external dependencies are subject to their own licenses as noted in their respective source code and in NOTICE.md.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 52 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C2, C3, C14, C18, C25, C27, C28, C33, C34, C35, C36, C100, C104, C106, C107 +36 |
| 15 | 4u7 10V | Capacitor_SMD:C_0402_1005Metric | C23, C26, C30, C31, C32, C62, C63, C64, C65, C66, C75, C76, C77, C79, C99 |
| 10 | 10k | Resistor_SMD:R_0402_1005Metric | R18, R19, R20, R25, R32, R33, R39, R62, R66, R70 |
| 9 | 10kx4 | Resistor_SMD:R_Array_Convex_4x0603 | RN1, RN4, RN5, RN8, RN9, RN10, RN14, RN15, RN16 |
| 9 | 1u | Capacitor_SMD:C_0402_1005Metric | C20, C39, C41, C42, C43, C80, C103, C114, C115 |
| 9 | 270 | Resistor_SMD:R_0603_1608Metric | R53, R54, R55, R56, R57, R58, R59, R60, R61 |
| 8 | 1k | Resistor_SMD:R_0402_1005Metric | R27, R29, R38, R41, R42, R43, R65, R74 |
| 8 | 2k2 | Resistor_SMD:R_0402_1005Metric | R7, R44, R45, R48, R49, R50, R51, R52 |
| 6 | 22u | Capacitor_SMD:C_0805_2012Metric | C11, C19, C22, C24, C29, C113 |
| 6 | 4k7 | Resistor_SMD:R_0402_1005Metric | R1, R2, R3, R4, R13, R40 |
| 5 | 10n | Capacitor_SMD:C_0402_1005Metric | C54, C56, C58, C60, C61 |
| 5 | 1k5 | Resistor_SMD:R_0402_1005Metric | R17, R34, R35, R67, R69 |
| 5 | 22n | Capacitor_SMD:C_0402_1005Metric | C9, C10, C81, C85, C116 |
| 4 | 10u | Capacitor_SMD:C_0603_1608Metric | C12, C13, C15, C16 |
| 4 | 12k | Resistor_SMD:R_0402_1005Metric | R6, R26, R36, R75 |
| 4 | 33p | Capacitor_SMD:C_0402_1005Metric | C17, C21, C86, C87 |
| 4 | 47u 10V | Capacitor_SMD:C_1206_3216Metric | C8, C84, C101, C102 |
| 4 | 4k7x4 | Resistor_SMD:R_Array_Convex_4x0603 | RN2, RN3, RN6, RN7 |
| 4 | LED_RED | LED_SMD:LED_0603_1608Metric | D6, D8, D9, D10 |
| 4 | SS54 | Diode_SMD:D_SMA | D1, D2, D3, D12 |
| 4 | TS-1088-AR02016 | LCSC:SW-SMD_L3.9-W3.0-P4.45 | SW1, SW2, SW4, SW6 |
| 3 | 100k | Resistor_SMD:R_0402_1005Metric | R24, R28, R71 |
| 3 | 2u2 6.3V | Capacitor_SMD:C_0402_1005Metric | C88, C91, C92 |
| 3 | 470x4 | Resistor_SMD:R_Array_Convex_4x0603 | RN11, RN12, RN13 |
| 3 | 5k6 | Resistor_SMD:R_0402_1005Metric | R21, R22, R23 |
| 3 | SN74LS07 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U14, U15, U16 |
| 3 | SN74LVC4245A | Package_SO:TSSOP-24_4.4x7.8mm_P0.65mm | U7, U8, U9 |
| 3 | SS8050 | Package_TO_SOT_SMD:SOT-23 | Q4, Q5, Q6 |
| 2 | 1 | Resistor_SMD:R_0603_1608Metric | R72, R73 |
| 2 | 1.8uH | LCSC:IND-SMD_L5.0-W5.0_FNR50XXS | L1, L2 |
| 2 | 10u 16V | Capacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A | C108, C109 |
| 2 | 120 | Resistor_SMD:R_0805_2012Metric | R5, R12 |
| 2 | 1N4148WS | Diode_SMD:D_SOD-323 | D13, D14 |
| 2 | 2200uF | Capacitor_THT:CP_Radial_D12.5mm_P5.00mm | C111, C112 |
| 2 | 22k | Resistor_SMD:R_0402_1005Metric | R11, R37 |
| 2 | 27 | Resistor_SMD:R_0603_1608Metric | R46, R47 |
| 2 | 330k | Resistor_SMD:R_0603_1608Metric | R14, R16 |
| 2 | 470 | Resistor_SMD:R_0402_1005Metric | R30, R31 |
| 2 | 56k | Resistor_SMD:R_0402_1005Metric | R63, R64 |
| 2 | 74LS245 | Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm | U17, U18 |
| 2 | AO3401A | EconoPET:SOT-23_L2.9-W1.3-P1.90-LS2.4-BR | Q2, Q3 |
| 2 | DNP | Capacitor_SMD:C_0402_1005Metric | C4, C5 |
| 2 | LED_GRN | LED_SMD:LED_0603_1608Metric | D7, D11 |
| 2 | MountingHole_Pillar | MountingHole:MountingHole_3.5mm | H3, H4 |
| 2 | TPS564247DRLR | Package_TO_SOT_SMD:SOT-563 | U4, U6 |
| 2 | W65C21N | Package_DIP:DIP-40_W15.24mm_Socket | U11, U12 |
| 1 | 12 MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 120k | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 13k | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 150 | Resistor_SMD:R_0805_2012Metric | R76 |
| 1 | 15000uF | EconoPET:CP_Radial_D18.0mm_P5.00mm_P7.50mm | C110 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric | R10 |
| 1 | 33K | Resistor_SMD:R_0402_1005Metric | R81 |
| 1 | 42Ω SPK | EconoPET:AT1220TT9R | LS1 |
| 1 | 47n | Capacitor_SMD:C_0603_1608Metric | C105 |
| 1 | 5V POWER | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J28 |
| 1 | 5V PWR | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J10 |
| 1 | 600 200ma | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 680 | Resistor_SMD:R_0402_1005Metric | R68 |
| 1 | 68k | Resistor_SMD:R_0603_1608Metric | R15 |
| 1 | 68n | Capacitor_SMD:C_0603_1608Metric | C82 |
| 1 | 6V POWER | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J27 |
| 1 | 74LS145 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U19 |
| 1 | 9V POWER | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J11 |
| 1 | 9V POWER JACK | PET:BarrelJack_Horizontal | J13 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U3 |
| 1 | AUDIO | EconoPET:CUI_SJ-43504-SMT-TR | J21 |
| 1 | BUS_EXPANSION | Connector_PinHeader_2.54mm:PinHeader_2x25_P2.54mm_Vertical | J4 |
| 1 | CASS A READ | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP3 |
| 1 | CASS A ~{MOTOR} | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP5 |
| 1 | CASS A ~{SWITCH} | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1 |
| 1 | CASS B READ | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP4 |
| 1 | CASS B ~{MOTOR} | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP6 |
| 1 | CASS B ~{SWITCH} | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP2 |
| 1 | CASS_A_EDGE | EconoPET:CBM_PET_CASS_EDGE_CON_12P | J3 |
| 1 | CASS_A_HEADER | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J15 |
| 1 | CASS_B_EDGE | EconoPET:CBM_PET_CASS_EDGE_CON_12P | J6 |
| 1 | CASS_B_HEADER | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J16 |
| 1 | CONFIG | EconoPET:SW_DIP_SPSTx03_Slide_6.7x9.18mm_W7.62mm_P2.54mm_LowProfile_or_SolderJumper | SW3 |
| 1 | DVI_CEC | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP7 |
The 270 most common of 305 parts.

DLehenbauer/econopet
Mainboard replacement for Commodore PET/CBM series machines

DLehenbauer/commodore-pet-clone
Open hardware clone of the Commodore PET 4032


nordstream3/FOC
Date | Manufacturer | amount | includes | shipping & tax | price | -------- | -------- | -------- | -------- | -------- | -------- | 2024-01-17 | JLCPCB | 10 boards | All assembled excl fets and caps | YES, to EU |…

snorklerjoe/useful6502
A homebrew 65c02s-based computer and custom operating system, with a handful of modern features.



andrewsharmon/rp2350-stepper-controller
Low-cost 10-axis sine-microstepping controller for small steppers on the RP2350 (PIO + DMA). WIP.

yeyintlwin/kicad-board-design
Design a two-layer KiCad PCB entirely from Python scripts - no GUI step, no commercial autorouter
It measures 262.5 × 107.9 mm and has 2 copper layers, 0.57 mm thick.
305 parts, built around the SN74LS07D, 74LS245SC, SN74LVC4245APW and AMS1117-3.3. 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.
From the DLehenbauer/econopet repository on GitHub, at the commit this page was made from: the board is hw/rev-b/mainboard/kicad/Mainboard.kicad_pcb and its schematic hw/rev-a/mainboard/kicad/Audio.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CC0-1.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).