GPA35
Gjallarhorn Power Amplifier 35W -- User's Guide
Loading...
Searching...
No Matches
Configuration via libqynetic

How libqynetic configuration works today

libqynetic-hw-driver configures hardware two ways (see that repo's docs/CLI_COMMANDS.md):

  1. JSON configuration mode – a JSON file is loaded and validated against a per-device schema (SchemaField in include/private/schema.h), then applied field-by-field to setter functions.
    ./dist/bin/libqynetic-hw-driver -c ./examples/json/GPA35_V1/rf_35w_gain.json
  2. CLI action mode – individual settings are changed directly:
    ./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> <action> [args...]

Every device JSON file shares three top-level fields (from SCHEMAFIELD_HWDEVICE_* in include/private/hwdevice.h):

Field Type Required Meaning
device_id string yes Hardware/schema identifier, e.g. "GPA35_V1"
driver_id string no Transport driver, e.g. "FT232H"
serial_number string no Target unit's serial number

All other fields are device-specific and named <device_prefix>_<parameter>, matching a getter/setter pair in the device's public header.

GPA35 JSON schema

Component Real part Field(s)
RF path routing PE42553 SPDT switches SW1-SW6 gpa35_v1_sw1_calibration_select, gpa35_v1_sw2_1w_pa_insert, gpa35_v1_sw3_1w_pa_insert, gpa35_v1_sw4_35w_pa_insert, gpa35_v1_sw5_load_select, gpa35_v1_sw6_output_select (all boolean)
Attenuator PE43705 digital step attenuator gpa35_v1_attenuation_db (number)
Tunable filter ADMV8818SCCZ-EP gpa35_v1_rf_filter_center_frequency_mhz, gpa35_v1_rf_filter_bandwidth_mhz (number)
PA gate bias HMC8205BF10 VGG1 gpa35_v1_pa_gate_bias_v (number)
Output power Digitally controlled boost converter gpa35_v1_output_power_w (number, Watts) – the user sets the desired RF output power in watts and the driver automatically manages the internal biasing to hit that setpoint
Filter/attenuator SPI clock gpa35_v1_spi_sclk_speed_hz (number)

Example JSON, modeled directly on examples/json/PRF_V3/rf_band_3_50_to_6_50.json and examples/json/CR4_V3/rf_band_04_00_to_06_00.json:

{
"device_id": "GPA35_V1",
"driver_id": "FT232H",
"serial_number": "REPLACE_WITH_UNIT_SERIAL",
"gpa35_v1_sw1_calibration_select": false,
"gpa35_v1_sw2_1w_pa_insert": true,
"gpa35_v1_sw3_1w_pa_insert": true,
"gpa35_v1_sw4_35w_pa_insert": true,
"gpa35_v1_sw5_load_select": false,
"gpa35_v1_sw6_output_select": true,
"gpa35_v1_attenuation_db": 0,
"gpa35_v1_rf_filter_center_frequency_mhz": 2400,
"gpa35_v1_rf_filter_bandwidth_mhz": 100,
"gpa35_v1_pa_gate_bias_v": -3.2,
"gpa35_v1_output_power_w": 35,
"gpa35_v1_spi_sclk_speed_hz": 5000000
}

CLI actions

# Select the full 35W PA path (bypass the 1W driver-only path)
./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> set_rf_path 35w_pa
# Set attenuation
./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> set_attenuation_db 6
# Tune the front-end filter
./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> set_filter_fc_mhz 2400
./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> set_filter_bw_mhz 100
# Set PA gate bias
./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> set_pa_gate_bias_v -3.2
# Set desired RF output power (the driver manages internal biasing automatically)
./dist/bin/libqynetic-hw-driver -hw GPA35_V1 -s <serial> set_output_power_w 35

Telemetry (read-only)

The USB-C interface (Overview & Features) streams housekeeping telemetry including temperature, current, and voltage rail health for monitoring during operation.