Compare commits
No commits in common. "master" and "hvamp" have entirely different histories.
@ -17,10 +17,9 @@
|
|||||||
- [Sinara 5108 Sampler](./hw/sampler.md)
|
- [Sinara 5108 Sampler](./hw/sampler.md)
|
||||||
- [Sinara 6302 Grabber](./hw/grabber.md)
|
- [Sinara 6302 Grabber](./hw/grabber.md)
|
||||||
- [Sinara 7210 Clocker](./hw/clocker.md)
|
- [Sinara 7210 Clocker](./hw/clocker.md)
|
||||||
- [Sinara 8452 DSP Stabilizer / Sinara 4459 Pounder](./hw/stabilizer_pounder.md)
|
- [Sinara 8452 DSP Stabilizer](./hw/stabilizer.md)
|
||||||
- [Sinara 9805 RF Power Amplifier Booster](./hw/booster.md)
|
- [Sinara 9805 RF Power Amplifier Booster](./hw/booster.md)
|
||||||
- [Sinara 8451 Thermostat](./hw/thermostat.md)
|
- [Sinara 8451 Thermostat](./hw/thermostat.md)
|
||||||
- [Sinara 8453 Thermostat EEM](./hw/thermostat_eem.md)
|
|
||||||
- [Sinara 2245 LVDS DIO](./hw/lvds_dio.md)
|
- [Sinara 2245 LVDS DIO](./hw/lvds_dio.md)
|
||||||
- [Software/Support](./sw_sup/software_support.md)
|
- [Software/Support](./sw_sup/software_support.md)
|
||||||
- [Starting with ARTIQ](./sw_sup/artiq_start.md)
|
- [Starting with ARTIQ](./sw_sup/artiq_start.md)
|
||||||
|
@ -8,42 +8,33 @@
|
|||||||
|
|
||||||
### Flashing
|
### Flashing
|
||||||
|
|
||||||
Download the latest [booster firmware](https://github.com/quartiq/booster/releases/latest/download/booster-release.bin).
|
#### Easier way
|
||||||
|
|
||||||
Switch the booster into DFU mode by either inputting ``platform dfu`` in the serial console, or by turning it on while pressing the DFU button with a thin rod of some sort.
|
Download and unpack the [booster firmware](../extra/booster/booster0.5.0.tar.xz), and then:
|
||||||
|
|
||||||
Then you can use ``dfu-util``:
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
nix-shell -p dfu-util
|
nix-shell -p dfu-util
|
||||||
dfu-util -a 0 -s 0x08000000:leave --download booster-release.bin
|
dfu-util -a 0 -s 0x08000000:leave --download booster0.5.0.bin
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Building from source (optional)
|
#### Build from source on Fedora 38
|
||||||
|
|
||||||
There is no Nix Flake support to make things easier, so you need to set up rust and cargo manually.
|
Creating proper Nix shell for updated Rust is quite troublesome, so the faster way is actually to use any
|
||||||
Start with cloning the booster repository and opening a new shell with dfu-util (for flashing) and rustup
|
classic Linux distribution:
|
||||||
(for building).
|
|
||||||
|
|
||||||
```shell
|
|
||||||
nix-shell -p dfu-util rustup
|
|
||||||
```
|
|
||||||
|
|
||||||
Set up the toolchain, this should be done only once:
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
git clone https://github.com/quartiq/booster.git # download sources
|
||||||
|
sudo dnf install clang dfu-util
|
||||||
|
cd booster/
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # install Rust, we need rustup
|
||||||
rustup target add thumbv7em-none-eabihf
|
rustup target add thumbv7em-none-eabihf
|
||||||
cargo install cargo-binutils
|
cargo install cargo-binutils
|
||||||
rustup component add llvm-tools-preview
|
rustup component add llvm-tools-preview
|
||||||
rustup update
|
|
||||||
rustup default stable
|
|
||||||
```
|
|
||||||
|
|
||||||
Building:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
cargo build --release
|
cargo build --release
|
||||||
cargo objcopy --release -- -O binary booster-release.bin
|
cargo objcopy --release -- -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
|
||||||
```
|
```
|
||||||
|
|
||||||
#### For version before September 2023 on NixOS
|
#### For version before September 2023 on NixOS
|
||||||
@ -63,27 +54,14 @@ cargo objcopy --release -- -O binary booster.bin
|
|||||||
dfu-util -a 0 -s 0x08000000:leave --download booster.bin
|
dfu-util -a 0 -s 0x08000000:leave --download booster.bin
|
||||||
```
|
```
|
||||||
|
|
||||||
### Clearing settings
|
|
||||||
|
|
||||||
In case someone sets some setting wrongly, or updates the firmware and suddenly there's an incompatibility, you may find (firmware, not yourself) in a state of panic, where it will not allow you to change the settings back.
|
|
||||||
|
|
||||||
1. Get into DFU mode (described above), probably with jumper method.
|
|
||||||
2. Use dfu-util to clear the flash completely:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
dfu-util -a 0 -s 0x08000000:mass-erase:force:leave
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Reflash the target firmware.
|
|
||||||
|
|
||||||
### Basic setup via USB
|
### Basic setup via USB
|
||||||
|
|
||||||
1. `nix-shell -p cutecom mosquitto appimage-run`
|
1. `nix-shell -p cutecom mosquitto appimage-run`
|
||||||
2. Create mosquitto config `mosquitto.conf`, or use the one from Stabilizer repo:
|
2. Create mosquitto config `mosquitto.conf` with your bound address:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
%allow_anonymous true
|
bind_address 192.168.1.123
|
||||||
listener 1883
|
allow_anonymous true
|
||||||
```
|
```
|
||||||
|
|
||||||
3. `mosquitto -c mosquitto.conf -d`
|
3. `mosquitto -c mosquitto.conf -d`
|
||||||
@ -91,24 +69,7 @@ In case someone sets some setting wrongly, or updates the firmware and suddenly
|
|||||||
5. Connect to the Booster via `/dev/ttyACMX` port, baud 9600, switch from LF to CR on newer version
|
5. Connect to the Booster via `/dev/ttyACMX` port, baud 9600, switch from LF to CR on newer version
|
||||||
6. Send `help` command to check if it works
|
6. Send `help` command to check if it works
|
||||||
7. Enter commands (change details if necessary):
|
7. Enter commands (change details if necessary):
|
||||||
```shell
|
|
||||||
set /broker "192.168.1.123"
|
|
||||||
set /ip "192.168.1.79/24"
|
|
||||||
store /broker
|
|
||||||
store /ip
|
|
||||||
# apply changes and wait until it fully rebooted
|
|
||||||
platform reboot
|
|
||||||
```
|
|
||||||
|
|
||||||
Older version:
|
|
||||||
```shell
|
|
||||||
write broker "192.168.1.123"
|
|
||||||
write ip "192.168.1.75"
|
|
||||||
# apply changes and wait until it fully rebooted
|
|
||||||
reset
|
|
||||||
```
|
|
||||||
|
|
||||||
Oldest version:
|
|
||||||
```shell
|
```shell
|
||||||
write broker-address 192.168.1.123
|
write broker-address 192.168.1.123
|
||||||
# only if you need static IP address
|
# only if you need static IP address
|
||||||
@ -119,8 +80,17 @@ In case someone sets some setting wrongly, or updates the firmware and suddenly
|
|||||||
reset
|
reset
|
||||||
```
|
```
|
||||||
|
|
||||||
8. Check if the Booster connects to your broker.
|
Newer version:
|
||||||
9. If you don't have it yet, download [MQTT Explorer](https://github.com/thomasnordquist/MQTT-Explorer/releases)
|
|
||||||
|
```shell
|
||||||
|
write broker "192.168.1.123"
|
||||||
|
write ip "192.168.1.75"
|
||||||
|
# apply changes and wait until it fully rebooted
|
||||||
|
reset
|
||||||
|
```
|
||||||
|
|
||||||
|
8. Check the Booster connects to your broker.
|
||||||
|
9. Download AppImage from [MQTT Explorer](https://mqtt-explorer.com/)
|
||||||
10. Run it with `appimage-run /path/to/MQTT-Explorer-XXX.AppImage`
|
10. Run it with `appimage-run /path/to/MQTT-Explorer-XXX.AppImage`
|
||||||
11. Connect to your MQTT broker
|
11. Connect to your MQTT broker
|
||||||
12. Restart booster to receive settings
|
12. Restart booster to receive settings
|
||||||
@ -181,25 +151,3 @@ extrapolate them for all channels._
|
|||||||
13. Do steps 1-10 for every channel
|
13. 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._
|
_Note: default setting values are usually the same across channels, so you can extrapolate them for all channels._
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Fans running constantly
|
|
||||||
|
|
||||||
If firmware is not running, the fans will be running at all times. There will also be no LED lights. It may be also the firmware doesn't have the chance to switch the fans off before a panic, so clearing settings may also help.
|
|
||||||
|
|
||||||
### Fans running high, slowing and high again in a loop
|
|
||||||
|
|
||||||
Possibly the firmware is panicking and rebooting. Try clearing the settings.
|
|
||||||
|
|
||||||
### No USB console available
|
|
||||||
|
|
||||||
There was a bug that causes [USB not to work on Windows](https://github.com/quartiq/booster/pull/166) in older firmware. Updating the firmware should be fine.
|
|
||||||
|
|
||||||
### Booster will not connect to MQTT
|
|
||||||
|
|
||||||
You may need to supply the IP address, if the device cannot get one from DHCP.
|
|
||||||
|
|
||||||
### Overload light is on even after interlock reset
|
|
||||||
|
|
||||||
Make sure you set the output interlock threshold high enough for your intended load, but also keep in mind that it cannot be not more than 47dBm. Similarly, reflected power threshold is at 30dBm, so if the input is high enough and output is not connected, it will also trip the lock.
|
|
@ -133,46 +133,3 @@ Configure Stabilizer:
|
|||||||
Now, disconnect the USB and connect the Ethernet cable to the Stabilizer, as both won't fit at the same time.
|
Now, disconnect the USB and connect the Ethernet cable to the Stabilizer, as both won't fit at the same time.
|
||||||
Stabilizer should connect to moquitto automatically, and you should see the MQTT settings pop up in the MQTT Explorer.
|
Stabilizer should connect to moquitto automatically, and you should see the MQTT settings pop up in the MQTT Explorer.
|
||||||
If the IP address is not set, Stabilizer will try to use DHCP to get an address.
|
If the IP address is not set, Stabilizer will try to use DHCP to get an address.
|
||||||
|
|
||||||
## Installing the Pounder
|
|
||||||
|
|
||||||
Remember that the Pounder is not fully supported in official QUARTIQ release; use the firmware from Hydra.
|
|
||||||
|
|
||||||
Use ESD precautions; ensure that power is off (both barrel jack and PoE) before installing or removing the card.
|
|
||||||
|
|
||||||
There are no guides for the Pounder connector. Line up the connectors with the pins and gently push in.
|
|
||||||
|
|
||||||
SMA connectors should line up with the ones from Stabilizer; no pins should be visible from the sides of the Pounder; it's more obvious if the Pounder has the front panel already installed.
|
|
||||||
|
|
||||||
## Testing the Pounder
|
|
||||||
|
|
||||||
### With serial only
|
|
||||||
|
|
||||||
You need to have the Stabilizer powered on and connected through USB. Ethernet is not necessary.
|
|
||||||
|
|
||||||
Input the following sequence of commands into the shell, assuming Stabilizer serial interface is visible at /dev/ttyACM0:
|
|
||||||
```
|
|
||||||
stty 115200 -F /dev/ttyACM0
|
|
||||||
echo 'set /dual_iir/pounder/out_channel/0/dds/frequency 20e6' > /dev/ttyACM0
|
|
||||||
echo 'set /dual_iir/pounder/out_channel/0/dds/amplitude 1' > /dev/ttyACM0
|
|
||||||
echo 'set /dual_iir/pounder/out_channel/0/attenuation 16' > /dev/ttyACM0
|
|
||||||
echo 'set /dual_iir/pounder/out_channel/1/dds/frequency 30e6' > /dev/ttyACM0
|
|
||||||
echo 'set /dual_iir/pounder/out_channel/1/dds/amplitude 1' > /dev/ttyACM0
|
|
||||||
echo 'set /dual_iir/pounder/out_channel/1/attenuation 16' > /dev/ttyACM0
|
|
||||||
```
|
|
||||||
|
|
||||||
You can copy them all and input at once.
|
|
||||||
|
|
||||||
Observe a sine wave with frequency of 20MHz on channel 0 output, and 30MHz on channel 1 output.
|
|
||||||
|
|
||||||
### With MQTT (slower)
|
|
||||||
|
|
||||||
For this method, you need to set up MQTT and have the Stabilizer connected with Ethernet.
|
|
||||||
|
|
||||||
1. Set up the MQTT as described above.
|
|
||||||
2. Using Mosquitto and MQTT Explorer, set the pounder ``out_channel`` parameters:
|
|
||||||
* Frequency: 20e6 (20MHz)
|
|
||||||
* Amplitude: 1.0
|
|
||||||
![Pounder MQTT settings](../img/pounder_mqtt.png)
|
|
||||||
3. Repeat the procedure for the other channel.
|
|
||||||
4. Observe a sine wave of given frequency with an oscilloscope in the output channel.
|
|
@ -1,181 +0,0 @@
|
|||||||
# Sinara 8453 Thermostat EEM
|
|
||||||
|
|
||||||
* [Wiki](https://github.com/sinara-hw/Thermostat_EEM/wiki)
|
|
||||||
* [Firmware](https://github.com/quartiq/thermostat-eem/tree/main)
|
|
||||||
|
|
||||||
EEM is used for power only, and it can be alternatively powered by 12V barrel jack or PoE.
|
|
||||||
|
|
||||||
## JSON
|
|
||||||
|
|
||||||
Not present in the JSON.
|
|
||||||
|
|
||||||
### Building
|
|
||||||
There is no Nix Flake support to make things easier, so you need to set up rust and cargo manually.
|
|
||||||
Start with cloning the thermostat-eem repository and opening a new shell with dfu-util (for flashing) and rustup
|
|
||||||
(for building).
|
|
||||||
|
|
||||||
```shell
|
|
||||||
nix-shell -p dfu-util rustup
|
|
||||||
```
|
|
||||||
|
|
||||||
Set up the toolchain, this should be done only once:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
rustup target add thumbv7em-none-eabihf
|
|
||||||
cargo install cargo-binutils
|
|
||||||
rustup component add llvm-tools-preview
|
|
||||||
rustup update
|
|
||||||
rustup default stable
|
|
||||||
```
|
|
||||||
|
|
||||||
Building:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
cargo build --release
|
|
||||||
cargo objcopy --release --bin thermostat-eem -- -O thermostat-eem.bin
|
|
||||||
```
|
|
||||||
|
|
||||||
## Flashing
|
|
||||||
|
|
||||||
Once you have the binary, you can now flash it.
|
|
||||||
|
|
||||||
1. Without firmware on the device or with older firmware (without USB serial console),
|
|
||||||
you need to use the jumper method:
|
|
||||||
1. Have the Thermostat EEM disconnected from power.
|
|
||||||
2. Use a jumper of some sort to short BOOT pins on the board.
|
|
||||||
3. Turn on the power.
|
|
||||||
4. You can remove the jumper after few seconds.
|
|
||||||
2. With newer firmware with USB serial console:
|
|
||||||
1. Connect the Thermostat EEM to power.
|
|
||||||
2. Connect USB cable to the Thermostat EEM.
|
|
||||||
3. Ensure you have `pyserial` module either with `nix-shell -p python312Packages.pyserial` for NixOS users
|
|
||||||
or using `pip install pyserial` if you are using venv.
|
|
||||||
4. Run `python -m serial /dev/ttyACM0` to connect the serial port using `pyserial`.
|
|
||||||
5. Input `platform dfu` in the console.
|
|
||||||
3. Once the device is now in DFU mode, flash the device with the following command (needs `nix-shell -p dfu-util`):
|
|
||||||
|
|
||||||
```shell
|
|
||||||
dfu-util -a 0 -s 0x08000000:leave -R -D thermostat-eem.bin
|
|
||||||
```
|
|
||||||
|
|
||||||
4. Look for "File downloaded successfully".
|
|
||||||
|
|
||||||
|
|
||||||
### Clearing settings
|
|
||||||
|
|
||||||
In case someone sets some setting wrongly, or updates the firmware and suddenly there's an incompatibility,
|
|
||||||
you may find (firmware, not yourself) in a state of panic, where it will not allow you to change the settings back.
|
|
||||||
|
|
||||||
1. Get into DFU mode (described above), probably with jumper method.
|
|
||||||
2. Use dfu-util to clear the flash completely:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
dfu-util -a 0 -s 0x08000000:mass-erase:force:leave
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Reflash the target firmware.
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
|
|
||||||
### Setting up MQTT
|
|
||||||
|
|
||||||
MQTT is the only way to access the SENS and TEC pins telemetry for testing .
|
|
||||||
|
|
||||||
On PC side:
|
|
||||||
|
|
||||||
1. Get IP address of your machine, e.g. with ``ip a``. Make note of it, that's the broker address.
|
|
||||||
2. Get mosquitto, e.g. with ``nix-shell -p mosquitto``.
|
|
||||||
3. Create a mosquitto config files by running ``echo -e "allow_anonymous true\nlistener 1883" > mosquitto.conf``
|
|
||||||
3. Run mosquitto with the config ``mosquitto -c mosquitto.conf``
|
|
||||||
4. If you don't have it yet, download [MQTT Explorer](https://github.com/thomasnordquist/MQTT-Explorer/releases).
|
|
||||||
5. Call ``nix-shell -p appimage-run``, then ``appimage-run MQTT-Explorer-0.4.0-beta6.AppImage``.
|
|
||||||
6. Connect to the MQTT broker under your own IP address.
|
|
||||||
|
|
||||||
Configure Thermostat EEM:
|
|
||||||
|
|
||||||
1. Ensure that the [firmware](#Building) has been flashed onto the Thermostat EEM
|
|
||||||
2. Connect the Thermostat EEM to power.
|
|
||||||
3. Connect USB cable to the Thermostat EEM.
|
|
||||||
4. Run ``cutecom`` or your favorite terminal emulator, connect to ``/dev/ttyACM0``.
|
|
||||||
5. Change the broker setting with: ``set /net/broker "<ip of your machine>"``.
|
|
||||||
6. Store the setting with ``store /net/broker``.
|
|
||||||
7. (Optional) Set the IP address of the Thermostat EEM by following steps 4 and 5, but with ``/net/ip`` setting instead.
|
|
||||||
8. Reboot with ``platform reboot``.
|
|
||||||
|
|
||||||
Now, disconnect the USB and connect the Ethernet cable to the Thermostat EEM, as both won't fit at the same time.
|
|
||||||
Thermostat EEM should connect to moquitto automatically, and you should see the MQTT settings pop up in the MQTT Explorer.
|
|
||||||
If the IP address is not set, Thermostat EEM will try to use DHCP to get an address.
|
|
||||||
|
|
||||||
### SENS pins testing
|
|
||||||
|
|
||||||
1. Power off the Thermostat EEM
|
|
||||||
2. Connect the breakout board to Thermostat EEM
|
|
||||||
3. Connect two 10k Ohm resistor to SENS0 & SENS1
|
|
||||||
![resistor for sens pin](../img/thermostat_eem_resistor.jpg)
|
|
||||||
4. Power the Thermostat EEM and access the `telemetry/statistics` on MQTT Explorer
|
|
||||||
5. Check the mean temperature is around 25C for SENS0 & SENS1
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
...
|
|
||||||
"statistics": [
|
|
||||||
// SENS0 & SENS1
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"mean": 25.180674,
|
|
||||||
"ptp": 0.00029182434,
|
|
||||||
"std": 0.000053144646
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mean": 25.042572,
|
|
||||||
"ptp": 0.00029182434,
|
|
||||||
"std": 0.00005036032
|
|
||||||
},
|
|
||||||
null,
|
|
||||||
null
|
|
||||||
],
|
|
||||||
// SENS2 & SENS3
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"mean": -273.15,
|
|
||||||
"ptp": 0,
|
|
||||||
"std": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"mean": -273.15,
|
|
||||||
"ptp": 0,
|
|
||||||
"std": 0
|
|
||||||
},
|
|
||||||
null,
|
|
||||||
null
|
|
||||||
],
|
|
||||||
...
|
|
||||||
],
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
6. Repeat 3-5 for other SENS pins
|
|
||||||
|
|
||||||
### TEC pins testing
|
|
||||||
|
|
||||||
1. Power off the Thermostat EEM
|
|
||||||
2. Connect the breakout board to Thermostat EEM
|
|
||||||
3. Power the Thermostat EEM and set `output/0/state` parameter to `On` using MQTT explorer
|
|
||||||
![mqtt setup](../img/thermostat_eem_mqtt.png)
|
|
||||||
|
|
||||||
4. Check that TEC0 pins have voltages as described in `telemetry/monitor/output_voltage`
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"monitor": {
|
|
||||||
...
|
|
||||||
"output_voltage": [
|
|
||||||
-1.1107178, // TEC0
|
|
||||||
-1.638794, // TEC1
|
|
||||||
-1.762146, // TEC2
|
|
||||||
-1.1976318 // TEC3
|
|
||||||
],
|
|
||||||
...
|
|
||||||
},
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
5. Repeat 3-4 for other TEC pins
|
|
@ -50,7 +50,6 @@ Urukul 4412 has higher frequency resolution (47 bit against 32 at Urukul 4410),
|
|||||||
|
|
||||||
* SU-Servo
|
* SU-Servo
|
||||||
* Synchronization
|
* Synchronization
|
||||||
* RAM
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
Binary file not shown.
Before Width: | Height: | Size: 46 KiB |
Binary file not shown.
Before Width: | Height: | Size: 678 KiB |
Loading…
Reference in New Issue
Block a user