Skip to content

Releases: devbisme/skidl

v1.2.3

22 Nov 11:41
Compare
Choose a tag to compare
  • Fixed SVG generation for Windows OS.
  • Improved export into *_sklib.py files of parts with units.

v1.2.2

23 Nov 16:36
Compare
Choose a tag to compare
  • Added SVG schematic generation feature for KiCad 6, 7, and 8.
  • Added backend tool identifiers of KICAD5, KICAD6, KICAD7, and KICAD8.
  • For compatibility, KICAD tool identifier points to KICAD5.

v1.2.1

23 Nov 16:37
Compare
Choose a tag to compare
  • is_url function fixed to solve problems with search and loading libraries.

v1.2.0

23 Nov 16:37
Compare
Choose a tag to compare
  • Added ability to generate an editable schematic from a Circuit object. (Currently only works for KiCad V5.)
  • Added Group object for creating hierarchy without using function calls.
  • generate_pcb now takes an optional list of footprint library directories.
  • If not explicitly declared, Part objects will load the default footprint from their symbol definition.
  • Added empty_footprint_handler() for parts without footprints that logs errors by default but can be overriden by the user.
  • Symbol libraries can now be searched on remote repositories by placing the URL in the lib_search_paths dictionary.
    KiCad V6 symbols are found at https://gitlab.com/kicad/libraries/kicad-symbols/-/raw/master
    and V5 symbols are at https://raw.githubusercontent.com/KiCad/kicad-symbols/master/.
  • Part pins can now be sorted and retrieved in order using the ordered_pins property.

v1.1.0

23 Nov 16:53
Compare
Choose a tag to compare
  • Added generate_pcb() function to create a PCB file directly from
    a Circuit object. (Currently only works for KiCad.)
  • Added PartTmplt shortcut which creates a Part template using dest=TEMPLATE implicitly.

v1.0.0

23 Nov 16:54
Compare
Choose a tag to compare
  • Buses can now be created without names and a name will be
    automatically assigned. Or use "name=..." to manually assign a name.
    Or just place a string in the list of arguments and that will be used.
  • Footprint search can now process directories of footprints without the
    need for an fp-lib-table file.
  • Part fields can now be accessed using attributes.
  • Creating fields requires use of Part.fields[key] instead of Part.key.
  • Added context manager for Circuit object so Parts/Nets can be joined
    using a with... statement.
  • Adding/removing Parts to/from a Circuit can now be done using += and -=.
  • Tags can be added to Parts and Circuits for hierarchical naming.
  • Part values can now be assigned arbitrary objects including units from either PySpice or Pint.
  • Multi-function pin names can now be split into a collection of shorter aliases,
    thus reducing the need to access pins using regexes.
  • Schematics can now be automatically using the KiCad symbol graphics for the parts.
  • The library interface now handles the Skywater 130 SPICE libraries.

v0.0.30

23 Nov 16:55
Compare
Choose a tag to compare
  • Added @Package decorator to make subcircuits act like Parts.
  • Interfaces now act like dictionaries so the ** operator works as expected.
  • Interface I/O can now be accessed using brackets ([]) and via attributes (e.g., intfc.a).
  • Interface I/O can now be assigned aliases.
  • Added tee() function for creating T-junctions in networks.
  • Custom ERCs can now be added using the erc_assert function.
  • Aliases take precedence over default pin names.
  • Substring matching in pin names can be enabled/disabled (off by default).

v0.0.29

23 Nov 16:56
Compare
Choose a tag to compare
  • Added XSPICE parts capability to SPICE simulations.
  • Unconnected XSPICE ports now are set to NULL in SPICE node lists.
  • Added no_files() function to disable output to files of netlists, ERCs, logs, backup libs.

v0.0.28

23 Nov 16:56
Compare
Choose a tag to compare
  • The zyc utility was split into a separate repository and placed on PyPi.
  • Fixed slicing of grouped part pins so things like ram['A[1]'] won't grab A1, A10, A11, etc.

v0.0.27

23 Nov 16:57
Compare
Choose a tag to compare
  • Prevent changing the name of net 0 when generating a SPICE netlist.
  • Fixed Pin, Net, Bus and Part iterators so they'll work in nested loops.
  • Part units are automatically added when a part is parsed.
  • Files are now opened for reading using latin_1 encoding to allow special symbols used by KiCad.
  • Part pins can now be aliased directly, e.g. uc[5].aliases += 'gp0'.
  • Added class method get() to Part to allow finding a part based on name, reference, description.
  • Refactored ERC functions to allow user-extensibility.
  • Created a base object for Circuit, Part, Pin, Net, and Bus objects.
  • Added an aliases property to the SKiDL base object so all its children could be aliased.
  • Updated to perform simulations with ngspice version 30.
  • Added a notes property to allow attachment of user notes to Parts, Pins, Nets, etc.
  • Added net class to net objects for specifying net-specific design rules in PCBNEW.
  • Ignore multiple pins with the same number in symbols with DeMorgan equivalents.
  • Fixed problem with non-ASCII chars (e.g. Ohms) in strings.
  • Sped-up part/net naming using heap/cache, binary search, sets.
  • Sped-up by storing net traversals to avoid recomputation.
  • Fixed processing of slices in things like sdram['A[0:15]'].
  • Sped-up part_search() by eliminating unnecessary part parsing.
  • Improved schematic generation with graphviz.
  • Search now allows AND/OR of parenthesized terms.
  • New GUI for searching for parts and footprints.
  • Footprint libraries to search are now selected from the global fp-lib-table file.
  • KiCad library component field values are now stored in a dict in Part indexed by the field name or F0, F1, F2...
  • KiCad library component field values are also stored as Part attributes using the field name or F0, F1, F2...
  • Added p and n attributes to Part object to permit explicit reference to pin numbers or names.