Repository navigation
Conversation
Firmware with USE_SERIAL_PADS lists, for each UART, the output pads its TX or RX can move to (MSP2_INAV_SERIAL_PADS). The Ports tab shows them in a Pins column at the end of the table: TX and RX side by side where the table still fits on one line, one above the other where it would wrap. Firmware without the feature answers unsupported and the column stays hidden. A pad that carries a motor or servo of the mixer gets a red note, because the board will not arm with it; a pad used by the LED strip says it replaces it. Saving sends MSP2_INAV_SET_SERIAL_PAD for each changed choice before the port configuration, and the write is paired with its read for the parse-failure guard.
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoConfigure UART TX/RX on output pads from the Ports tab
AI Description
Diagram
High-Level Assessment
Files changed (8)
|
Code Review by Qodo
1. Moving a pad between pins can fail
|
The pad list is read in a named step instead of a sixth nested callback, and arrangePins(), which uses nothing of the tab's scope, moves to the module.
|
Configurator test build ready — commit Download build artifacts for PR #2833 Available platforms (scroll to the Artifacts section at the bottom of the run page):
|
A pin choice refused after others went through left those in the FC's RAM, where a save from another tab would have kept them. Every changed pin is now written back to the value the tab loaded, and the log says whether that worked. A write the parse-failure guard refuses ends the save the same way, as send_message() never calls back for it.
It uses nothing of the tab's scope; SonarCloud's note on aa47e89.
|



Configurator side of iNavFlight/inav#12143, which lets a UART's TX or RX move to a motor or servo pad. It replaces #2814, the ESC connector option of iNavFlight/inav#12087.
The Ports tab gets a Pins column at the end of the table, only on boards whose firmware lists at least one pad. Firmware without the feature answers
MSP2_INAV_SERIAL_PADSas unsupported, and the column stays hidden. Each UART that can move shows a TX and/or RX choice: "Own pin" or the S pads it can reach.MSP2_INAV_SET_SERIAL_PADfor each changed choice before the port configuration. If the firmware, or the parse-failure guard, refuses one, the choices already sent are written back to what the tab loaded, and the save stops with a message in the log instead of rebooting as if it had been stored. The new write is paired with its read for the parse-failure guard (js/msp.js).1920x1080 at 100 %, TX and RX side by side:
1366x768, one above the other:
The screenshots are from the SITL, which has no output pads, with
MSP2_INAV_SERIAL_PADSanswered by the list a TBS Lucid H7 Wing sent on my bench. The firmware side was tested on that board (see iNavFlight/inav#12143).yarn test: all pass exceptunused MZTC writes remain unused and conservatively blocked, which fails on Windows on maintenance-10.x too: it excludesmsp/MSPCodes.jswith a forward slash, andreaddirSyncreturnsmsp\MSPCodes.jsthere.Test-merged with the open PRs that touch the same files: it conflicts with #2814, which this replaces, and in
js/msp/MSPHelper.jswith #2744 and #2832, where both sides add a case at the end of the same switch.