Skip to content

Magnet control module, user guide

Aurore Finco edited this page Feb 11, 2022 · 4 revisions

This module is used to operate a vectorial 3 axis magnet (superconducting or regular coils)
Notes for the developers

Graphical interface

Using the Vector Magnet GUI, one can apply a magnetic field along a well-defined direction.

Simple control

Enter the amplitude and the spherical angles defining the desired magnetic field. The module converts it to Cartesian coordinates when you click the "Convert to x, y, z" button. Then use the "Go to field" button to actually apply the field.

Advanced features

Offset field

This feature allows the user to apply an additional offset field, either by entering spherical or Cartesians coordinates. Initially, we used this to compensate the Earth's magnetic field.

B_perp tool

This feature allows the user to apply easily a magnetic field in the plane perpendicular to a given direction (which is most of the time the NV axis direction). Specify the angles defining the NV axis orientation first. Then, indicate the desired direction of the field within the perpendicular plane and its the magnitude. The "Compute Bperp and set as target" button allows you to compute the corresponding Bx, By, Bz components and directly sets them as target field. You just have to click "Go to field" afterwards.

Status

Displays the current from the power supply and coil of each axis. It also indicate the sweeping status of power supplies, either standby or sweeping, if relevant for the used hardware.

Scripting this module

Using a Jupyter Notebook or the IPython console, one can avoid the graphical interface. The only useful function here is go_to_field(Bx, By, Bz). The Bx, By and Bz components have to be given in mT.

Config files

hardware:
    dummyscmagnet:
        module.Class: 'sc_magnet.attocube_sc_magnet_dummy.SuperConductingMagnet'
        current_ratio_x: 126.0
        current_ratio_y: 104.8
        current_ratio_z: 318.1
        
    dummymagnet:
        module.Class: 'power_supply_dummy.PowerSupplyDummy'

logic:
    scmagnetlogic:
        module.Class: 'sc_magnet_logic.SuperConductingMagnetLogic'
        connect:
            powersupply: 'dummyscmagnet'
            
    magnetlogic:
        module.Class: 'coil_magnet_logic.CoilMagnetLogic'
        connect:
            powersupply: 'dummymagnet'

gui:
    magnet:
        module.Class: 'vector_magnet.vector_magnetgui.VectorMagnetGui'
        connect:
            scmagnetlogic: 'scmagnetlogic'
            coilmagnetlogic: 'magnetlogic'
        magnet_type: 'supra'