Supported components

The entire component collection is open-sourced on GitHub:

Full support for many common electronics components, including Arduino, Raspberry Pi, and the many devices that connect to them. Custom components can easily be added.

Constraint language

The language makes it easy to specify project requirements such as sensor types and displays. Constraints can be as general or specific as possible. While much more information is in the documentation, here are some explanations for the default example:

"type": "processor" specifies that the design can use any type of processor that has the pins needed by the other components.

"preserve_pins": ["pwm"] means that, as the algorithm, matches the processor's pins, we want to preserve extra PWM-supporting pins, if at all possible.

"power_supplies": [ ... ] lets EDAsolver know that certain power supplies are available. The algorithm with make sure all components have the power they need at the right voltage.

"components": [ ... ] this list specifies components that the parent component will connect to.

Output of EDAsolver

After trying millions of combinations of components and pin matchings, EDAsolver will present a list of possible solved designs. In the future, these will be sortable by cost, unused pins, popularity of components, among other metrics.

Once a design candidate is selected, a netlist is presented, allowing for a smooth transition to the next phase of the EDA process.

Press

The Amp Hour Podcast - Discussed on the most popular electronics podcast.

EEWeb - Selected as Site of the Day on EEWeb.

SparkFun - Sponsored to hold a design contest. Thanks SparkFun!

Apps using EDAsolver

WireWizard - an open source GUI for EDAsolver. Simply drag, drop, and connect components.

API information is available in the documentation.