Back-End
Engineering for pragmatists
Minimum Functionality
The initial release should include these features as a minimum to allow user-testing. To save development time, we will base this version on Eagle and re-use as much Eagle functionality as possible. The overall flow may be something like: Fritzing schematic editor --> file in Eagle schematic (*.sch) or script (*.scr) format --> brought into Eagle schematic editor --> generate Eagle board (*.brd) file --> auto-place components using ULP in PCB editor --> manual adjustment to placement --> auto-route in PCB editor --> manual adjustment to routing --> export CAM files --> zip up CAM files with boilerplate manufacturing instructions
- Optimized for making Arduino shields - gives us a tightly defined size, shape, and basic set of use assumptions
- Basic component auto-placement - there is already a ULP that does this based on component placement in the schematic sheet. the ULP could use some work though.
- Basic library of components - resistors, capacitors, LEDs, regulators, Arduino board, Arduino shield outline, connectors, etc.
Desired Functionality
(This is a catch-all list for the moment of things the back-end might/should provide) -
- Smooth, fast, free interactive push-and-shove routing (see www.freerouting.net)
- Good auto-placement of components - provide different optimization choices: type of board (single-sided, etc.), smallest size possible, etc. Optimize for auto-router, provide ability to place components manually and anchor them (buttons, connectors, etc.)
- real design for manufacturability (DFM) based on manufacturer capabilities
- seams between software pieces
- strong separation of different types of data in component libraries
- support for modules in component libraries
