devbisme / skidl

SKiDL is a module that extends Python with the ability to design electronic circuits.
https://devbisme.github.io/skidl/
MIT License
1.04k stars 118 forks source link

[SKiDL BUG] ERROR: No footprint for GND/#PWR1. #180

Open mooko-dev opened 1 year ago

mooko-dev commented 1 year ago

Describe the bug Running the example code from the skidl's readme causes the following error:

ERROR: No footprint for GND/#PWR1. @ [.../skidltest.py:28]
ERROR: No footprint for VCC/#PWR2. @ [.../skidltest.py:28]
ERROR: No footprint for Q_PNP_CBE/Q1. @ [.../skidltest.py:28]
ERROR: No footprint for Q_PNP_CBE/Q2. @ [.../skidltest.py:28]
ERROR: No footprint for R/R1. @ [.../skidltest.py:28]
ERROR: No footprint for R/R2. @ [.../skidltest.py:28]
ERROR: No footprint for R/R3. @ [.../skidltest.py:28]
ERROR: No footprint for R/R4. @ [.../skidltest.py:28]
ERROR: No footprint for R/R5. @ [.../skidltest.py:28]

0 warnings found while generating netlist.
9 errors found while generating netlist.

I also tried to run the following code:

from skidl import *

set_default_tool(KICAD)
lib_search_paths[KICAD].append('/usr/share/kicad/symbols')
footprint_search_paths[KICAD].append('/usr/share/kicad/footprints')

# Create part templates.
q = Part("Device", "Q_PNP_CBE", dest=TEMPLATE)
r = Part("Device", "R", dest=TEMPLATE)

# Create nets.
gnd, vcc = Net("GND"), Net("VCC")
a, b, a_and_b = Net("A"), Net("B"), Net("A_AND_B")

# Instantiate parts.
gndt = Part("power", "GND")             # Ground terminal.
vcct = Part("power", "VCC")             # Power terminal.
q1, q2 = q(2)                           # Two transistors.
r1, r2, r3, r4, r5 = r(5, value="10K")  # Five 10K resistors.

# Make connections between parts.
a & r1 & q1["B C"] & r4 & q2["B C"] & a_and_b & r5 & gnd
b & r2 & q1["B"]
q1["C"] & r3 & gnd
vcc += q1["E"], q2["E"], vcct
gnd += gndt

generate_netlist()

It adds the footprint path to the search paths. This code causes the same error.

To Reproduce Steps to reproduce the behavior:

  1. Create a python file containing the example code from the skidl readme
  2. Set KICAD_SYMBOL_DIR to "/usr/share/kicad/symbols/"
  3. Run python skidltest.py
  4. See error

Desktop (please complete the following information):

Additional context The output of ls /usr/share/kicad: demos footprints plugins resources schemas scripting symbols template

The output of ls /usr/share/kicad/footprints: Audio_Module.pretty Connector_PinHeader_2.54mm.pretty LED_SMD.pretty RF_Module.pretty Battery.pretty Connector_Pin.pretty LED_THT.pretty RF.pretty Button_Switch_Keyboard.pretty Connector_PinSocket_1.00mm.pretty Module.pretty RF_Shielding.pretty Button_Switch_SMD.pretty Connector_PinSocket_1.27mm.pretty Motors.pretty RF_WiFi.pretty Button_Switch_THT.pretty Connector_PinSocket_2.00mm.pretty MountingEquipment.pretty Rotary_Encoder.pretty Buzzer_Beeper.pretty Connector_PinSocket_2.54mm.pretty MountingHole.pretty Sensor_Audio.pretty Calibration_Scale.pretty Connector.pretty Mounting_Wuerth.pretty Sensor_Current.pretty Capacitor_SMD.pretty Connector_RJ.pretty NetTie.pretty Sensor_Distance.pretty Capacitor_Tantalum_SMD.pretty Connector_Samtec_HLE_SMD.pretty OptoDevice.pretty Sensor_Humidity.pretty Capacitor_THT.pretty Connector_Samtec_HLE_THT.pretty Oscillator.pretty Sensor_Motion.pretty Connector_AMASS.pretty Connector_Samtec.pretty Package_BGA.pretty Sensor_Pressure.pretty Connector_Amphenol.pretty Connector_SATA_SAS.pretty Package_CSP.pretty Sensor.pretty Connector_Audio.pretty Connector_Stocko.pretty Package_DFN_QFN.pretty Sensor_Voltage.pretty Connector_BarrelJack.pretty Connector_TE-Connectivity.pretty Package_DIP.pretty Socket.pretty Connector_Card.pretty Connector_USB.pretty Package_DirectFET.pretty Symbol.pretty Connector_Coaxial.pretty Connector_Wago.pretty Package_LCC.pretty TerminalBlock_4Ucon.pretty Connector_DIN.pretty Connector_Wire.pretty Package_LGA.pretty TerminalBlock_Altech.pretty Connector_Dsub.pretty Connector_Wuerth.pretty Package_QFP.pretty TerminalBlock_Dinkle.pretty Connector_FFC-FPC.pretty Converter_ACDC.pretty Package_SIP.pretty TerminalBlock_MetzConnect.pretty Connector_Harting.pretty Converter_DCDC.pretty Package_SO_J-Lead.pretty TerminalBlock_Philmore.pretty Connector_Harwin.pretty Crystal.pretty Package_SON.pretty TerminalBlock_Phoenix.pretty Connector_HDMI.pretty Diode_SMD.pretty Package_SO.pretty TerminalBlock.pretty Connector_Hirose.pretty Diode_THT.pretty Package_TO_SOT_SMD.pretty TerminalBlock_RND.pretty Connector_IDC.pretty Display_7Segment.pretty Package_TO_SOT_THT.pretty TerminalBlock_TE-Connectivity.pretty Connector_JAE.pretty Display.pretty Potentiometer_SMD.pretty TerminalBlock_WAGO.pretty Connector_JST.pretty Ferrite_THT.pretty Potentiometer_THT.pretty TerminalBlock_Wuerth.pretty Connector_Molex.pretty Fiducial.pretty Relay_SMD.pretty TestPoint.pretty Connector_PCBEdge.pretty Filter.pretty Relay_THT.pretty Transformer_SMD.pretty Connector_Phoenix_GMSTB.pretty Fuse.pretty Resistor_SMD.pretty Transformer_THT.pretty Connector_Phoenix_MC_HighVoltage.pretty Heatsink.pretty Resistor_THT.pretty Transistor_Power_Module.pretty Connector_Phoenix_MC.pretty Inductor_SMD.pretty RF_Antenna.pretty Valve.pretty Connector_Phoenix_MSTB.pretty Inductor_SMD_Wurth.pretty RF_Converter.pretty Varistor.pretty Connector_PinHeader_1.00mm.pretty Inductor_THT.pretty RF_GPS.pretty Connector_PinHeader_1.27mm.pretty Inductor_THT_Wurth.pretty RF_GSM.pretty Connector_PinHeader_2.00mm.pretty Jumper.pretty RF_Mini-Circuits.pretty

The output of ls /usr/share/kicad/symbols: 4xxx_IEEE.kicad_sym Filter.kicad_sym MCU_Module.kicad_sym Regulator_Current.kicad_sym4xxx.kicad_sym FPGA_CologneChip_GateMate.kicad_sym MCU_Nordic.kicad_sym Regulator_Linear.kicad_sym74xGxx.kicad_sym FPGA_Efinix_Trion.kicad_sym MCU_NXP_ColdFire.kicad_sym Regulator_SwitchedCapacitor.kicad_sym74xx_IEEE.kicad_sym FPGA_Lattice.kicad_sym MCU_NXP_HC11.kicad_sym Regulator_Switching.kicad_sym74xx.kicad_sym FPGA_Microsemi.kicad_sym MCU_NXP_HC12.kicad_sym Relay.kicad_symAmplifier_Audio.kicad_sym FPGA_Xilinx_Artix7.kicad_sym MCU_NXP_HCS12.kicad_sym Relay_SolidState.kicad_symAmplifier_Buffer.kicad_sym FPGA_Xilinx.kicad_sym MCU_NXP_Kinetis.kicad_sym RF_AM_FM.kicad_symAmplifier_Current.kicad_sym FPGA_Xilinx_Kintex7.kicad_sym MCU_NXP_LPC.kicad_sym RF_Amplifier.kicad_symAmplifier_Difference.kicad_sym FPGA_Xilinx_Spartan6.kicad_sym MCU_NXP_MAC7100.kicad_sym RF_Bluetooth.kicad_symAmplifier_Instrumentation.kicad_sym FPGA_Xilinx_Virtex5.kicad_sym MCU_NXP_MCore.kicad_sym RF_Filter.kicad_symAmplifier_Operational.kicad_sym FPGA_Xilinx_Virtex6.kicad_sym MCU_NXP_NTAG.kicad_sym RF_GPS.kicad_symAmplifier_Video.kicad_sym FPGA_Xilinx_Virtex7.kicad_sym MCU_NXP_S08.kicad_sym RF_GSM.kicad_symAnalog_ADC.kicad_sym GPU.kicad_sym MCU_Parallax.kicad_sym RF.kicad_symAnalog_DAC.kicad_sym Graphic.kicad_sym MCU_RaspberryPi.kicad_sym RF_Mixer.kicad_symAnalog.kicad_sym Interface_CAN_LIN.kicad_sym MCU_Renesas_Synergy_S1.kicad_sym RF_Module.kicad_symAnalog_Switch.kicad_sym Interface_CurrentLoop.kicad_sym MCU_SiFive.kicad_sym RF_NFC.kicad_symAudio.kicad_sym Interface_Ethernet.kicad_sym MCU_SiliconLabs.kicad_sym RF_RFID.kicad_symBattery_Management.kicad_sym Interface_Expansion.kicad_sym MCU_STC.kicad_sym RF_Switch.kicad_symBuffer.kicad_sym Interface_HDMI.kicad_sym MCU_ST_STM32F0.kicad_sym RF_WiFi.kicad_symComparator.kicad_sym Interface_HID.kicad_sym MCU_ST_STM32F1.kicad_sym RF_ZigBee.kicad_symConnector_Generic.kicad_sym Interface.kicad_sym MCU_ST_STM32F2.kicad_sym Security.kicad_symConnector_Generic_MountingPin.kicad_sym Interface_LineDriver.kicad_sym MCU_ST_STM32F3.kicad_sym Sensor_Audio.kicad_symConnector_Generic_Shielded.kicad_sym Interface_Optical.kicad_sym MCU_ST_STM32F4.kicad_sym Sensor_Current.kicad_symConnector.kicad_sym Interface_Telecom.kicad_sym MCU_ST_STM32F7.kicad_sym Sensor_Distance.kicad_symConverter_ACDC.kicad_sym Interface_UART.kicad_sym MCU_ST_STM32G0.kicad_sym Sensor_Energy.kicad_symConverter_DCDC.kicad_sym Interface_USB.kicad_sym MCU_ST_STM32H7.kicad_sym Sensor_Gas.kicad_symCPLD_Altera.kicad_sym Isolator_Analog.kicad_sym MCU_ST_STM32L0.kicad_sym Sensor_Humidity.kicad_symCPLD_Microchip.kicad_sym Isolator.kicad_sym MCU_ST_STM32L1.kicad_sym Sensor.kicad_symCPLD_Xilinx.kicad_sym Jumper.kicad_sym MCU_ST_STM32L4.kicad_sym Sensor_Magnetic.kicad_symCPU.kicad_sym LED.kicad_sym MCU_ST_STM32L4+.kicad_sym Sensor_Motion.kicad_symCPU_NXP_68000.kicad_sym Logic_LevelTranslator.kicad_sym MCU_ST_STM8.kicad_sym Sensor_Optical.kicad_symCPU_NXP_6800.kicad_sym Logic_Programmable.kicad_sym MCU_Texas.kicad_sym Sensor_Pressure.kicad_symCPU_NXP_IMX.kicad_sym MCU_AnalogDevices.kicad_sym MCU_Texas_MSP430.kicad_sym Sensor_Proximity.kicad_symCPU_PowerPC.kicad_sym MCU_Cypress.kicad_sym MCU_Texas_SimpleLink.kicad_sym Sensor_Temperature.kicad_symDevice.kicad_sym MCU_Dialog.kicad_sym Mechanical.kicad_sym Sensor_Touch.kicad_symDiode_Bridge.kicad_sym MCU_Espressif.kicad_sym Memory_EEPROM.kicad_sym Sensor_Voltage.kicad_symDiode.kicad_sym MCU_Intel.kicad_sym Memory_EPROM.kicad_sym Simulation_SPICE.kicad_symDiode_Laser.kicad_sym MCU_Microchip_8051.kicad_sym Memory_Flash.kicad_sym Switch.kicad_symDisplay_Character.kicad_sym MCU_Microchip_ATmega.kicad_sym Memory_NVRAM.kicad_sym Timer.kicad_symDisplay_Graphic.kicad_sym MCU_Microchip_ATtiny.kicad_sym Memory_RAM.kicad_sym Timer_PLL.kicad_symDriver_Display.kicad_sym MCU_Microchip_AVR_Dx.kicad_sym Memory_ROM.kicad_sym Timer_RTC.kicad_symDriver_FET.kicad_sym MCU_Microchip_AVR.kicad_sym Memory_UniqueID.kicad_sym Transformer.kicad_symDriver_Haptic.kicad_sym MCU_Microchip_PIC10.kicad_sym Motor.kicad_sym Transistor_Array.kicad_symDriver_LED.kicad_sym MCU_Microchip_PIC12.kicad_sym Oscillator.kicad_sym Transistor_BJT.kicad_symDriver_Motor.kicad_sym MCU_Microchip_PIC16.kicad_sym Potentiometer_Digital.kicad_sym Transistor_FET.kicad_symDriver_Relay.kicad_sym MCU_Microchip_PIC18.kicad_sym power.kicad_sym Transistor_IGBT.kicad_symDriver_TEC.kicad_sym MCU_Microchip_PIC24.kicad_sym Power_Management.kicad_sym Transistor_Power_Module.kicad_symDSP_AnalogDevices.kicad_sym MCU_Microchip_PIC32.kicad_sym Power_Protection.kicad_sym Triac_Thyristor.kicad_symDSP_Freescale.kicad_sym MCU_Microchip_SAMA.kicad_sym Power_Supervisor.kicad_sym Valve.kicad_symDSP_Microchip_DSPIC33.kicad_sym MCU_Microchip_SAMD.kicad_sym pspice.kicad_sym Video.kicad_symDSP_Motorola.kicad_sym MCU_Microchip_SAME.kicad_sym Reference_Current.kicad_symDSP_Texas.kicad_sym MCU_Microchip_SAML.kicad_sym Reference_Voltage.kicad_symFiber_Optic.kicad_sym MCU_Microchip_SAMV.kicad_sym Regulator_Controller.kicad_sym