Skip to main content

Motivations

Here are the main reasons why Circuitscript was created:

  1. Describe schematics in terms of code rather than using graphical UIs.
  2. Easier to track changes and version control with a text-based schematic.
  3. Spend more time thinking about schematics rather than fiddling around with GUIs.
  4. Create schematic symbols and footprints (coming soon) within the same language.
  5. Generate usable schematics for layout programs like KiCAD.

Target audience

Circuitscript is designed for electronic engineers/hobbyists that want to explore a code-based tool for describing circuits instead of graphical user interfaces (GUIs). It is another tool in the toolbelt, not a replacement for existing GUI-based schematic capture tools.

A new language?!!

The original aim was to use code to write schematics so that I could focus on thinking about the schematics rather than fiddling around with GUIs. A great python library I found was skidl. It has many great ideas, however, since it was based on the Python language and extended it, the code needed for schematics look clunky to me.

A language designed just for describing the circuit would be better, since I could define the necessary concepts and commands. (In a talk, the creator of skidl did say that previous similar attempts at such languages failed because they created their own language and did not base it on existing popular languages).

Language goals

  1. Easy to reason, write and read, draw inspiration from Python for readability and usage.
  2. Generated graphical schematics should be displayed according to how the designer wishes so (to certain limits).
  3. Encourage code reuse
  4. Testable/queryable circuits?

Inspiration

Circuitscript is inspired by the following projects:

Open-source

Circuitscript is MIT licensed and will always remain free to use!