Is very, very cool. It’s a bit of Python code that outputs a circuit netlist for KiCAD.
Why is this cool? If you design a PCB in KiCAD, you go through three steps: draw the schematic, assign footprints to the symbolic parts, and then place them. The netlist ties all of these phases together: it’s a list of which parts are connected to which, the output of schematic capture and the input for layout.
The ability to generate this programmatically should be useful. For instance, you could write a filter circuit generator that would take the order, cutoff, and type of filter as inputs, and give you a spec’ed netlist as output. In your next design, when you need a different filter, you just change a couple of variables.
Writing your circuits as code would make arranging the little sub-circuits modular and flexible, like functions in code. At the very least, it’s an interesting alternative to the mouse, click, drag, click paradigm that currently dominates the schematic capture phase. Just as some of you like OpenSCAD for 3D modelling, some of you will like SKiDL for circuit design.
Create G-Code from an EAGLE File Overview Prototyping a circuit board in this way is a good idea so you can be sure that things are working before sending your PCB off to a fabricator.
We’ve become so accustomed to the circuit diagram as the means of thinking about circuits that we’re not sure that we can ever give up the visual representation entirely. Maybe designing with SKiDL will be like sketching out block diagrams, where each block is a bit of Python code that generates a circuit module? All we know is that it sounds potentially interesting, and that it’ll certainly be mind-expanding to give it a try. Give it a shot and leave feedback down in the comments! Posted in Tagged, Post navigation.
Elliot, I see many interesting posts from you lately. Dave, thanks for your dedication to the community over the years.
Regarding circuits, development techniques depend on requirements. Personally, I like the schematic to change automatically according to my doing in the PCB layout editor (back annotation). At the moment, Kicad doesn’t like this approach very much, but a scripting language could be very helpful for that. Drawing the schematic is in many cases a waste of time, if one person is doing both, schematic and layout. Also, there other domains of electronic design where hardware is described programmatically, like the usage of VHDL and Verilog for logic.
I’m surprised that we are so tightly coupled to the schematic capture stuff, which in most modern electronic design packages is also pretty badly implemented, unhandy and using pretty old user interface conventions. I’ve faith that developments like this can start changing things for good. I’m also always frustrated when I compare the high usability and the amount of innovation in the 3D CAD systems domain, with the “state of the art” Sch/PCB CAD systems, which are pretty boring. Thanks for this! ” I’m surprised that we are so tightly coupled to the schematic capture stuff, which in most modern electronic design packages is also pretty badly implemented, unhandy and using pretty old user interface conventions.” My day job is mostly spent working with Altium, though I have worked with Orcad, Eagle, and Pads in the past. This is so painfully true. With SKIDL, I could describe most of my company’s products in only a couple of scripts and pump out variants in an automated process.
I’m the only engineer in the company under 50, so it’s difficult introducing changes, and impossible introducing things that disrupt the existing workflow. I’m intrigued by the idea of programmatically generating a netlist and gaining benefits like source code rev control, ditching expensive CAD licenses, and easier design reuse.
A few years ago, I ran across PHDL , but I have yet to use it for a real design. Whenever I mention programmatically generating circuits, I encounter the objection, “How do you expect a technician to repair a PCB without a graphical schematic?” If you’re designing something more complex than some blinky lights or a single filter, it seems like a fair question.
What is needed is a tool that can generate a reasonably-intelligible schematic based on a netlist input – not an easy task. I don’t think I’m willing to give up my schematics yet.
Comparing a schematic diagram with a netlist, I think it’s a whole lot easier to spot errors in pages of drawings than in pages of text. Having spent most of my life designing both hardware and software, the software (which has always been done in text) has been waaay harder to debug. Maybe we need more comprehensive ways of representing programs in a graphical way.
I mean, something better than flowcharts and state diagrams. Though I HAVE found state diagrams to be very useful.
I think this is very cool and practical. The amount of effort that goes into creating anachronistic symbols and then connecting endless pins like a monkey is disheartening. In analog world perhaps it’s still a very nice representation. For circuits that are mostly digital it’s a completely unnecessary step that only adds obfuscation. It is slightly weird that it’s using Python as HDL though. It would be less of reinventing a bicycle if it used a standard HDL, a subset of Verilog for example.
Perhaps extend existing functionality of Icarus Verilog? I do not think that Verilog is limited to IC design. It’s a common misconception that Verilog is a FPGA programming language, but its much broader than that. Regardless, I think it would add a few things: 1) familiarity — potential users are more likely to know Verilog of VHDL already rather than Python + custom framework 2) a reverse of (1) — if you do not know Verilog and VHDL already, you would learn it and it will without any doubt come in handy later 3) Icarus Verilog already does a lot of work (most of it?) — at least in theory it should be easier to maintain one product instead of two. Provided that integration with IV or processing its netlists is a feasible task of course, I do not know.
4) it would be, in its own geeky way, incredibly cool to be able to synthesize from the same source a transistor circuit, a 74xx-based circuit and a FPGA bitstream The (4) is probably the least practical but from my perspective is the coolest.
Type Name Latest commit message Commit time Failed to load latest commit information. Altium Designer addons What is it This is a set of addons for Altium Designer, a CAD software for Electronic designers. This project contains some scripts, examples and other content which is developed to provide extended features for Altium Designer. No real consistency exists between each script because they have been developed separately by individual developers.
You can use only one script out of the full set if you want. How to use Step 1: download the add-on you want. Either clone the entire set of add-ons on your computer (if you're accustomed to Git),. Or download only the add-on you want by clicking its download link from the list below.
Step 2: integrate the script into Altium Designer and execute it. If you are a newcomer to Altium scripts,. Some developers may also have provided some screen captures or examples of use. Please be advised: Some scripts may not work out-of-the-box. Some may be old, unmaintained.
Others may be provided as a demonstration, or should be integrated in an other script to fully work. License(s) to use/share Unless otherwise specified this project don't follow any particular license such as GPL, MIT or BSD. In any case everything is distributed 'as is' with no warranty. However some authors may have specified a license for their script(s).
In this case you are supposed to follow the rules implied by this license for the concerned scripts. How to contribute If you want to add your contribution to our project feel free to fork the repository, commit your changes and submit a pull-request.
You are encouraged to read the. List of available scripts Add-on name & download link Script description This script will add tracks to selected arcs. This tracks end in arc center, so after that you can easily move objects to arc center. It search for unconected pins of components in schematic sheet and draw small segment of a wire on it equipped by net label according to the name or designator of the pin it will center the designator in top and bottom overlay This script modifies designator position. It is based on AdjustDesignator script from Mattias Ericson, only user gets the form in which he can enable/disable and modify certain options, like layers, height etc. Script that connects arc tangent and via/Pad, or places tangent to connect two arcs script provides several enhancements to Altium Designer, such as limited autocomplete for filter expressions, improved mouse wheel support, and various tweaks to save time on frequently-used tasks This script creates an interface to auto routers. It fixes some problems with rte importer and dsn exporter, and gives user the ability to import ses file.
This script will place STEP files on a footprint in a library if they have same name. STEP file must be in the same directory as library, or it's subfolder.