CircuitHub

Design feedback

Design a board that is cheap to make, and read what a quote says you could change to pay less.

Design feedback tells you how to make a design cheaper to manufacture. Read this page before you start designing a board, and read a quote's designFeedback after you request one.

Grid Proto

On small runs, board fabrication and assembly are mostly fixed costs per job, so a board's specification decides its price more than its size or part count. Grid Proto is a large discount on the board fabrication and assembly of the Priority offer, for 1 to 10 boards, and it ships fast. A design qualifies when it meets every rule on this page. Grid Proto also depends on factory capacity, so a design that meets every rule can still be quoted without it when the factory is full.

Check the rules before you design. Some of them, such as the layer count, trace gaps and part packages, are fixed by the design files: getting one wrong means changing the design and uploading a new revision. Others are board settings that you can change on the revision at any time.

Checklist

  • Board: 1 to 4 layers, at most 380 mm per side, FR-4, 1.6 mm thick, 1 oz copper, ENIG finish, black solder mask and white silkscreen.
  • Limits: trace width and trace gap at least 0.127 mm, drills at least 0.15 mm.
  • Settings: panelization Any or Tab-Route, and vias not marked conductive.
  • Not allowed: impedance control, gold fingers, via plugging, via fill and cap, blind or buried vias, castellated edges, a custom stackup or custom requirements.
  • Parts: surface-mount only (a connector with through-hole pegs counts as through-hole), nothing in an 0201 or 01005 package, and nothing you supply yourself.
  • Quantity: 1 to 10 boards.

A board CircuitHub has left CAM comments on is also quoted without Grid Proto until CircuitHub clears them.

Settings and redesigns

Board settings can be changed on a revision with PATCH /v1/revisions/:revisionId/board: thickness, material, copper weight, finish, colours, gold fingers, via plugging, fill and conductivity, panelization, custom requirements and custom stackup. Each change names the board it read, by boardId and version. Use PUT /v1/revisions/:revisionId/board/impedances for impedance requirements. Everything else is a property of the design files: layer count, board size, trace width and gap, drill size, and the parts' packages and mounting. Design those in from the start, because fixing one means a new revision. Through-hole and small parts can instead be left unfitted, and parts you supply can be bought by CircuitHub instead.

Blind or buried vias, castellated edges, impedance control and a custom stackup are board settings, but they describe the design. Turning one off is only right when the design does not need it; a design that has blind vias or castellations needs to be changed instead.

Choosing parts

Check stock as usual. For Grid Proto, every part must also be surface-mount only, in an 0402 or larger package, and must fit a 1.6 mm board. Check the last one for connectors that mount on or over the board edge. For example, one ESP32-S3 USB-C dongle used a straddle-mount USB-C plug made for 0.8 mm boards. That one part forced a 0.8 mm board, which ruled out Grid Proto; a USB-C connector that surface-mounts on a 1.6 mm board would have kept it.

Rules

These are the rules a quote checks, and what to do about each one that fails. The panel limits each side to 380 mm, which is tighter than the 400 mm board size rule.

Design these in from the start. A failing one needs a change to the design files and a new revision, or for parts, leaving them unfitted.

RequirementHow to fix
Board must have 1 to 4 layers, inclusiveChange the design files and upload a new revision
Board width must be less than or equal to 400mmChange the design files and upload a new revision
Board length must less than or equal to 400mmChange the design files and upload a new revision
Minimum trace width cannot be less than 0.127mmChange the design files and upload a new revision
Minimum trace gap cannot be less than 0.127mmChange the design files and upload a new revision
Minimum drill size cannot be less than 0.15mmChange the design files and upload a new revision
Board outline must be known and at most 380mm per side to fit the panelChange the design files and upload a new revision
Use surface-mount parts only; a part with through-hole pins or pegs counts as through-holeReplace the parts in the design files and upload a new revision, or mark their placements DNP
Use no 0201 or 01005 packagesReplace the parts in the design files and upload a new revision, or mark their placements DNP

Board settings. A failing one can be changed on the revision with PATCH /v1/revisions/:revisionId/board, sending the board's boardId and version as expectedBoardId and expectedVersion.

RequirementHow to fix
Silkscreen must be WhiteSend "silkscreenColor": "white"
Soldermask must be BlackSend "soldermaskColor": "black"
Board thickness must be 1.6mmSend "boardThickness": 1.6
Dielectric material must be FR4Send "dielectricMaterial": "FR4"
Outer copper weight must be 1ozSend "outerCopperWeightOz": 1
Inner copper weight must be 1ozSend "innerCopperWeightOz": 1
Surface finish must be ENIGSend "surfaceFinish": "ENIG"
No gold fingers allowedSend "goldFingers": false
No via plugging allowedSend "viaPlugging": ""
No via fill and cap allowedSend "viaFillAndCap": ""
No blind or buried layers allowedSend "blindBuriedLayerSets": 0
Panelization method must be Any or Tab-RouteSend "panelizationMethod": "Any"
No castellated edges allowedSend "needsCastellatedEdges": false
No impedance control allowedClear the impedance requirements with PUT /v1/revisions/:revisionId/board/impedances
No custom requirements allowedSend "hasCustomRequirements": ""
No custom stackups allowedSend "hasCustomStackup": ""
Via is set as conductive requiring a manual quoteSend "viaIsConductive": false

The order, and CircuitHub's review of the board.

RequirementHow to fix
CAM comments prevent automatic quotesContact CircuitHub
Order 1 to 10 boardsRequest a quote for 10 boards or fewer
Use only parts CircuitHub buys, none you supplyHave CircuitHub buy the parts, or mark their placements DNP

Check a design

Request a quote and read its designFeedback. When the design would qualify for Grid Proto with changes, the quote has a grid_proto entry: its reasons say what to change and how, and potential is the price and ship date of the changed design. Parts the reasons list are priced as left unfitted. potential is null when the quote could not price the changed design, which is the case whenever a design-file rule other than the parts fails, or the board has CAM comments. There is no entry when the design already qualifies, since the discount is then in the Priority offer's discounts, when only factory capacity stands in the way, or when the changed design would cost no less.

circuithub quote request --revision 99001 --quantity 5 --workspace acme-electronics

Output:

Quote:       50002
Revision:    99001 (3)
Quantity:    5
Currency:    USD
Orderable:   yes
Expires:     2026-11-03T11:00:00Z

OFFER   SERVICE   SHIP DATE   MANUFACTURING TOTAL  PER BOARD
880011  priority  2026-11-10  $931.27              $186.25
880012  standard  2026-11-17  $686.93              $137.39

Manufacturing total excludes shipping and tax.

Design feedback: This design doesn't qualify for Grid Proto. Fix the reasons below to pay $273.20 instead of $931.27 and ship on 2026-11-10.
  - Board thickness must be 1.6mm; this board is 0.8mm thick. Change it on this revision: read the board with GET /v1/revisions/99001/board, then send PATCH /v1/revisions/99001/board with "boardThickness": 1.6 and the board's boardId and version as expectedBoardId and expectedVersion (https://api.circuithub.com/docs/guides/board#update-board-configuration).
  More: https://api.circuithub.com/docs/guides/design-feedback#grid-proto
curl -X POST -H "Authorization: Bearer $CIRCUITHUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"revisionId": 99001, "quantity": 5}' \
  https://api.circuithub.com/v1/quotes

Response: 200 OK, with the quote's other fields as in the quoting guide:

{
  "designFeedback": [
    {
      "type": "grid_proto",
      "summary": "This design doesn't qualify for Grid Proto. Fix the reasons below to pay $273.20 instead of $931.27 and ship on 2026-11-10.",
      "reasons": [
        "Board thickness must be 1.6mm; this board is 0.8mm thick. Change it on this revision: read the board with GET /v1/revisions/99001/board, then send PATCH /v1/revisions/99001/board with \"boardThickness\": 1.6 and the board's boardId and version as expectedBoardId and expectedVersion (https://api.circuithub.com/docs/guides/board#update-board-configuration)."
      ],
      "potential": {
        "totalPrice": "273.20",
        "shipDate": "2026-11-10",
        "leadTimeBusinessDays": 3,
        "savings": "658.07"
      },
      "docsUrl": "https://api.circuithub.com/docs/guides/design-feedback#grid-proto"
    }
  ]
}

After uploading a new revision, read its board settings again before quoting it: settings you changed on the old revision may not carry over.

On this page