forked from sinara-hw/assembly
4.0 KiB
4.0 KiB
Sinara 9805 RF Power Amplifier "Booster"
Firmware
Flashing
git clone git@github.com:quartiq/booster.git
cd booster
nix-shell -p rustup cargo rustc dfu-util
cargo install cargo-binutils
rustup component add llvm-tools-preview
cargo build --release
cargo objcopy -- -O binary booster.bin
# enter dfu mode by either serial terminal or
# press `DFU Bootloader` button while rebooting
dfu-util -a 0 -s 0x08000000:leave --download booster.bin
Basic setup via USB
nix-shell -p cutecom mosquitto appimage-run
- Create mosquitto config
mosquitto.conf
with your bound address:bind_address 192.168.1.123 allow_anonymous true
mosquitto -c mosquitto.conf -d
- Run
cutecom
- Connect to the Booster via
/dev/ttyACMX
port, baud 9600 - Send
help
command to check if it works - Enter commands (change details if necessary):
write broker-address 192.168.1.123 # only if you need static IP address write gateway 192.168.1.1 write ip-address 192.168.1.142 write netmask 255.255.255.0 # apply changes and wait until it fully rebooted reset
- Check the Booster connects to your broker.
- Download AppImage from MQTT Explorer
- Run it with
appimage-run /path/to/MQTT-Explorer-XXX.AppImage
- Connect to your MQTT broker
- Restart booster to receive settings
Calibration
- Assemble Kasli with one Urukul, build and flash firmware for it with booster.json
- Run dds_for_booster.py experiment once
- Attach parallel 50 Ohm load to the oscilloscope, as shown on the picture: ,
- Configure oscilloscope for 1M Ohm impedance
- Attach attenuator to the Urukul's RF2
cd py/
- You may also need to download or install python's
gmqtt
andminiconf
- Enable channels:
python -m booster --broker 192.168.1.123 --prefix dt/sinara/booster/xx-xx-xx-xx-xx-xx --channel N tune=0.1
- Use online calculator for Volts to dBm conversion
- Using booster_template fill in
y0
,y1
,m
,c
, values using instructions below - Update settings with the adjusted values
- Save settings with
python -m booster --broker 192.168.1.123 --prefix dt/sinara/booster/xx-xx-xx-xx-xx-xx --channel N save
- Reboot and check settings are applied
Input power
- Connect Urukul's output (see booster template for exact ports) to the oscilloscope with load
- Measure it's RMS, convert to dBm, put it to the measured cell
- Connect Urukul's output to the Booster's input
- Get the input value from telemetry (see booster template for exact path)
- Do steps 1-4 for second Urukul's output
- Fill in
slope
andoffset
from settings - Do steps 1-6 for every channel
Note: default setting and Urukul's measured values are usually the same across channels, so you can extrapolate them for all channels.
Output and reflected power
- Connect Urukul's output (see booster template for exact ports) to the Booster's input
- Connect Booster's output to the oscilloscope with load
- Raise channel's
output_interlock_threshold
to 40 - Turn channel's state to
Enabled
- Measure it's RMS, convert to dBm, put it to the measured cell
- Get the output value from telemetry (see booster template for exact path)
- Disconnect the Booster's output
- Get the reflected value from telemetry
- Do steps 1-6 for second Urukul's output
- Fill in
slope
andoffset
from settings for output and reflected curves - Set channel's
output_interlock_threshold
to 0 - Turn channel's state to
Off
- Do steps 1-10 for every channel
Note: default setting values are usually the same across channels, so you can extrapolate them for all channels.