proveskit / proveskit/flight_controller_board

U6 (TPS4H160) deploy/heater channels: enable-signal names don't match their physical outputs (DEPLOY2 <-> Heater swapped)

Open
#53 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
6
Forks
5
Avg merge
49m
Merged PRs (30d)
1

Description

Summary

While researching the FlatSat bench-test project, I traced U6 (TPS4H160AQPWPRQ1, the deploy/heater high-side driver on the Power Systems / eps_side sheet) channel-by-channel against FC_V5e_Production_Rev2.kicad_pcb and the schematic, and found that channels 3 and 4's control-signal names and their physical output connectors appear to be swapped. Flight firmware (proves-core-reference) and the schematic agree with each other on what each control net is called, but that name doesn't match what the output actually drives.

What was traced (net/pin data from the Rev2 PCB)

Channel Control net (IN pin) Driven by Output net (OUT pin) Physical connector
3 Heater_EN (IN3) R100 (4.7k) <- ENABLE_Heater <- MCP23017 GPA0 DEPLOY2 (OUT3, pads 17/18) J24 "Deploy 2"
4 Deploy2_EN (IN4) R103 (4.7k) <- FIRE_DEPLOY2_B <- MCP23017 GPA2 Heater Output (OUT4, pads 15/16) J21 "Heater Output"

So:

  • Commanding ENABLE_HEATER (GPA0) energizes the Deploy 2 connector (J24), not a heater.
  • Commanding FIRE_DEPLOY2_B (GPA2) only energizes the Heater Output connector (J21) — the actual Deploy 2 burn-wire channel never fires when commanded.

proves-core-reference's own devicetree independently names GPA0 ENABLE_HEATER and GPA2 FIRE_DEPLOY2_B, so firmware and schematic net-naming agree with each other — this isn't a firmware bug or a simple label typo on one side. It looks like either the OUT3/OUT4 net assignment got swapped during PCB layout, or J21/J24 are silkscreen-swapped on the board. I can't tell which from schematic/PCB data alone.

Channels 1+2 (DEPLOY1/DEPLOY1_AUX, both fired directly from RP2350 GPIO29 via shared net Deploy1_EN) were also checked and appear consistent (control name matches output function).

Why this matters

If this is real on fabricated boards: a "turn on the heater" command would actually apply VBUSP to a pyro/burn-wire connector, and a deliberate "fire Deploy 2" command would silently do nothing pyro-related. Given the failure modes (unintended pyro energization / failure-to-deploy), this seems worth verifying against a physical board before the next integration or deploy test, independent of the FlatSat project that surfaced it.

Ask

Could someone with a physical Rev2 board (or Rev1, if it shares this net assignment — not yet checked) verify continuity from J21 and J24 back to U6 OUT3/OUT4, to confirm whether this is a real net/silkscreen swap or something I'm misreading in the schematic/PCB export?


Filed while surveying the board for the PROVES FlatSat plan; happy to share the full net trace if useful.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with FC_V5e_Production_Rev2.kicad_pcb and the Power Systems / eps_side schematic, tracing U6 OUT3/OUT4 to J21 and J24. Verify continuity on a physical Rev2 board, then document whether the mismatch is in the PCB net assignment or connector silkscreen; completion means the channel-to-connector mapping is confirmed or disproved.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.