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.
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.
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.
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.
API information is available in the documentation.