Skip to content

Commit

Permalink
Generate for KiCAD 7
Browse files Browse the repository at this point in the history
  • Loading branch information
jvestman committed Sep 23, 2023
1 parent 5ae65b6 commit 594bae5
Show file tree
Hide file tree
Showing 13 changed files with 62 additions and 22 deletions.
2 changes: 1 addition & 1 deletion arduino_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ def generate_arduino_nano_v3_board_footprint():
"""Generate Arduino Nano V3 board layout footprint"""
return '''
BOARD = Part('MCU_Module', 'Arduino_Nano_v3.x', footprint='Module:Arduino_Nano')
BOARD['~RESET'] += U1['~{RESET}/PC6']
BOARD['~{RESET}'] += U1['~{RESET}/PC6']
BOARD['+5V'] += Net.fetch('+5V')
BOARD['3V3'] += Net.fetch('+3V3')
BOARD['GND'] += Net.fetch('GND')
Expand Down
6 changes: 5 additions & 1 deletion generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,8 @@ def generate(args):
import_statements.add('from skidl import generate_netlist')
import_statements.add('from skidl import Net')
import_statements.add('from skidl import Part')
import_statements.add('from skidl import set_default_tool')
import_statements.add('from skidl import KICAD7')

import_code = "\n".join(import_statements)

Expand Down Expand Up @@ -221,6 +223,8 @@ def generate(args):
{import_code}
set_default_tool(KICAD7)
""" + reqcode + code


Expand Down Expand Up @@ -267,7 +271,7 @@ def connect_power_network(args):
requirements.add(generate_device)
requirements.add(generate_d)
import_statements.add("from skidl import show")
components = ['REGULATOR[\'VI\']', 'D("MBR0520LT")']
components = ['REGULATOR[\'VI\']', 'D("MBR0520LT", footprint=\'Diode_SMD:D_SOD-123\')[\'A,K\']']
elif args.get('usb_connector', False) != 'No USB connector':
components = ['Net.fetch(\'+VBus\')']
else:
Expand Down
8 changes: 4 additions & 4 deletions passives_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ def generate_device(args):
"""Generate part lookup function"""

return f"""
def Device(library, name, value=""):
def Device(library, name, value="", footprint=None):
\"\"\"Make part lookup and return the part with footprint set\"\"\"
footprint = show(library, name).F2
footprint = footprint or show(library, name).F2
if not value:
value=name
return Part(library, name, value=value, footprint=footprint)
Expand All @@ -68,7 +68,7 @@ def Device(library, name, value=""):
def generate_d(args):
"""Generate part lookup function"""
return f"""
def D(name,value=""):
def D(name,value="",footprint=None):
\"\"\"Creates diode\"\"\"
return Device('Diode', name, value=value)
return Device('Diode', name, value=value, footprint=footprint)
"""
20 changes: 12 additions & 8 deletions tests/arduino-nano.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,28 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def R(value):
"""Creates default resistor footprint"""
return Part('Device', 'R', value=value, footprint='Resistor_SMD:R_1206_3216Metric')


def Device(library, name, value=""):
def Device(library, name, value="", footprint=None):
"""Make part lookup and return the part with footprint set"""
footprint = show(library, name).F2
footprint = footprint or show(library, name).F2
if not value:
value=name
return Part(library, name, value=value, footprint=footprint)


def D(name,value=""):
def D(name,value="",footprint=None):
"""Creates diode"""
return Device('Diode', name, value=value)
return Device('Diode', name, value=value, footprint=footprint)


def C(value):
Expand Down Expand Up @@ -106,7 +110,7 @@ def C(value):
USBMICRO['D-'] += Net.fetch('USBD-')
USBMICRO['D+'] += Net.fetch('USBD+')

REGULATOR['VI'] & D("MBR0520LT") & FUSE
REGULATOR['VI'] & D("MBR0520LT", footprint='Diode_SMD:D_SOD-123')['A,K'] & FUSE

FTDI230 = Part('Interface_USB', 'FT231XS', footprint="Package_SO:SSOP-20_3.9x8.7mm_P0.635mm")
FTDI230['VCC'] += Net.fetch('+5V')
Expand All @@ -116,12 +120,12 @@ def C(value):
FTDI230['3V3OUT'] += Net.fetch('+3V3')
FTDI230['USBDM'] += Net.fetch('USBD-')
FTDI230['USBDP'] += Net.fetch('USBD+')
FTDI230['~DTR'] += Net.fetch('DTR')
FTDI230['~RTS'] += Net.fetch('RTS')
FTDI230['~{DTR}'] += Net.fetch('DTR')
FTDI230['~{RTS}'] += Net.fetch('RTS')
Net.fetch('GND') & C('100nF') & FTDI230['3V3OUT']

BOARD = Part('MCU_Module', 'Arduino_Nano_v3.x', footprint='Module:Arduino_Nano')
BOARD['~RESET'] += U1['~{RESET}/PC6']
BOARD['~{RESET}'] += U1['~{RESET}/PC6']
BOARD['+5V'] += Net.fetch('+5V')
BOARD['3V3'] += Net.fetch('+3V3')
BOARD['GND'] += Net.fetch('GND')
Expand Down
4 changes: 4 additions & 0 deletions tests/basic-esp12.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def R(value):
Expand Down
4 changes: 4 additions & 0 deletions tests/empty.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


generate_netlist()
14 changes: 9 additions & 5 deletions tests/esp-12-mcp73831-ap2112k-cp2104-feather.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def subcircuit_label(name):
Expand All @@ -48,17 +52,17 @@ def C(value):
return Part('Device', 'C', value=value, footprint='Capacitor_SMD:C_1206_3216Metric')


def Device(library, name, value=""):
def Device(library, name, value="", footprint=None):
"""Make part lookup and return the part with footprint set"""
footprint = show(library, name).F2
footprint = footprint or show(library, name).F2
if not value:
value=name
return Part(library, name, value=value, footprint=footprint)


def D(name,value=""):
def D(name,value="",footprint=None):
"""Creates diode"""
return Device('Diode', name, value=value)
return Device('Diode', name, value=value, footprint=footprint)


def connect_parts(a, b):
Expand Down Expand Up @@ -147,7 +151,7 @@ def generate_mcp73831():
USBMICRO['D-'] += Net.fetch('USBD-')
USBMICRO['D+'] += Net.fetch('USBD+')

REGULATOR['VI'] & D("MBR0520LT") & BATTERY
REGULATOR['VI'] & D("MBR0520LT", footprint='Diode_SMD:D_SOD-123')['A,K'] & BATTERY


@subcircuit
Expand Down
4 changes: 4 additions & 0 deletions tests/esp12-ftdi-header.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def R(value):
Expand Down
4 changes: 4 additions & 0 deletions tests/esp12-reset-flash.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def R(value):
Expand Down
4 changes: 4 additions & 0 deletions tests/esp12.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def R(value):
Expand Down
4 changes: 4 additions & 0 deletions tests/wemos_d1_mini_18b20u.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


def subcircuit_label(name):
Expand Down
4 changes: 4 additions & 0 deletions tests/zero.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
from skidl import generate_netlist
from skidl import Net
from skidl import Part
from skidl import set_default_tool
from skidl import KICAD7

set_default_tool(KICAD7)


generate_netlist()
6 changes: 3 additions & 3 deletions usb_uart_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ def generate_ftdi230(args):
FTDI230['3V3OUT'] += Net.fetch('+3V3')
FTDI230['USBDM'] += Net.fetch('USBD-')
FTDI230['USBDP'] += Net.fetch('USBD+')
FTDI230['~DTR'] += Net.fetch('DTR')
FTDI230['~RTS'] += Net.fetch('RTS')
FTDI230['~{{DTR}}'] += Net.fetch('DTR')
FTDI230['~{{RTS}}'] += Net.fetch('RTS')
Net.fetch('GND') & C('100nF') & FTDI230['3V3OUT']
'''.format(**args)

Expand All @@ -60,7 +60,7 @@ def generate_ftdi232rl(args):
FTDI230['3V3OUT'] += Net.fetch('+3V3')
FTDI230['USBD-'] += Net.fetch('USBD-')
FTDI230['USBD+'] += Net.fetch('USBD+')
FTDI230['~DTR'] += Net.fetch('DTR')
FTDI230['~{{DTR}}'] += Net.fetch('DTR')
FTDI230['TEST'] += Net.fetch('GND')
C_3V3 = Part('Device', 'C', value='100nF', footprint='{capacitor_footprint}')
Net.fetch('GND') & C_3V3 & FTDI230['3V3OUT']
Expand Down

0 comments on commit 594bae5

Please sign in to comment.