+++
title = "Control loops"
weight = 3
template = "page.html"
+++


{% layout_text_img(src="images/stabilizer@2x.png", alt="", textleft=true, shadow=false) %}

##### Stabilizer

The stabilizer module is a CPU-based dual-channel fast servo. It can be controlled by Kasli or work stand-alone with Power-over-Ethernet (PoE) supply.

- 400MHz STM32H743ZIT6
- dual 16bit ADC with x2, x5, x10 PGA (2MS/s)
- 16bit AD5542A DAC (1µs settling time)
- PoE supply
- 10/100Base-T Ethernet
- connectors for optional analog front-end (AFE) module
- IDC connectors for IDC-BNC extension for digital IO and aux analog inputs and outputs

It can be used as a general-purpose PID controller. Several AFE extensions are under development including high current power supply for magnets.

<a href="https://github.com/sinara-hw/stabilizer/wiki" target="_blank" rel="noopener noreferrer">More information</a>

{% end %}



{% layout_centered_content(css="row d-flex align-items-center mt-5 mb-0") %}
The <a href="https://github.com/quartiq/stabilizer" target="_blank" rel="noopener noreferrer">standard open source firmware</a> that comes with the board has the following features:
{% end %}



{{ layout_centered_img(src="images/_standard-open-source-firmware@2x.png", alt="", css="row d-flex align-items-center mt-0 mb-0") }}



{% layout_html() %}

  <div class="col-12 col-md-3">
    <ul>
      <li>dual channel</li>
      <li>SPI ADC</li>
      <li>SPI DAC</li>
      <li>fixed AFE gains</li>
      <li>500 kHz rate, timed</li>
      <li>< 2 µs latency, unmatched</li>
    </ul>
  </div>

  <div class="col-12 col-md-5">
    <ul>
      <li>f32 IIR math</li>
      <li>generic biquad (second order) IIR filter</li>
      <li>anti-windup</li>
      <li>derivative kick avoidance</li>
      <li>configurable output limits</li>
    </ul>
  </div>

  <div class="col-12 col-md-4">
    <p>
      To purchase this controller, email sales@m-***s.hk. We also offer firmware customizations and development of new features. Note that features that are not implemented in the open source code above (e.g. control from Kasli) are not supported unless purchased separately.
    </p>
  </div>

{% end %}



{% layout_text_img(src="images/Thermostat@2x.png", alt="", shadow=false) %}

##### Thermostat

This module is a 2-channel temperature controller EEM based on the Maxim MAX1968 driver, capable of driving 6W into a TEC or resistive heater. The sensor interface is based on AD7172 ADC.

Preliminary specifications:

- Channel count: 2
- Sensor: 10k NTC thermistor
- Load (heater/TEC) drive: up to 8W (+-2A with 4V compliance)
- Form factor: 3U module or stand-alone AL enclosure (Hammond 1455C1202).
- Output connectors: Sensor and load connect via either terminal block connector on the front panel or via internal 100mil pin-header.
- Programming interface: Ethernet accessible via RJ45 connector on the front panel
- Power supply: +12V DC (1.5A max) supplied either by a front-panel barrel connector, via 100mils Zotino connector, or PoE (up to 30W).
- STM32 MCU

This module is still in development and is not currently available.

{% end %}



{% layout_text_img(textleft=true, shadow=false) %}

##### SU-Servo

With the SU-Servo feature of ARTIQ, the AD9910 variant of Urukul (which has fine amplitude control) can be used in combination with the Sampler ADC to form a laser intensity servo. In this application, the Urukul card drives AOMs and photodiodes are connected to Sampler to monitor laser intensities. When ordering your system, specify that you want SU-Servo integrated into the gateware.

See the <a href="/experiment-control/sinara-core/">Sinara Core</a> page for the relevant devices (Kasli, Sampler and Urukul).

{% end %}