pyAPT icon indicating copy to clipboard operation
pyAPT copied to clipboard

No outputs for `get_info.py` with BSC203 and NRT150

Open mxochicale opened this issue 6 years ago • 5 comments

Hi

I am wondering if anyone (i.e. @freespace, @dorox, @matteoschiav, @mn14tm, @PawelDefee, @pumphaus, @raouf-barboza, @teletoby, @vascotenner, @victorliu, @weinshec, @yuriy-kozlov, etc. ) have tested pyAPT under Ubuntu 18.04x6x with Controller BSC203 and linear stages NRT150/M?. I am asking that as I have been facing some communication problems and perhaps you have some advice. Let me share how I am setting the USB port, library installation and then show the terminal output for get_info.py

USB setting up

First, *ftdi.rules have been setup as follow

/etc/udev/rules.d/11-ftdi.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="faf0", GROUP="dialout", MODE="0666"

/etc/udev/rules.d/99-libftdi.rules

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="faf0", GROUP="dialout", MODE="0666"

Also, it has been changed the permissions and its group of the USB port of the controller as shown below.

$ ls -la /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 0 Dec  3 08:09 /dev/ttyUSB0
$ groups
pyapt tty dialout sudo

Library requirements

pip install -r requirements.txtin (linearstages) virtual environment with python3 using a standard user (i.e. no root user).

Issue the python get_info.py just get stuck:

I am not sure what I am missing perhaps you have some hints for the following bug:

(linearstages) pyapt@$MACHINE:$HOME/pyAPT$ python get_info.py 
Looking for APT controllers
Found b'Thorlabs' b'APT Stepper Motor Controller' S/N: b'70112214'
###  TESTING get_info.py  ####
serial=    b'70112214'
pyAPT.Controller(70112214) =    Controller(serial=70112214, device=<pylibftdi.device.Device object at 0x7f0847d4c5c0>)
message.MGMSG_HW_GET_INFO= 6
reqmsg= Message(messageID=5, param1=0, param2=0, dest=80, src=1, data=None)
6

Any ideas?

mxochicale avatar Dec 07 '19 13:12 mxochicale

Can post the modified get_info.py to a gist or in a comment? Can you insert some print statements into Controller._read_message and see what the hardware is sending back?

freespace avatar Dec 07 '19 13:12 freespace

For above output of python get_info.py , I added some print lines in \pyAPT\controller.py to see what is happening. However, I have just put controller.py back as it is in the repository. Then I have added controller._read_message which did not show any output as seen below:

python get_info.py

#!/usr/bin/env python
"""
Usage: python get_info.py [<serial>]

Gets the controller information of all APT controllers, or the one specified
"""
from __future__ import absolute_import
from __future__ import print_function

import pyAPT

from runner import runner_serial

@runner_serial
def info(serial):
    print ('###  TESTING get_info.py  ####')
    print('serial=   ',serial) #70112214

    con=pyAPT.Controller(serial_number=serial)
    print('pyAPT.Controller(70112214) =   ', con)
    con._read_message()
    con.info()

if __name__ == '__main__':
  import sys
  sys.exit(info())

terminal output

the terminal output is the following and the script just get stuck there (i.e. not showing anything for con.read_message() and con.info()).

(linearstages) pyapt@$MACHINE:$HOME/pyAPT$ python get_info.py 

Looking for APT controllers
Found b'Thorlabs' b'APT Stepper Motor Controller' S/N: b'70112214'
###  TESTING get_info.py  ####
serial=    b'70112214'
pyAPT.Controller(70112214) =    Controller(serial=70112214, device=<pylibftdi.device.Device object at 0x7ff0748fc5c0>)

Any suggestions?

mxochicale avatar Dec 08 '19 09:12 mxochicale

@mxochicale I have pushed a new branch that has debugging output inserted. Can you please checkout branch issue-12 and re-run get_info.py

FYI I am no longer at Oxford and therefore do not have access to any Thorlabs hardware.

freespace avatar Dec 08 '19 11:12 freespace

Thanks @freespace for your kind reply and your message on not having access to any Thorlabs hardware. I have updated my local repo and checkout issue-12 branch and apparently there is no response for the reading message header as shown below:

(linearstages) pyapt@$MACHINE:$HOME/pyAPT$ python get_info.py 
Looking for APT controllers
Found b'Thorlabs' b'APT Stepper Motor Controller' S/N: b'70112214'
Reading message header

Do you have any suggestions?

By the way, I will come back to the lab on 13 of January 2020 to hopefully sort out this issue with your help.

mxochicale avatar Dec 09 '19 07:12 mxochicale

@mxochicale it looks like the controller isn't responding to the APT commands. This could be due to a few things: a change in how APT is implemented; hardware fault; configuration issue; etc.

The first step would be to determine if it is at all possible to communicate with these controller using the APT protocol. Download the APT software from https://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=Motion_Control&viewtab=1 and attempt to manipulate your stages and controllers. If this work then it rules out hardware and configuration issues.

freespace avatar Dec 09 '19 07:12 freespace