diff --git a/src/hw/stabilizer.md b/src/hw/stabilizer.md index 8f149d5..887c966 100644 --- a/src/hw/stabilizer.md +++ b/src/hw/stabilizer.md @@ -10,9 +10,19 @@ EEM is used for power only, and it can be alternatively powered by 12V barrel ja Not present in the JSON. -## Building +## Getting the firmware -Pick your poison - firmware version: older with Pounder support or newer with USB serial console - the first works with a hardcoded MQTT broker and (static or dynamic) IP address, the latter is configured like the booster - through a serial console. +You can get the firmware from [Hydra](https://nixbld.m-labs.hk/jobset/mcu/mcu-contrib). + +* ``stabilizer-dual-iir`` supports Pounder v1.2 - probably you should flash this one, +* ``stabilizer-dual-iir-pounder_v1_0`` supports Pounder 1.0 and 1.1 (legacy), +* ``stabilizer-lockin`` is a different application which we do not usually flash. + +These all include changes to the mainline code to include Pounder telemetry. + +### Building (optional) + +Please keep in mind that the firmware from the official Quartiq repository does not include support for Pounder in MQTT, you may need to use a fork for that. But if the stabilizer is without a Pounder, it's also a valid option. There is no Nix Flake support to make things easier, so you need to set up rust and cargo manually. Start with cloning the stabilizer repository and opening a new shell with dfu-util (for flashing) and rustup (for building). @@ -30,27 +40,18 @@ rustup update rustup default stable ``` -Building the older version: - -``` -BROKER="MQTT BROKER IP" cargo build --release -BROKER="MQTT BROKER IP" cargo objcopy --release --bin dual-iir -- -O binary dual-iir.bin -``` - -Building the newer version: +Building: ``` cargo build --release cargo objcopy --release --bin dual-iir -- -O binary dual-iir.bin ``` -The newer version must be configured with USB console later (try ``help`` command first). - ## Flashing -Once you have the binary (either built, or received from someone), you can now flash it. +Once you have the binary, you can now flash it. -Without firmware on the device or with older firmware, you need to use the jumper method: +Without firmware on the device or with older firmware (without USB serial console), you need to use the jumper method: 1. Have the Stabilizer disconnected from power. 2. Use a jumper of some sort to short BOOT pins on the board. @@ -75,9 +76,11 @@ dfu-util -a 0 -s 0x08000000:leave -R -D dual-iir.bin 7. Look for "File downloaded successfully". +For normal usage, the stabilizer must be configured with USB console later (try ``help`` command first), to set its IP address and MQTT broker address. However, for general testing (like the one below), you don't need to configure it any further. + ## Testing -1. Ensure that the [firmware](https://github.com/quartiq/stabilizer) has been flashed onto the Stabilizer +1. Ensure that the [firmware](#getting-the-firmware) has been flashed onto the Stabilizer 2. Turn on the crate/Stabilizer via EEM cable or power supply 3. Set up the signal generator for an amplitude of 1V, frequency of 10kHz, and a sine wave 4. Use the splitter to connect the generator's output to ADC0 and to the oscilloscope (refer to the picture below)