Skip to content

software: add a Hardware Layout field reference - #559

Draft
MUSTARDTIGERFPV wants to merge 1 commit into
ExpressLRS:masterfrom
MUSTARDTIGERFPV:hardware-layout-reference
Draft

software: add a Hardware Layout field reference#559
MUSTARDTIGERFPV wants to merge 1 commit into
ExpressLRS:masterfrom
MUSTARDTIGERFPV:hardware-layout-reference

Conversation

@MUSTARDTIGERFPV

@MUSTARDTIGERFPV MUSTARDTIGERFPV commented Jul 27, 2026

Copy link
Copy Markdown
Member

The Web UI page warns that Hardware Layout is for advanced users, but never says what any field does. Total coverage on the site today is two sentences plus a warning, and hardware.json is not mentioned anywhere.

This adds software/hardware-layout.md, covering all 130 fields across the 17 sections of hardware-schema.js, with the key as it appears in hardware.json, the Web UI label, the type, and the description.

Generated, not hand written

The tables are generated from src/html/src/utils/hardware-schema.js by walking the file and reading title, id, label, type, desc and options. That means:

  • The wording matches the tool exactly, so the page and the Web UI cannot drift in phrasing.
  • Nothing is invented. Every description is the schema's own.
  • It can be regenerated when the schema changes, rather than hand patched.

Two select fields, power_max and screen_type, carry no desc because their options are self describing, so their option labels are listed instead. power_pdet does have a description; it just uses double quotes because it contains an apostrophe, which an early pass of the extraction missed.

Platform restrictions come from the /* FEATURE: ... */ markers in the schema and are mapped to plain wording:

Marker Rendered as
IS_TX Transmitters only
NOT IS_TX Receivers only
NOT IS_8285 ESP32 only
HAS_SX127X SX127x radios only
NOT HAS_SX127X Not on SX127x radios
NOT HAS_SX128X Not on SX128x radios
HAS_LR1121 LR1121 radios only

The restriction is stated on the section, or on the individual field where it differs from its section.

Other content

The page explains what each type means, and that an empty or negative pin value means the pin is not fitted. That is how the firmware reads it, for example in getVoltageSourcesFromHardware, which treats null, '' and any negative number as absent.

Two warnings: a wrong value can stop the device booting or damage the hardware, and raising a power limit only changes what the device reports, not what the amplifier can deliver. The second is the existing warning from the Web UI page, kept because it is a real and common misunderstanding.

This also gives the fields the audit called out individually, screen_mirror, pwm_out_only, ant_group, vbat and vsrc1 to vsrc3, a documented home.

Notes for review

  • I did not add a cross link from the Hardware Layout section of webui.md, to avoid conflicting with the Voltage Calibration hunk in the Web UI tabs PR. Worth adding once both land.
  • The word list gains the technical terms the schema uses, mostly radio bus pins, power detection fields and voltage sensor names. Schmitt is added identically to the PWM receivers PR so the two merge cleanly.
  • The page has no ranges, defaults or worked examples. Those are not in the schema and would have to be researched per field, so this is a complete reference of what the schema states rather than a complete tuning guide.

The Web UI page warns that Hardware Layout is for advanced users but
never says what any of the fields do. The only coverage on the site is
two sentences and a warning, and there is no mention anywhere of
hardware.json or of the schema behind it.

This adds a reference for all 130 fields across the 17 sections of
hardware-schema.js, giving the key as it appears in hardware.json, the
label shown in the Web UI, the type, and the description.

The tables are generated from the schema rather than written by hand,
so the wording matches the tool exactly and the page can be regenerated
when the schema changes. Platform restrictions are taken from the
FEATURE markers in the schema and are stated on the section, or on the
individual field where it differs from its section.

Also documents what the types mean and that an empty or negative pin
value means the pin is not fitted, which is how the firmware reads it.

The warnings cover the two things that actually hurt: a wrong value can
stop the device booting or damage it, and raising a power limit only
changes what the device reports, not what the amplifier can deliver.

The word list gains the technical terms the schema uses, such as the
radio bus pins, the power detection fields and the voltage sensor
names.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant