Turning coders into makers: the promise of embedded design generation

As personal fabrication becomes increasingly accessible and popular, a larger number of makers, many without formal training, are dabbling in embedded and electronics design. However, existing general-purpose, board-level circuit design techniques do not share desirable properties of modern software development, like rich abstraction layers and automated compiler checks, which facilitate powerful tools that ultimately lower the barrier to entry for programming, by allowing a higher level of design-separating specification from implementation-and providing automated guidance and feedback. In this paper, we present a novel methodology for embedded design generation that allows the generation of complete designs from high-level specifications. We present an implementation capable of synthesizing a variety of examples to show that our approach is viable. Starting from user-specified requirements and a library of available components, our tool encodes the design space as a system of constraints. Off-the-shelf solvers then reason over these constraints to create a block diagram with sufficient information to generate the device firmware and circuit netlist.

[1]  Alberto L. Sangiovanni-Vincentelli,et al.  metroII , 2013, ACM Trans. Embed. Comput. Syst..

[2]  Björn Hartmann,et al.  Midas: fabricating custom capacitive touch sensors to prototype interactive objects , 2012, UIST '12.

[3]  Mark Yim,et al.  Rapid Co-Design of Electro-Mechanical Specifications for Robotic Systems , 2015 .

[4]  Vijay Kumar,et al.  A Design Environment for the Rapid Specification and Fabrication of Printable Robots , 2014, ISER.

[5]  Ruzica Piskac,et al.  Complete completion using types and weights , 2013, PLDI.

[6]  Sanjit A. Seshia,et al.  A theory of formal synthesis via inductive learning , 2015, Acta Informatica.

[7]  Alberto L. Sangiovanni-Vincentelli,et al.  Quo Vadis, SLD? Reasoning About the Trends and Challenges of System Level Design , 2007, Proceedings of the IEEE.

[8]  Alicia M. Gibb,et al.  NEW MEDIA ART, DESIGN, AND THE ARDUINO MICROCONTROLLER: A MALLEABLE TOOL , 2010 .

[9]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[10]  Sumit Gulwani,et al.  Synthesis of loop-free programs , 2011, PLDI '11.

[11]  Mitchel Resnick,et al.  Engaging Amateurs in the Design, Fabrication, and Assembly of Electronic Devices , 2016, Conference on Designing Interactive Systems.

[12]  Kris Luyten,et al.  PaperPulse: an integrated approach for embedding electronics in paper designs , 2015, SIGGRAPH Posters.

[13]  Daniela Rus,et al.  Cogeneration of mechanical, electrical, and software designs for printable robots from structural specifications , 2014, 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[14]  Sumit Gulwani,et al.  Oracle-guided component-based program synthesis , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[15]  Alberto L. Sangiovanni-Vincentelli,et al.  Constrained Synthesis from Component Libraries , 2016, FACS.

[16]  Richard Black,et al.  Using a Custom-Built HDL for Printed Circuit Board Design Capture. , 2012 .