2.0

After three years since version 1.0, today marks the release of SKiDL version 2.0.0. The increment in the major version number indicates that this release is not backward compatible with previous versions, so some SKiDL code may not work if:

  1. It relies on Python 2 (which is …

SKiDL Has Schematics!

You can finally generate editable schematics from your SKiDL code.

Tagged

New 1.2.0 Release

It's been nearly two years since the last release. The 1.2.0 release has these user-facing changes:

  • Something that has been requested for years: SKiDL can now generate an editable schematic from a Circuit object. (Currently only works for KiCad V5.)
  • The Group object allows you to create hierarchy …

SKiDL Meets GPT

ChatGPT was released late last year, and GPT4 dropped last week. These large language models (LLMs) offer some intriguing possibilities. I had a Twitter conversation about them with @alexandrosM that started like this:

So I described the simplest thing I could think of - a voltage divider - and asked ChatGPT to …

New 1.1.0 Release

It's been nearly half a year since the big 1.0 release. This release only has a few user-facing changes:

  • A KiCad PCB file can now be created directly using the generate_pcb() function instead of outputing a netlist that's imported into PCBNEW.
  • Part templates can be created with the PartTmplt …

1.0

Nearly a year after 0.0.30, today marks the release of SKiDL version 1.0.0. But why assign such an exalted milestone to this release given the relative paucity of new features, most of them mundane (with the possible exception of automatic generation of schematics)?

Because I said …

Customized ERC!

Everybody wants ERC. Everybody hates ERC.

Electrical rules checking (ERC) looks for errors in how your circuit is constructed. It's like running lint, but for hardware. And as with lint, you get a whole bunch of warnings that don't matter but which obscure the ones that do.

SKiDL tries to …

Good Things Come In Packages!

Up to now, SKiDL supported hierarchy by applying the @subcircuit decorator to a Python function:

@subcircuit
def analog_average(in1, in2, avg):
    """Output the average of the two inputs."""

    # Create two 1K resistors.
    r1, r2 = 2 * Part('Device', 'R', value='1K', dest=TEMPLATE)

    # Each input connects thru a resistor to the …

New SKiDL Forum!

FYI: The forum has moved.

I created a Github Discussions forum for SKiDL. There, you can ask questions about SKiDL and post about projects you're doing with it. This will probably be a more convenient channel for such things rather than opening issues on the SKiDL GitHub repo.

Give it …

Version 0.0.30 Released!

I'm releasing version 0.0.30 of SKiDL today! It has some new features I'm excited about:

  • A new @package decorator to make subcircuits act like Parts.
  • A new tee() function for creating T-junctions in networks.
  • Custom ERCs can now be added using the new erc_assert() function.
  • Substring matching in …