Application vs Frequency in PCB Stackup Generation¶
Reference list of application → default frequency (GHz) and typical range used when generating PCB stackups. Keep this in sync with the code sources below. All frequencies in GHz unless noted in notes.
Source of truth¶
- Standard-defined bands and power (preferred):
frontend/src/data/applicationStandardBands.ts—APPLICATION_STANDARD_BANDS,getDefaultBandForApplication(application),getDefaultPowerForApplication(application). When an application has standard bands, Phase I uses the default band’sdefaultFreqGHz,defaultBandwidthMHz, andtypicalPowerMax_dBmwhen the user selects that application. - Fallback default frequency:
frontend/src/constants/defaults/specs/common.ts—APPLICATION_DEFAULT_FREQUENCY(used when no standard band is defined for the application). - Typical frequency range per application:
frontend/src/types/rfComponents/application.ts—APPLICATION_METADATA[app].typicalFrequencyRange - Usage in stackup:
frontend/src/utils/stackup/stackupGenerator.tsusesconfig.frequency || config.maxFrequency || 1;StackupForm.tsxandCollapsibleStackupForm.tsxpassfrequencyfrom Phase I or form;applicationPreselectionService.tsexposesgetDefaultFrequencyForApplication(application).
List: Application → Default (GHz) and range (GHz)¶
| Application | Default (GHz) | Range (GHz) | Engineering notes |
|---|---|---|---|
| 5g_cellular | 3.5 | 0.6 – 40 | n78 sweet spot; FR1 sub-6; FR2 mmWave (24–40 GHz). mmWave ≥24 GHz. |
| wifi_wlan | 2.4 | 2.4 – 7.1 | 2.4 / 5 / 6 GHz bands |
| satcom | 12 | 1.0 – 40 | Ku-band downlink typical. Bands: L 1–2, S 2–4, C 4–8, X 8–12, Ku 12–18, Ka 26.5–40 GHz. |
| civilian_radar | 3.0 | 1.0 – 40 | S-band marine/weather/ATC; most civilian ≤35 GHz (77–81 GHz is automotive). |
| drones | 2.4 | 0.4 – 6.0 | ISM. Generic "link not stated" key; the three links below split it. |
| drones_control_telemetry | 0.915 | 0.902 – 0.928 | LoRa, "915MHz ISM" (ADI Game of Drones Pt 2, Fig. 3). 125 kHz default width (LoRaWAN US915); power not stated. European options (same key, region Europe): 0.8681 GHz (EU868) and 0.433175 GHz (EU433), limits from ERC Rec 70-03 rows in regulatory_standards.json (ETSI_EN_300_220). |
| drones_analog_video | 5.8 | 5.725 – 5.875 | FM FPV video. FCC §15.249(a) band; width and typical power not stated. |
| drones_digital_video | 5.8 | 5.725 – 5.85 | OFDM FPV video (high-PAPR). DJI O3 Tx band; width and power not stated. |
| ism_band | 2.4 | 0.4 – 5.8 | 2.4 GHz ISM |
| iot_devices | 2.4 | 0.4 – 5.8 | 2.4 GHz typical |
| test_measurement | 2.4 | 0.1 – 67 | Conservative; modern RF test gear to 110 GHz |
| point_to_point | 12 | 5.0 – 40 | Licensed microwave backhaul 10–15 GHz typical; mmWave ≥24 GHz |
| repeaters_das | 2.5 | 0.7 – 5.9 | Cellular |
| broadcast | 0.1 | 0.05 – 1.0 | FM 88–108 MHz; FM/AM/TV, cap ~1 GHz (excl. broadcast satellite) |
| land_mobile_radio | 0.45 | 0.4 – 1.0 | UHF LMR |
| rfid_nfc | 0.9 | 0.013 – 5.8 | HF NFC (13.56 MHz), UHF RFID |
| wireless_audio_video | 0.6 | 0.4 – 6.0 | Wireless mics |
| medical_devices | 1.4 | 0.4 – 2.5 | WMTS |
| automotive | 77 | 0.3 – 81 | 24 GHz legacy SRR; 77–79 GHz LRR (modern ADAS) |
| ultra_wideband | 6.8 | 3.1 – 10.6 | Channel 5 (6.5 GHz) / 9 (8 GHz) common (for example Apple/Samsung) |
| short_range_devices | 0.433 | 0.3 – 5.8 | 433 MHz SRD |
| amateur_radio | 0.144 | 0.1 – 250 | 2 m band (144 MHz); most activity below 10 GHz; experimental bands higher |
| marine_communications | 0.156 | 0.156 – 0.162 | VHF marine 156–162 MHz |
| gnss_navigation | 1.575 | 1.1 – 1.6 | L1 = 1.575 GHz, L2 = 1.227 GHz |
| custom | 2.4 | 0.1 – 100 | Fallback; no preset |
Drone designs from a required range (flag-gated)¶
With FF_RANGE_DRIVEN_DESIGN (backend) and VITE_FF_RANGE_DRIVEN_DESIGN (frontend) on —
both default off — a transmitter design for any of the four drone keys above can start
from how far the link must reach instead of a target output power (change
openspec/changes/drone-range-driven-design).
- Input (
rangeRequirementonPOST /api/rf-chain/design/design-sync/design-multi,range_requirementon thedesign_rf_chainagent tool): the OTA link calculator's own fields —distanceM,txGainDbi, optionalrxGainDbi/miscLossDb/fadeMarginDb, and the far-end receiver'ssensitivityDbmorrxNfDb+bandwidthHz+requiredSnrDb. In Guided it is the "Required range" group in Phase I. - Resolution:
backend/services/rf_chain/range_target.pyasks the OTA link engine for the power needed at the antenna port (ota_link.required_tx_power_dbm) and caps it at the binding legal limit (regulatory.binding_limit_dbm) before it becomestarget_output_power. - Sensitivity is never assumed. No drone link type has a sourced sensitivity yet, so a
range without one is refused with
needs_sensitivity. - Result:
chain.range_link(Guided) /rangeLink(agent card) — the as-built output run back through the same engine: margin, verdict, achieved range, whether the range was capped by regulation, and every defaulted input disclosed. - Every non-drone design, and every design without a range, is unchanged.
Frequency-dependent stackup behavior¶
- mmWave threshold: Stackup category switches to
mmwaveat ≥24.25 GHz (5G FR2 start), not 20 GHz, to align with commercial filter and component availability. Standardized at ≥24 GHz across application notes. Seefrontend/src/services/stackup/applicationStackupRecommender.ts—HIGH_FREQUENCY_GHZ = 24.25. - applicationStackupRecommender: For
5g_cellularandpoint_to_point, iffrequency > 24.25 GHzthe stackup category becomesmmwave; otherwisesub6ghz_rf. - stackupGenerator: Uses
config.frequency(orconfig.maxFrequencyor 1) for material selection. - Thresholds: MID = 6 GHz, HIGH = 24.25 GHz (FR2), MM_WAVE = 40 GHz; materials (for example Rogers RO4350B/RO4450T) forced or preferred above these.