General Concepts
1. System Architecture
The Nanonis SPM System is divided into three parts
(1) The Host Computer
This is normal PC running under Windows (Mac no work).
All acquired data is stored on the local harddisk.
The connection to the realtime is provided via ethernet (TCP/IP/UDP).
(2) The Realtime Engine
This is a Pentium processor based Computer.
A realtime operating system (RTOS) is installed for determistic programe control.
Here all time critical control loops and the data aquisition and communications processes are running.
The nanonis applications software is fix installed on the harddish and is loaded automatically when the realtime egine is booted.
A notional Instruments FPGA card provides eight analog inputs, each of 16 bit resoultion and eight analog outputs, each of 16 bit resolution.*1
*1 The Phase Locaked Loop (PLL) is implemented on the FPGA. Two proportional-integral controllers control the frenquency shift and the excitation amplitude. See the reference of the user interface of the oscillation control.
The control loops on the real time engine run in a time critical thread of the realtime operating sustem. The loop rate can ve set in tcp-receiver. This is also the rate at which the input signals are sampled and the output signals are output. Note that the inpout signals are actually sampled at a much higher rate (typically 200kHz) and then digitally filtered and oversampled to increas the resolution.
There are communication processes that run at lower priority and handle the communication over the TCP and UDP protocols with are not real time capable.
One of this communication provides a stream of data of the twenty four channels to the user interface. Since it is hard to transfer the signals at the full rate of the control loops, you can specify an oversampling for this data stream in tcp receiver. This is called the Signals Period and is usually set to 1kHz (1ms). But, for special purposes you can set this Signals Period to 5kHz (for example for enhanced spectrum analysis) or to 100Hz (for example on slow machines or slow connections). This data stream is buffered and allows typically the host computer to be busy for a few seconds (this is not a real time mechine).
The data stream of the 24 channels (8 inputs, 8 outputs, 8 internal signals) is then further oversampled on the host computer and provided in two different update rates: animations period and indicators period to be displayed in the various moduels as numeric indicators or as animated graphical indicators.
(3) Nanonis Hardware
SCCB filters the analog signals and provides 8 analog inputs, 8 analog outputs and 2 digital ports with 8 lines each. It is connected to the FPGA card.
OCB is the hardward box for the oscillation control module. It is used to excite and detect the oscillation of a mechanical oscillator.
HVAMP takes the low voltage position signals from the SCCB and amplifes them for the scan piezo.
2. LabVIEW Handling
A short introduction into how to handle a program wrriten in LabVIEW. The concepts are usually straight forward and in general it is easy to find one’s eay around. You comfortable with LabVIEW will not need to focus on this section. Users not so familiar with LabVIEW (like me) might want to take a glance at the following contents and try out the concepts presented.
(1) Controls and Indicators
3. User Interface
4. File format
Nanonis SPM Control Software Reference
1. Main
All the modules of the Nanonis Controller can be opened via the menu bar.
(1) Manage the session folder: Explorer button; Browse button; Create dated folder button.
(2) Load layout, change windows arragement. you can configure which layour is assigned to a button in the System>Options window.
2. System
(1) TCP Receiver
- Define: the loop rates of the real time machine; the data transfer rate to the host computer; the update rates of the numerical indicators and animated graphics.
- Inspect: the state of the TCP/IP connection between the front end and the real time engine. the graph displays the time between two TCP packets that arrive from the RT-Engine.
It is a good practice to open this panel first before starting other modules. Initially it takes about 5 sec until the connectionn is established.
Connection status/ Reconnect button: The indicator turns as soon as the connection between real time computer and user interface is established. If the oonnection breaks for some reason (e.g. cable removed from slot), pressing the ”reconnect” button makes the softwave try to re-establish the link.
RT Engine Frequency (Hz)/RT-Sampling period (s): Fomer specifies the xecution speed of the processes running on the real time engine. Later indicator displays the time between two suceessive iterations of the processes running on the real time engine, and is the inverse of the RT Engine Freq.(Note: loaded from the license file. if you want to change its its default value, edit the key “RT-Engine Freq (Hz)” in the section “System”. Create a backup copy of this file before altering it since any other changes to it will result in an invalid file and you won’t be able to start the software anymore!)
Singals Oversampling/Signals Period(s): The rate at which the signals are transfered to the host computer running the control software. This is usually lower by a factor of 10 than the sampling rate, coz an internal oversampling of the signal is done on the real time engine. Reduce the oversampling down to 1 in order to resolve higher frequencies in the Spectrum Analyer.
Received packets: The graph shows the current interval between the received message packages from the real time engine in white and a low-pass filtered value (average) in red. The interval should correspond to the Signals Period from above. Periodic fluctuations of the white curve are perfectly normal due to the packet size, but the red line should be more or less flat.
Acquisition Period: Update rate for several processes like History Graph, Auto-Approach, and for many Programming Interface functions. This is usually set to 20 ms.
Show/hide additional timings: Meaurements Period; Animations Period; Indicators Period.
(2) Sent Commands
(3) Signals Viewer
(4) Options
3. Graphs
(1) Signal Monitor
(2) Signal Chart
(3) History
(4) Long Term Chart
(5) Oscilloscope
(6) Spectrum Analyzer
(7) Signal to Sound
4. Bias
(1) Kelvin Controller
(2) Bias Sweep
(3) CPD Compensation
(4) Bias Spectroscopy
5. Current
6. Oscillation Control
(1) Frequency Conrol
(2) Phase Sweep
(3) PLL setup
(4) Bode plot
7. Z-Control
(1) Controller Configuration
(2) Appraoch-Retract Curver
(3) Coarse Approach
(4) Z Spectroscopy
8. Piezo Calibration
(1) Hystersis Compensation Editor
9. Lock In
(1) Frequency Sweeper
10. Scan Control
(1) Multi-Pass COnfiguration
(2) Line Scan Monitor
(3) Quad Scan Monitor
(4) Scan Inspector
(5) Tip Move Recorder
(6) Tip Shaper
11. Beam Deflection
12. Digital Line Interface
13. Coarse Motion (Motor Control)
(1) Nanonis PMD4
(2) Jeol
(3) Unisoku
(4) Studerus
(5) Nanolab
(6) attocube ANC 150
(7) Omicro
(8) Step Motor
14. Function Generator
Generate waveforms on analog output 8. This can be used to drive a piezo motor. Different predefined waveforms are available to generate, or a custom waveform can be loaded from a file.
Output 8 of the SC4 should be set to direct (unfiltered; this can be done using jumpers in the device) in order to use this module. In addition, you will need a fast (high-bandwidth) channel in the high voltage amplifier.
Periods; Go; Sign (Switch between pos and neg sign of the waveform. This will invert the waveform along the y axis.); Forward/backward; Running (LED light up and the indicator will displa how many periods are left); Stop; Frequency (When changing the freqency, the time will be adjusted accordingly); Amplitude (100% corresponds to +/- 10V at the output of the SC4); Wave form (When swithcing, it’ll take some time to download the pattern to the FPGA); Load custom…; Waveform preview.
15. Generic PI controller
Controls the signal specified in Demod./Control Signal by adjusting output channel 2, the name of which can be specified in Channel Name. Also, the SI unit and the calibration can be specified.
The module will adjust output 2 to make the Control Signal match its Set point. The PI parameters (i.e. proportional gain and time constant) can be adjusted like in the z-controller module.
When AC mode is deactivated, the module will control the specified signal. If AC mode is activated, output 2 will be modulated using the specified settings (frequency, phase, amplitude) and the control signal will be demodulated. In this case, the setpoint defines the dwmosulated amplitude, and the controller will adjust the DV value of the output until the demodulated amplitude matches the setpoint. In AC mode, the time constant of the controller shoul dbe at least 10 times higher than the modulaion period (=1/mod.frq). See also Kelvin Controller module.
16. Pulse Counter 1/2
Two pulse counters (1 & 2) are available. They use digital lines DI)6 & DIO7 on digital port A or B (depending on your setup) of the SC4. The counters will display the current frequency of the pulses in Hz. This frequency is then available as channel for data acquisition under the name specified.
The counters are running at a sampling rate of 120 MHz, the theoretical maximum detectable pulse frequency is therefore 60 MHz. In practical applications the limit is more like 30 MHz.
CAUTION: Make sure the signal levels match. The SC4 DIO channels work with 3.3V TTL logic, so the amplitude should never exceed 5V with respect t DGND. Higher voltages can cause damage to the FPGA card.
17. Atom Tracking
Modulate the xy position of the tip in a circular form and detects the movements in z-direction with a lock-in. Thus the local slope in x and y direction is measured. A feedback controller moves the tip such taht is gets locked on a local maximum or minimum. Now, the linear drift can be measyred anc compensated allowing a drift free measurement afterwards.
Settings menu: Load save settings for the Atom Tracking module.
XY Modulation: Turn the circular modulation of the tip on or off. The tip will move in a spiral way to avoid jumps when turned on or off, therefore it can take some time until the modulation is fully on or off. When the modulation is turned off, the controller and the drift measurements is turned off as well in case they were on.
Frequency: Number of rounds per second. Make sure the modulation is not too fast in order that the z-controller can follow and no mechanical resonances will be excited.
Amplitude: The radius of the circles in the xy-plane.
Phase: The reference phase for thhe lock-in detection.
+90, -90: increment and decrement the reference phase by +/-90 degrees.
Swithch off Delay(s): XY position averaging time when switching off the Atom Tracking controller. Higher values result in better reporducability of the position.
Integral:
19. User Channels
(1) User dfinable Input Channels
(2) User definable Output Channels
(3) Generic Sweeper
Measure several channels sweeping a user-defined channel. It is very similar to the Bias Sweep module.
The data recorded are stored into one of four buffers (Plot 1-4).
The sweep is controlled from the host computer, therefore limiting the acquisition speed to ~50pt/s.
Signal to sweep
Channels: you can select more than one channel by pressing the Ctrl-key while slecting the cahnnels with the mouse.
Steps: the number of data point = Number+1
Measurements periods: This control is the same as the one in TCP recevier.
Max. slew rate: Maximum rate at which the sweep signal changes when ramping to the strating point.
Settling time: Time to wait just before starting the sweep.
Z-controller off:
(4) F-out Scala
The Scala controller has a +/- 10V input taht corresponds to a frequency shift of -732…+732Hz. In AFM mode, the Scala controller will control this input to 0. This module lets you define the Setpoint in Hz and it will apply the corresponding voltage on output 4.
The module substracts the Setpoint from the frequency shift and converts is to the correct range, i.e. the voltage of output 4 is calculated as follows: U = (Frq.Shif-Setoint)/(-73.2).
The module also offers the SafeTip feature. Specific a condition on which the tip should be retracted. If the condition is met. the output voltage is set to +/-10V (sign is configurable). This will lead to a tip retraction from the Scala z-controller.
Frq. Shift: the current frq shift as in the oscillation control module.
Setpoint (Hz)
Output voltage
Show/hide SafeTip
SafeTip on/off
SafeTip event indicator: Lights up if the SafeTip condition is met. Use the Rest button to set the output back to the normal value.
Reset SafeTip
SafeTip condition: If the specified signal, selectable whether absolute of bipolar, exceeds or falls below the specified threfold, a SafeTip event is triggered and the output voltage is set to the value specified in “SafeTip output value”.
SafeTip output value
SafeTip signal value: current
20. Extensions
(1) Temperature Measurement
Measurement temp in K from Lakeshore sensors and supply them a controlled current of 10 uA.
Output name (the output voltage used to supply current to the temp sensors); QuickScale; Output voltage (when control is off, the user can dajust the output voltage wth the silder, and when control is on the output voltage is automatically calculated to supply 10 uA to the sensors); Control on/off; R1 (resistance is connected on series with the temp sensor); Input values (the measured voltage and the calculated current and power); Input name; Input Temp (the calculated temp based on the predefined lookup table of the sensor).
(2) Force Feedback
Let you explore and manipulate the sample with haptic feedback. It requires an omega device attached to the host computer via a USB 2.0 port.
The gripper of the haptic device is used to move the tip in the xy-plane (using an adjusteable calibration factor). When moving the gripper and the Z feedback loop is on, forces are applied to the haptic device. The control loop tries to keep the gripper Z position on the “surface” of the sample, i.e. at the calibrated Z position of the tip. The tip always remains in controlled position as the Z controller keeps running.
Using the button on the gripper you can modify the Z-controller setpoint and/or the bias voltage.
Z-loop switch: Switch the Z feedback loop on/off. With the feedback loop on, forces are applied to the haptic device in order to keep it at the calibrated Z position. The setpoint of the haptic device Z positon (Zh) is calculated using the tip Z position (Zt), the Z offset (Zo) and the Z calibration (Cz) as follows: Zh=(Zt-Zo)/Cz.
Z feedback parameters: PI parameters of the Z feedback loop.
Parameter switch: Switches controller parameters between P/I (proportional gain/integral gain) and P/T (proportional gain/time constant).
Friction: The parameters define the friction of the haptic device in the xy-plane and along the Z axis. Using good friction values makes the haptic feedback more accurate. The friction force is proportional to the haptic device gripper movement speed.
Add to tip position:Indicates whether the calibrated gripper position is added to the tip position, i.e. the tip is moved in the xy-plane according to the gripper movements. This mode is coupled to the force mode of the haptic device (button and Led on the bas plate).
Calibration X/Y: calibration of tip movement to gripper movement in the xy-plane. The gripper position multiplied by the calibration is used as tip displacement. Example: if the calibration X/Y is 20nm/m, the tip moves 200pm when moving the gripper 10mm.
Auto-calibration X/Y: according to the scan frame dimensions.
Calibraton Z
Z offset: the specified tip Z position is used as zero for the gripper.
Button mode: different options are available for the Z-controller. (i) fixed Setpoint and (ii) Setpoint mode.
Setpoint on Button/Setpoint change: this control adapts as either Setpoint on Button or Setpoint change per m.
Bias (on Button): Specifies the bias voltage when the button on the gripper is pressed.
Stop button: Quits this module.
21. Utilities
(1) Binary File Inspector
3D binary data sets (.3ds), for example, with the Grid mode in the scan control module. It displays the topograpy, the spectroscopy curve at a single point and a slice through the data at a specific value. If you acquired bias spectroscopy on a grid, it allows you to display the current (at each point) at a given bias voltage.
File info & export
- File path
- Browse for file
- Reload
- Attributes
- Acquisition grid: Dimensions of the grid in physical units, i.e. center position and width/height in meters and rotation angle in degrees.
- Grid dimensions in number of points (Grid Dim X/Y) and points of the point spectroscopy measurement performed at each grid point.
- Data for Export
- Export as: png or bmp-iamge only with Grid Dim X x Grid Dim Y pixels not available for point spectro datas (sxm-scan data file not availavble for point spectro data); ACSII format-For the point spectro data, this will be a file with a header and several tab-separated data columns (a column corresponds to one acquired signal in one direction). For the parameter (topo) to slice data the header will be the same as for the sxm files, but with tab-separated ASCII data.
- Save (export)
Topography section:
The topograpy (Z signal) or an other parameter on the grid. Parameter (usually this is Z(m) topo data.
- Processing: like in Scan monitors.
- Color range: Adjusts the range of the selected paramter over which the color ramp is istributed. The two digital controls to the left replicate the selection in the slider. Use th QickScale buttons above the dlisder to modify the slider range.
- QuickScale
- Graph
- Cursor: The cursor position defines which point specto curve is displayed in the point spectro graph. The cursor posiotions of the topo graph and the slice graph are synchronized.
Point spectroscopy & Slice:
Upper graphe-point sepctroscopy data at the selected point.
Lower graphy-slice through the data at a specofoed value
- Point spectro graph: display the point spectro curve at the point specified by the cursors in the topo and slice graphs.
- Channel
- Slice reference value: If a bias sepctro measurement (acquiring current) was done at each point of the grid, you can select at which bias voltage you want to generate the slice. you will get a graphy displaying the current values at the specified bias voltage for eahc point of the grid.
- Slice preocessing
- Color range
- QuickScale
- Slice graphe
- Cursor
- Status bar: error or other status messages
(2) Long Term Spectrum Viewer
The data saved with the Long Term Spctrum analyzer.
With the Filter pattern capabilities it is possibe to precisely define which files within the selected folder you want to access.
- Browse settings
- Spectrum file: frequency resolution.
- Signal Info
- Header Info
- Color range: the rangle limits of the color ramp.
- Color box: intensity chart.
- Color ramp: show the correspondence between the color and the PSD amplitude.