Product Development Lab Report Review


flux

Yes - here’s a placement keepout map you can use for the floorplan.
The reason to define these now is exactly to reduce the overlap and density risks before broader placement/routing, which matches the recommended inspect -> group -> ui-place -> place workflow
Recommended placement keepouts

Table


BlockKeepout to useWhat to keep out
U1 antenna end15 mm forward, 5 mm to each sideNo copper, no pours, no traces, no vias, no components
U1 non-antenna body2 mm perimeterOther component bodies
U2 TFT module body3 mm perimeterOther component bodies
U2 header/fanout side8 mm routing corridorTall parts and blockages
LCD1 body3 mm perimeterOther component bodies
LCD1 pin/header side6 mm routing corridorTall parts and dense copper escape obstacles
Each relay K1 to K4 body3 mm perimeterOther component bodies
Each relay contact side5 mm separation from logic areaMCU/display low-voltage traces and parts
Between adjacent relays K1 to K42 mm minimum, 3 mm preferredNeighboring relay bodies/copper crowding
Exact keepout guidance by block 1) U1 ESP32 antenna keepout
Use the strictest keepout here.
  • In front of antenna edge: 15 mm
  • Left/right of antenna zone: 5 mm
  • Under antenna region: 0 copper on all layers
  • Behind the rest of U1: normal 2 mm component keepout is fine
2) U2 TFT module keepout
This is mostly a mechanical body + routing corridor keepout.
  • Around module outline: 3 mm
  • Along the signal/header edge: 8 mm
  • Around any mounting holes or mechanical corners: 2 mm
  • Do not place LCD1 inside this envelope
3) LCD1 16x2 LCD keepout
This part is bulky and usually blocks routing.
  • Around body: 3 mm
  • At the pin row / backpack side: 6 mm
  • If it has mechanical standoffs or bezel overhang, reserve 2 mm extra around those features
4) Relay keepout for K1, K2, K3, K4
Since you want to avoid a relay module, keep each relay as a discrete channel but give it real breathing room.
  • Around each relay body: 3 mm
  • Between neighboring relays: 2 mm minimum, 3 mm preferred
  • From relay contact side to logic area: 5 mm
  • Put driver parts like Q1 to Q4 and D8 to D11 inside the relay block, not in the MCU/display block
If the relay contacts will switch mains
Use a stricter contact-side keepout:

Table


ConditionRecommended contact-side keepout
Low-voltage DC loads only5 mm
Unknown load class6 mm
Mains switching6 mm minimum, more if your safety standard requires it
Simple floorplan constraints
  • U1: center-left, antenna facing open board edge
  • U2: top edge with 3 mm body keepout + 8 mm fanout corridor
  • LCD1: top-right with 3 mm body keepout + 6 mm pin-side corridor
  • K1 to K4: right side with 3 mm body keepout each and 5 mm isolation from logic region
Recommended next move
Apply these as placement constraints first, then re-run overlap review. The layout workflow is designed for exactly this staged approach: inspect density/fit first, then group, then place UI/mechanical anchors before electrical placement
If you want, I can next convert this into a compact placement checklist with target X/Y regions for each block.
Use mains-safe spacing for every relay contact side and keep logic traces farther away.

flux

Understood - I would treat the relay contact side as mains-side copper from here forward.
Because the available project/report context does not establish a specific switched load voltage or safety standard, the safe approach is to treat that as an explicit design concern and use conservative spacing rather than assume a lower-voltage case . For layout work, that fits the staged placement-first workflow: define constraints early, then place blocks around them .
Updated mains-safe relay spacing rules Contact-side spacing
Apply this to the contact side only of K1, K2, K3, K4 and their output connectors U5, U6, U7, U8.

Table


RuleDistance
Relay contact copper to any logic trace6 mm minimum
Relay contact copper to ESP32/display/I2C/SPI circuitry8 mm preferred
Relay contact copper to low-voltage component bodies6 mm minimum
Between adjacent switched-output nets if load class is uncertain3 mm minimum, 6 mm preferred
Keep logic traces out of relay/output edge corridor100% avoid
Practical routing boundary
Split each relay channel into two zones:
  • Logic/coil side: Q1 to Q4, D8 to D11, base resistors, GPIO drive traces
  • Contact/output side: relay COM/NO pads and the output connector side on U5 to U8
Keep logic farther away
  • No SPI, I2C, EN, BOOT, USB, or LED-control traces through the relay contact corridor.
  • No logic traces between relay contact pins and the board edge connector area.
  • Keep U1, U2, LCD1, and U4 fully outside that isolation band.
  • Prefer the relay bank on one board side, logic on the opposite side, with a visible routing gap between them.
Placement rule per relay
For each of K1 to K4:
  • 3 mm body keepout around the whole relay
  • 6 mm minimum keepout on the contact/output side
  • Q1 to Q4 and D8 to D11 stay on the coil side, not the contact side
  • Align U5 to U8 so the switched copper path is short and direct
Best board-level rule
Use a simple separation policy:
  • Left/center/top: logic and UI
  • Right edge: relay bank
  • Outer right or bottom-right edge: output connectors
  • Isolation strip between logic and relay contacts: 6 mm minimum, 8 mm preferred
Recommendation
If the loads might ever be mains, I’d use:
  • 8 mm preferred between relay contact copper and logic area
  • 6 mm absolute minimum as the design floor
  • no logic traces crossing that boundary at all
If you want, I can next convert this into a relay-side zone map with exact “logic boundary” and “contact boundary” labels for the floorplan.

Waiting for input


Name
Section
Pin Group
Orientation
Order
Sub-symbol

ESP32-S3 Relay Display Controller

ESP32-S3 Relay Display Controller thumbnail