I have written some C code in Linux (centOS Release 6.6) using the libraries provided (ps3000a) by Picotech. The compiled executable is working fine on a 3406B oscilloscope. I have recently purchased a 3406D oscilloscope to utilize the fast data transfer rate of USB3.0. I tried to use the same executable binary to access 3406D but I receive the following warning
The device "PicoScope 4000 Series PC Oscilloscope" was unable to connect to its ideal host controller.
The above message confuses me since I have a 3406D machine, which should belong to 3000 series, not 4000. According to the downloads section under Picotech.com, I should be able to use the same libraries for both 3406B and D.
I am running the executable in centOS (release 6.6) VM on my Mac. The same executable was working fine on 3406B under the same HW/SW configuration.
Does the PicoScope 3406D work when connected to the PicoScope 6 software on the CentOS platform?
Which version of the libps3000a driver are you using? Does running the usbtest application detect the PicoScope?
The fact that the device is listed as a PicoScope 4000 Series device should not affect it's performance but if you wish for it to be changed (following a fix to the driver), please e-mail support@picotech.com providing your contact details and we can issue a returns number.
Running transaction check
---> Package libps3000a.x86_64 0:1.4.4-6r45 will be updated
---> Package libps3000a.x86_64 0:1.4.5-6r40 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
libps3000a x86_64 1.4.5-6r40 picoscope 1.7 M
Total download size: 1.7 M
Is this ok [y/N]: y
Downloading Packages:
libps3000a-1.4.5-6r40.x86_64.rpm | 1.7 MB 00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libps3000a-1.4.5-6r40.x86_64 1/2
Cleanup : libps3000a-1.4.4-6r45.x86_64 2/2
Verifying : libps3000a-1.4.5-6r40.x86_64 1/2
Verifying : libps3000a-1.4.4-6r45.x86_64 2/2
Updated:
libps3000a.x86_64 0:1.4.5-6r40
Complete!
I do not have the usbtest application in the installation CD I got (Picoscope R6.10.11). What is the source code for that application and how do I compile it? How do I get that application?
3. Here is another confusing thing:
I am trying to run the machine in centOS VM. When I first connect the machine, the computer OS asks whether it should be connected to Mac or Linux. I select Linux. But when I run my executable, it asks the same question again in a pop-up window. I select Linux again. After that, a new pop-up window informs me that
"The device "PicoScope 4000 Series PC Oscilloscope" was unable to connect to its ideal host controller.
An attempt will be made to connect this device to the best available host controller. This might result in undefined behavior for this device".
I select OK and the result comes as "no pico device found", which is my own display text for no device found.
BTW, I can use the machine in a windows box using the GUI.
thanks a lot for all your help,
ND
-->
Hi Hitesh
Thanks a lot for your response. I do not have much experience with developing under Linux environment, so let me try to understand your questions.
1. Does the PicoScope 3406D work when connected to the PicoScope 6 software on the CentOS platform?
ND: I do not know what you mean by PicoScope 6 software. I downloaded the libraries and headers a few months ago for my PS3406B machine. It works like with those libraries. Specifically, here are the .so files in my /opt/Picoscope/lib directory:
2. Which version of the libps3000a driver are you using? Does running the usbtest application detect the PicoScope?
ND:
when I run shared/doc/libps3000a/usbtest on command line, I get this message
" Pico USB device not found. Please try again"
I believe the current version is 1.4.5.-6r40. Here are some details.
sudo yum install libps3000a
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirror.sesp.northwestern.edu
* extras: mirror.vtti.vt.edu
* updates: mirror.netdepot.com
Resolving Dependencies
--> Running transaction check
---> Package libps3000a.x86_64 0:1.4.4-6r45 will be updated
---> Package libps3000a.x86_64 0:1.4.5-6r40 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
libps3000a x86_64 1.4.5-6r40 picoscope 1.7 M
Total download size: 1.7 M
Is this ok [y/N]: y
Downloading Packages:
libps3000a-1.4.5-6r40.x86_64.rpm | 1.7 MB 00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libps3000a-1.4.5-6r40.x86_64 1/2
Cleanup : libps3000a-1.4.4-6r45.x86_64 2/2
Verifying : libps3000a-1.4.5-6r40.x86_64 1/2
Verifying : libps3000a-1.4.4-6r45.x86_64 2/2
Updated:
libps3000a.x86_64 0:1.4.5-6r40
Complete!
I do not have the usbtest application in the installation CD I got (Picoscope R6.10.11). What is the source code for that application and how do I compile it? How do I get that application?
3. Here is another confusing thing:
I am trying to run the machine in centOS VM. When I first connect the machine, the computer OS asks whether it should be connected to Mac or Linux. I select Linux. But when I run my executable, it asks the same question again in a pop-up window. I select Linux again. After that, a new pop-up window informs me that
"The device "PicoScope 4000 Series PC Oscilloscope" was unable to connect to its ideal host controller.
An attempt will be made to connect this device to the best available host controller. This might result in undefined behavior for this device".
I select OK and the result comes as "no pico device found", which is my own display text for no device found.
BTW, I can use the machine in a windows box using the GUI.
Hi Hitesh
I have installed the libraries on a stand-alone laptop running centOS 7 and successfully ran both usbtest and my executable on PS3406D. Thank you so much for the suggestion.
I would also like to make it work on my centOS virtual machine. Now that we know the binary will work if the OS sees the hardware connected to the Linux side, do you have any suggestions/recommendations?
Thanks again for all your help. I really appreciate it.
During our device startup, USB subsystem restarts increasing reference on the USB bus (In Linux case). This may cause device to `disappear` from the VM-guest. To overcome that you need to make sure that VM software will automatically attach restarted device. The easiest way is to create constant filter of our VendorID 0CE9, and in your case ProductID 1211.
Recently I have been evaluating USB-Redirector software, for passing USB over the network. It is free for Linux. You can set up autoshare rules there to achieve the same (use server on VM-host, and the client on VM-guest)