A blog on the repair, operation and calibration of surface analysis systems and components including electron spectrometers, sputter ion guns and vacuum related hardware. Click on the Index tab below to see a list of all posts. Visit our website at http://www.rbdinstruments.com
Category Archives: Software for Surface Analysis Systems
Information on software for control of surface analysis systems and data processing
Actuel 1.8 adds new features to assist with saving and graphing data. As always, updates are free and can be found here.
Set the Auto-Save Interval
Prior to Actuel 1.8, the auto-save interval for recorded graph data was every 5 minutes. The latest version gives you the option to save the data every half-minute to every 30 minutes.
Option to Show / Hide Graph
You now have the option to show or hide the graph display. This is useful if you only want to record data and not view the real-time graph information. Large data sets and fast sampling rates can cause some performance issues on slower PCs, and this option mitigates that.
Set a Fixed Range for the Graph Y-axis
By default, the Y-axis scale automatically adjusts to the range of the incoming data, with the options to display dual or single polarity, and to zero the baseline.
The fixed-range option for the Y-axis is especially useful, as it serves as a Y-axis zoom (independent of the X-axis) and also allows you to more easily compare data between multiple units or sessions. You can set the min and max for the range as well as the units.
There have been some minor changes to the user interface to accommodate the new options. The Data window is now (slightly) larger, and the formatting options have been moved to the Data Options group.
For more information on RBD Instruments’ 9103 USB picoammeter, visit our website here –
RBD has released Version 1 of CMapp – the data collection, analysis and control application for the microCMA. Of course, this is not the first version of CMapp available, but we had a set of features in mind for Version 1 that would truly represent the most feature-complete version of CMapp. Of course, this won’t be the last version – we’re already busy adding new features and working on a completely redesigned application for a future release.
The key new feature in CMapp 1.0 is the addition of the Electron Gun Control Pane, which replaces the dialog window. All of the electron gun controls are always available on-screen in the familiar layout. There’s no longer a need to move or minimize a window in order to view acquisition data.
Other Features and Changes
CMapp now offers the ability to differentiate and smooth data while acquiring. This is invaluable for getting important peak information in real-time, and removes the need to wait until the end of an acquisition to determine if the parameters are resulting in useful / expected data.
The latest version of CMapp also includes the ability of the edit the Wehnelt setpoints in the Hardware properties menu. Normally these values are factory set, but now they are easier to adjust without putting undo “stress” on the filament by ramping the beam voltage from 2 to 3 kV before having ballpark Wehnelt values.
Lastly, some minor changes have been made to improve the UI when working with Windows 11.
For Part 3 of our series on programming the 9103 with Python, we’ve written an application that controls the 9103 in High-speed mode (which can sample as quickly as 500 samples/second) and parses the high-speed messages so they are output to a text file using the same format as standard speed. (All Python samples for the 9103 can be found here.)
(The High-speed option for the 9103 is available as an option when purchasing. The 9103 is also available with a High-voltage option and 90 V fixed or external bias)
Setup the 9103 for High-Speed Sampling
The 9103 has two different modes of operation – high-speed and standard-speed. These run the serial COM ports at different baud rates, so the port needs to be opened at the appropriate rate (the 9103 recalls the last baud rate used). This application does not detect / switch modes, but in our last post we programmed a utility to do just that – it’s part of the set of python scripts included in the download.
The only difference between the code to open the port in standard speed or high speed is the baud rate (57.6k for standard, 230.4k for high) . All oher parameters are the same.
High vs. Standard Speed Interval Sampling
When interval sampling in Standard-speed mode, only the ‘I’ command is available, which provides one sample per message. High-speed mode adds an additional command – ‘i’ – which passes 10 samples per message, thereby reducing the round-trip overhead per sample. You would typlically only use this command for speeds faster than 40 samples / sec., however if can be used at slower speeds. We run a slower speed in our sample application to make it easier to observe the sample messages in the terminal.
(You would probably not choose to use the ‘i’ command for slower sampling rates, because it can only provide one stability warning and range for every 10 samples
Parsing the High Speed Sample Messages
The format for a High-speed sample includes the range and units, along with 10 samples:
For this application, we write to a data-logging file just as we do in the Standard-speed Python application. However, we need to parse the 10 sample data to produce a similar, one-sample-per-line output if we want to be able to use the data interchangeably.
The only difference between the samples is that the High-speed samples are prefaced with a lower-case ‘s’ (which could be easily replaced if necessary):
Here’s the code for parsing the high-speed sample message:
def parse_message_for_high_speed_sample( msg): if '&s' in msg: msg = msg.strip('\0') msg = msg.strip('&') list = msg.split(',') i = 0 stability = '' range = '' new_msg = '' units = list[-1] # gets last item list.pop() # remove last item which is units for value in list: if i==0: stability = value elif i==1: range = value else: new_msg = new_msg + stability + ',' + range + ',' + value + units + '\n' i=i+1 return new_msg else: return ''
That’s about all that’s necessary to create a compatible message, allowing you to mix High-speed and Standard-speed messaging in a compatible data-logging format