proveskit / proveskit/flight_controller_board
U6 (TPS4H160) deploy/heater channels: enable-signal names don't match their physical outputs (DEPLOY2 <-> Heater swapped)
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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