Configuration Files

Parameters of both the microscope itself and of measurements it will perform are defined in JSON files. These parameters are loaded into memory as an OrderedDict using utils.load_json_ordered() so that they are accessible to the Microscope.

Microscope Configuration

Example configuration file for a microscope.susceptometer.SusceptometerMicroscope.

{
    "instruments": {
        "daq": {
            "model": "NI USB-6363",
            "name": "Dev1",
            "channels": {
                "analog_inputs": {
                    "MAG": 0,
                    "SUSCX": 1,
                    "SUSCY": 2,
                    "CAP": 3,
                    "x": 4,
                    "y": 5,
                    "z": 6},
                "analog_outputs": {"x": 0,"y": 1,"z": 2}
            },
            "rate": "1 MHz",
            "max_rate": {
                "analog_inputs": {
                    "1 channel": "2 MHz",
                    "multichannel": "1 MHz",
                    "comment": "Multichannel value is aggregate for all ai channels."},
                "analog_outputs": {
                    "1 channels": "2.86 MHz",
                    "2 channels": "2.00 MHz",
                    "3 channels": "1.54 MHz",
                    "4 channels": "1.25 MHz",
                    "comment": "Max ao rates are per channel."
                }
            }
        },
        "lockins": {
            "SUSC": {
                "model": "SR830",
                "address": "GPIB0::12::7::INSTR"},
            "CAP": {
                "model": "SR830",
                "address": "GPIB0::28::7::INSTR"
            }
        },
        "atto": {
            "name": "atto",
            "model": "ANC300",
            "address": "ASRL1::INSTR",
            "timeout": 5,
            "terminator": "\r\n",
            "stopbits": 1,
            "baud_rate" : 38400,
            "axes": {"x": 1,"y": 2,"z": 3},
            "voltage_limits": {
                "RT":{"x": "25 V","y": "25 V","z": "40 V"},
                "LT":{"x": "60 V","y": "60 V","z": "60 V"}
            },
            "default_frequency": {"x": "100 Hz", "y": "100 Hz", "z": "100 Hz"},
            "constants":{
                "x": "-0.66 um",
                "y": "-0.55 um",
                "z": "0.2 um",
                "comment": "Approximate um/step at 3 K, 60 V. Sign is relative to scanner sign. 2018/02/22"},
            "history": {}
        },
        "ls372":{
            "name": "ls372",
            "address": "GPIB0::13::7::INSTR"
        },
        "ls331":{
            "name": "ls331",
            "address": "GPIB0::30::7::INSTR"
        },
        "scanner": {
            "name": "benders",
            "constants": {
                "x": "17 um/V",
                "y": "18 um/V",
                "z": "2 um/V",
                "comment": "um/V_daq (2018/02)"},
            "voltage_limits":{
                "RT":{"x": [-2, 2], "y": [-2, 2], "z": [-2, 2]},
                "LT":{"x": [-10, 10],"y": [-10, 10], "z": [-10, 10]},
                "unit": "V",
                "comment":"V_daq should never be outside of voltage_limits."},
            "voltage_retract":{"RT": "-2 V","LT": "-10 V"},
            "speed": {
                "value": "2 V/s",
                "comment":"Rate of movement of the scanner (when not scanning)."
            },
            "plane": {},
            "cantilever": {
                "calibration": "326 uV/pF",
                "comment":"CAP lockin X reading, freq = 6.821 kHz, amp = 1 V"
            }
        }
    },
    "SQUID": {
        "name": "SQUID",
        "type": "susceptometer",
        "description": "IBM deep-etched 0.3um susceptometer",
        "modulation_width": "0.19 V/Phi0",
        "FC_PU_mutual": "0 Phi0/A",
        "feedback": {
            "type": "Red Pitaya + pyrpl"
        },
        "dimensions": {
            "PU_ri": "0.3 um",
            "PU_ro": "0.5 um",
            "FC_ri": "1.0 um",
            "FC_ro": "1.5 um"
        }
    },
    "info": {
        "timestamp_format":"%Y-%m-%d_%H:%M:%S"
    }
}

Measurement Configuration

Example configuration file for microscope.susceptometer.SusceptometerMicroscope measurements.

{
    "scan": {
        "fname": "scan",
        "surface_type": "plane",
        "fast_ax": "x",
        "range": {"x": "5 V", "y": "5 V"},
        "center": {"x": "0 V", "y": "0 V"},
        "height": "-0.2 V",
        "scan_rate": "10 pixels/s",
        "scan_size": {"x": 50, "y": 50},
        "channels": {
            "MAG": {
                "label": "Magnetometry",
                "gain": 10,
                "filters": {
                    "lowpass": {"cutoff": "100 kHz", "slope": "12 dB/octave"},
                    "highpass": {"cutoff": "0 Hz","slope": "0 dB/octave"}
                },
                "unit": "mPhi0",
                "unit_latex": "m$\\Phi_0$"
            },
            "SUSCX": {
                "lockin": {
                    "name": "SUSC",
                    "amplitude": "1 V",
                    "frequency": "131.79 Hz"
                },
                "label": "Susceptibility",
                "gain": 10,
                "r_lead": "1 kOhm",
                "unit": "Phi0/A",
                "unit_latex": "$\\Phi_0$/A"
            },
            "SUSCY": {
                "lockin": {
                    "name": "SUSC"
                },
                "label": "Susceptibility (out of phase)",
                "gain": 10,
                "r_lead": "1 kOhm",
                "unit": "Phi0/A",
                "unit_latex": "$\\Phi_0$/A"
            },
            "CAP": {
                "lockin": {
                    "name": "CAP",
                    "amplitude": "1 V",
                    "frequency": "6.281 kHz"
                },
                "label": "Capacitance",
                "gain": 1,
                "unit": "fF",
                "unit_latex": "fF"
            }
        }
    },
    "td_cap": {
        "fname": "td_cap",
        "dV": "0.1 V",
        "range": ["-9.5 V","9.5 V"],
        "channels": {
            "CAP": {
                "lockin": {
                    "name": "CAP",
                    "amplitude": "1 V",
                    "frequency": "6.281 kHz"
                },
                "label": "Capacitance",
                "gain": 1,
                "unit": "fF",
                "unit_latex": "fF"
            },
            "SUSCX": {
                "lockin": {
                    "name": "SUSC",
                    "amplitude": "1 V",
                    "frequency": "131.79 Hz"
                },
                "label": "Susceptibility",
                "gain": 10,
                "r_lead": "1 kOhm",
                "unit": "Phi0/A",
                "unit_latex": "$\\Phi_0$/A"
            },
            "SUSCY": {
                "lockin": {
                    "name": "SUSC"
                },
                "label": "Susceptibility (out of phase)",
                "gain": 10,
                "r_lead": "1 kOhm",
                "unit": "Phi0/A",
                "unit_latex": "$\\Phi_0$/A"
            }
        },
        "constants": {
            "max_slope": "0.8 fF/V",
            "max_delta_cap": "5 fF",
            "max_slope": "3 fF/V",
            "max_delta_cap": "15 fF",
            "initial_cap":"0 pF",
            "nfitmin":10,
            "nwindow":30,
            "ntest":8,
            "wait_factor":2
        }
    }
}