], ) ext_gnd = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mm", identifier="EXTGND", value="0v", pins=[ Pin(1, "", ["GND"]), Pin(2, "", ["GND"]), Pin(3, "", ["GND"]), Pin(4, "", ["GND"]), Pin(5, "", ["GND"]), Pin(6, "", ["GND"]), ], ) ext_neg_5v = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mm", identifier="EXT-5V", value="-5v", pins=[ Pin(1, "", ["-5V"]), Pin(2, "", ["-5V"]), Pin(3, "", ["-5V"]), Pin(4, "", ["-5V"]), Pin(5, "", ["-5V"]), Pin(6, "", ["-5V"]), ], ) myelin_kicad_pcb.dump_netlist("%s.net" % PROJECT_NAME)
Pin("SH2", "GND"), ], ) #TODO figure out if this is necessary -- might only be with MMC cards #sd_cmd_pullup = myelin_kicad_pcb.R0805("10k", "3V3", "sd_MOSI") # In case we want to use an external SD adapter ext_sd = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_2x03_Pitch2.54mm", identifier="EXTSD", value="ext sd", pins=[ Pin(1, "1", ["sd_nSS"]), Pin(2, "2", ["sd_MOSI"]), Pin(3, "3", ["3V3"]), Pin(4, "4", ["sd_SCK"]), Pin(5, "5", ["GND"]), Pin(6, "6", ["sd_MISO"]), ], ) for n in range(7): single_staple = myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) myelin_kicad_pcb.dump_netlist("bbc_1mhz_serial_sd.net")
identifier="CON2", value="3.3V #2", pins=[ Pin("1", "", ["ext_dbuf_nCE"]), Pin("2", "", ["ext_A10"]), Pin("3", "", ["ext_D3"]), Pin("4", "", ["ext_nOE"]), Pin("5", "", ["ext_D4"]), Pin("6", "", ["ext_A11"]), Pin("7", "", ["ext_A3"]), Pin("8", "", ["ext_D5"]), Pin("9", "", ["ext_A2"]), Pin("10", "", ["ext_D6"]), Pin("11", "", ["ext_D0"]), Pin("12", "", ["ext_D7"]), Pin("13", "", ["ext_A0"]), Pin("14", "", ["ext_A1"]), ]), ] staples = [ myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) for n in range(7) ] myelin_kicad_pcb.dump_netlist("rom_socket_level_shifter.net")
pins=[ Pin(1, "TCK", ["cpld_TCK"]), # top left Pin(2, "GND", ["GND"]), # top right Pin(3, "TDO", ["cpld_TDO"]), Pin(4, "3V3", ["3V3"]), Pin(5, "TMS", ["cpld_TMS"]), Pin(6, "NC"), Pin(7, "NC"), Pin(8, "NC"), Pin(9, "TDI", ["cpld_TDI"]), Pin(10, "GND", ["GND"]), ], ) regulator = Component( footprint="TO_SOT_Packages_SMD:SOT-89-3", identifier="U3", value="MCP1700T-3302E/MB", desc="3.3V LDO regulator. Search for the exact part number because there are many variants.", pins=[ Pin(2, "VIN", ["5V"]), Pin(3, "VOUT", ["3V3"]), Pin(1, "GND", ["GND"]), ], ) reg_in_cap = C0805("1u", "5V", "GND", ref="C3") reg_out_cap = C0805("1u", "3V3", "GND", ref="C4") dump_netlist("standalone_programmer.net") dump_bom("bill_of_materials.txt")
Pin(16, "", "C4_16_DPCLK0"), Pin(17, "", "C4_17"), Pin(18, "", "C4_18"), Pin(19, "", "C4_19"), Pin(20, "", "C4_20"), Pin(21, "", "C4_21"), Pin(22, "", "C4_22"), Pin(23, "", "C4_23"), Pin(24, "", "C4_24"), Pin(25, "", "C4_25"), Pin(26, "", "C4_26"), Pin(27, "", "C4_27"), Pin(28, "", "C4_28"), Pin(29, "5V", "NC-4-29"), Pin(30, "", "C4_30"), Pin(31, "", "C4_31"), Pin(32, "", "C4_32"), Pin(33, "", "C4_33"), Pin(34, "", "C4_34"), Pin(35, "", "C4_35"), Pin(36, "", "C4_36"), Pin(37, "", "C4_37"), Pin(38, "", "C4_38"), Pin(39, "", "C4_39"), Pin(40, "", "C4_40"), ], ), ] myelin_kicad_pcb.dump_netlist("bga_in_two_layers.net")
pins=[ # DIN-5 pins are numbered weirdly -- 1, 4, 2, 5, 3 around the circle Pin( 1, "D+", ["econet_data_line_P"]), Pin( 4, "D-", ["econet_data_line_M"]), Pin( 2, "GND", ["GND"]), Pin( 5, "C+", ["econet_clock_line_P"]), Pin( 3, "C-", ["econet_clock_line_M"]), # Ground all the shield pins Pin("S1", "", "GND"), Pin("S2", "", "GND"), Pin("S3", "", "GND"), Pin("S4", "", "GND"), ], ) for socket_id in range(5)] # Ground plane stapling vias for n in range(5): single_staple = myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n+1), value="", pins=[Pin(1, "GND", ["GND"])], ) myelin_kicad_pcb.dump_netlist("%s.net" % PROJECT_NAME) myelin_kicad_pcb.dump_netlist("cpu_socket_expansion.net") myelin_kicad_pcb.dump_bom("bill_of_materials.txt", "readable_bill_of_materials.txt")
#Pin(1, "3V3", ["3V3"]), #Pin(2, "5V", ["5V"]), Pin(3, "GPIO0-2", ["tube_A1"]), Pin(4, "5V", ["5V"]), Pin(5, "GPIO1-3", ["tube_A2"]), Pin(6, "ser_GND", ["pi_serial_GND"]), Pin(7, "GPIO4", ["tube_nRST"]), Pin(8, "ser_TX", ["pi_serial_TX"]), Pin(9, "GND", ["GND"]), Pin(10, "ser_RX", ["pi_serial_RX"]), Pin(11, "GPIO17", ["tube_nTUBE"]), Pin(12, "GPIO18", ["tube_RnW"]), Pin(13, "GPIO21-27", ["tube_A0"]), Pin(14, "GND", ["GND"]), Pin(15, "GPIO22", ["tube_D4"]), Pin(16, "GPIO23", ["tube_D5"]), Pin(17, "3V3", ["3V3"]), Pin(18, "GPIO24", ["tube_D6"]), Pin(19, "GPIO10", ["tube_D2"]), Pin(20, "GND", ["GND"]), Pin(21, "GPIO9", ["tube_D1"]), Pin(22, "GPIO25", ["tube_D7"]), Pin(23, "GPIO11", ["tube_D3"]), Pin(24, "GPIO8", ["tube_D0"]), Pin(25, "GND", ["GND"]), Pin(26, "GPIO7", ["tube_PHI0"]), ], ) myelin_kicad_pcb.dump_netlist("cpu_socket_minispartan_daughterboard.net")
Pin(31, "nWE", ["elk_RnW"]), Pin(32, "VDD", ["5V"]), ], ) flash_cap = myelin_kicad_pcb.C0805("100n", "5V", "GND", ref="C2") quad_nand = myelin_kicad_pcb.Component( footprint="Housings_SOIC:SOIC-14_3.9x8.7mm_Pitch1.27mm", identifier="U1", value="74HCT00", pins=[ Pin(1, "1A", ["elk_nOE"]), Pin(2, "1B", ["elk_nOE"]), Pin(3, "1Y", ["not_elk_nOE"]), Pin(4, "2A", ["not_elk_nOE"]), Pin(5, "2B", ["elk_PHI0"]), Pin(6, "2Y", ["flash_nCE"]), Pin(7, "GND", ["GND"]), Pin(8, "3Y"), # unused gate Pin(9, "3A", ["GND"]), # unused gate Pin(10, "3B", ["GND"]), # unused gate Pin(11, "4Y", ["flash_nOE"]), Pin(12, "4A", ["elk_RnW"]), Pin(13, "4B", ["elk_RnW"]), Pin(14, "VCC", ["5V"]), ], ) nand_cap = myelin_kicad_pcb.C0805("100n", "5V", "GND", ref="C1") myelin_kicad_pcb.dump_netlist("flash_cartridge.net")
Pin(11, "D8_A8_PB4", ["mcu_GPIO_D8_nSD_SEL"]), # /SD_SEL Pin(12, "D9_A9_nOC4B_PB5", ["mcu_SS"]), # /SS Pin( 13, "D10_A10_OC4B_PB6", ), Pin(14, "D16_MOSI_PB2", ["mcu_MOSI_TDI"]), # SPI (shared with JTAG) Pin(15, "D14_MISO_PB3", ["mcu_MISO"]), # SPI Pin(16, "D15_SCK_PB1", ["mcu_SCK_TMS"]), # SPI (shared with JTAG) Pin(17, "D18_A0_PF7", ["mcu_GPIO_D18_TDO"]), # JTAG TDO Pin(18, "D19_A1_PF6", ["mcu_SCK_TMS"]), # JTAG (shared with SPI) Pin(19, "D20_A2_PF5", ["mcu_GPIO_D20_TCK"]), # JTAG TCK Pin(20, "D21_A3_PF4", ["mcu_MOSI_TDI"]), # JTAG (shared with SPI) Pin(21, "VCC", ["3V3"]), Pin(22, "RST", ["mcu_RESET"]), Pin(23, "GND", ["GND"]), Pin(24, "VRAW", ["5V"]), ], ) # Ground plane stapling vias for n in range(15): single_staple = myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) myelin_kicad_pcb.dump_netlist("atsamd11_pro_micro.net")
], ) # Jumper to connect 5v power from the Electron to the Pi Zero. # Plus 1 cartridges aren't meant to draw more than 50 mA, and the Pi Zero # typically needs ~150 mA, so this should probably be left unconnected, # with a separate PSU supplying the Pi. power_jumper = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm", identifier="POWER1", value="Elk-Pi 5V", pins=[ Pin(1, "A", ["5V"]), Pin(2, "B", ["elk_5V"]), ], ) # Just in case we want to connect up an ext PSU for CPLD programming ext_power = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm", identifier="EXTPWR", value="ext pwr", pins=[ Pin(1, "A", ["GND"]), Pin(2, "B", ["3V3"]), Pin(3, "C", ["5V"]), ], ) myelin_kicad_pcb.dump_netlist("elk_pi_tube_direct.net")
Pin("29", "", ["ext_A4"]), Pin("30", "", ["ext_A5"]), Pin("31", "", ["ext_A6"]), Pin("32", "", ["ext_A7"]), Pin("33", "", ["ext_A8"]), Pin("34", "", ["ext_A9"]), Pin("35", "", ["ext_A10"]), Pin("36", "", ["ext_A11"]), Pin("37", "", ["ext_A12"]), Pin("38", "", ["ext_A13"]), Pin("39", "", ["ext_A14"]), Pin("40", "", ["ext_A15"]), ], ) gp1_pullup = myelin_kicad_pcb.R0805("10k", "ext_GP1", "3V3", ref="R4") gp3_pullup = myelin_kicad_pcb.R0805("10k", "ext_GP3", "3V3", ref="R5") gp4_pullup = myelin_kicad_pcb.R0805("10k", "ext_GP4", "3V3", ref="R6") staples = [ myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) for n in range(33) ] myelin_kicad_pcb.dump_netlist("cpu_socket_expansion.net") myelin_kicad_pcb.dump_bom("bill_of_materials.txt", "readable_bill_of_materials.txt")
Pin("27", "A14", ["bbc_A14"]), Pin("28", "VCC", ["5V"]), ], ) staples = [ myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n+1), value="", pins=[Pin(1, "GND", ["GND"])], ) for n in range(10) ] myelin_kicad_pcb.dump_netlist("master_updateable_megarom.net") myelin_kicad_pcb.dump_bom("bill_of_materials.txt", "readable_bill_of_materials.txt") # Keeping these around just in case I do decide to switch over to using a # PSoC4 chip (CY8C4245) instead of the 64-pin XC9572XL one day! # ----------------------------------------------------------------------- # # unidirectional buffer for address lines, cpu -> expansion connector # addr_buf_lo = myelin_kicad_pcb.Component( # footprint="Housings_SSOP:SSOP-20_4.4x6.5mm_Pitch0.65mm", # identifier="ABUFL", # value="74LVC245", # pins=[ # Pin( 1, "A->B", ["abuf_ext_to_cpu"]),
Pin(1, "RnW", ["RnW"]), Pin(2, "WnR", ["nRnW"]), Pin(3, "BANK2", ["A14"]), Pin(4, "BANK3", ["A15"]), ], ) ext_power = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm", identifier="EXTPWR", value="ext pwr", desc="1x2 0.1 inch male header", pins=[ Pin(1, "GND", ["GND"]), Pin(2, "5V", ["5V"]), ], ) staples = [ myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) for n in range(0) ] myelin_kicad_pcb.dump_netlist("bbc_128kb_sram.net") myelin_kicad_pcb.dump_bom("bill_of_materials.txt", "readable_bill_of_materials.txt")
power_header = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm", identifier="PWR", value="reset", pins=[ Pin(1, "", ["3V3"]), Pin(2, "", ["5V"]), ], ) reset_header = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm", identifier="RST", value="reset", pins=[ Pin(1, "", ["GND"]), Pin(2, "", ["mcu_RESET"]), ], ) for n in range(20): single_staple = myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) myelin_kicad_pcb.dump_netlist("atsamd21_usb.net")
], ) return myelin_kicad_pcb.Component( footprint="myelin-kicad:cherry_mx_pcb_mount", identifier=ref, value="keyswitch", pins=[ Pin(1, "1", a_net), Pin(2, "2", d_net), ], ) cherry_with_diode("x", "y") ext = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm", identifier="EXT", value="ext", pins=[ Pin(1, "5V", ["5V"]), Pin(2, "X", ["x"]), Pin(3, "Y", ["x_y_diode"]), Pin(4, "GND", ["y"]), ], ) myelin_kicad_pcb.R0805("10k", "x", "5V") myelin_kicad_pcb.dump_netlist("cherry_mx.net")
Pin(3, "", "cpu_SYNC"), Pin(4, "", "cpu_nNMI"), Pin(5, "", "analyzer_PD2_READY"), Pin(6, "", "elk_READY_master_RnW"), Pin(7, "", "tube_RnW"), Pin(8, "", "analyzer_PD0_RnW"), ], ) # Just in case we want to connect up an ext PSU for CPLD programming ext_power = myelin_kicad_pcb.Component( footprint="Pin_Headers:Pin_Header_Straight_1x03_Pitch2.54mm", identifier="EXTPWR", value="ext pwr", pins=[ Pin(1, "A", ["GND"]), Pin(2, "B", ["3V3"]), Pin(3, "C", ["5V"]), ], ) for n in range(32): single_staple = myelin_kicad_pcb.Component( footprint="myelin-kicad:via_single", identifier="staple_single%d" % (n + 1), value="", pins=[Pin(1, "GND", ["GND"])], ) myelin_kicad_pcb.dump_netlist("fx2_tube_cartridge_adapter.net")
identifier="JTAG", value="jtag", pins=[ Pin(1, "TCK", ["cpld_TCK"]), # top left Pin(2, "GND", ["GND"]), # top right Pin(3, "TDO", ["cpld_TDO"]), Pin(4, "3V3", ["3V3"]), Pin(5, "TMS", ["cpld_TMS"]), Pin(6, "NC"), Pin(7, "NC"), Pin(8, "NC"), Pin(9, "TDI", ["cpld_TDI"]), Pin(10, "GND", ["GND"]), ], ) regulator = myelin_kicad_pcb.Component( footprint="TO_SOT_Packages_SMD:SOT89-3_Housing", identifier="REG", value="MCP1700T-3302E/MB", pins=[ Pin(2, "VIN", ["5V"]), Pin(3, "VOUT", ["3V3"]), Pin(1, "GND", ["GND"]), ], ) reg_in_cap = myelin_kicad_pcb.C0805("1u", "5V", "GND", ref="C4") reg_out_cap = myelin_kicad_pcb.C0805("1u", "3V3", "GND", ref="C5") myelin_kicad_pcb.dump_netlist("minus_one.net")