Kinesis® K-Cube™ Brushed DC Servo Motor Controller
- Drives Brushed DC Servo Motors up to 2.5 W
- Encoder for Position Feedback
- Control via Local Panel or USB Computer Connection
A KDC101 Controller can be
Used to Drive a PRM1Z8
Rotation Stage (Sold Separately)
Table Mounting Plate
(Included with the KDC101)
|K-Cube™ Motion Control Modules|
|Brushed DC Servo Motor Controller|
|Brushless DC Servo Motor Controller|
|Fiber Alignment Controllers|
|Four-Channel Piezo Inertia Actuator Controller|
|PSD Auto Aligner|
|Single-Channel Piezo Controller|
|Single-Channel Strain Gauge Reader|
|Stepper Motor Controller|
Click to Enlarge
Back and Top Views of the KDC101 K-Cube
(See the Pin Diagrams Tab for More Information)
- Compact Footprint: 60.0 mm x 60.0 mm x 49.2 mm
- Differential Encoder Feedback (QEP Inputs) for Closed Loop Positioning
- Auto-Configure Function for all Thorlabs DC-Servo-Motor-Equipped Actuators and Stages (See the Specs Tab for Details)
- Easy-to-Use Manual Controls
- Velocity Wheel: Bidirectional Control
- Digital Display Menu: Jogging Functionality with Position Presets
- Full Kinesis® or APT™ Software Control Suite (See Motion Control Software Tab for Details)
- Software Compatible with Other Kinesis and APT Controllers for Integrated Systems Development
- Fully Compatible with Current- and Previous-Generation T-Cube™ Controllers
- Single- and Multi-Channel PSU Options Available Separately
- Multi-Axis Expansion Using USB Controller Hubs (Sold Separately)
- Magnetic, Clip-On Optical Table Mounting Adapter Included
The KDC101 K-Cube Brushed DC Servo Motor Controller is a part of Thorlabs' new and growing Kinesis® line of high-end, compact motion controllers. Designed to provide easy manual and automatic control of DC Servo motors, this single-channel driver is capable of driving a variety of low-powered DC brushed motors (up to 15 V/2.5 W operation) equipped with encoder feedback. It has also been optimized for 'out-of-the-box' operation with the Thorlabs range of optomechanical products equipped with DC servo motors. The highly flexible software settings and closed-loop tuning also support operation with a wide range of third party DC servo motors and associated stages and actuators.
The unit has a highly compact 60.0 mm x 60.0 mm x 49.2 mm footprint, allowing it to be positioned close to the motorized system for added convenience when manually adjusting motor positions using the top panel controls. Tabletop operation also allows minimal drive cable lengths for easier cable management. Each unit also contains a front-located power switch that, when turned off, saves all user-adjustable settings. Please note that this switch should always be used to power down the unit. For convenience, a 1.5 m long Type A to Type Micro B USB 3.0 cable is included with the KDC101 cube.
Click to Enlarge
USB connectivity provides easy 'Plug-and-Play' PC-controlled operation with two available software platforms: our new Kinesis software package or our legacy APT (Advanced Positioning Technology) software package. The Kinesis Software features new .NET controls which can be used by 3rd party developers working in the latest C#, Visual Basic, LabVIEW™ or any .NET compatible languages to create custom applications. Our legacy APT software allows the user to quickly set up complex move sequences with advanced controls made possible via the ActiveX® programming environment. For example, all relevant operating parameters are set automatically by the software for Thorlabs stage and actuator products. For more details on both software packages, please see the Motion Control Software and APT Tutorials tabs.
Optical Table Mounting Plate
Each unit comes with a mounting plate that clips onto the base of the controller. The plate contains two magnets for temporary placement on an optical table and two counterbores for 1/4"-20 (M6) cap screws for a more permanent placement on the tabletop. Please see the Specs for a mechanical drawing of the table mounting plate and the Mounting Options tab for how to mount the plate.
|Other DC Servo Controllers|
|K-Cube Single-Channel Controller||1-, 2- and 3-Channel Benchtop Controller|
Power Supply Options
The preferred power supply (single channel, multi-channel, or hub-based) depends on the end user's application and whether you already own compatible power supplies. To that end and in keeping with Thorlabs' green initiative, we do not ship these units bundled with a power supply.
Multiple units can be connected to a single PC by using the KCH301 or KCH601 USB Controller Hubs, available below, for multi-axis motion control applications. The KCH301, shown to the right, allows up to three T- or K-Cube controllers to be used while the KCH601, shown below and to the right, allows up to six controllers to be used.
All power supply options compatible with the KDC101 Motor Controller can be found below.
|Drive Voltage||±12 to ±15 V (Depending on Supply)|
|Drive Current||Continuous||150 mA|
|Drive Type||8-bit Sign/Magnitude PWM|
|Control Algorithm||Digital PID Filter (16 bit)|
|Position Feedback Quadrature
Encoder (QEP) Input
|5 V, Single Ended|
|Encoder Feedback Bandwidth||750 kHz|
|Position Counter||32 bit|
|Operating Modules||Position and Velocity|
|Motor Drive Connector (15 Way D-Type)|
|Motor Drive Outputs||+ve & -ve|
|Limit Switch Inputs||Forward, Reverse (+ Common Return)|
|Encoder Supply||5 V|
|Front Panel Controls|
|Sprung Potentiometer Wheel||Bidirectional Velocity Control,
or Position Presets
|Input Power Requirements|
|Voltage||15 V Regulated DC|
|Current||500 mA (peak)|
|USB Connector Type||USB 3.0|
|USB Connection Speed||USB 1.1 Full Speed (12 Mbps)|
(W x D x H)
|60.0 x 60.0 x 49.2 mm
(2.36" x 2.36" x 1.94")
|Compatible Motor Specifications|
|Motor Type||Brushed DC Servo|
|Peak Power||2.5 W|
|Rated Current||10 mA to 200 mA (Nominal)|
|Motor Type||Brushed DC|
|Coil Resistance||5 Ω to 50 Ω (Nominal)|
|Coil Inductance||250 mH to 1500 mH|
|Postition Control||Closed-Loop Encoder|
|Compatible Thorlabs Stages and Actuators|
|Linear Translation Stages||MT1-Z8, MT3-Z8, MTS25-Z8,
MTS50-Z8, PT1-Z8, PT3-Z8
|Goniometers||GNL10-Z8, GNL18-Z8, GNL20-Z8|
|Linear Actuators||Z806, Z806V, Z812, Z812B, Z812V,Z812BV, Z825B, Z825BV|
Click to Enlarge
Mechanical Drawing of the KDC101 and Included Optical Table Adapter
Motor Control Connector
|2||Forward Limit Switch||10||5 V Encoder Supply|
|3||Reverse Limit Switch||11||Encoder Channel A|
|4||Not Connected||12||Not Connected|
|5||Motor -||13||Encoder Channel B|
|6||Not Connected||14||Not Connected|
|7||Motor +||15||Not Connected|
|+5 V TTL||+5 V TTL|
|These connectors provide a 5 V logic level input and output that can be configured to support triggering into and out of external devices. Each port can be independently configured to control the logic level or to set the trigger as an input or output.|
*The USB 3.0 port is compatible with a USB 2.0 Micro B connector if the Micro B connector is plugged into the shaded region in the photo above. A USB 3.0 type A to type Micro B cable is included with the KDC101.
K-Cube™ Mounting Options
Two options are available to securely mount our K-Cube controllers onto an optical table. An optical table mounting plate, provided with every K-Cube, allows for a single controller to be attached to an optical table. Alternatively, three- and six-port USB controller hubs are offered (sold separately) that can mount and power our K-Cube controllers. These options are described in further detail below.
Optical Table Mounting Plate
Each K-Cube unit comes with a mounting plate that clips onto the base of the controller, as shown in the animation to the right. The plate contains two magnets for temporary placement on an optical table and two counterbores for 1/4"-20 (M6) cap screws for a more permanent placement on the tabletop. Please see the Specs tab for a mechanical drawing of the table mounting plate.
Kinesis USB Controller Hubs
Multiple units can be mounted and connected to a single PC by using the KCH301 or KCH601 USB Controller Hubs. They each consist of two parts: the hub, which can support up to three (KCH301) or six (KCH601) K-Cubes or T-Cubes™, and a power supply that plugs into a standard wall outlet. K-Cubes simply clip into place using the provided on-unit clips, while current- and previous-generation T-Cubes require the KAP101 Adapter Plate, shown in the animation above. The hub vastly reduces the number of USB and power cables required when operating multiple controllers.
K-Cube Table Mounting Plate
Unlike T-Cubes, every K-Cube includes a mounting plate that clips onto the base of the controller. The plate contains two magnets for temporary placement on an optical table and two counterbores for 1/4"-20 (M6) cap screws for more permanent placement on the tabletop.
Kinesis USB Controller Hubs
3- and 6-Port USB Controller Hubs allow multiple controllers to be connected to one PC for multi-axis applications. K-Cubes can be directly attached to the hubs while T-Cubes require a KAP101 Adapter Plate.
|K-Cube™ vs. T-Cube™ Feature Comparison|
|Feature||KDC101 K-Cube||TDC001 T-Cube|
|Kinesis Software Compatibility|
|APT Software Compatibility|
|Kinesis USB Controller
|Requires KAP101 Adapter|
|TCH002 T-Cube USB
Controller Hubs Compatibility
|Bidirectional SMA Trigger Port||2||N/A|
|Computer Connectiona||USB 3.0 Micro B
(USB 2.0 Compliant)
|USB 2.0 Micro B
(USB 2.0 Compliant)
|Included Mounting Plate|
(L x W x H)
|60.0 mm x 60.0 mm x 49.2 mm
(2.36" x 2.36" x 1.94")
|60.0 mm x 60.0 mm x 49.2 mm
(2.36" x 2.36" x 1.94")
|On-Unit Digital Display Menu||N/A|
|Go To Position||Only via Software|
|Homing Options||Only via Software|
|Velocity Control||Only via Software|
|Joystick Mode||Only via Software|
|Jog Step Size||Only via Software|
|Teach Position||Only via Software|
|Stage Select||Only via Software|
Introducing Thorlabs' Kinesis® Motion Controllers
A major upgrade to the former-generation T-Cubes™, the growing K-Cube™ line of high-end controllers provides increased versatility not only through the new Kinesis software, but through an overhaul and updating of their physical design and firmware.
Unlike T-Cubes, every K-Cube controller includes a digital display. In addition to basic input and output readouts, this display hosts a number of menu options that include go-to-position commands, homing, velocity control, and jogging. The on-unit velocity wheel and menu button are used to scroll through the available options. Each unit also contains a front-located power switch that, when turned off, saves all user-adjustable settings as well as two bidirectional SMA trigger ports that accept or output a 5 V TTL logic signal.
Please see the table to the right for a full comparison of the features offered by our new KDC101 K-Cube and previous-generation TDC001 T-Cube motion controllers.
Click to Enlarge
KDC101 K-Cube Kinesis DC Servo
Kinesis USB Controller Hubs
Complementing our K-Cubes are our Kinesis USB 2.0 controller hubs. With two versions available for three or six K- or T-Cubes, these USB hubs are designed specifically for communication between multiple controllers and the host control PC. These hubs are backward compatible with our T-Cubes.
K-Cubes simply clip into place using the provided on-unit clips, while current- and previous-generation T-Cubes require the KAP101 Adapter Plate, shown in the animation to the below right. The hub vastly reduces the number of USB and power cables required when operating multiple controllers.
K-Cube Table Mounting Plate
Unlike T-Cubes, every K-Cube includes a mounting plate that clips onto the base of the controller. The plate contains two magnets for temporary placement on an optical table and two counterbores for 1/4"-20 (M6) cap screws for more permanent placement on the tabletop.
Kinesis USB Controller Hubs
3- and 6-Port USB Controller Hubs allow multiple controllers to be connected to one PC for multi-axis applications. K-Cubes can be directly attached to the hubs while T-Cubes require a KAP101 Adapter Plate.
Thorlabs offers two platforms to drive our wide range of motion controllers: our Kinesis® software package or the legacy APT™ (Advanced Positioning Technology) software package. Either package can be used to control devices in the Kinesis family, which covers a wide range of motion controllers ranging from small, low-powered, single-channel drivers (such as the K-Cubes™ and T-Cubes™) to high-power, multi-channel, modular 19" rack nanopositioning systems (the APT Rack System).
The Kinesis Software features .NET controls which can be used by 3rd party developers working in the latest C#, Visual Basic, LabVIEW™, or any .NET compatible languages to create custom applications. Low-level DLL libraries are included for applications not expected to use the .NET framework. A Central Sequence Manager supports integration and synchronization of all Thorlabs motion control hardware.
Kinesis GUI Screen
APT GUI Screen
Our legacy APT System Software platform offers ActiveX-based controls which can be used by 3rd party developers working on C#, Visual Basic, LabVIEW™, or any Active-X compatible languages to create custom applications and includes a simulator mode to assist in developing custom applications without requiring hardware.
By providing these common software platforms, Thorlabs has ensured that users can easily mix and match any of the Kinesis and APT controllers in a single application, while only having to learn a single set of software tools. In this way, it is perfectly feasible to combine any of the controllers from single-axis to multi-axis systems and control all from a single, PC-based unified software interface.
The software packages allow two methods of usage: graphical user interface (GUI) utilities for direct interaction with and control of the controllers 'out of the box', and a set of programming interfaces that allow custom-integrated positioning and alignment solutions to be easily programmed in the development language of choice.
A range of video tutorials is available to help explain our APT system software. These tutorials provide an overview of the software and the APT Config utility. Additionally, a tutorial video is available to explain how to select simulator mode within the software, which allows the user to experiment with the software without a controller connected. Please select the APT Tutorials tab above to view these videos.
Kinesis Version 1.14.36
The Kinesis Software Package, which includes a GUI for control of Thorlabs' Kinesis and APT™ system controllers.
- Communications Protocol
Thorlabs' Kinesis® software features new .NET controls which can be used by third-party developers working in the latest C#, Visual Basic, LabVIEW™, or any .NET compatible languages to create custom applications.
This programming language is designed to allow multiple programming paradigms, or languages, to be used, thus allowing for complex problems to be solved in an easy or efficient manner. It encompasses typing, imperative, declarative, functional, generic, object-oriented, and component-oriented programming. By providing functionality with this common software platform, Thorlabs has ensured that users can easily mix and match any of the Kinesis controllers in a single application, while only having to learn a single set of software tools. In this way, it is perfectly feasible to combine any of the controllers from the low-powered, single-axis to the high-powered, multi-axis systems and control all from a single, PC-based unified software interface.
The Kinesis System Software allows two methods of usage: graphical user interface (GUI) utilities for direct interaction and control of the controllers 'out of the box', and a set of programming interfaces that allow custom-integrated positioning and alignment solutions to be easily programmed in the development language of choice.
For a collection of example projects that can be compiled and run to demonstrate the different ways in which developers can build on the Kinesis motion control libraries, click on the links below. Please note that a separate integrated development environment (IDE) (e.g., Microsoft Visual Studio) will be required to execute the Quick Start examples. The C# example projects can be executed using the included .NET controls in the Kinesis software package (see the Kinesis Software tab for details).
|Click Here for the Kinesis with C# Quick Start Guide
Click Here for C# Example Projects
Click Here for Quick Start Device Control Examples
LabVIEW can be used to communicate with any Kinesis- or APT-based controller via .NET controls. In LabVIEW, you build a user interface, known as a front panel, with a set of tools and objects and then add code using graphical representations of functions to control the front panel objects. The LabVIEW tutorial, provided below, provides some information on using the .NET controls to create control GUIs for Kinesis- and APT-driven devices within LabVIEW. It includes an overview with basic information about using controllers in LabVIEW and explains the setup procedure that needs to be completed before using a LabVIEW GUI to operate a device.
|Click Here to View the LabVIEW Guide
Click Here to View the Kinesis with LabVIEW Overview Page
The APT video tutorials available here fall into two main groups - one group covers using the supplied APT utilities and the second group covers programming the APT System using a selection of different programming environments.
Disclaimer: The videos below were originally produced in Adobe Flash. Following the discontinuation of Flash after 2020, these tutorials were re-recorded for future use. The Flash Player controls still appear in the bottom of each video, but they are not functional.
Every APT controller is supplied with the utilities APTUser and APTConfig. APTUser provides a quick and easy way of interacting with the APT control hardware using intuitive graphical control panels. APTConfig is an 'off-line' utility that allows various system wide settings to be made such as pre-selecting mechanical stage types and associating them with specific motion controllers.
APT User Utility
The first video below gives an overview of using the APTUser Utility. The OptoDriver single channel controller products can be operated via their front panel controls in the absence of a control PC. The stored settings relating to the operation of these front panel controls can be changed using the APTUser utility. The second video illustrates this process.
APT Config Utility
There are various APT system-wide settings that can be made using the APT Config utility, including setting up a simulated hardware configuration and associating mechanical stages with specific motor drive channels. The first video presents a brief overview of the APT Config application. More details on creating a simulated hardware configuration and making stage associations are present in the next two videos.
The APT Software System is implemented as a collection of ActiveX Controls. ActiveX Controls are language-independant software modules that provide both a graphical user interface and a programming interface. There is an ActiveX Control type for each type of hardware unit, e.g. a Motor ActiveX Control covers operation with any type of APT motor controller (DC or stepper). Many Windows software development environments and languages directly support ActiveX Controls, and, once such a Control is embedded into a custom application, all of the functionality it contains is immediately available to the application for automated operation. The videos below illustrate the basics of using the APT ActiveX Controls with LabVIEW, Visual Basic, and Visual C++. Note that many other languages support ActiveX including LabWindows CVI, C++ Builder, VB.NET, C#.NET, Office VBA, Matlab, HPVEE etc. Although these environments are not covered specifically by the tutorial videos, many of the ideas shown will still be relevant to using these other languages.
Part 1 illustrates how to get an APT ActiveX Control running within Visual Basic, and Part 2 goes on to show how to program a custom positioning sequence.
Full Active support is provided by LabVIEW and the series of tutorial videos below illustrate the basic building blocks in creating a custom APT motion control sequence. We start by showing how to call up the Thorlabs-supplied online help during software development. Part 2 illustrates how to create an APT ActiveX Control. ActiveX Controls provide both Methods (i.e. Functions) and Properties (i.e. Value Settings). Parts 3 and 4 show how to create and wire up both the methods and properties exposed by an ActiveX Control. Finally, in Part 5, we pull everything together and show a completed LabVIEW example program that demonstrates a custom move sequence.
Part 1: Accessing Online Help
Part 2: Creating an ActiveX Control
Part 3: Create an ActiveX Method
Part 4: Create an ActiveX Property
Part 5: How to Start an ActiveX Control
The following tutorial videos illustrate alternative ways of creating Method and Property nodes:
Create an ActiveX Method (Alternative)
Create an ActiveX Property (Alternative)
Part 1 illustrates how to get an APT ActiveX Control running within Visual C++, and Part 2 goes on to show how to program a custom positioning sequence.
For assistance when using MATLAB and ActiveX controls with the Thorlabs APT positioners, click here.
To further assist programmers, a guide to programming the APT software in LabVIEW is also available here.
Alyssa Kostadinov  (posted 2023-02-09 18:10:15.057)
Dear Thorlabs, Is there an installation APT package for WinXP? Maybe a previos version available? Thank you
do'neill  (posted 2023-02-10 06:34:18.0)
Response from Daniel at Thorlabs. Thank you for your enquiry, I will reach out to you with an XP compatible version.
Chris McGuffey  (posted 2023-01-04 08:57:43.91)
Hello Thorlabs, we are running 6 KDC101 units. One of the cubes gets hung up on startup after IDing the motor. It also does not shut down (for many minutes) when the red switch is toggled off. This only happens when it is plugged in on the KCH601- it works fine if plugged in to a separate power supply. Any ideas what is wrong?
DJayasuriya  (posted 2023-01-06 06:04:57.0)
Thank you for your inquiry. we have got in touch with you directly to trouble shoot your issue.
eric nuland  (posted 2022-12-14 17:29:11.623)
I just bought Kcube 27262769 2022 And the motor does move. Never measure voltage on the motor. The 5V output is only 3.5V. ?? what is wrong ?
JReeder  (posted 2023-01-05 10:42:24.0)
Thank you for your enquiry. I reached out to you help troubleshoot this issue. Further information that is helpful in troubleshooting this is: What motor are you using with the KDC101? What pins are you measuring the voltage on? What power supply are you using with this device? When using the KDC within our Kinesis software, do any error messages occur?
Laurent LE  (posted 2022-10-21 14:13:15.203)
Dear Thorlabs, I am using the KDC101 Controller with a PRM1Z8 Rotation stage. I want to use the TRIG 1 port as an input trigger. I create a Sequence thanks to Kinesis software. I want a routine in which the controller is waiting for a trigger input pulse (on TRIG 1 port) to move the rotation stage to a absolute position. However, there is no function to tell to the controller to wait for an input trigger pulse. There is I/O functions but only for Ouput triggering.
cwright  (posted 2022-10-24 09:23:23.0)
Response from Charles at Thorlabs: Thank you for your feedback. Unfortunately this is not possible in the Kinesis sequencer at the present time as it is a small utility for simple moves. If an input trigger must be used in a sequence then this would need to be written using our dlls.
Ben Pinoli  (posted 2022-10-14 07:53:57.747)
Dear Thorlabs, I am trying to code movement with the Kcube for an XYZ stage in C#. I can connect the device, home it, and move it, but the movement (from 0 to x) stops in an error at 71.12% of the coded x position, despite changing timeout times and x itself. Is there an easy fix to this? I'm using example setup code and movement code from your website.
cwright  (posted 2022-10-14 11:55:33.0)
Response from Charles at Thorlabs: Thank you for your query. We are sorry to hear you are having issues. Unfortunately we are not aware of an error with the DLLs which would cause this and a member of technical support will reach out to see your code.
Bohdan Bilash  (posted 2022-10-06 14:01:42.53)
Dear Thorlabs. Could you say, please, is it possible to write program code (for example in C#), make some sketch with a task, what I want my KDC101 to do continuously, and upload this sketch to KDC101, after it to disconnect USB, so KDC101 will work by itself with my sketch? Thank you!
cwright  (posted 2022-10-06 05:32:45.0)
Response from Charles at Thorlabs: Thank you for your query. It is not possible to upload code directly to the KDC101. It would be necessary to run the program on a PC which then communicates with the KDC101.
Daniel Brown  (posted 2022-07-21 20:34:55.82)
Hi Thorlabs, I'm using the KDC101 with Labview. Currently, the encoder position read time via the KCubeDCServo_GetPostionCounter in its own while loop is a bit slow (approx. 50ms per read). There is no 'wait' control in the loop. Is there any way of speeding up the readout? It can't be BAUD limited.
cwright  (posted 2022-07-22 06:49:11.0)
Response from Charles at Thorlabs: Thank you for your query. You can use the start polling method to set the polling rate to a lower value. LabVIEW and your operating system can add some delay but USB only sends packets at a rate of ~60Hz, so the practical limit is 15ms.
yuon song  (posted 2022-05-31 16:06:50.323)
Hello, I`m using KDC 101 with labview. I use 'MoveContinuous' for controlling. and after, I use 'StopImmediate' for stop moving. but controller does not get property or method like 'MoveAbsolute'. how can I move again after stoping motor?
cwright  (posted 2022-06-01 03:09:15.0)
Response from Charles at Thorlabs: Thank you for contacting us. It could be that the IsBusy property or one of the internal properties of the .NET library hasn't been updated by the device at the time the next move command is sent. There should be a short delay between stopping and starting a move again, at least as long as the polling time. We will need to see your program and any error codes/status messages you get in order to comment further and we will reach out to you for this.
Youngjoon Kim  (posted 2022-05-02 20:20:13.95)
Hi, I'm using KCH301 USB Controller Hub with two KDC101s and one of KDC101 is making a connection problem with PC. I could check from Kinesis software that the other KDC 101 was normally connected to PC but still above problematic KDC101 did not show up from "connect" window of Kinesis software. What can i do to solve this communication problem?
DJayasuriya  (posted 2022-05-04 04:38:06.0)
Thank you for your inquiry. We have got in touch with you for further information to resolve your issue.
John Smith  (posted 2022-04-06 15:23:35.77)
Hi Thorlabs, I am trying to control KDC and TDC cubes (with PRM1/MYZ8) through Labview and I am facing several issues: (i) I can change the rotation settings for the TDC through the methods property [TCubeDCServo, SetMovementSettings] but this does not work for the KDC equivalent. More precisely, when using [KCubeDCServo, SetMoveAbsolutePosition] followed by [KCubeDCServo, MoveAbsolute], the mode RotationalRange give the same result than LinearRange (i.e. I cannot quickly shift from 359 to 1 degree). Writing over the rotation settings through [KCubeDCServo -> MotorDeviceSettings, RotationSettings] does not work either. (ii) When performing a For loop, I tried to use the properties [K/TCubeDCServo, state] and [K/TCubeDCServo, IsDeviceBusy] to wait for the motion ending before performing the next iteration. This works most of the time but fails from time to time, which causes Labview to proceed with the next iterations while the stage is still moving and quickly terminates the For loop. Is there any quick solution to fix these issues or could you help me resolve it? Additionally I have not found any manual regarding the multiple properties and methods available, apart from the tutorial given on this page. I there such a thing somewhere? Thanks in advance and best regards.
DJayasuriya  (posted 2022-04-12 09:45:21.0)
Thank you for your inquiry. We will get in touch with you directly to resolve your issue.
Aaron Riede  (posted 2022-03-03 09:49:03.207)
Hi Thorlabs As many others, I would like to run the TDC001 in combination with the CR1/M-Z7 in Python. Could you provide me with some examples, how to do it? Thanks and best regards Aaron
cwright  (posted 2022-03-04 08:04:59.0)
Response from Charles at Thorlabs: Thank you for contacting us. We will reach out to you with what we can provide. The fastest way to request a software example is by contacting your local technical support team. Contact details can be found here: https://www.thorlabs.de/locations.cfm
user  (posted 2022-02-11 22:56:33.317)
I want to know how many Z812s can a KDC101 control? Do you have a KDC with more control channel?
DJayasuriya  (posted 2022-02-14 08:34:42.0)
Thank you for your inquiry, The KDC101 controller can only drive one actuator. However using a KCH301 or a KCH601 USB Controller Hub multiple controllers can be connected. Hope this helps. If you have any questions please get in touch with our tech support team who will be happy to help.
James Stotz  (posted 2022-01-25 19:12:00.597)
Hi, I was trying to run the sample Labview program "Kinesis - KDC101 - No Front Panel.vi" that uses the C# .DLL files so that I could access my T-Cube without embedding the larger interface in Labview. However, in the first function call in the program (DeviceManagerCLI.dll), I receive the error "Error 1386: The Specified .NET Class is Not Available in LabVIEW". I have tried to fix this using all points from this page: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019UnoSAE&l=en-CA with no success. Since this is a demo program from the Motor Controller page, I was hoping that Thorlabs may have some insight into the issue. Any help would be greatly appreciated. Of note, I am using Labview 2020 (64 bit) with the most recent versions of the Kinesis software and downloads from Thorlabs. (And using the 64 bit dll files from the C# package). Thanks for any help that you could provide. Cheers, James
DJayasuriya  (posted 2022-01-27 04:05:28.0)
Thank you for your inquiry. We will get in touch with you directly to trouble shoot.
DJayasuriya  (posted 2022-01-27 04:05:28.0)
Thank you for your inquiry. We will get in touch with you directly to trouble shoot.
Alan Wardle  (posted 2021-10-06 09:49:11.54)
Hi Thorlabs, We have four KDC 101s dating from 2016 all with the same two problems: 1. broken torsion spring in the velocity wheel. 2. displays not functioning KDCs will control a motor with a pc using Kinesis software, but cannot be used in standalone mode. Can you help?
DJayasuriya  (posted 2021-10-07 06:10:47.0)
Thank you for your inquiry. We will get in touch with you directly to resolve this issue.
user  (posted 2021-09-17 05:02:03.17)
Do You have Ethernet or RS-232 communication block to communicate via many USB inputs with KDC101 controllers? I will need control many KDC101 from distance in one control room.
DJayasuriya  (posted 2021-09-20 05:13:53.0)
thank you for your inquiry. Unfortunately, the KDC does not have the capability to use Ethernet or RS-232. We will get in touch with you to discuss your application.
Congjian Lin  (posted 2021-08-17 00:11:48.79)
Hi TLabs team, I’m currently working with a KDC101 to control a MTS50C-Z8 stage. I have been using Labview to control the KDC. Recently, I began to get an error related to overload/over current. The stage will work for a few movements of the same distance and then say overcurrent. Could you please get in touch with me directly to resolve my issue? Many thanks and best regards.
YLohia  (posted 2021-08-27 03:06:48.0)
Hello, a motor over current error typically results when something is preventing the motors from moving. This could be due to a large load, a hard stop or a stuck lead screw. There can also be electrical issues (such as a short) which would cause an over current error, but these are rare. Have you added a load or can see any grease build up on the lead screw? We have reached out to you directly to troubleshoot further.
user  (posted 2021-08-15 19:26:25.66)
Hello, I am using a Kinesis® K-Cube™ Brushed DC Servo Motor Controller KDC 101 on a program written using c# .net API and I'm trying to detect a state that the USB is unplugged after connection. For now I see that after a good connection and then unplugging the USB IGenericCoreDeviceCLI.IsConnected is still true and commands like move don't throw any exception. Any advice would be appreciated.
DJayasuriya  (posted 2021-09-03 04:50:23.0)
Thank you for your inquiry, we will get in touch with you directly to resolve your issue.
user  (posted 2021-07-20 15:36:55.4)
Hello, where can I find ActiveX control? Need to develop on MFC, but I can't find ActiceX control. Do you have a tutorial? looking forward to your reply.
DJayasuriya  (posted 2021-07-20 09:53:32.0)
Thank you for your inquiry. Wonder if you have seen : https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=9019. Hope this helps. Feel free to get in touch with your local tech support team if you have any questions regarding the tutorials.
Eugene Cheng  (posted 2021-06-25 23:42:37.47)
We use a KDC101 controller to drive Z825B. From menu operation, we can set max velocity from menu option 3 Velocity. On manual, it says "Subsequent moves will be performed at the velocity entered." But, we see only the Jog in Velocity control mode is affected by this Velocity setting. When we use Joystick in Jog in Step mode, it does not use the newly entered Velocity parameter, i.e. still use the old velocity setting. Same problem for using Joystick in Jog to position mode. It does not use the newly entered velocity. Is there any way to fix this problem?
jcater  (posted 2021-07-01 05:21:32.0)
Response from Jack at Thorlabs: Thank you for your feedback. When using the KDC101 in Joystick Mode all three options should use the velocity set in previously in the Velocity menu. I will reach out to you directly to help troubleshoot further.
Trung Nguyen  (posted 2021-06-21 21:20:26.71)
I am using a Kinesis® K-Cube™ Brushed DC Servo Motor Controller KDC 101 with actuator z825B, whenever I connect the Kcude with Kinesis, it shows "KCube DC Motor controller (S/N 27001120) Issue detected ("Internal serial number is incorrect")" I don't know how to fix the problem. Another problem is that the LCD display's light of the Kcube can not be turn on. Please help me.
DJayasuriya  (posted 2021-06-22 10:23:49.0)
Thank you for your inquiry. The serial number is stored gets pulled from the FTDI chip's EEPROM. The serial number saved in the cubes' flash memories are incorrect (27000000). Kinesis should be able to fix this issue if you load the devices once, then unload them, then load them again. We will get in touch with you directly to resolve the issue if it persists.
Taeyoung Kim  (posted 2021-04-26 22:15:19.463)
Hi, is there any example material for PRMTZ8 or MTS50-Z8 for linux with python? It doesn't work with dll file on linux, maybe i could use communication protocol but it is not familiar to me. Thanks
jcater  (posted 2021-04-27 05:53:35.0)
Response from Jack at Thorlabs: Thank you for your inquiry. Unfortunately the KDC101 is not controllable in a Linux environment using the Kinesis DLL's, you will have to use the communication protocol (https://www.thorlabs.com/Software/Motion%20Control/APT_Communications_Protocol.pdf). I will reach out to you with an example for using the communication protocol in Python.
晨旭 陆  (posted 2021-04-05 22:40:41.747)
Hello TLabs team. We have a TDC001 product and for some reasons we have to use winXP. But the Version of the software for winXP is not available in your website. Can you send us a APT installation package for XP to my email which i am using now? Thanks
cwright  (posted 2021-04-08 06:17:25.0)
Response from Charles at Thorlabs: Thank you for your query. There is no 'single-click' way to install APT on XP but we will reach out to you to discuss how you may be able to install this.
user  (posted 2021-02-18 02:18:43.343)
Hello TLabs team, I’m currently working with a KDC101 to control a MTS25-Z8 stage. I have been using open-source Python to control the KDC, using Kinesis drivers from 2020. Recently, I began to get an error related to overload/over current. The stage will work for a few movements of the same distance and then say overcurrent. My load is very small, and the cables leading to the sample on the stage are also quite light. I’ve had this controller for a few months, and this is the first instance of this error with no major changes leading to the error. It sounded similar to the 2018 error that I’ve read about related to loading parameters? The error also occurred in the Kinesis software when I mimicked similar movements to my code. Any advice would be appreciated.
DJayasuriya  (posted 2021-03-04 03:48:30.0)
Thank you for your inquiry. The over current error typically results when something is preventing the motors from moving. This could be due to a large load, a hard stop or a stuck lead screw. For the For the Z8 motors, the most common cause is a stuck lead screw, from hitting the limit switch too quickly. We will get in touch with you directly to resolve your issue.
user  (posted 2021-01-04 05:36:07.117)
Hello, I would like to control a relative old Z625B DC motor using a TDC001 (our lab purchased it more than 10 years ago), S/N 83812357 on windows 7, 64 bit. I have downloaded in installed a version of APT (3.3.7060.19193). I'm able to control the motor manually through the commands on the T-cube, but it does not work when I try to use either the APT User Software or a Matlab script (activeX based). No light flashes when I click the Ident button on the APT User, but I can see that the controller and the motor are identified via USB. Have you any idea on what's happening? Thank you so much
cwright  (posted 2021-01-07 05:19:41.0)
Response from Charles at Thorlabs: Hello and thank you for your query. I can see that you have already been in contact with your local technical support team are now able to use this device in APT and via Python. Our technical support team will help you work through any remaining issues you may have.
Douglas Doughty  (posted 2020-11-30 17:46:02.303)
I am using the KDC101 with a Z825B actuator -- currently operating manually with the jog wheel. I want to control the motion through the Trig1 and 2 ports. I assumed I had to supply a 5V pulse to a port in order to execute the command set in the I/O tab of the Kinesis software -- this did not work. I have confirmed that the output mode works for both ports as I do get a 5V signal when I jog the device and the port is set to output upon motion. I noted that the port outputs a 5V signal when the port is configured for input (either absolute or relative motion). In this case it would seem then that the user supplies a switch and pull down resistor to use these ports -- is this the case?
DJayasuriya  (posted 2020-12-14 06:13:40.0)
Thank you for your inquiry. The triggers have a pull up resistor of few kohms. When they are in input mode (and therefore floating). If the input left floating it would go up to 5V. You would need to close that to ground or connect to an output that drives to 0 or 5V. Hope this helps, please get in touch with your local tech support team if you have any other questions regarding your application.
user  (posted 2020-10-21 12:48:07.63)
I am using the ThorLabs motor and its controller (Kinesis® K-Cube™ Brushed DC Servo Motor Controller, https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=2419). Specifically, I am using LabView to control this motor. However, I always met following error. Can you give me some suggestion about solving this error? The details of this error are: -------------------- 19:04:06:0655> Error [Code = 10003]:- [SN 27505090] CMGMotorCtrl::SetHomeParams(0,2,1,4.00,0.00); Internal Code = 17010707. Description: Invalid Parameter Notes: An invalid parameter has been passed. Extra Info: Home velocity parameter out of limits.
DJayasuriya  (posted 2020-10-22 08:09:02.0)
Thank you for your inquiry. Looking at the error message you are setting the homing velocity to 4mm/s, depending on the actuator/stage 4mm/s is too high a homing velocity. We will get in touch with you directly to discuss your application further.
ru zhang  (posted 2020-09-10 14:53:35.157)
I need Kinesis Communications Protocol.
cwright  (posted 2020-09-10 06:28:52.0)
Response from Charles at Thorlabs: Hello and thank you for contacting us. You can find the communications protocol at the following link. https://www.thorlabs.com/Software/Motion%20Control/APT_Communications_Protocol.pdf Devices which can be controlled with either APT or Kinesis, both use the APT Communications Protocol, as the serial commands sent to the stages by the two pieces of software do not differ.
JINGJING ZHAO  (posted 2020-08-14 00:29:25.32)
Hi there, I just want to know whether the motor controller can be manipulated vai matlab or not and can you offer a package of Matlab codes? Our lab has several controllers of this series and I want to operate them by Maltab. Thank you~ Jingjing
cwright  (posted 2020-08-18 12:04:01.0)
Response from Charles at Thorlabs: Hello and thank you for contacting us. Unfortunately Matlab is not officially supported and there is limited compatibility between our software and Matlab. Our DLLs do sometimes work but we are aware that some releases of our DLLs do not appear to work with some releases of Matlab. We advise that you use Matlab to communicate via serial commands as these would be reliable. We will reach out to you with some examples.
user  (posted 2020-07-26 02:08:15.603)
Hello, It’s a good product, I have two questions with KDC101. Firstly, I made a VI from calling a .Net program from LabView. According to the guidance document downloaded by you in official website, the error code 1172 finally appeared ，it shows error calling method Secondly, when I run the example VI download from your website ,it shows that no suitable devices to found, In addition to the documents on your official website, are there any instructions about KDC101 and labview? I want to form a VI myself .thank you for your help.
DJayasuriya  (posted 2020-08-03 05:58:27.0)
Thank you for contacting us. If no suitable device pop up, this suggests that the dll's are not the same project folder. It may also be due to the the wrong serial number or using a simulated device without initializing simulations in the VI. Error 1172 in create device means there's something wrong within the VI. We will reach out to you directly to determine to diagnose this issue.
Tianyi Guo  (posted 2020-07-23 17:24:20.253)
I would like to use KDC101 to control CR1-Z7 stage. I have installed the right version for Kinesis (32bit for 64bit windows). However, I got the error message, "could not load file or assembly 'Thorlbas.MotionControl.Kcube.dcservo.dll'. We also have another stage Z825B and another controller TDC001. I could use the same KCD101 to control a linear stage Z825B using Kinesis. I have the same problem for TDC001 to control CR1-Z7.
DJayasuriya  (posted 2020-08-03 04:51:57.0)
Response from Charles at Thorlabs: thank you for contacting us. We will reach out to you directly to determine how the software is being used and to diagnose this issue. However, if you are using LabVIEW with our dll's then this would be the result of not putting the dll's in the project folder of the VI.
Jeffrey de Vlugt  (posted 2020-06-04 09:16:52.103)
Hello, Overall, I am quite happy with this controller as it typically runs very consistently. I am using it to control the MTS50-Z8. However, for my application, I am using a python module called thorlabs_apt (https://github.com/qpit/thorlabs_apt), and I am occasionally encountering the error: MG17_HWTIMEOUT_ERR: "Time out while waiting for hardware unit to respond." My computer is 64 bit windows 10 pro. The error occurs after numerous cycles of moving the stage back and forth between two points 10 mm apart. Unfortunately, I realize this is tricky to debug given that it happens so infrequently, but any advice you could give as to avoiding this error would be greatly appreciated. Thanks for your help, Jeff
DJayasuriya  (posted 2020-06-05 05:32:34.0)
Thank you for your inquiry. We will get in touch directly to resolve your issue.
Jean-Baptiste Le Bouquin  (posted 2020-06-02 10:37:43.76)
Hi, We have 6 of these controller. We need to talk to them from a remote control room, through the network. What would be the easiest way ? We have a local PC running next to the controller, and connected to the network. Thanks for you help, JB
DJayasuriya  (posted 2020-06-03 04:08:56.0)
Thank you for your inquiry. If you have a PC running with a network connection the easiest way would be to connect the have the 6 KDC's on a KCH601 hub (https://www.thorlabs.us/newgrouppage9.cfm?objectgroup_id=2424&pn=KCH601) and connect that to the PC. Then remote login to run the controllers. Hope this helps. Please get in touch with your local tech support team if you have any questions.
Youngjin Ahn  (posted 2020-05-11 00:55:48.893)
Hello, I am having 2 main issues with using KDC101 Brushed Motor Controller with kinesis software. Firstly, I made a VI from calling a .Net program from LabView. When I run the program, I get an Error 1172 explaining that .NET exception occurred in an external assembly. Secondly, my computer doesn't read KDC Brushed Motor Controller when I connect with the USB and shows an error saying "Brushed Motor Controller doesn't have a driver" Is there a way to download the driver? Best regards
DJayasuriya  (posted 2020-05-11 09:16:17.0)
Thank you for your query. I will get in touch directly to resolve your issue.
HYESANG KIM  (posted 2020-04-23 12:17:32.773)
KDC101 with Z825B. Wanted to control them with matlab, and it worked a bit successfully. I can use device.Home() and device.MoveTo(), but device.MoveToAt() or device.MoveContinuous() and several commands are not working with error : "Class 'Thorlabs.MotionControl.KCube.DCServoCLI.KCubeDCServo' does not have the appropriate method, property, field 'MoveToAt'.". How can I use them?
DJayasuriya  (posted 2020-04-24 09:29:41.0)
Response from Dinuka at Thorlabs: Thank you for your feedback, I will be in contact with you directly to help troubleshoot your programming issues.
Alexander Schultze  (posted 2020-03-30 12:22:50.81)
Hallo, ich war etwas überrascht bei meine TDC Controller, das die Aktualisierungsrate der Position über USB so langsam ist, etwa 5-10 Hz. Kann man da noch etwas machen? Als Abhilfe könnte ich mir den K-Cube mit Trigger vorstellen, allerdings wird nirgends spezifiziert mit welcher Timinggenauigkiet der Trigger ausgelöst wird.
DJayasuriya  (posted 2020-04-03 04:44:44.0)
Response from Dinuka at Thorlabs: Thank you for your feedback. Scheduling a trigger event only takes place after the completion of the trigger pulse. The scheduling itself would take place effectively immediately, within a few microseconds. In general, the “firmware events” are handled by processor interrupts; these execute at processor speed (84 or 168 MHz depending on the product), so assuming an interrupt latency of 12 clock cycles and the following sequence of a few tens of instructions, even if we allow 100 processor clock cycles for the actual scheduling to take place, we are still only talking a few usec of latency. The whole triggering process is designed to be fast (low latency). Hope this helps. Please feel free to reach out to our local techsupport team if you have any questions.
Leon Islas  (posted 2020-01-24 23:30:41.98)
Hello I am using a KDC101 k-cube with a stepper motor and want to syncronize it with micro-manager software, but the APT driver doesn't seem to be able to support the new k-cube. Has something changed in APT software ? or are you not supporting micro-manager anymore? Can you suggest a solution? I have tried micro-manager 32 and 64 bit and it doesn't work with any. Thanks
cwright  (posted 2020-01-31 12:00:51.0)
Response from Charles at Thorlabs: Hello Leon, The KDC101 is designed to work with DC servo motors not stepper motors so this may be causing some issues for you. We also do not directly support micromanager as this is open source software which is frequently updated and compatibility can subsequently vary between different builds. We will reach out to you directly to see if we can help you get this controller working.
Martin Rothe  (posted 2019-09-24 08:07:06.64)
Hello, how does the trigger option of the KDC101 controller works? For example, can I somehow program it to wait for a TTL input (value, edge or whatever), so that it drive the mount to a certain position then. Afterwards wait for another TTL to drive to another position. Finally third TTL signal to move the mount back to the inital position and so on? Best regards
rmiron  (posted 2019-09-25 07:33:23.0)
Response from Radu at Thorlabs: Hello Martin. KDC101 has two triggering modes that are of interest for your application: IN - Move Relative and IN - Move Absolute. They do exactly what their names suggest: they initiate a move upon seeing a change from High to Low, or vice versa. Unfortunately, because the cube only has two trigger ports, it is possible to cycle between 3 positions or more only if these positions are equally spaced. If they are not equally spaced, you will have to employ one of Kinesis' APIs, or its serial commands protocol, in order to write a custom application.
Udai Singh  (posted 2019-07-16 12:31:10.367)
Hello, I am using the KDC101 cube with .NET in Labview. I have established a connection with the Kinesis interface using the .dll files. When I attempt to connect to the cube, I receive an error saying "No suitable devices found." When I use the Kinesis app, I can connect with the cube and use all the functions to power a rotational stage, but it fails to connect to my Labview VI. Can I please get some help with this?
AManickavasagam  (posted 2019-07-19 05:21:58.0)
Response from Arunthathi at Thorlabs: Thanks for reaching out to us. I suppose this is a USB connection error. I have contacted you directly with some troubleshooting steps.
ADRIEN MARCHANT  (posted 2019-07-03 05:00:18.343)
Hi, I'm using four KDC101 cubes since 2016 with KCH601 USB Controller Hub for Six K-Cubes and their display screens have completely faded. It is not a problem of brightness because I can see some pixels still works. Is this a problem of powering by the HUB controller? Do you know if it is possible to replace those four K-kubes. Thank you. Regards.
AManickavasagam  (posted 2019-07-05 06:40:06.0)
Response from Arunthathi at Thorlabs: Thanks for reaching out to us. We will follow up with you directly to resolve the issue and for further information.
Ronan Le Harzic  (posted 2019-05-27 10:52:21.723)
Hello, I would like to control a relative old PRM1/MZ8 using a TDC001 (I have purchased it for more than 10 years old), S/N 83812455 on windows 10, 64 bits. I have downloaded in installed the different versions of APT (3.21.4 or 3.21.3) as well as Kinesis Software (1.14.17 or 1.14.16) you provide online, but it does not work. need for an older version of APT or Kinesis Software ? Regards
rmiron  (posted 2019-05-29 04:26:52.0)
Response from Radu at Thorlabs: The latest versions of Kinesis & APT are still able to correctly command TDC001 cubes. An older version should not be required. I will contact you directly in order to provide troubleshooting instructions.
Ghaith Nasleh  (posted 2019-04-08 03:12:02.613)
Hello, I connected the GUI Kinesis for KDC101 with LabVIEW through .NET und .dll files. After that, the orignal GUI Kinesis stopped working und it gives false Information About the Position of the Angle. In Labview, the GUI still works, but thereis a small variation between the current Angle and the Angle in the labview at GUI. I can't determine and fix the Bug.Can you please help me?
rmiron  (posted 2019-04-10 11:39:35.0)
Response from Radu at Thorlabs: Hello Ghaith. We are sorry to hear that you are encountering such issues. I will contact you directly in order to gather more information and to attempt troubleshooting your software.
chetansr001  (posted 2019-03-08 03:38:09.037)
Hi, I'm trying to use the .NET API to program the KDC101 controller. When I create the device, SystemNullReferenceException is thrown. The following is the line I use exactly from examples. IGenericCoreDeviceCLI device = DeviceFactory.CreateDevice(serialNo); DeviceFactory.CreateDevice() is returning NULL. I did KCubeDCServo.RegisterDevice() before calling the CreateDevice(). Can somebody help? Can somebody help
user  (posted 2019-03-13 10:14:21.0)
Response from Radu at Thorlabs: Due to recent changes to our .NET API, you will have to copy over Thorlabs.MotionControl.PrivateInternal.dll from the installation path of Kinesis to Includes/DLLs/x64 (or x86) in the Kinesis Example Projects folder. That should get rid of the problem. If that is not the case, please contact your local technical support team for further assistance. We will shortly amend the zip folder containing the attachments accordingly.
e.chehura  (posted 2019-02-12 15:43:14.27)
The KDC101 is a very useful controller. However, the KDC101 that I recently bought from Thorlabs, with serial number 27500693, 2016 no longer displays properly. The LCD display does not work anymore, which makes the KDC difficult to use. Is there a way that I can replace the KDC101 display panel with a new one?
rmiron  (posted 2019-02-14 05:48:48.0)
Response from Radu at Thorlabs. Thank you for contacting us! We recently switched from an OLED display to an LCD display on all our K-Cubes. I will contact you to directly to troubleshoot and to discuss further options.
mmueller  (posted 2019-01-29 10:23:06.603)
hi, does the controller work with the obsolet PRM1-Z7 rotation stage? thank you
bhallewell  (posted 2019-02-13 09:57:40.0)
Response from Ben at Thorlabs: Yes it does. To operate the KDC101 in Kinesis with PRM1-Z7, you will need to select the stage type within the KDC101 as "Unknown" as this legacy stage does not hold an ID Resistor. With the device connected to your PC & powered, in Kinesis you will be able to select PRM1-Z7 from the Select Stage drop-down providing the "Show Legacy Stages" is ticked.
mikael.malmstrom  (posted 2018-10-11 07:12:50.487)
Is it possible to get the (relative) position in the format of a voltage? so I easily can feed it into my DAQ while measuring other variables? either from KDC101 or TDC001
rmiron  (posted 2018-10-15 06:34:57.0)
Response from Radu at Thorlabs: Hello, Mikael. Unfortunately, our controllers do not have the hardware capability to allow for this. One can, however, keep track of relative movements with the aid of 5V TTL signals output by KDC101 via its TRIG ports. The next generation of DC servo controllers might have this feature thanks to your feedback. I will relay it internally.
user  (posted 2018-10-02 16:51:23.533)
Hello, my lab has just purchased a KDC101 motor controller and are trying to use it with a Z825B motor. However, the computer we are using will not recognize the motor controller. We are using windows 10 on our computer and in the devices window it only refers to the controller as "Unknown USB Device (Device Descriptor Request Failied)". I was able to get an older machine running windows 7 to recognize the motor controller by simply plugging it in but our new computer with windows 10 refuses to recognize it. Is there anywhere that I could download the USB drivers to make the device work?
AManickavasagam  (posted 2018-10-03 03:59:59.0)
Response from Arunthathi at Thorlabs: Thanks for your query. This could be due to the incompatibility of the firmware version on the controller and Kinesis version installed. Please could you update the firmware on the controller, you could find it here: C:\ProgramFiles\Thorlabs\Kinesis\FirmwareUpdateUtility Once the firmware is updated please update Kinesis on your Windows 7 computer as well, if you intend to use this controller with that computer. If you still have any issue please contact us directly and we will be happy to assist.
a.opheij  (posted 2018-09-24 13:18:01.26)
Are the KDC101 controllers compatible with the old Z612B and Z712B DC Servo Motor Actuators? (For the Z612B I realize that an adapter for the connector would be required, so I mean if it is compatible using the appropriate rewiring)
bhallewell  (posted 2018-10-24 03:49:54.0)
Response from Ben at Thorlabs: The Z612B actuator is compatible with the KDC101 controller & is also a selectable device within our Kinesis Motion Control Software & APT legacy Motion Control Software. The only Z7 stage currently supported by KDC101 is CR1-Z7. Other Z7 actuators would not be recognised by the KDC101. As a result, you may find that that the conversion factors for position, velocity and acceleration are incorrect, providing you with incorrect trajectory feedback in software or on the LCD controller screen.
tkopmj  (posted 2018-08-12 12:27:40.75)
How can I send serial commands directly from MATLAB to KDC101 and control it? Could I have some revelant documentations? thanks!
rmiron  (posted 2018-08-15 06:21:51.0)
Response from Radu at Thorlabs: This page from Mathworks (link below) shows how you can send the serial commands. Before you attempt doing so, make sure you set the "APT USB Device" in Device Manager as a virtual communications port and you set the COM port as described in our communications protocol. I will contact you directly in case further assistance is required. Link: https://uk.mathworks.com/help/matlab/ref/serial.fprintf.html
srh18  (posted 2018-08-09 23:48:44.18)
Hello, I have a question KDC101 controller could be ready to run by using matlab,how I can control it in matlab? thanks!
rmiron  (posted 2018-08-10 11:21:06.0)
Response from Radu at Thorlabs: There are three possible paths for controlling KDC101 in MATLAB. One would be to use the ActiveX controls that come with APT, our legacy software. We have a short guide on how to get started. The second option would be to bypass our software and send serial commands directly from MATLAB to the device. Thirdly, our .NET API for Kinesis is fully compatible with MATLAB, but we don't have any guides or examples that can help you get started. I will contact you directly in order to send you all of the relevant documentation along with the guide for controlling the ActiveX controls from MATLAB.
shenwb  (posted 2018-08-02 18:43:06.853)
Hi, I am going to build up a 2D translation stage using MTS50. Is it possible to control this system using one APT in LabView? Thank you.
AManickavasagam  (posted 2018-08-03 11:50:39.0)
Response from Arunthathi at Thorlabs: Thanks for your query. Yes, it is possible to control the MTS using APT in LabView. I have contacted you directly with guide and help files.
luc.duempelmann  (posted 2018-07-24 17:20:48.837)
I am using a PRM1/MZ8 with the KDC101 and also with the old version TDC001. In the APT and Kinesis software, I can let it move to home position, and also to a certain position (by putting into the number), but jogging does not work. The light "active" flashes, so it should move, but nothing happens. I tried to adapt jog (5, 20, 40deg) and also other jog parameters. Also if I use the KDC101, moving it by using the wheel does not work, while it works for the TDC001 with the wheel. Can anyone help me with this problem. Best, Luc
AManickavasagam  (posted 2018-07-26 10:56:34.0)
Response from Arunthathi at Thorlabs: Thanks for your query. I have contacted you directly to troubleshoot and resolve this issue for you.
sethurajkr  (posted 2018-03-19 22:39:44.64)
While continuously running the KDC 101, using Labview, it stops working, showing an error as "overload". I am not getting any clue of why it is and hence could able to fix this problem. Can anyone suggest me some solutions? Regards, Sethuraj
bhallewell  (posted 2018-03-22 10:19:02.0)
Response from Ben at Thorlabs: Thank you for your feedback. I will contact you shortly to troubleshoot the problem & discuss your application. If this is a Motor Overcurrent error, this is typically associated with a large resistive force such as a heavy load or collision with something blocking travel of your connected stage.
marco.cammarata  (posted 2018-03-14 21:58:20.893)
Is it possible to have a pure-python driver ? I need to use it on linux. I have seen thorpy on github. It seems very nice but I refrain from buying a product for which I have to rely on the 3rd party very-altruistic effort. I could not find a similar library on this website. Did I miss it ? Thanks, marco
bhallewell  (posted 2018-03-16 08:50:43.0)
Response from Ben at Thorlabs: Thank you for your feedback. You can find our Kinesis support available in the following link which includes support for creating C# programmes through use of the Windows .NET framework as well as LabVIEW VIs. https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=10285 I'll contact you directly to see how I can assist you further.
sethurajkr  (posted 2018-03-13 18:41:53.85)
I am trying to program it by LabVIEW. I have gone through the document "GuideToLabVIEWandAPT.pdf" that provided on your website. This document often referring to another document, named "APT programming help file". But I could not find any such file. Can you provide the link to this file or can you please send this file to me. regards, SETHURAJ
bhallewell  (posted 2018-03-22 10:14:13.0)
Response from Ben at Thorlabs: This file is the APT Server help file which can be found in the APT software folder. This contains a full list of available APT methods sorted under each Motion Control device category.
alvin.garcia10  (posted 2017-08-29 18:07:21.213)
Hello, I am trying to insert a .NET control into LabVIEW by following the directions on the Kinesis-Labview.pdf file posted on your site. However, LabVIEW informs me that, "An error occurred trying to load the assembly." I have tried deleting all of the files on my computer related to Thorlabs, then reinstalling everything again. However, this cannot solve the issue. I am unsure on how to proceed. Please help.
bhallewell  (posted 2017-09-18 08:52:58.0)
Response from Ben at Thorlabs: I would recommend first ensuring that you have downloaded & installed the correct version of Kinesis which is compatible with your version of LabVIEW. e.g when using 64-bit LabVIEW, you will need to install 64-bit Kinesis. I would also recommend ensuring that you have copied over the necesary .dlls from C:\Program Files\Thorlabs\Kinesis into your project folder & saving your VI within this same project folder. Kinesis Software Location.... https://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=Motion_Control
viteo  (posted 2017-08-08 12:16:13.74)
Trying to configure trigger synchronization on kdc101 via Kinesis C# API. Trying to setup port mode in TrigOUT_AtPositionBoth (every 1mm fwd and rev): getting ConfigParams and ParamsParams, editing them and setting back. I put the same values as in Kinesis application, but the trigger is silent. On the other hand TrigOUT_InMotion mode is working properly.
bwood  (posted 2017-08-10 10:56:53.0)
Response from Ben at Thorlabs: Thank you for your feedback. The best way to answer this question is for you to send your code to us, so we can review it. I will contact you directly to get your code, and help troubleshoot your program.
rxguo  (posted 2017-05-26 11:41:49.813)
Dear Sir, After I update my APT software recently, "APT user have stopped working" always happen when I run the controller. Please let me know how to solve this issue. Regards Ruixiang CDPT, NTU
bhallewell  (posted 2017-05-26 09:40:41.0)
Response from Ben at Thorlabs: I will contact you directly to troubleshoot this with you.
user  (posted 2017-04-06 16:56:45.693)
For the Kinesis software, there is a typo in the source code : In Thorlabs.MotionControl.KCube.DCServo.h (and also in Thorlabs.MotionControl.TCube.DCServo.h) line 632, _cdecl must be changed to __cdecl I don't know where to report it, so I am writing it here. Hopefully this message gets delivered to the right person.
bhallewell  (posted 2017-04-21 11:18:50.0)
Response from Ben at Thorlabs: Thank you for your comments. We have reviewed & changed the text in the necessary locations. This should be fixed in the available download.
niloycrj  (posted 2017-01-31 06:33:27.153)
I am using KDC101(bought few months ago) to control a motorized rotation stage. Initially it was being controlled using Kinesis software and was working fine. After installing APT software package, Thorlabs Firmware update utility was opened and "Flash Firmware" option was clicked. Following this , the the panel in the KDC101 unit turned off and during that time , by mistake the "Thorlabs Firmware Update Utility" application was closed forcefully. After this the Unit NEVER SWITCHES ON even after disconnection it from the PC. Is there any way to fix this? Or what at best can be done? And also suggest the best way to control KDC101 using matlab inside a matlab code.
pbui  (posted 2017-01-31 09:26:17.0)
Hello, as per the manual, interrupting the firmware update process can result in permanent damage to the device. We will contact you to discuss the options.
kke  (posted 2016-12-29 16:06:32.167)
I am using KDC101 with APT 3.16.0 to control Z825B in Windows 7. In APT, we can set the trigger mode, but I cannot find help document about this. If I need to use KDC101 to send a pulse once Z825 move 0.01 mm, could you please tell me how can I set the Settings? Thanks and Regards.
bhallewell  (posted 2016-12-29 03:21:54.0)
Response from Ben at Thorlabs: Thank you for your feedback here. I'd firstly advise updating your software package to V3.19.0 as we have adjusted the trigger pulse lower limit to respond to 100us pulse width signals. You can find details of the Trigger types on page 57-60 in the KDC101 product manual found in the link below. These can be adjusted in the APTUser Settings tab. https://www.thorlabs.com/drawings/3c6bf44e12a9edbb-E0C3553A-5056-0103-795596DB74DCC21E/KDC101-KDC101ManualforAPT.pdf We have available 'Trig Out for Abs. Move' whereby an absolute move can be set as 0.01mm & after the move is made a logic pulse is output - same applying for Rel. Move.
hallvard.angelskar  (posted 2016-11-28 08:04:21.95)
I am using the KDC101 with a CR1/M-Z7 rotational stage. I have set up the driver in Labview using the .NET Kinesis software. It runs fine, but the correct stage/actuator is not detected, instead it detects a linear translator stage. I am not able to change this in the settings within the Labview program. I have updated the KDC101 firmware but that did not help. Any help would be welcome, thank you.
bhallewell  (posted 2016-11-30 11:34:43.0)
Response from Ben at Thorlabs: Thank you for your question. Unlike our other motion control devices the CR1-Z7 does not hold an IDENT resistor to automatically deduce the stage type connected to the controller. The stage type selection can be accessed by pressing the MENU button on the top of the cube & manually selecting the stage type. I will contact you directly to review a method which can be used through your .NET app.
ahoj551  (posted 2016-10-21 05:30:33.977)
This product is very good, but I need documentation or datasheet to Labview method and property for KCubeDCservo.
msoulby  (posted 2016-10-24 03:23:16.0)
Response from Mike at Thorlabs: We will contact directly you will further details on how to use the controller in LabView.
yyh3190  (posted 2016-10-06 17:00:21.327)
I have one question. KDC101 controller could be ready to run by using matlab?
msoulby  (posted 2016-10-10 04:24:12.0)
Response from Mike at Thorlabs: The KDC101 controller can be run with two different software options. The first option is the older APT software which uses and ActiveX client/server model, it is possible to embed the ActiveX controls into Matlab in order to operate the controller. I have contacted you directly with a short introductory guide for using APT with Matlab. The second option is our newer Kinesis software, this uses .NET assemblies which, like the ActiveX objects can also be added to any .NET compatible language in order to operate our motion control hardware.
131120108  (posted 2016-08-02 20:48:09.9)
I have simple problem to ask. How can I get my 8 digit APT motor controller serial number. For example, what is the serial number of KDC101? Thank you very much.
bwood  (posted 2016-08-02 08:54:03.0)
Response from Ben at Thorlabs: Thank you for your feedback. There are several ways to find the serial number of your device. Firstly, it should be physically printed just above the motor control connector. You can also find it on the GUI of both Kinesis and APT. Finally, can use the command "SerialNo", if you are using Kinesis' .Net module. Please contact your local technical support office if you require further support with any of these techniques.
llewins  (posted 2016-06-24 14:48:32.557)
Hi, I have the same issue as vishnuk... When I try to connect the CR1/Z7 stage to the KDC101 it reads 'Error: Stage Unknown'. How can I fix this?
msoulby  (posted 2016-06-27 05:16:50.0)
We released a firmware update to correct this problem. To ensure you have the latest firmware you will first need to download the most up to date version of the APT software. This can be found at the following link https://www.thorlabs.de/software_pages/ViewSoftwarePage.cfm?Code=Motion_Control&viewtab=1 once installed connected the KDC101 to your computer and then run the APT firmware utility. This program will allow you to update the firmware. Once this is complete you should now be able to connect your KDC101 and CR1/M-Z7 stage to the cube.
bmckissick  (posted 2016-06-08 10:53:09.977)
I am currently developing an application which is interfacing to a CR1-Z7 motorized stage via a KDC101 controller, using the 64 bit version of the Kinesis driver (I am linking to Thorlabs.MotionControl.KCube.DCServo.dll). I have code working to open the motor, start/stop polling, set/get position, and read status bits, but I don’t see how to set/get the GPIO (we have Trigger 1 and Trigger 2 configured to be general purpose input and output, respectively). In Thorlabs.MotionControl.KCube.DCServo.h, I see some reference in the trigger configuration sections (case 10 in struct KMOT_TriggerConfig: "
besembeson  (posted 2016-06-09 09:01:45.0)
Response from Bweh at Thorlabs USA: We have contacted you directly to address this.
vishnuk  (posted 2016-03-17 23:00:51.633)
Hi. While trying to connect CR1Z7 stage with KDC101 controller, the controller display shows "Error : Unknown Stage". Do you have any advice on how to use CR1Z7 with KDC101? Thanks and Regards, Vishnu
besembeson  (posted 2016-03-18 09:50:21.0)
Response from Bweh at Thorlabs USA: I will contact you directly to fix this please.
bhallewell  (posted 2016-03-18 11:54:57.0)
Response from Ben at Thorlabs: Thank you for posting your feedback here & we apologise for the problem that you have faced in using our newly released KDC101 with the CR1-Z7 stage. We have a firmware update which is to be released in our forthcoming APT/Kinesis releases which will rectify this. I will contact you directly to get this up & running.
adam.l.collins  (posted 2016-03-07 14:39:17.43)
Do you have a glossary of terms for the ActiveX controls for throlabs stages in labview? For example, the "SetAbsMovePos" Method under the MG17Motor invoke node presumably sets an absolute move position, but there are other input and output properties (for the given example, IchanID and fAbsPos) whose purpose is not obvious. A list of definitions would be very helpful. Thank you
msoulby  (posted 2016-03-08 08:23:14.0)
Response from Mike at Thorlabs: Yes we do have a list which can be found in the APT server help files. To access these help files please go to the start menu location for APT (All Programs>>Thorlabs>>APT>>Help>>APT Server Help). Once in the APT server help file you should expand the section called Programming Guide and then the sub section called Motor Control. In here there is a comprehensive list of all the ActiveX Properties, Events and Methods with full details of all the parameters and enumerations permitted for each.
simon.vassant  (posted 2015-09-16 16:58:06.58)
Hi, We already acquired the TDC001 servo controller that we use with a PRM1Z8 motorized rotation. So far we use it on a separate windows computer. Now we want to be able to control it from a linux computer using Jython (a version of Python). We have no choice there, as our main device (an Atomic Force Microscope) only runs on Linux/Jython. Do you have any advice on how to do this ? Do you know anyone who would have done this already ? With best regards Simon
bhallewell  (posted 2015-09-18 03:13:09.0)
Response from Ben at Thorlabs: Thank you for your feedback here. Unfortunately we do not provide direct support for Jython however I will contact you directly with our comms protocol & available software development support content.
elevine1480  (posted 2015-09-14 16:57:58.58)
Dear Thorlabs, I bought a TDC001 controller with PRM1/MZ8 motor. It worked perfectly for a week, then my PC went to sleep while connected, and since then I have had problems with usb connectivity. The connection is intermittent and the device disappears and reappears in device manager. While the device is connected, I can control it with the APT user software, then if it disconnects and I jog the motor with the software, my mouse stops working. I have tried flashing the firmware, rebooting, unplugging all other usb devices, disabling other USB ports, and disabling usb selective suspend. I am using the latest software from 9/14/15. This appears to be a bug with APT software related to USB connectivity. Can you please suggest steps to troubleshoot?
bwood  (posted 2015-09-16 08:02:19.0)
Response from Ben at Thorlabs: I am sorry to hear about this issue. I do not believe that computers going to sleep has affected our controllers in the past. I believe the best first step to test the TDC001 will be to test the device with a second computer. I will be contacting you directly to help you further troubleshoot the device and to resolve this problem.
matthias.wolf  (posted 2015-06-29 13:47:43.48)
I currently use two TDC001s, one with a linear stage, one with a rotary stage. Both are connected through a powered USB-Hub. I'm driving them through Matlab, with the ActiveX extension. About once a day, rather randomly, I get the following error: Type [code]: Error; [Code = 10055] Internal Code: 16390910 Description: USB Comms Error Notes: A USB communications error has occurred. Extra Info: FT_IO_ERROR. A USB communication problem has occurred with this controller. Communication to this controller is suspended. The software should be closed and the controller powered off and on to try re-establishing USB communication. As the error appears randomly, it's rather hard to debug. I did what is suggested in the error, but after a while figured out, that just closing the activeX window and reopening will make the component work again as well. Are there any suggestions what could cause this error? And, as the window pops up and basically stops my process, is there a way to retrieve the error in Matlab from the ActiveX directly, not displaying the message? My program never realizes the error.
msoulby  (posted 2015-06-30 09:31:30.0)
Response from Mike at Thorlabs: This error indicates that USB communication has somehow been interrupted with the device. There are a number of possible causes. The first thing to check would be to ensure that the sleep and hibernation settings on your computer are disabled, if the computer sleeps or hibernates this can interrupt the USB ports, the best way to avoid this is to disable this feature. It is also worth updating the firmware on your device, to do this you will need to open the APT firmware utility to reprogram the connected device, certain hardware bug fixes have been implemented over time to correct certain issues, including USB connectivity. Finally it could also mean that there is a fault with the FTDI USB chip on the device, this typically manifests itself as a randomly occurring error (similar to what you are seeing) if the problem persists after checking the above then unfortunately we would need to get the controller back for evaluation and repair. To disable to error pop-ups there is an ActiveX method called “EnableEventDlg” if the bEnable parameter is set to FALSE then the event dialog will be disabled. Whilst disabling the error pop ups can be handy it does hide any error conditions that may be present on the APT server or controller: therefore we would advise caution when implementing this particular method.
yodev11  (posted 2015-06-17 11:49:50.783)
I want to use the TDC001 with a C++ code but I find anything about library that I have to use to connect my code to the TDC001. Is it possible to have the library please. Kind regards Yoann
annemarie.haughey  (posted 2015-06-12 05:21:26.02)
I have been working with the TDC001 for a couple of days now, trying to get it working with labview. The usb connection with the device is poor as when I started using it, the hardware would only be detected intermittently, but it was working. Now I am getting the following error every time I try to open the APT Config (An COM related error has occurred. Restart the program.) and when I run the labview I get the same error followed by it telling me that it cannot see the hardware. Any suggestions?
bagresci  (posted 2015-05-22 23:15:14.32)
I programed a application working in linux with TDC001 using FTDI following "Communications protocol". It seems working well except encoding reading. When I command moving in velocity first, a position is read correctly. But if I change the direction, or I input a stop command, the values read are come out erroneously. Maybe there are right sequences in-between moving, stopping, and reading.
msoulby  (posted 2015-05-26 09:36:17.0)
Response from Mike at Thorlabs: We will contact you directly to help troubleshoot your problem.
alain.miffre  (posted 2015-04-07 16:01:51.403)
Dear Thorlabs, I bought a TDC001 controller with PRM1/MZ8 motor. It worked perfectly. I recently bought another one (TDC001 with PRM1Z8 (not metric this time)). Unfortunately, using the APT config, only in simulation mode the second motor is recognized : when using Discover Hardware, only the oldest motor is recognized. Could you please help me as quickly as possible ?! Regards,
bwood  (posted 2015-04-08 11:23:53.0)
Response from Ben at Thorlabs: Thank you for your feedback. I'm sorry to hear about your problems using our devices. It appears that you are having association issues with our APT software, which we should be able to resolve. However, we will require some further details on your setup to identify the exact causes and I will contact you directly to discuss the issue further.
david.panak  (posted 2015-03-17 18:34:04.403)
I am designing a control system that would have 24 T-Cube devices (TDC001). I need all controllers to move 'simultaneously'. Is the control system for the T-Cube devices compatible with hyper-threading and parallel processing? Do you have code examples? What kind of latency would I expect? How many processor cores should I look for in a control computer? Thanks David Panak L-3 Greenville
msoulby  (posted 2015-03-31 07:57:45.0)
Response from Mike at Thorlabs: The APT software used with our TDC001 is a single threaded application. The motors will move one after the other, even if they are all told to move at once. The latency will be about ~10ms between each motor beginning its move, for most application this is acceptable but for time critical applications or with applications using a large number of stages than this may become noticeable. Unfortunately we do not have a multi-threaded APT version at this time.
tomasz.bogusiak  (posted 2015-03-13 15:26:10.877)
I'm trying to synchronize the movement of two seperate stepper motors which are controlled by two seperate TDC001. My aim is to obtain a continuous movement in two dimensions instead of point-by-point. I'd like to know if it's possible at all at the software level. I tried LabView and asked for help at the NI forum, but I was told that it is impossible to synchronize the execution of the motors. Could you please provide me some suggestions how it can be done?
rcapehorn  (posted 2015-03-20 10:57:18.0)
Response from Robert at Thorlabs: Our stepper motors were designed to be driven by our TST and BSC controller ranges. The TDC001 is explicitly compatible with our range of brushed servo motors, for example our Z7 & Z8 range. Although our current software is unable to perform perfectly synchronised events, due to its single threaded design, the use of LabVIEW should still permit near synchronised movement, <20µs. By setting both events to start same time and selecting bWait to false, they should both start within a few µs of each. Unless you are performing a very time sensitive application, you should not even notice the delay.
rcapehorn  (posted 2015-03-20 11:43:26.0)
Response from Robert at Thorlabs: I would just like to correct myself from the previous response. The delay between the two events would be <20ms, rather than µs. I will contact you directly to discussed your second question, in regards to synchronised use of 24 T-Cubes.
rereao.hahe  (posted 2015-01-28 05:03:59.603)
Hello Thorlabs, We use LabVIEW to control TDC001. It was working properly on WinXP LabVIEW 7 configuration and we are migrating to Windows 7 32 bit/LabVIEW 2011. While the active X motor controller is working via LabVIEW and via APT user, we encounter issues when trying to automize the process by using "MG17 Motor" (SetAbsMovePos and MoveAbsolute methods). In fact when asked to do a X translation value, TDC001 will only do 75% of it, without displaying any error messages. We are working on the 3.1.0 version of APT Controller since the 3.4.0 didn't install properly (error window displays "1:" at the beginning of the installation). Other methods such as GetPosition aren't working properly either, with any error message. Can you help us ? Rereao
msoulby  (posted 2015-02-02 08:30:56.0)
Response from Mike at Thorlabs: If the stage is only moving 75% of the commanded move distance then one likely explanation is that the pitch setting is incorrect. This can be caused by not setting up the stage correctly in APT Config, please could you check that you have the correct stage association for the stage/actuator that you are using in APT Config. If the stage is correct then this will ensure that the correct settings are entered for the stage you are using including the pitch setting. We have contacted you directly to assist you further with this issue. The “1:” error can be resolved by first uninstalling your existing versions of APT, and manually removing all associated APT files. Then APT 3.4.0 should install correctly, please ensure that the program is ran as an administrator and the installation files should be save to your local machine before installation.
iman.vakili  (posted 2014-11-27 11:39:25.4)
Hello Thorlabs, I am trying to use a TDC001 connected to a CR1/M-Z7 rotation stage. APTFirmware detects the TDC001 motor controller but not the CR1/M-Z7. Could you please provide me some suggestions?
bhallewell  (posted 2014-12-02 05:07:09.0)
Response from Ben at Thorlabs: Thank you for your feedback Iman. The APTFirmware does not reveal stages connected to controllers. This utility is simply designed to detect the firmware version installed on the TDC001 & provides the function to install firmware updates onto your TDC001. By connecting your CR1/M-Z7 to your TDC001 & opening APTUser, you will be able to see a control panel citing your CR1/M-Z7 as a connected device.
xiaochuan.xu  (posted 2014-09-16 01:06:44.013)
Hello Thorlabs, we are trying to use APT to control TDC001. APT firmwave can detect the controller, but both APT config and user cannot. We uses 64-bit windows 8 and tried both 32bit and 64 bit APT for 64bit system. Could you kindly suggest what we could do? Thank you!
bhallewell  (posted 2014-09-16 09:24:10.0)
Response from Ben at Thorlabs: If the device is detected within APTFirmware then we would expect the device to be functioning as normal. At this point it would be worth checking if you are employing the TDC001 with an actuator/stage connected at this time. I will contact you directly to troubleshoot this with you.
federico.barabas  (posted 2014-08-15 17:14:19.303)
Hello Thorlabs! Is there any plan on giving python support/wrappers for these servo controller in the near future? Thanks!
bhallewell  (posted 2014-08-19 11:21:11.0)
Response from Ben at Thorlabs: Thank you for your software enquiry. We currently provide a full set of set of LabVIEW VI's and Visual Basic source code examples. We also hold further tutorial resources for these platforms as well as Visual C++ within the ‘Support’ tab through the ‘APT Software’ link on this webpage. At this time we do not provide support documentation for Python.
user  (posted 2014-06-04 11:22:18.993)
I recently purchased a translation stage with a Z812B motor driven with a TDC001 controller (serial number 83848320). I am trying to program it with Matlab using the Thorlabs-provided APT ActiveX toolbox. To check if the motor is moving, I call the GetStatusBits_Bits method and inspect the 5th and 6th bits of the returned binary number. First I find that the bit definitions are different from what I found described on Thorlabs online help file by Wei Wang which says the following: "The 5th bit shows if the motor shaft is moving clockwise (1- moving, 0 -stationary ), and the 6th bit shows if the motor shaft is moving counterclockwise (1- moving, 0 -stationary )." I find that when the motor is stationary the 5th and 6th bits are always 1. Furthermore, I find that sometimes when I call GetStatusBits_Bits, it returns a number showing that the stage is moving when, in fact, it is stationary. When I use the Thorlabs GUI, I have no such problem. When the stage is stationary the Thorlabs GUI shows it is stationary, but calling GetStatusBits_Bits shows it is moving. Has the GetStatusBits_Bits wrapper function been changed recently because I don't see this problem with older versions of motor+controller. Also please advice me how to solve this problem.
msoulby  (posted 2014-06-09 10:47:45.0)
Response from Mike at Thorlabs: I ran some tests on the LLGetStatusBits and GetStatusBit_Bits methods and both operated correctly. That is, bits both 5 and 6 return 0 when the motor is not moving and during movement clockwise bit 5 returns 1 and during anticlockwise movement bit 6 returns 1, as expected. This is on the latest version of the software that is available to download from our website. If you can provide an email address perhaps we can then contact you directly to troubleshoot this further, also it would be useful to see your APT event log and you are welcome to send this us at email@example.com and we will be happy to review this log to identify any potential issues.
simon.poliquin.1  (posted 2014-06-03 00:01:52.07)
I'm working on 64bit window 7 and on a 32bit Labview. When i'm installing the APT 64 bit (WOW emulated version). The following message appear Error 1904.Module C:\Program File\Thorlabs\APT\APTServer\MG17Comms.dll failed to register. HRESULT-2147220473. Contact you support personnel. I can't change my computer or my 32bitlabview version. The 64 bit or 32 bit version of your APT software won't work as well on my computer. Do you have any solution?
msoulby  (posted 2014-06-09 04:56:00.0)
Response from Mike at Thorlabs: We are aware of the current issues with our APT software and are currently working on a solution to correct this, In the meantime we have put back up the earlier version which will work on 64 bit SO and 32bit client applications, this can be downloaded from here http://www.thorlabs.de/software_pages/ViewSoftwarePage.cfm?Code=APT if you select the ‘Archive’ tab you can then download version 2.23.0. it would be worth uninstalling any previous installations of APT before you install this. Please accept our apologies for any inconvenience caused whilst we correct this issue.
talshawi  (posted 2014-05-25 17:28:19.39)
Same problem as the last customer "APT v3.3 doesn't work with Labview - Labview can not find ActiveX controller."
msoulby  (posted 2014-05-27 09:37:37.0)
We updated the software on our website last week which should have corrected some of the recent bug we have been seeing and you can now download one of three versions, depending on your operating system and also what application environment you are using. 1) ATP 32 bit - for 32 bit operating systems and 32bit client applications (labview 32bit, Matlab 32bit, etc..) http://www.thorlabs.de/software/apt/Application/X86/Setup.exe 2) APT 64 bit (WOW emulated version) - for 64bit operating systems that are running 32bit client apps (labview 32bit, Matlab 32bit, etc..) http://www.thorlabs.de/software/APT/Archive/X64/Setup.exe 3) FULL 64 bit - for 64bit operating systems that are running 64bit client apps (labview 64bit, Matlab 64bit, etc..) http://www.thorlabs.de/software/apt/Application/X64/Setup.exe I have also contacted you directly with these details.
kiwa  (posted 2014-05-07 12:47:36.677)
The next sofware APT v3.3 doesn't work with Labview - Labview can not find ActiveX controler. Tried three different computers, and three versions of Labview (9.0, 2011, and 2013). When re installed to old software (APT v2.3) - everything works smoothly
msoulby  (posted 2014-05-09 04:56:27.0)
Response from Mike at Thorlabs: I have contacted you directly to assist you in installing this software.
gar  (posted 2014-02-14 18:59:41.553)
We have a TDC001 controller with APT software running on winxp, the motor controller pane is not coming up on the APTuser software when launched. It is configured for automatic detection, and I have tried re-installing and re-booting as well as re-istalling the USB driver. 'puter says the driver is installed and functioning correctly. Something is not right, we use these in conjunction with Matlab, so I am wondering if Matlab changed something possibly. Your help with this would be greatly appreciated. Thanks, Gar Fisher University of British Columbia-Physics
msoulby  (posted 2014-02-18 04:04:49.0)
Response from Mike at Thorlabs: There are a couple of things that you should be able to check quickly in order to check connectivity. Firstly I would check in the APT configuration utility that the simulator mode is disabled, if this is enabled then the system will not look for any connected devices and potentially give you the black screen. If simulator mode is disabled and correct stage association set in APT configuration then the GUI should appear in APT user when run (please ensure to close APT config first). If nothing is displayed then please look in the VIEW menu then GRAPHICAL PANELS>>MOTOR any connected motors without a GUI will be listed here. If this fails then you will need to check connectivity in APT firmware. To do this open the APT firmware utility and click discover hardware; correctly connected devices will then be listed. I have also contacted you directly with a short troubleshooting guide and contact details if you encounter any further problems.
jordan.miles  (posted 2014-01-16 10:53:54.183)
Hi, I have just purchased the T-Cube DC Servo Motor Controller and the motorized Precision Rotation Mount. I am trying to control the rotation stage using lab view. I found the guide to labview and apt pdf which was great for getting started. I now have the activex control in lab view working but I'd like to specify some user input values to change the rotation by and can't seem to find any documentation or example programs like this. Could you point me in the right direction please?
msoulby  (posted 2014-01-16 10:59:22.0)
Response from Mike at Thorlabs: The programming guide for our motor controllers can be found in the APT server help file; this is located in the thorlabs start menu folder. This contains a detailed list of all the methods, events and properties that can be used with our controller, plus details of all the enumeration values that can be used for each command. There is also a developer package that can be downloaded from our website at the following address http://www.thorlabs.de/software_pages/ViewSoftwarePage.cfm?Code=APT if you look under the ‘Support’ tab you will be able to access the download page for this developer support package.
jacksonhalley  (posted 2014-01-14 04:46:17.54)
Hello, We have a TDC001 T-Cube DC Servo Motor Controller and a motorized actuator z812B in possesion. We will use this with other equipment of thorlab to set up a test. Therefore we need too use labview to combine the motor with another hardware (not from thorlab). Currently i use "guidetolabviewandapt" pdf document to get the motor too work in labview. And i use mgmmotor control from activex in labview. Are there any other vi's examples, documentation or activex controls specific for this product available that i can use? And where can i find the apt programming guide, as stated in the "guidetolabviewandapt" pdf document. Any answer is welcome. With kind regards, J. Halley Sonion BV
msoulby  (posted 2014-01-14 10:24:45.0)
Response from Mike at Thorlabs: To access the programming guide please go to the following start menu location. Start Menu>>All Programs>>Thorlabs>> APT>>Help>>APT Server help. Once the windows help file opens in order to access the motor control guide please expand the following categories: Programming Guide>>Motor Control>>Motor Control Methods. In here you will find a comprehensive list of available commands that can be used with our motor controllers. I have also contacted you directly with links to our software development package which contains some example .VIs that you are free to use for your application.
izdebski.pawell  (posted 2014-01-04 13:51:15.17)
Hi ! I'm using CR1/M-7 rotating stages with TDC001 contoler , and I'm trying write a simple application in labview to control my device. I have found 'USBRawControl.vi' from NI website, but I have an issue with USB communication. Does anyone here,have written a similar labview vi's to control a stages using USB communications protocols? Regards, Paul.
msoulby  (posted 2014-01-06 05:28:18.0)
Response from Mike at Thorlabs: I have contacted you directly with detailed instructions on how to setup one of our TDC001 controllers in labview.
jvdw  (posted 2013-11-19 16:42:40.687)
64bit drivers needed here as well! I read in a previous post: "I have contacted you directly with the latest version of our USB communications protocol document." Could I receive that document please? Regards, Jvdw
msoulby  (posted 2013-11-19 11:47:08.0)
Response from Mike at Thorlabs: I have sent you the document in an email, for the benefit of other customers this protocol document can be found on our website at the following address http://www.thorlabs.de/software/apt/APT_Communications_Protocol_Rev_9.pdf
jconnors  (posted 2013-11-04 15:14:48.587)
I am attempting to build upon the tutorial on APT to include a switch which can set the jog mode on the controller. When doing this, an error is always thrown stating that the value given to SetJogMode is out of range, however I am giving this input either a 1 or 0. Any help is appreciated!
msoulby  (posted 2013-11-06 09:15:41.0)
Response from Mike at Thorlabs: The enumeration for the SetJogMode method needs to be set to either 1 or 2, the value 0 is not allowed by this method and will produce the error you are seeing. The correct enumeration is as follows: 1 = JOG_CONTINUOUS (When a jog command is received, the motor moves by the step size specified in the SetJogStepSize method (or the GUI)). 2 = SINGLE_STEP (Only applies to remote handset operation. When a jog command is received, the motor continues to move until the jog signal is removed (i.e the jog button is released)).
jeff.davis  (posted 2013-11-01 12:37:10.7)
I'm using two APT DC servo controllers on a servo controller hub. I can configure the drives using APT config and I can flash the firmware using the firmware flash application, but when I try to drive the stages using the APT user application, the application fails and gives a COM error. The device seems to be failing to start the controller at the CMGMotorCtrl::StartCtrl() line. This throws an error with code 10054. Multiple reboots and restarts have not resolved the issue. I have moved the USB to various ports on the computer, but the device remains non-functional. Any thoughts on what the issue might be?
msoulby  (posted 2013-11-06 03:52:52.0)
Response from Mike at Thorlabs: Please can you make sure you have the latest version of the software installed; there were some issues with recent earlier versions that would caused an immediate COM error on startup. To download the latest software please go to the following page http://www.thorlabs.de/software_pages/ViewSoftwarePage.cfm?Code=APT I have also contacted you directly rgarding this issue
mbakker  (posted 2013-10-28 09:48:59.58)
I am trying to use 2 TDC001 (that control PRM1Z8 stages) in combination with a TCH002 controller hub. However, when all is plugged in I can see the 2 'USB:APT DC motor controller' appear in the 'Thorlabs APT Firmware reprograming utility'. But I can not 'flash firmware'. Also when using python to control the devices, it seems that it does see the two, but that commands to make them do something are not recognized. Somehow, all these issues are resolved when I connect the two TDC001's directly to a USB hub; they are recognized, "I can flash the firmware, ad everything works well in python. My feeling is it is related to issues with the USB connection, but what to do against it? Can I still use my nice controller hub? (I operate Windows 7.)
msoulby  (posted 2013-10-29 10:29:00.0)
Response from Mike at Thorlabs: We will contact you directly to dicuss the issue you are having with the TCH002 control hub.
katonag  (posted 2013-10-24 20:24:31.377)
I use TDC001 With Z812 mirror positioner. I don't want to home them just adjust position around the current position in fine small steps. If I turn on the device it will feel as staying at 0. Now I'd like to move it a bit to negative direction. APT user could do the job (when changing settings), but when using it from program, MOT_MoveAbsolute_Ex returns an error. Can I somehow circumvent this? thx!
msoulby  (posted 2013-10-28 13:02:00.0)
Response from Mike at Thorlabs: If you are not using your motor in APT then you will need to use the SetStageAxisInfo method, this will allow you to set minimum and maximum positions of your stages travel as you can in APT. Also an alternative to using absolute movements would be to use the move relative methods so the stage will move a set distance relative to its current position rather than the absolute position based home datum. I have contacted you directly with further details.
hdev736  (posted 2013-10-20 17:00:30.407)
I am building a multi-axis laser cutting system with three MTS25/M-Z8 controlled via TDC001 motor. I have coded the entire control software in LabView. Individual motor control works fine but when I try to move two stages simultaneously, the command parsed to the second stage is not recognized until after the first stage's movement is completed. What labView command would enable me to control two stages at the same time.
msoulby  (posted 2013-10-22 04:45:00.0)
Response from Mike at Thorlabs: All the ActiveX move methods have a timeout or bWait parameter, this is a boolean constant that can be set by the user in Labview. If set to false this means the move method will return as soon as the move is initialed and the program will not wait for the move to finish. If set to True then the method will only return after the move has completed, holding up your program. If you are trying to sequence a number of motors it is better practice to set this value to false.
h.r.g.w.verstraete  (posted 2013-10-18 05:40:50.34)
Is there any progress in the development of a 64 bit driver? I need to access the controls from labview 64 bit (32 bit labview is not an option). We have several components from Thorlabs. Another solution is also an option as long as we can control the rotation stages from labview.
msoulby  (posted 2013-10-21 10:27:00.0)
Response from Mike at Thorlabs: we are still in the development phase of our new motion control software package that will replace APT. We do not currently have any firm release dates but expect to have an advanced beta version available within the next 6 months. Until this new software package is released to customers unfortunately the current APT will remain 32bit. One option could be to use the low level USB communications protocol which uses the USB as a virtual com port to allow direct serial communication with our controllers. You would need to speak to National Instruments on how to use a VCP in LabView. I have contacted you directly with the latest version of our USB communications protocol document.
user  (posted 2013-10-12 21:28:38.903)
We have DC Servo Motor Actuators Z825B and controller TDC001. Is it possible to combine movements of several motors in the APT software in the Move Sequences? I need it for scanning in XY plane.
msoulby  (posted 2013-10-14 11:30:00.0)
Response from Mike at Thorlabs: Each motor GUI in APT user acts independently, whilst each can be programmed with its own move sequence by clicking on the 'move sequencer' tab unfortunately this will only control one motor and it may prove difficult to synchronise them using only the move sequencer. In order to synchronise multiple motors you will need to use a programming environment such as labview or VB to make your own customised scan sequence.
honzatko  (posted 2013-09-20 16:27:08.637)
Hi, I'm using CR1/M-7 rotating stages with TDC001 cubes and running the APT software 2.3.4701.37075 on Windows XP. Running the APT Config utility (v.1.3.0) I see the serial numbers of all the units. Trying to add stage association selecting CR1-Z7, I get an error message "Stage type selected is not compatible with driver selected. Select stage type not prefixed by BMS ZST or TST". Do you have any hint how to proceed? Best regards, Pavel
jlow  (posted 2013-09-20 11:07:00.0)
Response from Jeremy at Thorlabs: I believe this is a bug with an earlier version of APT software. There's a patch to fix the bug. The links to the patch are below (please choose the correct operating system you have). Download links for service pack 32bit OS: http://www.thorlabs.com/Software/APT/Service%20Packs/Update%20v2.18.0%20SP3/32%20bit%20SP3/Update.exe 64bit OS: http://www.thorlabs.com/Software/APT/Service%20Packs/Update%20v2.18.0%20SP3/64%20bit%20SP3/Update.exe
jalocha  (posted 2013-09-13 12:18:11.657)
Dear, CILAS, the French company in which I work currently, is developing a system in which a THORLABS motor (PRM1/MZ8) and its driver (TDC001) are integrated. We encounter a random problem at the initialization of the whole system. From time to time, the motor is not recognized by the PC neither by the APT user software nor by our own software. Contact me for more information, please. My phone number is 00 (0) 2 38 64 59 09, 00 (0) 6 79 24 04 72 and mail email address firstname.lastname@example.org. Sincerely, Alain Jalocha
jlow  (posted 2013-09-13 16:14:00.0)
Response from Jeremy at Thorlabs: We will get in contact with you directly to troubleshoot this.
mics  (posted 2013-09-09 10:29:07.097)
Hello, our group purchased a TDC001 controller with Z825B actuator. I tried to program it in C both using the C dll libraries and using the low-level FTD2xx commands. I did not succeed. The program using the C libraries (including the software aptdllclient) crashed after calling the function "InitHWDevice" (AptInit was used before to initialize the dll). Using the low level functions I can blink the controller, home the device etc - to run SET commands. However, I cannot get any response on REQ commands. I would appreciate if you could send me some working example programs in C using the low-level commands or correct the bug in the C libraries. Thank you!
jlow  (posted 2013-09-11 13:30:00.0)
Response from Jeremy at Thorlabs: I will get in contact with you directly to provide a simple example using the serial commands.
cdburgess  (posted 2013-07-30 09:25:59.82)
Please can you issue an update on when Thorlabs are releasing versions of the ActiveX that will run with 64 bit development software (e.g. Matlab)?
tcohen  (posted 2013-08-01 12:47:00.0)
Response from Tim at Thorlabs: Thank you for contacting us! We are currently in the middle of development work on a completely new software package for our motion control stages and controllers that will be both 32 and 64bit compatible. We do not have a time frame for the release but it is likely we will have an advanced beta release available for customers to download by the end of the year.
m.morac  (posted 2013-07-30 11:10:20.82)
Hi. I'm developing an application for controlling the TDC001. I need the documentacion, examples, and header/library in C++. Thanks!
tcohen  (posted 2013-08-01 10:31:00.0)
Response from Tim at Thorlabs: The full support download can be found on the APT software downloads page (second tab): http://www.thorlabs.de/software_pages/ViewSoftwarePage.cfm?Code=APT. The provided software tools are our APT GUI, 32bit ActiveX components for use in client environments such as LabVIEW or Matlab and a low level communication protocol. I will contact you to discuss this further.
maciejrobertmrozowski  (posted 2013-07-26 14:01:15.643)
Hello, cuurently im trying to estabilish a low level communication with TDC001 Motor Controller using enclosed host-controller protocol via VISA interface in labview. However, the information provided there seems not to be sufficient and im encountering unexpected problems. I would be grateful if you could either send or publish on the website the advanced communication protocol. Thank you in advance
tcohen  (posted 2013-08-01 10:16:00.0)
Response from Tim at Thorlabs: You can find the communications protocol on the third tab of the software download page: http://www.thorlabs.de/software_pages/ViewSoftwarePage.cfm?Code=APT. I will contact you to troubleshoot.
shaun  (posted 2013-06-16 16:17:26.44)
Hi there, We have a couple of the TDC001 drives that we are using to move a MTS50-Z8 stage (serial number 83836876) and a Z806 stage (serial number 83836164). We have previously had these devices running on an older PC running Win XP, but we have recently migrated to a brand new Windows 7 64-bit box. I have developed a LabVIEW application (32-bit) to controls these two devices, but am having some issues communicating with them on this new PC. My LabVIEW application was developed using the examples provided in the Developer Support for APT Software version V2.13.0 (23/3/2012). On the new PC I can see two devices listed in the Windows Control Panel Devices and Printers (2 x “APT USB Device” are listed), and I can also see two devices listed if I run the APT Firmware application (see attached screenshot, which also shows the serial numbers). Note that in APT Firmware there is no option to “Flash Firmware”, and there is no tree structure below each Motor Controller. [I’m not sure if this is normal? Your documentation suggests that each device should have items listed underneath...] If I run the “APT User” application, I get only one of the two devices appearing (currently I can just see 83836876, although yesterday I could only see 83836164, so the problem doesn’t seem to be limited to just the one device), even though both of them are detected by APT Firmware. When I had one device appearing in APT User, I could also communicate to this same device from my LabVIEW application (once I’d shut down APT User of course). However, if I tried to communicate to the second device from y LabVIEW application then I get a bunch of errors. Subsequently, if I rerun APT User I have no devices appearing, even though both of them are still being detected by APT Firmware. I’ve have tried cycling the power to the drives and the PC. Sometimes this will work and I will be able to see one of the devices again (although never both). The last time I tried cycling th
jlow  (posted 2013-06-18 09:17:00.0)
Response from Jeremy at Thorlabs: I apologize for the issue you are having with the APT software. We will get in contact with you directly to troubleshoot this.
lukas.drzewietzki  (posted 2013-05-28 21:23:51.7)
Hello. We use a "TDC001" together with the stage "MTS50/M-Z8" in a LabView environment via ActiveX. Unfortunately we have some issues with this combination and would appreciate any help. - The "APT Config" cannot perform a configuration/mating with _above_ devices. The Error reads: "Stage type selected is not compatible with driver selected. Select stage type not prefixed by BMS ZST or TST." --> We circumvent this by manually setting the stage parameters in Labview via "SetStageAxisInfo". - The "bWait"=TRUE option for the "Move"-methods works but creates 100% CPU core load and freezes the Labview _front_ panel while waiting. - All "status-bit" methods return movement-status-bit=TRUE (#4) only when moving in positive directions but not in negative direction. - Is an event handling/catching of the "MoveComplete" event-callback possible inside the _same_ VI the methods "Move..." are called? Thank you in advance.
tcohen  (posted 2013-05-30 13:00:00.0)
Response from Tim at Thorlabs: Thank you for contacting us. 1) The config reads from the .ini file to set the stage parameters and the TDC001 should be found when you open APT Config. Afterwards associating the stage should be possible. Please make sure that the simulator is off and that the .ini file has not been modified. 2) The bWait bug is a known error. You can possibly change the execution mode in LabVIEW to user interface. I will send you documentation on this. 3) There are actually individual status bits for clockwise and counter clockwise (1-moving, 0-stationary) and so either bit should not be T for the opposite direction. 4) In LabVIEW, the register event call back icon will typically be placed in the top level vi. What the event does upon being triggered is carried out in a sub .vi known as the event call back .vi. A sub .vi within your main program will have to be created when using ActiveX events. I will contact you to continue this discussion.
sewell  (posted 2013-03-19 21:28:43.473)
Hi, I just read that the APT software runs native under windows 32 but cannot be used with LabVIEW 64-bit. We have a near term (2 months) application where we'd like to use both. Are they any plans for making these two products compatible? Any timeline? Thanks! Scott
tcohen  (posted 2013-03-21 13:29:00.0)
Response from Tim at Thorlabs to Scott: This is an active project and although we can’t provide a formal release as of yet, the scope is such that it is highly unlikely that it will be released within 2 months. I will contact you to keep you updated on the timeline.
lschmidt  (posted 2013-03-07 09:44:53.307)
We have two of the TCD001 controllers connected to z806v actuators. We are trying to control them using the hex commands defined in the command reference. We are experiencing sporadic behavior, in that sometimes the commands will work, but most of the time they do not. We don't get any errors from our program, the controllers just don't respond. We are using linux/python, which I know you don't really support, but I was wondering if you have any example programs, even if they are in another programming language that we could look at? Moving to windows is not really an option as all other devices we are controlling work fine with linux/python.
cdaly  (posted 2013-03-07 15:18:00.0)
Response from Chris at Thorlabs: Thank you for using our web feedback. The most likely cause of this is that an initial function has not been completed before you are trying to initiate a subsequent one. The controller will return a message (ID 0464) when a function is complete. Your program will need to take this account and should not try to continue until it has read this to verify that it is now able to continue with its sequence.
leg2137  (posted 2013-01-29 09:49:08.14)
I have used this motor control for about three years with no problems integrated into my microscope control system. We recently updated our computers and software to allow increased performance in 64-bit windows. Unfortunately, it seems I am no longer able to communicate with the APT software using MATLAB. As a temporary solution, we have to open a second 32-bit matlab window to control this one component. We will most likely have to buy a different rotation stage altogether. Are there known solutions or new products available that address this problem? Are there any plans to update the APT software? Thank you
tcohen  (posted 2013-01-30 13:20:00.0)
Response from Tim at Thorlabs: Thank you very much for your feedback. You are correct that the current version must be opened in 32-bit MATLAB. The APT software is a 32bit application that was developed before 64bit windows became available. APT runs under 64bit Windows through a 32bit emulator layer, WoW64. However, there are currently no 64bit .DLLs or .LLBs and the ActiveX components will not run within a 64bit client environment, such as MATLAB. We understand that a new software version that supports 64bit is needed and we have a beta version that we are actively working on.
jlow  (posted 2012-12-20 09:01:00.0)
Response from Jeremy at Thorlabs: Yes, it is certainly possible to control the TDC001 via virtual comms port. If you already have the APT software package installed on your computer, then the drivers required to communicate with the TDC001 are already installed and the only thing that is required is to enable the TDC001 as a virtual comms port device. The details of how to do this are described in this document: http://www.thorlabs.com/Thorcat/23900/BBD202-Manual.pdf Please note that although the document is for the BBD202, the principle is exactly the same as both controllers use the same USB interface. If you do not have the APT software installed installed, then the device drivers can be downloaded from the FTDI website (the USB interface in the TDC001 is based on the FTDI implementation): http://www.ftdichip.com/FTDrivers.htm. Finally, the communications protocol used in the TDC001 controller (and for all other controllers as well) is described here in detail: http://www.thorlabs.com/software/apt/APT_Communications_Protocol_Rev_6.zip.
jonathan  (posted 2012-12-07 08:56:00.55)
Hello, I would like to control the TDC001 in our custom C++ software without using the ActiveX interface. Is there any way to control the device using a virtual COM port (i.e. serial port) in a similar way than with the DC3100 FLIM LED Controller (for example). If it does, could you provide me with the appropriate driver required for windows to detect the TDC001 as a serial (COM) device ? In that case, could you also send me any documentation related to serial port configuration parameters and header/library files ? If only USB communication is possible, could you send me any documentation and files that could help to communicate with the device directly from c++ commands ? Many thanks and best regards, Jonathan.
jlow  (posted 2012-11-05 13:26:00.0)
Response from Jeremy at Thorlabs: You can download the communications protocol and the driver at http://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=APT, under the "Communications Protocol" and "Drivers" tab.
johannes.renner  (posted 2012-11-02 06:14:31.837)
Since we had to update to win7/ Matlab 64-bit we cannot use the ActiveX interface anymore. Could you send me the USB serial interface drivers and protocol documentation?
tcohen  (posted 2012-10-18 14:28:14.983)
Response from Tim at Thorlabs: You are correct that this will not work under 64bit Matlab (APT can run under 64bit windows). This is a project we are working on, but as it requires more than an update because the program is intrinsically 32bit, it is a long term project. Programming can still be done in 32bit Matlab and the supplied GUI is fully operational in 64bit Windows.
paris  (posted 2012-10-18 13:12:30.193)
i've tried to run the ATP software under Win7 with Matlab 2011b (both 64bit). does not work, since the programm is written in 32bit. please provide an update, otherwise the product does not make any sense to me.
tcohen  (posted 2012-09-13 09:47:00.0)
Response from Tim at Thorlabs: If the bWait parameter is set to 'False', the method returns as soon as the move has been initiated. If bWait is set to 'True', MoveAbsoluteEx returns only after the motors have completed their moves. More information can be found in the APT Server Help located in the install directory. You can get down to about ~14ms for updating GetPosition. This limit is a combination of the FTDI chips, the USB bus and your own system. Once the function has obtained the position it will return the function with the pfPosition parameter. As for 64bit .DLLs or .LLBs, this is a long term project. 64bit windows can currently be used with the APT GUI via the WoW emulator.
florenthaissgmx.de  (posted 2012-09-08 09:58:56.0)
When will the 64bit .DLLs or .LLBs be available? Most new computers are now installed with win7 64 bit and it is extremely inconvenient not to have support for 64bit labview/windows.
hanxu1981  (posted 2012-09-07 09:09:53.0)
I am using C++ command lines to control the motor. The first question is about the method "MOT_MoveAbsoluteEx": long WINAPI MOT_MoveAbsoluteEx ( long lSerialNum, float fAbsPos, BOOL bWait ) If I put bWait to true, will the program wait until the stage stop at the position of fAbsPos? Another question is about "MOT_GetPosition". How long does it take to get a response from TDC001 after I use this method? Will the program stop working until the TDC001 returns the position?
tcohen  (posted 2012-08-23 16:21:00.0)
Response from Tim at Thorlabs: Please ensure that the TDC001 is connected to the PC before connecting to the power supply. Grounding issues can cause the order to matter. A more detailed troubleshooting note can be found in my last post on this feedback wall. I will contact you with this information to make sure the problem is resolved.
ch31037  (posted 2012-08-23 12:02:35.0)
Dear Service engineer, Hi, I have a problem in communication with computer. My application is 3D imaging using 2-axis motors which controlled simultaneously by LabVIEW. So, it is very important to solve it. I wrote my situation. 1. When I connect it with computer, APTUser usually did not show any graphical Panels. However, computer device conceive APT device. 2. APT Frimware can find the hardware 3. Sometimes, it worked. But, when I try again, it stopped. 4. If it works, motor move normally. Therefore, I think that there is no problem in DC motor. I tried to connect with different several computer which has different OS and specification. Theoretically, it have to work. But, it also show same symptom. Therefore, I think that the controller has some problem in connection with computer. How can I solve it?
jlow  (posted 2012-07-31 13:29:00.0)
A response from Jeremy at Thorlabs: We have a fairly detailed document online that shows a way to do the error handling in LabVIEW. You can view it at http://www.thorlabs.com/images/TabImages/GuideToLabVIEWandAPT.pdf, starting on page 31.
huw.major  (posted 2012-07-31 10:00:34.0)
Hi I am trying to use your apt software in labview. I have a question regarding error handling. According to your example in 'User Guide to LabVIEW & APT' your labview vi property and invoke nodes should pass back standard error messages on a failure. However, I get no labview error messages, only an event panel pops up detailing the error. How do I force the apt to use the labview error reporting mechanism? I am unable to halt the labview program on an error as labview cannot see an error. Any help would be much appreciated.
tcohen  (posted 2012-07-11 12:25:00.0)
Response from Tim at Thorlabs: Thank you for contacting us! First, please ensure that you close any APT software. Connect the TDC001 to the PC and only connect the power afterwards. Grounding issues can cause the order to matter. After this, you can configure your motor and stage in APTConfig. If you still experience problems in LabVIEW with this error, please make sure that the “Enable Simulator Mode” is unchecked in APTConfig. If the simulator mode is on, APT will be looking for the simulator serials which will be wrong with respect to your physical motor’s serial number. If you still experience issues, please make sure the controls have finished enumerating (increase the server enumeration dwell time in APT Config). Adding a wait between the start control method and the first command will eliminate problems with the controller trying to be used before it is properly initialized and reporting this error. This should solve nearly all problems associated with this error. If you are still having trouble or would like personal assistance please contact us at email@example.com and we would be more than happy to troubleshoot with you directly to find the source of any error.
spectoad  (posted 2012-07-11 09:15:46.0)
I am having problems with the APT software as well as controlling the motors with Labview. After starting the APT User programs none of the control panels are displayed and there doesn't appear to be a method for bringing them up. Also, in Labview an error appears in the APT system log that there is no device present despite the fact that the device is plugged into a working usb port and the serial numbers are correctly input to the program.
tcohen  (posted 2012-07-03 10:04:00.0)
Response from Tim at Thorlabs: The APT software is a 32bit application that runs under 64bit windows through WoW64. The software can run on 64bit systems but cannot be used in 64bit client environments. 32bit LabVIEW must be used in order to recognize ActiveX components. We have put a note in the “Software” tab explaining this.
user  (posted 2012-07-02 17:01:05.0)
Is the 64bit version of the software not compatible with active x controls in labview 2011? When I insert an activex container in labview and go to insert an active x object the MG17 motor does not appear in the list of controls.
tcohen  (posted 2012-06-28 14:43:00.0)
Response from Tim at Thorlabs to Ben: Thank you for your feedback. These are unusual observations that we have not replicated. I would like to discuss your vi with you and go over each of these three in detail with the program in hand. If there is still some error, we will of course take a look at your TDC001 for you.
ben.aernouts  (posted 2012-06-21 20:01:25.0)
Dear, We are using the TDC001 controller in combination with the MTS25M-Z8 motorized translations stage. We bought one in December last year and again two last week. Serial numbers are: * December 2011: S/N83833698 * June 2012: S/N83836159 and S/N83836222 The old one was and is still working fine, while the new ones are working totally different and they give very strange movements. Combining the 'old' controller with one of the new translation stage works very good and is not giving any problems. That's where we concluded that the new controllers are not the same as the 'old' ones, while they are of exactly the same type and are accompanied by exactly the same information, software and manual. Since both new controllers are giving the same 'errors', I assume that is not a production fault. When comparing the 'old' controller with the new ones we have the following remarks: * when homing (the stage in combination with a new controller) in the forward direction at the forward hardware limit switch with an offset of 0, it does a forward movement right after the homing at the forward HW limit switch outside the working range of the stage until it (mechanically) blocks. This is not happening for the 'old' controller. * When doing an movement (for the stage in combination with a new controller) to an absolute position (with MoveAbsolute in Labview) after setting the 'relative move distance' (with SetRelMoveDist in Labview) it will go to the absolute position equal to the 'relative move distance', independent from the 'absolute move position' setting (with SetAbsMovePos in Labview). This is not happening when we use the 'old' controller. * For the new controller I have to wait at least 100ms between the end of a movement and sending the command for beginning the next movement (MoveHome, MoveAbsolute and/or MoveRelative). If I don't do this it will pass over this next movement. For the 'old' controller this was not necessary, I could just give a new command after finishing the last movement without waiting. The 'old' controller in combination with the stage was working very good for our application and that's why we decided to order two more of these. But with the new controller, we cannot use it anymore (because of the many errors). Are the controllers from the 'old' type still available (see serial number)? Or have can we solve these problems? Moreover, I just started to test the new controller this week and therefore I presume that there are more differences between the two controller types than the ones I discovered... Many thanks and best regards, Ben Aernouts Catholic University Leuven, Belgium
bdada  (posted 2012-06-08 12:06:00.0)
Response from Buki at Thorlabs to kueifulai: Thank you for participating in our Feedback Forum. I have contacted you with a troubleshooting guide but the issue may be that you are in simulator mode and/or you connected teh USB before the power supply.
kueifulai  (posted 2012-06-07 08:28:45.0)
Hi, I'm using CR1-7 with TDC001 cube and running the latest APT software on Windows XP. The thing is that APT config cannot get the serial number of the cube. Windows does recognize TDC as the APT USB device but there is nothing on the APT config list. However, the APT firmware is able to detect the cube when APT config is off. I tried to reinstall and reboot several times but that doesn't help. Is there any standard procedure to solve this problem?
tcohen  (posted 2012-05-23 11:56:00.0)
Response from Tim at Thorlabs to Doron: Thank you for your feedback. I have contacted you directly to provide support.
doron.azoury  (posted 2012-05-17 09:31:30.0)
Hi, I'm using Z625B stage, and control it with ActiveX in Labview. Every time I run the program after switching on the system the position display shows zero, although it is not at it's home position. Is there a way to save the last position before switching off and restore it when switching on the system. Thank you, Doron
tcohen  (posted 2012-05-03 12:10:00.0)
Response from Tim at Thorlabs to Nicolas: You are correct. ActiveX is 32bit which cannot be recognized by 64bit MatLab. This is not something with a simple work-around. We will work to make this information more apparent for future users.
nicolas.chiaruttini  (posted 2012-05-02 19:55:27.0)
Hi, I've been trying hard to use an active X controller of my solenoid controller on Matlab. APT User is working fine, but I can't detect Active X on Matlab. I wonder if I miss something or if this is related to the fact that Matlab is 64 bit whereas your drivers are 32 bits. Any suggestions ? Thanks
tcohen  (posted 2012-04-19 13:42:00.0)
Response from Tim at Thorlabs to Barry: The Host-Controller Communications Protocol document can be found on our downloads page at http://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=APT. Here you will find the protocol under the "Software and Support" tab.
tcohen  (posted 2012-04-19 09:27:00.0)
Response from Tim at Thorlabs: I have contacted you directly with this information. Please note, however, that as of right now this is still an incomplete DLL.
igkiou  (posted 2012-04-18 23:19:35.0)
Hi, like other posters, I am interested in controlling this device without ActiveX. Could you please provide the relevant C++ header/lib files and documentation (win32)? Thank you in advance for your assistance.
tcohen  (posted 2012-04-09 11:45:00.0)
Response from Tim at Thorlabs: We have plans to make these files available on the website and we are currently preparing supporting documentation before its release. The APT software is intrinsically 32bit. APTUser and APTConfig will run on 64bit Windows on a 32bit emulator layer, WoW64. 64bit versions of Windows do not support 32bit drivers and our 64bit version of APT has the drivers specifically compiled for a 64bit system. However, there are currently no 64bit .DLLs or .LLBs and therefore the ActiveX components will not run within a 64bit client environment. We are looking into developing a true 64bit platform for our motion control stages in the future, but are currently unable to provide this. I have contacted you with the files.
tcohen  (posted 2012-03-27 14:44:00.0)
Response from Tim at Thorlabs: I have sent you the files directly. We’re currently discussing with our engineers to see if this is a file that can be supported directly on the web. In the meantime, our Applications Engineers will be more than happy to assist with obtaining the C++ header files and libraries and can be reached directly at firstname.lastname@example.org.
john.travers  (posted 2012-03-27 11:29:11.0)
Like previous posters, I am looking for C/C++ header files and libraries to control this device. Can you send them to me, or point me in the right direction to find them? Thanks.
tcohen  (posted 2012-03-27 10:44:00.0)
Response from Tim at Thorlabs: Thank you for your feedback! I have contacted you for more information, including your event logs, to diagnose the problem.
cha07jcc  (posted 2012-03-23 11:45:47.0)
I am using TDC001 with Z812 to control the wavelength output of TLK780M. Occasionally and unexpectedly, the Z812 will contract to the hardware limit and attempts to contract some more. This only happens when APT user is running and enabled and the Z812 does not respond to any commands except for "home" and "enable". I have checked that by not using the APT user program, the Z812 does not contract on its own accord. Any help/ workaround? APT user version 1.0.22.
tcohen  (posted 2012-03-21 19:33:00.0)
Response from Tim at Thorlabs to the last two posters: Thank you for contacting us. I have sent you both the files with some instructions. We are currently looking into making this publicly available for future users.
katonag  (posted 2012-03-21 15:27:56.0)
I am also having difficulty finding C++ headers and lib files for applications without ActiveX. Is it possible to build a true 64bit application with these? Please contact me. thanks.
Allan.McCombs  (posted 2012-03-21 13:52:37.0)
My purchasing dept. purchased a TDC001 for me today. I am also having difficulty finding C++ headers and lib files for applications without ActiveX. Thanks,
bdada  (posted 2012-03-16 12:41:00.0)
Response from Buki at Thorlabs to cha07jcc: Thank you for using our feedback tool. We have contacted you to provide the files.
cha07jcc  (posted 2012-03-16 05:39:41.0)
Hi, would it be possible to have C++ lib and header files for use with the TDC001 as I can't locate them directly from the software and support tab. Thanks.
bdada  (posted 2012-03-13 13:45:00.0)
Response from Buki at Thorlabs: Thank you for your participation in our feedback forum and for sharing solutions with other customers.
epetrik  (posted 2012-03-12 14:51:26.0)
Thanks, Thorlabs, for your prompt response to my earlier post! In case anyone else is having trouble running APT on a 32bit Windows 7 machine, here is the workaround we came up with: Install this Windows XP simulator from Microsoft: http://www.microsoft.com/windows/virtual-pc/download.aspx, and then install and run the software from the virtual XP machine. (Simply running APT with the computer's built-in XP compatibility mode did not work for us.)
tcohen  (posted 2012-03-07 11:25:00.0)
Response from Tim at Thorlabs: Thank you for contacting us. The documentation and c++ files are available on the "Software and Support" tab at http://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=APT. I have also sent you the files directly.
tcohen  (posted 2012-02-29 11:13:00.0)
Response from Tim at Thorlabs: Thank you for your feedback. It seems that when upgrading to Windows 7 the values for the file directory may have been changed (can't find DLL file). APT Config and APT User are compatible with Windows 7, so the first thing to try would be uninstalling and reinstalling the program. I have contacted you directly for further troubleshooting.
epetrik  (posted 2012-02-28 17:05:01.0)
APT Config and APT User stopped working when I upgraded to Windows 7. When I run APT Config using Windows XP compatibility mode on my machine, it gives the following error on startup: Error [Code = 10105]; [MG17Comms.DLL] Internal Code 19411409. Thanks for any help you can offer!
bdada  (posted 2012-02-08 20:30:00.0)
Response from Buki at Thorlabs: Thank you for your feedback. We do not have your contact information, so please email TechSupport@thorlabs.com so we can assist you further.
bdada  (posted 2012-02-07 14:05:00.0)
Response from Buki at Thorlabs: I am sorry you have not received the files yet. I have emailed you a link to our ftp site where you can download the files. It is possible the earlier email was not delivered due to the size of the files. Please contact TechSupport@thorlabs.com if you have any questions.
hanxu1981  (posted 2012-02-06 21:20:36.0)
Dear Tyler, I am still waiting for the files you promised to send me. Thess files should include "C++ header file, DLLs and libs" for controlling TDC001. Can you send them to me as soon as possible? Best Regards, Han Xu ============================================= Poster: Posted Date: 2011-12-05 18:47:39.0 A response from Tyler at Thorlabs to hanxu1981: We do have a beta version that is not part of our official SDK. We will send you the files and the supporting documentation that we currently have available.
user  (posted 2012-02-01 09:28:07.0)
hard to find accuracy/error on specifications
bdada  (posted 2012-01-24 12:46:00.0)
Response from Buki at Thorlabs: Thank you for using our feedback forum. We have sent you the dll files. Please contact TechSupport@thorlabs.com if you have any questions.
chris  (posted 2012-01-23 16:44:30.0)
Hello, We are using the TDC001 with the MTS50-Z8. I would also like to request the beta, non-ActiveX libraries/headers. Thanks, Chris
ian.mcdowall  (posted 2012-01-07 00:52:16.0)
Hi - I have the PRM1Z8 & TDC001 and would please like the C++ (non ActiveX) interface please. Thank you Ian
bdada  (posted 2012-01-06 12:00:00.0)
Response from Buki at Thorlabs: Thank you for your feedback. We have sent you a dll file. Please contact TechSupport@thorlabs.com if you have any questions.
j.borbely  (posted 2012-01-06 08:47:52.0)
Hi, I would like the C++ libraries/headers/dll for controlling the rotation stage (PRM1/MZ8) via the DC servo controller (TDC001) so that I can control the rotation stage without using ActiveX
bdada  (posted 2011-12-28 11:55:00.0)
Response from Buki at Thorlabs: To the customer who just bought TDC001 and Z825B, the problem you described is a known error that we are currently reviewing. For the time being a work around would be to install previous version of the software, please install version V2.11.0 from the archives tab on the APT download page http://www.thorlabs.us/software_pages/ViewSoftwarePage.cfm?Code=APT The add the stages to APT user: 1) please connect the stage then power up. 2) open APT config, 3) check that simulator mode is DISABLED. 4) Click on the stage tab 5) go to the motor drop down menu and select the serial number of your TDC001. 6) Select the stage from the stage drop down list. 7) Exit APT config 8) Open APT user and the controls should be present Please contact TechSupport@thorlabs.com if you still experience any problems.
bdada  (posted 2011-12-19 16:01:00.0)
Response from Buki at Thorlabs: The StartCtrl method does take a long time to enumerate, unfortunately there is no real way around this using activex. The start control needs to run through a number of housekeeping tasks before the controller can be initialised. The start control method is required APT server operation and used in APT user and Labview. The only thing that might speed this up is if you open APT config and go to the Server Settings tab. In here you will be able to change the enumeration dwell time. This is the time that the system takes to enumerate all the devices on the USB bus. If you are running many devices this will need to be increased to ensure that all the stages are fully initialised. You can also decrease this dwell time, however reducing this too much will cause communications and time out errors if APT is not given enough time to start correctly. It may need to be changed several times before a satisfactory result is achieved, the default is 5000ms. Please contact email@example.com if you have additional questions.
bdada  (posted 2011-12-15 12:31:00.0)
Response from Buki at Thorlabs: When inserting the activex control into the container please select “MGMotor Control”. This will insert the motor control GUI and will make all the relevant motor activex available to you. Please also refer to our Labview and APT guide, which is linked in the "APT Tutorials" tab on the product page: http://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=2419 Please contact TechSupport@thorlabs.com if you have further questions.
jahnruehrig  (posted 2011-12-14 18:54:18.0)
@ftam: Just select the MG17 Motor like in the Tutorials... It will notice to be a rotation stage and change to the right GUI. But i have another Question. I implemented the stages (PRM1Z8) into labview and i can rotate them using NumCtrl Box where i can write angles and then run the program. But i noticed that this is really slow. From execution of the program until first movement of the stage it takes ~6s !!! The thing is i dont want to use the GUI supplied (and cant use it) for i have another GUI running. I just want to call a subVI and tell it "go to that absolute angle". Is it possible to kind of low level talk to the stage/controller and tell it FAST to rotate to a desired abs angle without loading the whole GUI (at least i think loading the GUI is what it makes slow)? Thanks in andvance
bartosz.marszalek  (posted 2011-12-14 10:16:28.0)
Hello, I just bought TDC001 and Z825B motor. I installed software that was included and I report the same problem as byung.yang.lee and Sebastian_Brake - more information: Error: [CODE: 10112]; [MG17Core.DLL] Internal Internal code: 19312709 Extra info:Hardware unit (S.N. 83******), detected firmware version 1.0.1, latest firmware version is 1.0.5 This occurs even when I uninstalled whole device (including its driver) and turned APT Config tool without (!) connecting my TCD001 to USB port. Moreover I don't have access to firmware upgrade (in APT Firmware tool) as Sebastian_Brake (no '+' sign nor Flash Upgrade button activated) Thank you in advance, Bart
ftam  (posted 2011-12-12 08:42:13.0)
Hello all! I have a DC servo controller (TDC001) and a rotation stage (PRM1/MZ8) and I'm not being able to use the Active-X to control it via Labview. I've followed the video examples but I don't know which Active-X object I shall select from the list because PRM1/MZ8 is not present there. Any help on this? Thank you very much in advance!
user  (posted 2011-12-09 13:55:57.0)
A response from Tyler at Thorlabs: Thank you for the great feedback on our beta DLLs. I will pass it on to our programing team along with your email address so that they can send any updates directly to you.
trose  (posted 2011-12-09 05:43:59.0)
Thanks a lot! I got it running nicely. One question, though: all movement dll methods are synchrounous (blocking). This is not a huge issue for me but it prevents for instance a emergency stop command from being registered during movement. Furthermore, since I am loading the library under matlab all further program execution is also blocked during moves and I cannot address my two motors at the same time to do diagonal moves. This was possible with the ActiveX controls. Is there any chance that you will implement asynchroneous (non-blocking) methods in the future? Thanks a lot, Tobias
bdada  (posted 2011-12-07 14:43:00.0)
Response from Buki at Thorlabs: We have sent the attachments to the new email address you provided. Please contact TechSupport@thorlabs.com if you have any questions.
user  (posted 2011-12-06 09:09:36.0)
A response from Tyler at Thorlabs: We would be happy to send you our beta SDK. Thank you for your interest.
trose  (posted 2011-12-06 03:58:30.0)
Hi Tyler! Could you please send me the c++ header file, dlls and libs (plus any documentation you might have) as well? I am trying to implement low-level control in Matlab and do not want to use the ActiveX controls for that. Thanks a lot, Tobias (firstname.lastname@example.org)
user  (posted 2011-12-05 18:50:01.0)
A response from Tyler at Thorlabs: Hello Sebastian, I will have an application engineer contact you to help troubleshoot the problem that you are experiencing. Thank you for contacting us.
user  (posted 2011-12-05 18:47:39.0)
A response from Tyler at Thorlabs to hanxu1981: We do have a beta version that is not part of our official SDK. We will send you the files and the supporting documentation that we currently have available.
Sebastian_Brake  (posted 2011-12-05 17:34:09.0)
I have the same problem with TDC001 that "byung.yang.lee" might have. I'm trying to use TDC001 with PRM1-Z7 motor. The APT Config gives me error (Code 10112) of incompatible firmware version, that I should upgrade from 1.0.1 to 1.0.5. However, when I use APT Firmware, only the USB item line (one line) appears, and I cannot get the firmware upgrade button (Flash Firmware) activated. There is no "+" sign to expand the node and display the available controllers. What is the solution?
hanxu1981  (posted 2011-12-01 18:55:45.0)
Dear Sir, Can you send me a C++ header file, DLLs and libs? Because I don't want to use the ActiveX platform, and would like to use command line in C++ to control the motor. If it is possible, can you also send me some example of the command line contrl? My email address is Hanxu1981@gmail.com. Best, Han Xu
user  (posted 2011-11-29 20:19:01.0)
A response from Tyler at Thorlabs to katonag: We will contact you to work through some troubleshooting steps with you. I am sorry for the delay that this is causing, we will get you back on track quickly.
katonag  (posted 2011-11-29 17:01:12.0)
I have the same freezing problem with TDC001 that rpearson might have. The cube sometimes freezes, and can not be contacted again: It can be seen in the device manager, but not in the APT config. This freezing might be somehow related with power - it appears usually at system startup, and being fine once working. Im controllling PRM1z7/PRM1z8 with the cube. Repowering the cube usually helps, but not always.
bdada  (posted 2011-11-15 17:59:00.0)
Response from Buki at Thorlabs.com: Thank you for your feedback. The issue may be related to your installation of the latest version of the APT software. Please try installing the previous version, which can be found under the APT software page under the archives tab, until we resolve the issue: http://www.thorlabs.hk/software_pages/ViewSoftwarePage.cfm?Code=APT The issue also seems to occur more often in simulator mode, so please check that this is not enabled when trying to use the stage. We have contacted you to provide further support.
byung.yang.lee  (posted 2011-11-14 16:23:43.0)
I'm trying to use TDC001 with Z812B motor. The APT Config gives me error (Code 10112) of incompatible firmware version, that I should upgrade from 1.0.1 to 1.0.5. However, when I use APT Firmware, only the USB item line (one line) appears, and I cannot get the firmware upgrade button activated. What is the solution?
bdada  (posted 2011-11-08 10:10:00.0)
Response from Buki at Thorlabs: Thank you for using our Feedback Tool. The settings are saved in the registry under Thorlabs\APT Server. Please contact TechSupport@thorlabs.com if you still have any problems locating the settings file.
stripa3  (posted 2011-11-04 03:09:30.0)
I am trying to control a PRM1-Z7 motorized stage with a TDC001 controller through APT user. However, amount of rotation observed and amount requested are not the same, prior being roughly one third of the later. Strange thing is that with the same settings another set of TDC001 and PRM1-Z7 works fine. I would appreciate if you could give me some pointers.
stripa3  (posted 2011-11-03 23:05:37.0)
How can I locate the settings file saved using the APT user.
bdada  (posted 2011-10-27 19:02:00.0)
Response from Buki at Thorlabs: To the last two posters, thank you for your feedback. We have contacted you with troubleshooting tips and will consider adding the information to our website and manual to assist other customers that may experience the same issues. Please contact TechSupport@thorlabs.com if you have any questions.
jeulin  (posted 2011-10-26 11:36:30.0)
I'm having the same problem as 'rpearson' with one of our TDC001. We using another TDC001 we had from before to control the motorized rotating stage. It seems to work so far. But it appears to be a recurent issue, do you know what to do to fix the damaged TDC001?
rpearson  (posted 2011-10-25 13:41:35.0)
I'm using a TDC001 with the PRM1-7S Motorized Rotating Stage. the same computer is also fitted with a BSC103 3 axis stepper stage controller. I'm using the ActiveX controls from within MS VC++ 2008, the BSC103 and three axis perform great, but the rotating stage periodically looses communication and either keeps spinning or doesn't move at all causing a crash. Using APT User the same results are occurring if I try to jog, or move the rotating stage to a particular angle, it spins uncontrollably. Restarting the computer sometimes resolves the issue but not always. Is this a driver issue? or a conflict between the two? Have you seen this sort of behavior before? Thanks, any advice appreciated! When the device works it is tremendous. -Rich
bdada  (posted 2011-10-12 19:03:00.0)
Response from Buki at Thorlabs: Thank you for notifying us of the problems you have experienced while using the APT software. We have contacted you to resolve the issue.
bdada  (posted 2011-10-12 19:00:00.0)
Response from Buki at Thorlabs: Thank you for using our Feedback tool. Yes, you can use the CR1-Z7 with the TDC001 cube and select CR1-Z6. The drift you see could be related to the gear and thrust plate. You could reduce it by tightening the screw that holds them together. We have contacted you directly to provide further support.
kk106046  (posted 2011-10-05 00:46:32.0)
I got same problem as below.The system environment is windows 7 (32bit). I having problems loading the APT user and APT config that comes with TDC001 Servo Motor. It takes an hour or even more for the APT user / APT config to load. The system environment is windows 7 (32bit). The device is detected and works fine after an hour. I also made clean install (re-installing all drivers and software) but this did not help. Please advise. I got this error during APT config software loading "Failed to read values". Although after hours of loading, APT config can still detect the device. May be the APT config is looking for a missing file. Please advise.
jesus.alvarez  (posted 2011-09-29 11:21:30.0)
Is there support for using the CR1-Z7 with the APT for Labview? We are using the CR1-Z7 with the TDC001 cube and there is no possible to choose the CR1-Z7 station in the list, so we choose the CR1-Z6 but there is a drift in the angle feedback.
bdada  (posted 2011-09-27 20:50:00.0)
Response from Buki at Thorlabs: Yes the Z6 motor will work with the TDC001 and the part number for the adapter is 161699. This adapter is in stock and can be ordered by calling our Sales Department at 973 300 3000 or by emailing email@example.com
mgroom  (posted 2011-09-26 09:09:44.0)
We have a CR1-Z6 rotation stage controlled from a DCX-PCI100 board. Our DCX-MC110B driver module appears to be damaged and my understanding is that Thorlabs no longer supports this product. Question: If we purchase a TDC001 module can we operate our CR1-Z6 (not the CR1-Z7) rotation stage from it? If so, what is the part number of the adapter cable that will allow us to connect the CR1-Z6 rotation stage to your TDC001 module?
bdada  (posted 2011-08-25 13:14:00.0)
Response from Buki at Thorlabs: We have contacted you to troubleshoot the issues you're experiencing with the APT software.
alvarado.tarun  (posted 2011-08-25 03:11:47.0)
I got this error during APT config software loading "Failed to read values". Although after hours of loading, APT config can still detect the device. May be the APT config is looking for a missing file. Please advise.
alvarado.tarun  (posted 2011-08-25 03:02:28.0)
I having problems loading the APT user and APT config that comes with TDC001 Servo Motor. It takes an hour or even more for the APT user / APT config to load. The system environment is windows 7 (32bit). The device is detected and works fine after an hour. I also made clean install (re-installing all drivers and software) but this did not help. Please advise.
jjurado  (posted 2011-08-04 16:39:00.0)
Response from Javier at Thorlabs to David: Thank you very much for your feedback. There are a couple of parameters to consider in order to ensure that the APT Configuration utility effectively detects the T-Cube controllers. The first one is to make sure that the Simulator Mode is not active. This mode can be disabled in the Simulator Configuration tab of the APT Config. Utility. The second point, and perhaps the most important one, is to keep in mind that the order in which the T-Cube is connected to the wall outlet (via the power supply) and the PC (via USB cable) matters. Due to the internal circuitry of the T-Cubes, it is necessary to connect the USB cable before powering up the controller. In the majority of instances, the APT Config can then effectively detect the device. I will contact you directly for further support.
david  (posted 2011-08-04 04:18:29.0)
THE TCUBE APT CONFIG CAN NOT FIND USB AGAIN AND AGAIN YET DEVICE MANGER CAN FIND IT!!!!!!!!!!
bdada  (posted 2011-07-28 15:56:00.0)
Response from Buki at Thorlabs: It sounds like the PC has lost communication with the T cubes. Please try to connect the T cubes with USB cables instead of the TCH001 HUB. We have contacted you to troubleshoot this further.
bdada  (posted 2011-07-28 14:14:00.0)
Response from Buki at Thorlabs. Thank you for your feedback. We have contacted you with the beta version of the files you need.
zlatko.mickovic  (posted 2011-07-28 12:04:57.0)
We are having hardware timeout issues with our TCH001 HUB with 3 TDC001 servo motors on it. They work fine with the APT User program, but recently stopped working when I access them through Labview. Midway through a program execution, it stopped and I got the error code 14422805, "Hardware response timeout." Any ideas of how to troubleshoot? This program had been working for several years and now nothing.
mhansen  (posted 2011-07-27 10:26:15.0)
I would also like to communicate directly with the motor using C++. Can you send me any available documentation for doing this, the header file referenced in other comments, and any examples you have? Why isnt this included with the standard software download/install? Thanks!
jjurado  (posted 2011-07-22 17:09:00.0)
Response from Javier at Thorlabs to kruckenbergj: Thank you very much for contacting us. You can access our video tutorials for Visual C++ through the following link: http://www.thorlabs.com/tutorials/APTProgramming.cfm. We also offer documentation for developing your own application in C++ when the ActiveX platform is not desired. I will contact you directly with this information.
kruckenbergj  (posted 2011-07-21 18:09:57.0)
Hello. Do you have examples of C++/C# communication interfaces for a TDC001?
jjurado  (posted 2011-06-27 13:34:00.0)
Response from Javier at Thorlabs to dherst: I will send you our advanced communications protocol for direct C++ communication shortly.
dherst  (posted 2011-06-24 04:24:13.0)
Hi, Im struggling with the TDC001 for some time now. I couldnt use the Active interface so I tried to use a C++ interface. My ultimate goal is to use a C++/Python wrapper. But for now I cant find a way to send commands to the TDC through ftd2xx.h even if it seems to be the way to go according to this helpful page. Can you send me some documentation or even better an example of a working programm? As of today I can only use this motor manually which is far from satisfactory. Thanks in advance! Customer Email: firstname.lastname@example.org This customer would like to be contacted.
jjurado  (posted 2011-05-24 17:00:00.0)
Response from Javier at Thorlabs to draper: Than you very much for contacting us. We have compiled a series of files and documentation that might be helpful for your application. I will contact you directly with this info.
draper  (posted 2011-05-25 03:36:09.0)
Hi-- Our lab has been using your shutters and shutter controllers for many years with great success. Weve been controlling them via the Activex interface, but for increased flexibility, are trying to move all our software control to a combination of C++/Python. For now Ive accomplished this using ftd2xx.h, but its not a long term solution. Are there C++ libraries/headers for controlling the TDC001, or some details on the parameters and serial commands to use through ftd2xx? Thanks!
bdada  (posted 2011-04-28 09:14:00.0)
Response from Buki at Thorlabs: Thank you for your feedback. We have sent you an advanced communications protocol document. Please contact TechSupport@thorlabs.com if you have further questions.
tobias.gresch  (posted 2011-04-27 17:44:02.0)
I prefer the TDC001 to the bulky DCX-PCI100 card. However, without possiblity of driving the motor from linux it has no use for us! Is there a good controller interface documentation available such that we can access to it over a wrapped libusb or c/c++? If yes I would be interested in it in order to evaluate if we can use the TDC001 or if we need to go on with the DCX-MC110B/DCX-PCI100 from PMC. Thanks.
jjurado  (posted 2011-03-28 08:55:00.0)
Response from Javier at Thorlabs to dirk.taillaert: I will send you this documentation shortly. Best regards.
dirk.taillaert  (posted 2011-03-25 13:23:12.0)
I understand the documentation and c++ lib/header files for using the TDC001 controller without the ActiveX control are available upon request. I would also like them. Thanks.
jjurado  (posted 2011-03-17 16:02:00.0)
Response from Javier at Thorlabs to sschafer: I will contact you directly for assistance with your application.
sschafer  (posted 2011-03-17 12:38:32.0)
Hi, I finally was able to check the communication via the serial commands you sent me (thanks for that!) - but I was wondering, how exactly the position steps are defined? Im using the TDC with a PRM1-7Z (and want to add a CR1 soon) and get weird results with the absolute move command (often not moving at all, sometimes it keeps rotating forever). Am I wrong that the structure of the data packet should look like 0x01 (for the channel) 0x[5byte-long number for the position steps]? If you could tell me the stepsize or range over which the position is defined, Id be really grateful. Cheers.
jjurado  (posted 2011-03-11 10:47:00.0)
Response from Javier at Thorlabs to quod17: I will send you this documentation shortly.
quod17  (posted 2011-03-11 01:30:01.0)
I would also like a list of commands (and documentation) for using the TDC001 controller with USB or serial commands without ActiveX.
jjurado  (posted 2011-03-10 17:43:00.0)
Response from Javier at Thorlabs to otobrzo: Thank you for contacting us with your request. A complete list of methods with their respective descriptions is included with the APT software utility's help file. You can find the information via the following path in your computer: Start > All Programs > Thorlabs > APT > Help > APT Server Help. Under the Programming Guide, expand the Motor Control section. Once there, you will find the Motor Control Methods.
otobrzo  (posted 2011-03-10 17:29:06.0)
Hello, I have bought TDC001 controller together with the actuator. I have followed the labview tutorial and I got very basic program. I need a list of Methods with description. Especially I need control the starting of jogging and its direction. A setting od Step Size I have solved. Please could you send me such List.
jjurado  (posted 2011-02-15 09:22:00.0)
Response from Javier at Thorlabs to ktwelker: Thank you for submitting your request. I will send these files and instructions to your e-mail shortly. A full release is coming soon.
ktwelker  (posted 2011-02-14 21:10:41.0)
I would also like the lib and headers for C++. Thanks!
jjurado  (posted 2011-02-11 09:52:00.0)
Response from Javier at Thorlabs to m.j.rossewij: Thank you very much for contacting us with your request. This could be one of two possibly related issues, either APT Config enumeration or Timeout error. The first thing to do is to open the APT Configuration Utility. Click 'Server Settings' tab, and increase the Enumeration Dwell Cycles from 5000 to 10000, click set (basically double the present value). Also ensure the 'Log Hardware Communications' box is checked. This will generate an error log file. If the problems persist, you can send us the this file in order to monitor the communications prior to the fault. I hope this helps.
m.j.rossewij  (posted 2011-02-10 15:50:18.0)
We have a setup with the following items connected to a PC: - BSC103 - HUB TCH001 with 1x TQD001 quad cell PID & 2x TPZ001 piezo driver - HUB TCH001 with 4 x TDC001 servo driver When using APTUser or our own Active-X application, the servo stop responding after some time (might work fine for hours). It also happens that the system is powered for some time and when the APTUser is started, some/all servo drivers are not present (although present in the windows device manager) or do not respond. The other items (stepper, quad cell and piezos units) always work fine. What could be the reason for this? This might be of relevance: 1) Before, we encountered the problem that one of the TDC001 servo Cubes velocity potentiometer did not return to its stationary position resulting in spontaneous movement of the stage. We could fix this by increasing the velocity 1 pot deflection from 20 to > 25. 2) We access/login onto the PC with a remote desktop session.
heidemann  (posted 2011-02-10 12:13:19.0)
Yet another user that would be very happy to recieve lib and headers for non-activeX purpose. Any addtional documentation on the serial interface would be nice, too. Best regards Carsten
jjurado  (posted 2011-02-04 17:30:00.0)
Response from Javier at Thorlabs to Leif: We will send you this documentation shortly.
leif  (posted 2011-02-04 16:41:34.0)
Yet another user that would be very happy to recieve lib and headers for non-activeX purpose ... Best regards Leif
tor  (posted 2011-01-10 14:27:19.0)
Response from Tor at Thorlabs to sschafer: Thank you for your suggestions, as they are always very much appreciated. I will send you the requested file shortly.
tor  (posted 2011-01-10 14:22:30.0)
Response from Tor at Thorlabs to Justin: I will send you the file shortly.
sschafer  (posted 2010-12-23 11:37:31.0)
Hi, I also would like to implement computer control of the TDC001 without using ActiveX, but rather just sending commands via the virtual serial interface the usb bus provides. Id be grateful, if you could send me a list of the commands or sth similar. In addition, you might consider to put additional info on that in your documentation? The problem with activeX is not only that it only works on Win, but rather that it is not reliable and causes some serious timing and error handling problems when implemented in Labview.. Thank you very much.
justin.m.gregory  (posted 2010-12-22 14:37:31.0)
I would also like to have the relevant C++ header files and examples, please.
Thorlabs  (posted 2010-12-02 09:23:28.0)
Response from Javier at Thorlabs to willtalmadge: I will send you the file shortly.
willtalmadge  (posted 2010-12-01 16:34:49.0)
I see that the c++ header files used for communicating with the TDC001 are available on request. I understand they arent supported and would like to be provided with them if possible. I would like to write software that controls this device without the use of the activex control.
tor  (posted 2010-11-12 16:47:08.0)
Response from Tor at Thorlabs to moskalev: Thank you for your inquiry; per our email correspondence, the CR1-Z7 is not configured for limit switch use. Please do not hesitate to contact us if you have further inquiries.
moskalev  (posted 2010-11-12 13:16:51.0)
Hello. We are using CR1-Z7 rotation stages in some of our systems with TDC001 controller. We rotate the stages within a limited angle range. I know there is a setting in the APT User software to define min and max rotation angle. However, for safety reasons we must have hardware limit switches. We are planning to implement our own external limit switches for CR1-Z7 stages. As it follows from the TDC001 User Manual, the controller is capable of detecting hardware switches. My question is: how these limit switches work? Can we use simple push-button switches for that purpose? Thank you.
Thorlabs  (posted 2010-09-08 17:19:50.0)
Response from Javier at Thorlabs to marc.cizeron: There is no additional dll file that is needed. The file that you reference is part of the USB drivers for the TDC001. I would strongly recommend using the ActiveX interface, since there is a lot of user development necessary in order to control the system using low level language. You can find the APT programming guide under Start > Thorlabs > APT > Help > APT Server Help.
marc.cizeron  (posted 2010-09-07 15:54:40.0)
Thanks for your answer. After some research Im able to understand better my problem. There is a .dll file I have to use with this header ? I guess its the file ftd2xx.dll, located in "C:\Program Files\Thorlabs\APT\APT Drivers\USB Driver\i386" ? I havent got any APT Programming Manual. Where can I find it ?
Thorlabs  (posted 2010-09-03 16:45:55.0)
response from Javier at Thorlabs to marc.cizeron: the header file that we have put together basically consists of the declarations described in the APT Programming Manual. Low level programming in general will require the user to adapt the given information to the specific local requirements. Code might have to be changed or created by the user in such case since the intended way of communicating with the device is via the supported Active X container. We will contact you directly to check if we can give further advise for your specific configuration.
marc.cizeron  (posted 2010-09-03 10:59:11.0)
Im sorry to bother you, but the header you sent me have a lot of C++ error. I cant understand how can I use it. Could you resend-me a correct header, or somme documentation about how to use it ?
Thorlabs  (posted 2010-08-20 10:54:29.0)
Response from Javier at Thorlabs to bob.m.robertson: Thank you for your feedback. All of the APT software support documents and files are available for download on the web (see Software tab). We can send a C++ header file to customers who prefer bypassing the ActiveX platform and would like to develop their application in C++. We do not support Python, so we do not have example programs developed in this environment.
bob.m.robertson  (posted 2010-08-20 05:26:10.0)
I want to use a TDC001 with a low level serial library to use it in a python programm. Sadly, I havent figured how to do that correctly. From the other feedback I understant that there is some low-level communication manual or even an example program. Could you send them to me? (Why those documents are not easily downloadable?) Thank in advance
Thorlabs  (posted 2010-08-18 13:19:23.0)
Response from Javier at Thorlabs to julien.jaeck: I will send you the C++ header shortly.
julien.jaeck  (posted 2010-08-18 10:21:58.0)
Hi, like many people I cant use the ActiveX control correctly with my programs. Is it possible to have C++ headers and/or a library? Thanks in advance.
Thorlabs  (posted 2010-08-16 13:05:02.0)
Response from Javier at Thorlabs to colm.fallon5: Thank you for your feedback. We can certainly take your control unit back for inspection and repair. I will contact you directly.
colm.fallon5  (posted 2010-08-16 09:18:15.0)
Hi, I have an old faulty product. IS there anywhere I can get it repaired?
Thorlabs  (posted 2010-07-29 17:55:58.0)
Response from Javier at Thorlabs to marc.cizeron: I will send you the files shortly.
marc.cizeron  (posted 2010-07-29 18:25:58.0)
Dear Sirs, like Zoltán Vörös, I dont whant to use the ActiveX module, and I you like to whrite my own programme in C++ or C#. Where can I find the c++ headers and library file. Sincerely yours, Marc Cizeron.
Thorlabs  (posted 2010-07-21 15:20:44.0)
Response from Javier at Thorlabs to elgooga: I will send you the document shortly.
elgooga  (posted 2010-07-21 15:00:51.0)
Can I also get the guide too? Thanks.
Thorlabs  (posted 2010-07-19 11:19:45.0)
Response from Javier at Thorlabs to Steven: I will send you a guide for the implementation of our APT software into LabVIEW. It should help clarify most, if not all, of the questions that might arise in your application.
stevenpaulmaxkeith  (posted 2010-07-14 17:04:08.0)
Thanks a million Oli, that really did the trick! Now all that seems to be needed is a more detailed breakdown of all the ActiveX methods and properties available in LabView. Findings of good examples of their specific uses outside the official documentation are sparse and generally lackluster. Oh well. Thanks again for the help!
user  (posted 2010-07-14 06:19:44.0)
A response from Oli at Thorlabs to Steven: Hi, you can alter this by changing the zero offset of the home position. This can be found under the stage/axis tab. If you alter it by 0.7351, this should solve the problem. If not, dont hesitate to contact us!
stevenpaulmaxkeith  (posted 2010-07-13 16:06:41.0)
Hello, I want to reset the GUI so that when I press Home the motor moves my PRM1Z8 to the physical location of zero. It currently moves to -0.7351 and I havent found a simple explanation of a way to change this. Thanks ThorLabs!
user  (posted 2010-07-08 08:24:17.0)
A response from Oli at Thorlabs: Hi, the latest release (v 2.10.0) is compatible with 32 bit windows 7 (download X86). Unfortunately the 64 bit version is not yet released (which is why we dont state compatibility), but is due in the next few weeks. The download is here; http://www.thorlabs.co.uk/software_pages/ViewSoftwarePage.cfm?Code=APT
user  (posted 2010-07-07 15:18:22.0)
When will support for windows 7 be added? I see below that it was meant to arrive by the end of June--is there a new software release pending, or has the deadline been shifted? Thanks!
Thorlabs  (posted 2010-07-07 15:42:24.0)
Response from Javier at Thorlabs to claude.lemen: thank you for your feedback. The actuator should run at the desired velocity below, but you are approaching the motion limits of the device. These actuators are not constant velocity so there will always be a delay in the acceleration start and the de-acceleration stop. Also, the response of the motor changes as it undergoes wear an tear over time. Modifying the PID settings would help, although we are not sure to which extent, since each actuator performs slightly different due to the mechanics.
claude.lemen  (posted 2010-07-04 12:59:59.0)
I use a TDC controller with a Z812 motor ... Very easy implementation was done using Labview and DirectX Control ... However, due to the very precise closed loop control (0.0001mm), the Step I want to do (typ. 0.15mm) are a bit slow to me(0.5s) ... PID could be adjusted in the Settings, but do not allow to accelerate so much, due to the precision of 0.1 microns required by the closed loop ... I dont need such a precision, 1 micron or less would be enough for me ... Is there a possibility to adjust this parameter so that PID could be increased to accelerate the jog (0.15mm) to something like 0.1 s (or better) Many thanks Claude
Thorlabs  (posted 2010-06-28 15:39:40.0)
Response from Javier at Thorlabs to zvoros: I will send you a file with C++ header and library files for developing your own command line application. Also, I would encourage you to sign up for our open forum, where you will find more useful information about application development. You can sign up through this link: http://forums.thorlabs.com/index.php
zvoros  (posted 2010-06-28 09:00:07.0)
Dear Sirs, I would actually like to ask a technical question related to TDC001. I would like to write a command line application for Windows in C++, and I was wondering where I should find the header and library files for that. I have searched for them in the folders that were installed with the APT package, but couldnt find anything relevant. I definitely dont want to write an application with GUI, therefore, the supplied ActiveX module is out of question. Sincerely yours, Zoltán Vörös
Javier  (posted 2010-06-21 16:33:34.0)
Response from Javier at Thorlabs to last poster: we will make sure to update the documents for our motion control software with the correct instructions.
user  (posted 2010-06-21 15:47:51.0)
Regarding Stephens comments from March, I had the exact same problem, and fortunately, unplugging the device and plugging it back in cleared the error. I should note that this operation is the opposite of what the installation instructions say in numerous places, and there is no mention of power cycling the device after the initial setup is complete. It would be very helpful to future users to revise the installation instructions.
Adam  (posted 2010-05-28 09:37:05.0)
A response from Adam at Thorlabs to mrubio: I can send this data to your email address. I will contact you immediately.
mrubio  (posted 2010-05-28 06:39:13.0)
I would like to use a unix box to control a PT1/M-Z8 actuator attached to a TDC001. Where can I find the low level communications reference manual or programming examples?
Adam  (posted 2010-05-03 09:20:33.0)
A response from Adam at Thorlabs to johann: We do have a Labview programming guide that we can send to you. I will send it immediately. Please also note that programming tutorials can be found on this website under the tab video tutorials.
johann.georges-des-aulnois  (posted 2010-05-03 04:37:13.0)
Hello, I use a TDC1 with a PRM1/MZ8 since a few months. Ill have to use a labview RT infrastructure very soon and I would like to have a labview exemple that will work with it. Please contact me by email about that
jens  (posted 2010-04-01 17:59:14.0)
A reply from Jens at Thorlabs to Wing: yes, the TDC001 can be used with the DC motors in the T25 stage. Since the stage was originally used with the ODC controller you will need an adapter cable Z600-TCab1 which can be requested via email@example.com. We will send price information via email.
wwong  (posted 2010-04-01 17:22:51.0)
Dear Sir: Can TDC001 drive T25XYZ linear stage? Thanks, Wing Wong 310 349 2465
jens  (posted 2010-03-29 17:48:37.0)
A reply from Jens at Thorlabs to Stephen: a possible reason could be that the controller was switched on before the USB cable was connected to the control PC. Please close the APT configuration software and power cycle the controller, i.e. simply switch off and wait a few seconds, than turn on again. The link should now be established.
stephen.roberson2  (posted 2010-03-29 17:38:13.0)
I just got the TDC001 motor, Z825B stage, and APT software earlier today. Im trying to get my TDC001 to work using the computer, but Im not having much success. I installed the software like the manual says, but when I run the APT configuration utility program, the TDC001 does not even show up as a choice in the motor pop-up menu. Additionally, my stage is a Z825B and there is not a choice for that stage in the APT configuration utility program. I have uninstalled and reinstalled the software three times with the same result. I am running version 2.9.0 according to the disk I installed. I dont know what more to do. Please help me.
user  (posted 2010-03-17 06:48:54.0)
A response from Oli at Thorlabs to Michaelorger: Unfortunately we dont currently support 64 bit Windows 7. The next release will support Win 7 64bit via its 32bit emulation (WOW) and should be ready by the end of June. As a quick fix until then you should be able to get it to run in a virtual XP environment on your windows 7 machine.
michaelorger  (posted 2010-03-16 20:33:44.0)
When I connect my tdc001 controller to a computer running windows 7 64bit, I go straight to a blue screen of death. When I try to install the APT software, the installer aborts mid-install. Is this expected, and if so, will Windows 7 64 bit support be added soon?
jens  (posted 2010-02-28 14:56:54.0)
A reply from Jens at Thorlabs to Vladimir: I will send you an example program in C++. Also in the APT help folder there is a link to the APT Server Help, which inlucdes descriptions for all the methods used for the different T-cube products. Further on if you are interested you can register at http://forums.thorlabs.com/ to get access to a forum where some of our customers have posted their programming examples.
vladimirlee  (posted 2010-02-27 22:42:45.0)
I am interested in using c++ or python combined with serial library to talk with TDC001, but havent really figured out how to do that. Could you show me an c++ example if possible?
jens  (posted 2010-02-05 12:20:03.0)
A reply from Jens at Thorlabs: the controller chips is a USB 2.0, but it also supports USB1.1. A distance of 50 meter with a USB cable connection will not work due to the general design of USB links. It was basically optimized for desktop applications. After at most 5 meter you will have to use a powered USB hub and with that you can extend the lenght from about 5 meter for a single cable to about 25 meter using 5 hubs. It should work if you could place a computer/laptop closer and go via a network link to the final location.
neil.roberts  (posted 2010-02-05 10:51:40.0)
Is the TDC001 USB2.0 or USB1.1? And is it compatible with USB extenders as I would need to mount it about 50m away from the PC?
leichner  (posted 2009-08-04 17:23:32.0)
The APT software(s) are ActiveX controls, by default there are no individual programming libraries including VIs for LabView. Once an AcitveX control is imported into an application programming environment that supports ActiveX then all the methods (functions) will be created in that application. There are tutorial videos that can start you off in LabView, LabWindows CVI, VB and Visual Studio C++ 2008 (MFC, Microsoft Foundation Classes). These are typical helpful and can be downloaded fromt eh Thorlabs webpages. You can also find some sample programs that we included onthe distribution software CDROM. They are also typical and more then likely will not be sufficient but they are sample code and will assist you in developing your own application.
jens  (posted 2009-06-18 18:36:45.0)
A reply from Jens at Thorlabs: indeed for a non-Windows system the standard APT software will not be useful, but it is still possible to use the unit even without Active X controls and other Microsoft related features. At the moment an ethernet based solution is not available but I can share with you some low level programming example which would allow you to run the TDC001 on a unix system using standard C++ and libserial library features
marc.dubois  (posted 2009-06-18 11:43:49.0)
I cannot use this product (and other cubes) because its using only USB interface for communication. For non-Windows applications (I am running Real-time OS), it is useless. Most universal and best communication is Ethernet.
maruko  (posted 2008-09-06 12:22:48.0)
I have some questions. I have written the program as shown in the APT Programming using LabView - Part 5 How to Start an ActiveX Control, by using Labview 8.5.1. But the error appears in the property node which sets the serial number of the TDC001. Are there some problems in my understanding, or in the version of the labview. And also, I gess whether it is nessesary to set the configuration of the motor and the stage, before the use of the method node of "startCtrl" and "stopCtrl".
Tyler  (posted 2008-06-06 09:49:09.0)
A response from Tyler at Thorlabs to hansm: The APT software includes apt controllers that can be easily implemented into a programming environment like LabVIEW. The APT software also includes a graphical interface that gives the user full access to all of the capabilities of the device driver. The graphical interface for the TDC001, TST001, and TPZ001 controllers also allows the user to enter sequences of movements that can be repetitively executed. Thank you for your interest in the TDC001 and if you have any further questions feel free to post them here or contact an applications engineer.
hansm  (posted 2008-06-05 18:46:34.0)
Does the APT software include a labview program, i.e., is there a simple way of controlling the TDC001 from a labview program? Thanks, Hans
technicalmarketing  (posted 2008-01-22 16:31:49.0)
The ActiveX controls that are part of the apt software suite included with the TDC001 are compatible with LabVIEW 6.1 as well as other programming environments like Visual C++, Borland C++, HP VEE, Visual Basic, Matlab, and Microsoft office via VBA. The software is available for download at http://www.thorlabs.com/Support.cfm?Section=7&pageRef=5.
michael.heer  (posted 2008-01-22 11:36:46.0)
i plan to buy a tdc001. does tdc001 support labview 6.1?
Click to Enlarge
- Front Panel Velocity Wheel and Digital Display for Controlling Motorized Stages or Actuators
- Two Bidirectional Trigger Ports to Read or Control External Equipment
- Interfaces with Computer Using Included USB Cable
- Fully Compatible with Kinesis® or APT™ Software Packages
- Compact Footprint: 60.0 mm x 60.0 mm x 49.2 mm
- Power Supply Not Included (See Below)
Thorlabs' KDC101 K-Cube™ Brushed DC Motor Controller provides local and computerized control of a single motor axis. It features a top-mounted control panel with a velocity wheel that supports four-speed bidirectional control with forward and reverse jogging as well as position presets. The digital display on the top panel includes a backlight that can be dimmed or turned off using the top panel menu options. The front of the unit contains two bidirectional trigger ports that can be used to read a 5 V external logic signal or output a 5 V logic signal to control external equipment. Each port can be independently configured to control the logic level or to set the trigger as an input or output.
The unit is fully compatible with our new Kinesis software package and our legacy APT control software. Please see the Motion Control Software tab for more information.
Please note that this controller does not ship with a power supply. Compatible power supplies are listed below.
Click for Details
Each KPS201 power supply includes one region-specific adapter, which can be selected upon checkout.
Click to Enlarge
The KPS201 Power Supply Unit
- Individual Power Supply
- KPS201: For K-Cubes™ or T-Cubes™ with 3.5 mm Jacks
- USB Controller Hubs Provide Power and Communications
- KCH301: For up to Three K-Cubes or T-Cubes
- KCH601: For up to Six K-Cubes or T-Cubes
The KPS201 power supply outputs +15 VDC at up to 2.66 A and can power a single K-Cube or T-Cube with a 3.5 mm jack. It plugs into a standard wall outlet.
The KCH301 and KCH601 USB Controller Hubs each consist of two parts: the hub, which can support up to three (KCH301) or six (KCH601) K-Cubes or T-Cubes, and a power supply that plugs into a standard wall outlet. The hub draws a maximum current of 10 A; please verify that the cubes being used do not require a total current of more than 10 A. In addition, the hub provides USB connectivity to any docked K-Cube or T-Cube through a single USB connection.
For more information on the USB Controller Hubs, see the full web presentation.