Welcome to functional EDA.

Imagine specifying the types of components needed for an electronics project and letting an algorithm take care of the component selection and pin matching. Well, EDAsolver makes this idea a reality.

Generic placeholder image

Intuitive HDL

It takes just minutes to start designing actual circuits with the JSON-based description language. Perfect for engineers or hobbyists wanting to get a design out the door fast.

Generic placeholder image

Real results

EDAsolver was designed by engineers for engineers. It has been used for robotics competitions to smartwatch design. The netlist and BOM output can go right to schematic or directly to board design.

Generic placeholder image

Growing ecosystem

An increasing number of designers and developers are discovering the time-saving power of EDAsolver, and they are making tools that utilize the powerful API. WireWizard is the above example.

Free and no sign up required!

Live demo

Supported components

The entire component collection is open-sourced on GitHub:

EDAsolver 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.


  • 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.