For contact info, please see the Sci.Electronics.Repair FAQ Email Links Page.
Copyright © 1994-2016
Reproduction of this document in whole or in part is permitted if both of the
following conditions are satisfied:
1. This notice is included in its entirety at the beginning.
All Rights Reserved
2. There is no charge except to cover the costs of copying.
µMD1 is intended for use in hobbyist, experimental, research, and other
applications where a bug in the hardware, firmware, or software, will not
have a significant impact on the future of the Universe or anything else.
While every effort has been made to avoid this possibility, µMD1 is an
on-going development effort. We will not be responsible for any consequences
of such bugs including but not limited to damage to the wafer FAB you
picked up on eBay for $1.98 + shipping, financial loss from excessive use
of ABS due to the office 3-D printer fabricating a part 25.4x too large, or
bruising to your pet's ego from any number of causes directly or indirectly
related to µMD1. ;-)
Thanks to Jan Beck for selecting the chipKIT DP32 and writing and testing
initial versions of the firmware and GUI. And for getting me interested
in actually getting involved in this project. If anyone had told me
six months ago that I'd be writing code in C, MIPS assembly language,
and Visual Basic - and enjoying it (sort of) - I would have suggested
they were slightly nuts. ;-) Jan maintains the master GUI source code
as well as slightly different versions of the firmware and a
development blog on the development of this overall project.
Links to his Web information may be found under
Reproduction of this document in whole or in part is permitted if both of the following conditions are satisfied:
1. This notice is included in its entirety at the beginning.
Typical Interferometer Setup using µMD1
Note that µMD1 refers specifically to the combination of the chipKIT hardware and firmware. It's possible there could be µMD2, µMD3, .... µMDn in the future using the same GUI. :)
This document provides installation and operating instructions for the
µMD1 hardware and software. It is assumed the reader is
familiar with two-frequency interferometry in general as well as
HP/Agilent/Keysight lasers and interferometer optics. If not,
back up and start with Sam's Laser FAQ: Interferometers
Using Two-Frequency Lasers and
Specifications are subject to change without notice. :-)
Parts for single axis system without environmental sensors
Designing your own PCB is also an option since there isn't much on the board besides the PIC32MX250F128B microprocessor (PIC) chip (under $4 from Digikey). But this may require a device programmer to upload the firmware since the PIC probably won't come with the boot loader in NVRAM.
Typical headers are AMP MTA-100 series, though similar parts are available from Molex and others. And you're perfectly free to use your own favorite parts for these, or wire the cables in directly.
For a system with 2 or 3 axes, double everything associated with the RS422 receivers.
Here is the schematic for both along with the optional environmental sensors. Only the top circuits using U1 are required for a single channel system:
µMD1 Interferometer Signal Inputs and Sensors Schematic
The only jumper that should remain for a system without environmental sensors is the one on JP7 in the lower left of the photo, above.
For remote environmental sensor support, the following are required.
The only reason the 5 and 6 pin headers are listed for these is so they will be different than the 4 pin headers for the interferometer signals and prevent accidental wrong connections. The headers and connectors can be omitted entirely if the sensors are mounted on the chipKIT board or cables can be soldered in permanently.
Note that "BMP180" actually refers to the itty-bitty sensor module itself. You really don't want to deal with that. :) Thus, it is usually provided soldered to a small PCB with the required support circuitry. There ere are at least two versions of this PCB. One has a built-in 3.3 V so it can run from 5 VDC power. Both are shown in the schematic but only one of them is needed. :) Either can be used here since we have both 5 V (VIN) and 3.3 V available. Important: There are at least two different pinouts for the 5 pin version and yours may not agree with the photo, below. Adjust pin connections accordingly.
These sensors are available on eBay and many other sources. On eBay, the
BMP180 PCB without regulator is going for less than $1, the AM2302 for
chipKIT DP32 PCB Board Top View (Signal Labeling)
For a single axis system without environmental sensors, the only jumper
that should remain is the one on JP7 in the lower left of the photo, above.
Pins on the UA9637/9 DIP are numbered counterclockwise as shown below, or starting at the dot or dimple if your part doesn't have a notch.
Pins on the chipKIT board are labeled on the silkscreen but there are at least two different revisions and the numbering isn't the same!
Pin Arduino Labeling Signal Labeling Signal Name ------------------------------------------------------------- J3-1 0 RB5 RPB5 J3-2 1 RB7 RPB7 J3-3 2 RB8 RPB8 J3-4 3 RB9 RPB9 J3-5 4 RB10 RPB10 J3-6 5 RB11 RPB11 J3-7 6 RB13 RPB13 J3-8 7 RB14 RPB14 J3-9 8 RB15 RPB15 J3-10 - - - J3-11 3.3V 3.3V 3.3V J3-12 VIN (5V) VIN (5V) VIN (5V) J3-13 GND GND GND J4-1 9 RA0 RPA0 J4-2 10 RA1 RPA1 J4-3 11 RB0 RPB0 J4-4 12 PGC (RB1) RPGC (RPB1) J4-5 13 RB2 RPB2 J4-6 14 RB3 RPB3 J4-7 15 RA2 RPA2 J4-8 16 RA3 RPA3 J4-9 17 RB4 RPB4 J4-10 18 RA4 RPA4 J4-11 3.3V 3.3V 3.3V J4-12 VIN (5V) VIN (5V) VIN (5V) J4-13 GND GND GND
The numbers refer to standard Arduino signal "pin" designations while the RPBs refer to DP32 PORT A or B bits. The photo of the chipKIT board, below, has the Arduino designations. This is revision C and is what Digkey has been shipping. It also has the power LED, so perhaps that's an addition. :) The relevant board wiring is the same for the two versions, it's just the silkscreens that differ. But there are apparently older versions that may not be the same.
Note that the jumpers on JP7 are NOT in the correct position for our needs in the photo below.
CAUTION: Most PIC pins are NOT 5V tolerant - they will be unhappy if a 5 V signal is connected to them directly. Thus VIN (5V) or any signal that may go higher than 3.3V should NEVER be connected to them, even for an instant. Bad things may happen. 3.3V is acceptable through a current limiting resistor (just to be doubly safe, for the micro that is). Hooking raw power to what may be a logic output (accidentally or otherwise) is never a good thing! P.S. "Unhappy" and "Bad things may happen" could mean that you'll ruin the PIC chip.
* It's usually not necessary to run the REF and MEAS Return (RET) signals to the board even if there is no common ground connection between the chipKIT board, and laser and interferometer optical receiver(s). The terminating resistors will provide the ground reference. In fact, under some conditions where everything is tied together with a common ground, the RET connections could add noise due to a ground loop. The line receivers only care about the difference between the REF and ~REF or MEAS and ~MEAS voltage levels as long as the absolute voltage levels are within their common mode and absolute voltage specifications. For cables of a few feet or less, it's almost certain connections are required to the Returns. But for long runs, shielded cable or twisted pairs may be desirable. This won't apply to most hobbyist/experimenter applications. :)
The graphic below shows a suggested layout for the line receiver, the required resistors, and the jumper location. 4 pin headers are shown for REF and MEAS. Their presence and type are optional but the use of some type of connectors is recommended. This view is of the bare chipKIT PCB as it would look with no other parts present. It's then easy to follow the copper traces should you so desire. ;-)
(If constructing a multiple axis system and/or one with environmental sensors, there is more below on the suggested layout.)
For those not familiar with the common resistor color code (Black/0, Blown/1, Red/2, Orange/3, Yellow/4, Green/5, Blue/6, Violet/7, Gray/8, White/9), the resistors shown above are 150 ohms (brown-green-brown or 15 with 1 zero) ohms and 330 ohms (33 with 1 zero) ohms. The gold stripe indicates 5 percent tolerance on the value but for the use here, tolerance doesn't matter. (It's possible the resistors you use will have 4 stripes where 3 of them are the value and the 4th is the multiplier, along with one for tolerance. If in doubt confirm the value with a multimeter.)
For a 2 or 3 axis system, especially if adding environmental sensors, it may be desirable to squash this layout somewhat to make space for a second dual line receiver. This can be done easily by standing up some of the resistors. And/or use a quad line receiver chip. However, the layout below which replicates the pattern for a second RS422 line receiver will work. But note that most of the pads used by additional parts are NOT bussed so interconnecting them will have to be done by running jumper wires.
For the environmental sensors, the diagram shows headers to attach extension cables so that the sensors can be mounted close to the interferometer setup. It is also possible to mount them on the chipKIT board directly in place of the headers. But generally, the sensors should be located where the relevant environmental consitions are present, though only the temperature is at all likely to differ, and possibly be affected by the (very slight) power dissipated on the board. (Unless your interferometer is in a vacuum chamber!) The signals are all low frequency so a reasonable cable length can be used without concern for shielding, crosstalk, or frequency response. But using twisted pairs is probably prudent for anything longer than a few feet. Also note the additional jumpers at JP4 and JP5.
Once the board has been wired, mounting it in such a way that the bottom can't touch anything and short out is highly recommended. Use standoffs in the four corner holes or something similar, and an insulating sheet under it.
Much more on the details of the board can be found in the Diglent chipKIT DP32 references, below.
Important: There are at least two different pinouts for the 5 pin version of the BMP180 and yours may not agree with the photo, above. Adjust pin connections accordingly.
Essential:This version must have the chipKIT board wired with REF to RB5 and MEAS to RB0. These assignments will probably not change in the forseeable future. (Multiple axes are not currently enabled in the firmware but MEAS2 will be RB2 and MEAS3 will be RB3.)
Here are the DP32 Timer designations, select bits, bus addresses, and pin assignments for the interferometer input signals:
Input Counter TxCKR Bus Address Pin Signal Notes ------------------------------------------------------------------- REF Timer3 0b0001 0xbf800A10 0/RB5 RPB5 MEAS1 Timer5 0b0010 0xbf800E10 11/RB0 RPB0 LED4 MEAS2 Timer4 0b0100 0xbf800C10 13/RB2 RPB2 LED2 MEAS3 Timer2 0b0001 0xbf080810 14/RB3 RPB3 LED1("x" designates the selected Timer.)
Most of these details are really only relevant if there is a desire to modify the firmware, which is not advised since no support will be provided if even 1 character in a comment field is changed without prior approval from µMD1 Central. :) This approval process normally requires a minimum of 3 years, 7 months, 24 days, 11 hours, 35 minutes, and 22 seconds, but often takes a lot longer. :-) For wiring using the firmware provided, only the pin assignments matter.
Depending on how the line receivers decide to behave in combination with the laser or optical receiver when there is no signal, the LEDs may provide an indication of MEAS signal status, though they do not appear to respond to MHz frequencies. The reason the LEDs are on the clock inputs is that there are only a very limited of pin/Timer combinations that are available and using those with the LEDs results in the fewest conflicts.
Note that if updating firmware, the GUI may also need to be updated and vice-versa.
Here is the communications format between the firmware and GUI. This information is of little relevance if using the GUI, but will be useful if writing your own application software or for data analysis. Each of the values is sent as an ASCII string representing a signed (if needed) decimal number separated by spaces at the sampling rate. The firmware maintains a FIFO buffer so that if the USB data is delayed for some reason, no data should be lost (hopefully):
Standard (Single Axis) Data (8 values): 0: REF Frequency Count = REF frequency/Sample Frequency 1: MEAS Frequency Count 1 = MEAS 1 frequency/Sample Frequency 2: Displacement 1 ( in 1/2, 1/4, or 1/8 wavelength) 3: Velocity Count 1 = (Displacement 1 - Previous Displacement 1)/Sample Frequency 4: Phase 1 = Signed fractional offset between Displacement increments * 256 If Phase is not valid, then an error code is sent instead: 0x200 = no counter 1st REF 0x400 = no counter 2nd REF 0x800 = no counter MEAS 1 0x1000 = no PORTB 1st REF 0x2000 = no PORTB 2nd REF 0x4000 = no PORTB MEAS 1 5: Sequence Number (Unique serial number for each sample) 6: LowSpeedCode (See below) 7: LowSpeedData (see below) The following 8 values will also be sent when Multiple Axis Mode is active: 8: MEAS Frequency Count 2 9: Displacement 2 10: Velocity Count 2 11: Phase 2 12: MEAS Frequency Count 3 13: Displacement 3 14: Velocity Count 3 15: Phase 3 LowSpeedCode (specifies contents of LowSpeedData): 0-99: GUI Data/Control: 0: No Data 1: Laser Power 2: Signal Strength 3: Temperature 1 (XXX.YY, °C, 0 to 70.00) 4: Temperature 2 (XXX.YY, °C, 0 to 70.00) 5: Pressure (XXX.YY mBar, 500.00 to 2000.00) 6: Humidity (XXX.Y percent, 0 to 100.0) 8: Sample Frequency (XXX.YY Hz, default is 610.34 Hz) 10: Firmware Version (XXX.YY) (Not all of these are currently implemented.) 100-199: Diagnostics 200-255: Reserved
Installation of the device driver, which should be performed before the board is plugged in, can be done in several ways without using MPIDE. (1) is the simplest:
Once the driver has been successfully installed, plug the chipKIT board into any available USB port. The red power LED (if present) should come on. (Not all versions of the chipKIT DP32 have one; apparently someone decided to save 1/10th of a cent on an earlier or later revision!) If I (Sam) sent you the chipKIT DP32 board, it will have been loaded with a version of the µMD1 firmware and at least one of the green LEDs will be lit. But by the time you've received it, the firmware will probably be out of date, so reloading will be required in any case. :)
Windows should recognize the chipKIT board and ask to install a driver. Point it to the location of Stk500v2.inf.
Once the driver is successfully installed, the chipKIT board should come
up as a serial port. Go to the Windows Device Manager to locate and select it.
The UECIDE files should be unzipped to any convenient location on your computer. UECIDE requires around 160 MB there, and another 600+ MB for support files typically somewhere like c:\users\YourUserID\AppData\Local\UECIDE. This location can be changed in File->Preferences. If doing this after having configured UECIDE, copy all the files to the desired destination first, then change the data directory in File->Preferences. DO NOT delete the original UECIDE directory or the preferences file! :) Otherwise, the configuration information will all be lost.
Compared to most applications, UECIDE takes forever to start up even on a fast PC. So be patient. That's the bad news. The good news is that compiling and uploading is about 5 times faster than MPIDE, another reason to ignore MPIDE. Go figure. :)
The first thing UECIDE will likely do is to tell you that no boards are installed and then open the Plugin Manager. If it does not, do it manually by going to Tools->Plugin Manager. At first the pane along the left will only show the word "Plugins". But after a couple minutes, it should update with a list: Plugins, Libraries, Boards, Cores, Compilers, System. The following are required:
For each of these click on "Install". Installing the chipKIT board will probably automagically install the other chipKIT-related files and may take several minutes. Confirm that each entry has a green check mark next to it.
Close the Plugin Manager and go to "Hardware" and confirm that the proper Board (chipKIT DP32), core (chipKIT), and Compiler (pic32-tools) has been selected. Click on it if not.
Some other quirks of UECIDE that I've found:
Plug the chipKIT board into any available USB port. The red power LED (if present) should come on. (Not all versions of the chipKIT DP32 have one; apparently someone decided to save 1/10th of a cent on an earlier or later revision!) If I (Sam) sent you the chipKIT DP32 board, it will have been loaded with a version of the µMD1 firmware and at least one of the green LEDs will be lit. But by the time you've received it, the firmware will probably be out of date, so reloading will be required in any case. :)
Assuming the driver has already been installed, go to Hardware->Serial Terminal and select its COM port. Typically, this will be the highest number COM port, or perhaps the only one, since no one uses these for much of anything anymore.
UECIDE should remember the configuration settings automatically upon exiting.
Compiling... * Compiling sketch... * Compiling core... > api * Compiling libraries... * Linking sketch... Compiling done. Memory usage * Program size: 55532 bytes * Memory size: 3452 bytes * Compilation took 5.634 seconds Uploading firmware... * Resetting board... * Uploading... * Resetting board... * Upload Complete
Windows should recognize that the chipKIT COM port dropped out momentarily and reappeared. The firmware will be spitting out sequences of numbers at the sampling rate. These may be viewed by going to: Tools->Serial Terminal. With no interferometer hardware, they will be rather boring with only one value incrementing, the sequence number. To Windows, the chipKIT board appears as a COM port. Thus any software that processes COM port data can be used in place of the µMD1 GUI, should this be desired.
If the firmware crashed somehow, Windows may display a message saying something about the USB port not working. But that shouldn't happen with any firmware downloaded from here. :) And on rare occasions a cosmic ray or hardware glitch may result in the upload failing with a checksum or other error. Just put the board in program mode and try again. If the selected COM port is incorrect, cancel and retry.
Once loaded, the firmware is retained in non-volatile memory so this only needs to be done once - or until a firmware update is available!
The firmware may also be compiled without uploading by using Ctrl-R. Since you haven't messed with the code, it should compile without errors. This is slightly faster for testing and doesn't use the board at all so it can be off doing whatever it pleases. :)
Important: Terminate any instances of the µMD1 GUI before uploading
the firmware and put the board into program mode (again if necessary)
AFTER doing this even if LED1 is flashing.
Even if there is no interferometer hardware attached to the board, it is possible to confirm that the PIC is talking to the GUI. Go to "USB Port" and select the same COM as used to upload the firmware. The graph should immediately start scrolling to the left indicating that it is accepting valid data, even if it is all 0s. The display will show "No Signal" since there are no REF or MEAS clocks. But the fact that it's scrolling means the communications link is working.
Important: DO NOT reset the board while the µMD1 GUI is running.
The GUI will need to be aborted, the board may need to be reset again,
and only then can the GUI be restarted.
Important: The GUI can be started at any time but the firmware must be running before the USB COM port is selected or else the Universe may implode. :) Confirmation of this issue is left as an exercise for the user. ;-) There is usually no need to reset the firmware when restarting the GUI. However, if the GUI behaves strangely, exitting the GUI and resetting the firmware may be required. On rare occasions, it may be necessary to cycle power to the hardware by unplugging the USB cable for a few seconds to clear some weird errors that reset alone doesn't take care of. The µMD1 Technical Department is aware of these issues and is working around the clock to resolve them so there is no need for a bug report.
Data from the chipKIT board is sent at a default rate of approximately 610 samples per second. (If you're curious, the precise sampling rate is close 610.35 Hz, which is the 40 MHz PIC CPU clock divided by 65,536 - the number of counts between the 16 bit Timer1 overflows, used as the sample rate interrupt clock.) The data includes counts for REF, MEAS, displacement, velocity; a unique sequence number to identify samples; as well as other low speed data such as environmental sensors and diagnostics. (More info can be found a few paragraphs above.) The GUI displays are updated at approximately 60 Hz.
All the screenshots below except for interpolation use simulated data, which was more convenient for developing this manual! However, it also means you can play around and recreate these displays before building your interferometer. The screen shots showing the effects of interpolation are of actual data.
The first set are the selection buttons at the top of the window. Note that except for USB Port, these require only a single click to activate:
The log file is closed and its name and path are saved upon exiting the GUI.
These may all be accessed via Alt-first letter.
The next set are the buttons, checkboxes, and other widgets on the main window:
The gaps in the REF frequencies are for hysteresis to prevent rapid switching back and forth if at the border. And if you must know, the reason for different sample frequencies is to optimize sub-count interpolation.
There are three options to select what data is saved:
The format is: "D: Displacement N: Sequence Number" where Displacement and Sequence Number are values in decimal.
The format in Single Axis Mode (8 values) is: "REFFrequencyCount MEASFrequencyCount Displacement VelocityCount Phase SequenceNumber LowSpeedCode LowSpeedData".
The format in Mulitiple Axis Mode (16 Values) is: "REFFrequencyCount MEAS1FrequencyCount Displacement1 Velocity1Count Phase1 SequenceNumber LowSpeedCode LowSpeedData MEAS2FrequencyCount Displacement2 Velocity2Count Phase2 MEAS3FrequencyCount Displacement3 Velocity3Count Phase3".
The format regardless of mode is: "R: REFFreqeuncyCount M: MEASFrequencyCount D: Displacement V: VelocityCount P: Phase N: SequenceNumber T" where the "T" signifies that this is Test Mode data.
Caution: The log file can grow rapidly - especially where all the data is stored - so it's probably not the sort of thing to do for hours on end unless you have stock in a disk drive manufacturer! :)
The Averaging coeeficient is saved upon exiting the GUI.
Suspend is useful when making adjustments to the inteferometer beam path and/or laser.
The Time Compression factor is saved upon exiting the GUI.
The format is slightly modified when Frequency mode is selected. This graphic shows the actual DFT of the triangle waveform in the one above. Note that the DFT coefficients go as 1/N rather than 1/N-squared because it's actually using the velocity data, which is a squarewave.
The horizontal scale is approximately accurate for real data. The vertical scale is somewhat arbitrary. The Main Readout shows Displacement data when in frequency mode.
The DFT Frequency Range is saved upon exiting the GUI.
The units for the Main Readout, as well as for the graph vertical axis (all except Frequency mode) are selected in the Interferometer Configuration window. The options are nm, µm, mm, m, in, and ft for all but angle, which has arcsec, arcmin, and degree. For velocity, "/s" is added. The same units also apply to the graph "Range" selection and vertical axis of the graph.
Loss of the REF signal will result in a "REF (Head) Error" if error detection is enabled. This error may also be forced by clicking on the REF frequency value.
Loss of the MEAS signal will result in a "MEAS (Path) Error" if error detection is enabled. This error may also be forced by clicking on the MEAS frequency value.
If the DIFF frequency exceeds valid limits, a "Slew (Rate-) Error" or "Slew (Rate+) Error" will be generated if error detection is enabled. These errors may also be forced by clicking on the DIFF frequency value. Which one will depend on the direction of change of the displacement at the instant of the click.
The following graphs are of data from an actual interferometer with a mirror mounted on a custom built high stability PZT so that small movement could be programmed from an electronic function generator (e.g., Wavetek). Before installing this assembly directly on the Plane Mirror Interferometer, small programmed movement was totally swamped by vibrations from the fan of the laptop on which the GUI was running. And gentle tapping on a table two floors up was easily detectable in the µMD1 readout and graph (via Remote Desktop). Note the vertical scale of the graphs. This is unretouched real data. The PZT is driven by triangle waveforms with p-p amplitudes of 60 and 10 nm for the left and right graphs, respectively. Note that GUI averaging is also turned on with settings of 900 to 950 (10 to 20 samples) so part of the improvement occurs because of that. But without interpolation, no movement at all might show up regardless of GUI averaging setting, since 60 nm and 10 nm are much less than the basic resolution of 1/4 wavelength using a Plane Mirror Interferometer.
If the Temperature Auto checkbox is checked, the value sent by the firmware overwrites the value in the Temperature Value box using units selected by the Temperature Units Select box. The correction is then recalculated.
Test Mode sends 34 °C.
If the Pressure Auto checkbox is checked, the value sent by the firmware overwrites the value in the Pressure Value box using units selected by the Pressure Units Select box. The correction is then recalculated.
Test Mode sends 567 mm/Hg.
If the Humidity Auto checkbox is checked, the value sent by the firmware overwrites the value in the Humidity Value box. The correction is then recalculated. Note that while the sensor provides data with a resolution of XXX.YY%, the GUI only calculates the correction factor based on that value rounded to the nearest 10%.
Test Mode sends 89%.
The Waveform is saved upon exiting the GUI.
The REF value is saved upon exiting the GUI.
The Units selection is saved upon exiting the GUI.
The Error Detection state is saved upon exiting the GUI.
The Diagnostic Readout state is saved upon exiting the GUI.
If the GUI detects data (MEAS clocks) on axes 2 or 3, the firmware and GUI enter Multiple Axis Mode utilizing an expanded communications format, and the appropriate readouts will appear as shown below.
All GUI functions apply to the primary axis, which defaults on startup to Axis 1. The primary axis is what the Main Readout, REF/MEAS/DIFF frequency displays, frequency analysis, averaging, and graph apply to. Clicking on the Axis 1, Axis 2, or Axis 3 labels will select it to be the primary axis and change the color of the selected axis label to identify it as the primary axis. The units of the primary axis are also used for the others and error detection (if enabled) only applies to the primary axis. Averaging is NOT applied to the Axis 1, Axis 2, or Axis 3 readouts, even the one that is the same as the primary axis.
Note that in Multiple Axis Mode, the communications format sends somewhat more data over the USB COM port and the GUI must perform more computation. Thus this may cause problems for a wimpy pre-Jurassic PC operating on the hairy edge of what's possible. Once Multiple Axis Mode is entered using the interferometer hardware, the only way to return to Single Axis Mode is to restart both the firmware and GUI. This is because neither has any way to know whether dropouts of measurement clock signals are due to a beam path being momentarily interruprted or an axis actually being shut off (whatever that might mean).
Test Mode is also capable of exercising all three axes singly or in combination but the function generator data will be the same for all. This is controlled by the Multiple Axis Mode checkbox. When enabled, Axis 1, Axis 2, and Axis 3 checkboxes will appear below it with Axis 1 being the default on startup. Turning Multiple Axis Mode off will put the GUI back in Single Axis Mode. But this will be overidden when Test Mode is turned off if the USB port is enabled and the firmware is running with multiple axes.
Multiple Axis GUI support is currently under development. Specifications and behavior are subject to numerous changes without notice. ;-) However, no major features beyond what are described above are anticipated to be implemented in the GUI.
In rare cases, this can be due to a noisy REF or MEAS signal as a result of crosstalk or improper termination. The REF or MEAS frequency readouts will differ significantly even with no movement. If a 50 MHz or higher bandwidth oscilloscope is available, check the quality of the REF and MEAS signals. REF and MEAS(s) should not be run together for long distances without separate shielding. And while the default value of 150 ohms for the terminating resistors is generally satisfactory, depending on your wiring run length and other factors, using a different (probably lower value) may be necessary. Substituting a UA9639 instead for the UA9637 (if used) may also help. It is a slower part and will tend to filter out any glitches. This wouldn't be a preferred solution though and might earn you an "F" in my CSE371 Intro to Computer Design course. :( :) Due to the way the PIC synchronizes the Timer inputs (which includes REF and MEAS) with the CPU clock, a glitch can manifest itself in peculiar ways, possibly only causing problems at specific sample frequencies (which are based on the CPU clock frequency).