BSC103 Not Responding: No LED Blink, No Motor Movement

Hello, I'm trying to control a Thorlabs BSC103 (three-channel stepper controller) on Linux (Ubuntu 22) using your library. While the device connects via USB and shows up using serial_number = "70834913", the controller does not behave as expected. It works perfectly on Windows using Kinesis software. Here’s what works:

  1. The controller is detected and connected using the BSC class
  2. I can read the status dictionary and set parameters
  3. No exceptions or errors are raised in Python

The code is:

from thorlabs_apt_device.devices.bsc import BSC
from thorlabs_apt_device.devices.aptdevice import list_devices
print(list_devices())
stage = BSC(serial_number="70834913", port="/dev/ttyUSB0", home=False)
stage.set_enabled(state=True, bay=0, channel=0)
stage.identify()
time.sleep(5)

However, the Identify LED does not blink, the motor does not move, and the controller’s status always reports:

Status: {'position': 0, 'enc_count': 0, 'velocity': 0.0, 'forward_limit_switch': False, 'reverse_limit_switch': False, 'moving_forward': False, 'moving_reverse': False, 'jogging_forward': False, 'jogging_reverse': False, 'motor_connected': False, 'homing': False, 'homed': False, 'tracking': False, 'interlock': False, 'settled': False, 'motion_error': False, 'motor_current_limit_reached': False, 'channel_enabled': False, 'msg': '', 'msgid': 0, 'source': 0, 'dest': 0, 'chan_ident': 0}

identify(), home(), move_relative(), and move_jog() send commands without error but cause no physical response. During my tests, I got these errors:

  • UserWarning: Invalid message with id=0x0
  • UserWarning: Invalid message with id=0x8100
  • Received unknown event notification from APT device 17.

It appears that there may be a missing initialization step (such as the “Connect” phase or internal handshakes) that Kinesis performs, but this library does not.

It'd be great if you could provide me with information specific to this model to ensure it works properly.

Thanks a lot, Parisa

Edited by Patrick Tapping