Product Development Lab Report Review

Work done
  • Corrected the accidental short between the ESP32 enable net and the relay low-side nodes by rewiring the relay coil return nets for Q1, Q2, Q3, Q4, K1, K2, K3, and K4.
  • Initialized the PCB layout as a 140 mm x 100 mm rectangular board with a 4-layer stackup and baseline layout rules.
  • Ran ERC/DRC review and confirmed footprints exist, but the design still has major unresolved electrical and layout issues.
Success criteria review
  • ✅ The project now has the core schematic blocks already added, and the relay wiring fault I found in this session is fixed.
  • ✅ The PCB layout has a defined outline and a 4-layer stackup baseline.
  • ❌ The schematic is not fully validated yet: unresolved floating pins remain, D12 is still incomplete, and the relay terminal/output wiring still needs correction.
  • ❌ The design does not yet meet PCB completion criteria: there are still 842 airwire errors, so placement/routing is not complete.
  • ❌ The FT6206 requirement is still not fully satisfied by a verified placed part/wiring.
Next steps I cannot continue because execution is blocked in this session. The highest-priority follow-up is to fix the remaining schematic issues first: complete the input power connector/protection path around U3 and D12, correct the relay output terminal wiring on U5, U6, U7, and U8, resolve the remaining floating pins, then finish placement and routing so the airwires clear. If you resume, I can continue from that exact point.

Started implementing a plan

## High-level goal

Implement the hardware from **PDL_REPORT_FINAL.pdf** in Flux EDA: an ESP32-S3 based controller with an SPI TFT (ILI9341), capacitive touch (FT6206), a 16x2 LCD over I2C (via PCF8574 backpack), 4 relay outputs with transistor drivers + flyback diodes, 4 status LEDs, BOOT/RESET buttons, and a 5V power subsystem; then prepare the PCB layout.

## What’s been done so far

- Project metadata updated: description and a “System Architecture” property were added.

- Major components were added and largely wired in schematic:

- **U1** ESP32-S3-DEVKITC-1-N8R2

- **U2** Adafruit ILI9341 SPI TFT module wired to ESP32 SPI + touch header pins (note: not FT6206)

- **U4** PCF8574DWR wired to ESP32 I2C, drives **LCD1** WC1602A (4-bit mode). I2C pull-ups **R1/R2=4.7k** to 3V3.

- **Relays** K1–K4 (SRD-05VDC-SL-C) with **BD139G** drivers Q1–Q4, base resistors **R5–R8=1k**, flyback diodes **D8–D11=1N4007**.

- **LED1–LED4** with 220Ω series resistors.

- **BOOT/RESET** buttons implemented (SW1/SW2) with pulls and EN RC.

- **U3** LM7805CT/NOPB present with input/output caps.

- Fixed a critical schematic bug: relay coil low-side nodes were accidentally shorted into the **EN** net; this was corrected by creating separate nets **RELAY1_COIL_LOW…RELAY4_COIL_LOW**.

- PCB prep started:

- Board outline set to **140mm x 100mm**, **Standard 4-layer** stackup applied.

- Baseline layout rules set (trace width 0.25mm, keepout 0.2mm).

- Review status:

- DRC airwires: failing (board not routed/placed; many airwires).

- ERC: floating pins flagged (expected for unused ESP32 pins, SD pins on TFT module, unused PCF pins, LCD D0–D3 in 4-bit mode, relay L1 pins, and D12 anode).

- FT6206 issue logged: FT6206 not found in library; internal feedback submitted.

## Implementation plan (remaining work only)

1. **Resolve power-input architecture to match the report**: add the intended power input connector (e.g., barrel jack or terminal block) and connect it to the existing **VIN** path; decide and implement reverse-polarity protection using **D12** (currently only cathode tied) or replace with an appropriate solution.

2. **Fix relay output connector wiring**: remove the unintended global **GND** tie on relay output terminal pins; ensure terminals **U5–U8** connect only to the corresponding relay **COM/NO** contact pins (and add NC if required by the report).

3. **Close ERC floating-pin findings intentionally**:

- For **LCD1** D0–D3 (unused in 4-bit mode), mark as NC or leave unconnected intentionally.

- For **PCF8574** unused pins (e.g., P2/P3, ~INT~), either connect ~INT~ to ESP32 (if needed) or label as NC; ensure P2/P3 are not accidentally floating to external nets.

- For **relays K1–K4 L1**, confirm which coil/contact pins should be used and connect/label appropriately.

- For unused **ESP32** pins, label as NC in schematic properties where appropriate.

4. **Reconcile the touch requirement**: modify the design to satisfy **FT6206 capacitive touch**:

- Either add an FT6206 component (human to import/create if library still missing) and wire it to I2C + IRQ + reset per FT6206 reference, or

- Swap U2 to a module/part that actually implements and exposes FT6206 I2C touch, and update connections accordingly.

5. **Verify TFT voltage-domain correctness**: confirm whether the chosen ILI9341 module accepts 5V VCC and 3.3V logic; if not, rewire VCC to 3V3 and add level shifting for SPI/touch signals as needed.

6. **Add missing decoupling/bulk where required by datasheets** (especially around PCF8574, display modules if they expose raw rails, and ESP32 peripheral power pins), and set component properties (value, voltage rating) to match the report.

7. **Prepare PCB layout for placement/routing**:

- Add mounting holes and connector edge-placement decisions.

- Define copper pours/ground fill strategy (continuous GND on an inner layer, antenna keepout for ESP32 dev board/module area).

- Place key connectors at board edges; group power section near input; group relay/terminals away from logic.

8. **Route and clear DRC/airwires**: instruct the user to run Auto-Layout for placement/routing (since manual routing isn’t available here), then re-run **design_rule_check_airwires** and resolve any remaining DRC/erc issues within schematic/connectivity control.

9. **Manufacturability sanity pass**: generate BOM review (availability/MPNs), confirm footprints, and ensure relay contact clearances match intended load voltage (especially if switching mains).

Execution stopped by user.

1:36

Execution stopped by user.

1:00

Running 4 design checks.
Accessing knowledge.
Started: implementing power and relay fixes.
U1
U4 A2 - LCD1 R/W
GND
U4 A2 - LCD1 R/W
GND
GND
U4 A2 - LCD1 R/W
GND
GND
GND
U4 A2 - LCD1 R/W
GND
U4 A2 - LCD1 R/W
GND
GND
U4 A2 - LCD1 R/W
GND
U4 A2 - LCD1 R/W
GND
GND
GND
U4 A2 - LCD1 R/W
U4 A2 - LCD1 R/W
GND
GND
GND
GND
GND
GND
U4 A2 - LCD1 R/W
GND
GND
C5
Capacitance
100nF
U1 GPIO38 - U4 SDA
Q4 C - K4 L2
C2
Capacitance
100nF
U3 VI - C1 P1
U1 3V3 - U4 VDD
LCD1 VO - R13 P1
R10 P1 - LED2 A
R11 P1 - LED3 A
U1 GPIO4 - U2 D/C
Q4 C - K4 L2
U1 GPIO47 - U2 T_CS
U1 MTCK/GPIO39 - U4 SCL
U3 VI - C1 P1
U3 VI - C1 P1
U8 1 - K4 COM
U1 MTCK/GPIO39 - U4 SCL
U1 GPIO0 - R4 P2
R12 P1 - LED4 A
C3
Capacitance
100uF
U3 VO - U1 5V0
U3 VO - U1 5V0
R5 P2 - Q1 B
U1 GPIO8 - U2 SCK
U5 2 - K1 B
U1 GPIO5 - U2 RESET
R6 P2 - Q2 B
U1 GPIO14 - U2 LED
R8 P2 - Q4 B
U1 GPIO13 - U2 MISO
U3 VI - C1 P1
U1 GPIO9 - U2 MOSI
U1 GPIO18 - U2 T_DO
R11 P1 - LED3 A
R7 P2 - Q3 B
R11 P1 - LED3 A
R10 P1 - LED2 A
U1 GPIO0 - R4 P2
R8 P2 - Q4 B
U1 GPIO10 - U2 CS
U4 P1 - LCD1 E
U1 GPIO48 - U2 T_CLK
U1 GPIO8 - U2 SCK
U7 1 - K3 COM
U8 2 - K4 B
Q3 C - K3 L2
Q3 C - K3 L2
U1 3V3 - U4 VDD
U5 1 - K1 COM
U3 VO - U1 5V0
U3 VO - U1 5V0
Q2 C - K2 L2
R12 P1 - LED4 A
GND
Q1 C - K1 L2
U5 1 - K1 COM
U7 2 - K3 B
Q1 C - K1 L2
R12 P1 - LED4 A
GND
U1 MTCK/GPIO39 - U4 SCL
U1 GPIO1 - R5 P1
U6 2 - K2 B
Q4 C - K4 L2
Q2 C - K2 L2
U1 GPIO6 - R8 P1
U1 3V3 - U4 VDD
U6 1 - K2 COM
U1 GPIO13 - U2 MISO
U4 P5 - LCD1 D5
U3 VO - U1 5V0
U4 P6 - LCD1 D6
U1 GPIO1 - R5 P1
R7 P2 - Q3 B
C1
Capacitance
100nF
U1 3V3 - U4 VDD
LCD1 VO - R13 P1
U1 GPIO17 - U2 T_IRQ
U3 VO - U1 5V0
R9 P1 - LED1 A
U1 GPIO9 - U2 MOSI
U1 GPIO2 - R6 P1
U4 P6 - LCD1 D6
U1 GPIO17 - U2 T_IRQ
U7 1 - K3 COM
U1 GPIO38 - U4 SDA
U3 VO - U1 5V0
U1 GPIO3 - R7 P1
U4 P7 - LCD1 D7
U3 VO - U1 5V0
U4 P5 - LCD1 D5
U1 GPIO5 - U2 RESET
U1 GPIO10 - U2 CS
U1 GPIO3 - R7 P1
U1 GPIO2 - R6 P1
U1 GPIO47 - U2 T_CS
U1 GPIO6 - R8 P1
U1 GPIO14 - U2 LED
Q3 C - K3 L2
U4 P4 - LCD1 D4
U4 P0 - LCD1 RS
LCD1 VO - R13 P1
U1 3V3 - U4 VDD
U1 GPIO48 - U2 T_CLK
R9 P1 - LED1 A
U8 2 - K4 B
U4 P7 - LCD1 D7
R6 P2 - Q2 B
U4 P1 - LCD1 E
U5 2 - K1 B
U3 VO - U1 5V0
U1 3V3 - U4 VDD
U6 1 - K2 COM
U3 VO - U1 5V0
U4 P4 - LCD1 D4
U1 GPIO21 - U2 T_DIN
R5 P2 - Q1 B
U1 GPIO0 - R4 P2
U8 1 - K4 COM
Q1 C - K1 L2
U1 GPIO38 - U4 SDA
R9 P1 - LED1 A
U1 3V3 - U4 VDD
U4 P0 - LCD1 RS
Q2 C - K2 L2
U3 VO - U1 5V0
R10 P1 - LED2 A
U3 VO - U1 5V0
U1 GPIO21 - U2 T_DIN
U1 GPIO4 - U2 D/C
U3 VO - U1 5V0
U3 VO - U1 5V0
U7 2 - K3 B
U1 GPIO18 - U2 T_DO
U6 2 - K2 B
U3 VO - U1 5V0
C4
Capacitance
100uF
D10
R5
Resistance
1kΩ
Q3
R6
Resistance
1kΩ
D11
R3
Resistance
10kΩ
R1
Resistance
4.7kΩ
Q1
R13
Resistance
10kΩ
D8
R11
Resistance
220 Ω
R4
Resistance
10kΩ
R7
Resistance
1kΩ
R8
Resistance
1kΩ
R14
Resistance
10kΩ
D9
R10
Resistance
220 Ω
Q2
D12
R12
Resistance
220 Ω
R9
Resistance
220 Ω
Q4
R2
Resistance
4.7kΩ
U3
U5
U7
LED1
K2
U8
LED3
SW1
K4
LED2
U4
LED4
U6
K1
SW2
K3
U2
LCD1

No files yet

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    Assets are files uploaded to this project which can be used in various ways.

    Panicky Apricot Gadget Copter thumbnail
    ESP32-S3 interactive capacitive touch multi-LED control system with TFT, touch controller, I2C LCD, 4 relay outputs, and LM7805-based 5V regulation.

    Properties

    Diagram


    "Power Input and LM7805 node_5V" "ESP32-S3 Dev Board" "ILI9341 TFT Display" "FT6206 Touch Controller" "16x2 I2C LCD" "Four Relay Driver Channels" "Relay Screw Terminal Outputs"

    Pricing & Availability

    Distributor

    Qty 1

    Arrow

    $2.52–$4.74

    Digi-Key

    $7.97–$10.05

    LCSC

    $49.35

    Mouser

    $12.79

    TME

    $10.77

    Verical

    $3.27–$6.25

    Controls