SBIG CCD cam via RaspberryPi3

Hi,
I'm trying to connect an astronomy CCD cam (SBIG ST8-XME) to my laptop (Windows10) via VirtualHub on a RaspberryPi3. When I attach the cam directly to the laptop I can use it normally. When I attach it using Virtualhere the cam shows up in the client window as USB-cam and is "in use by you". It shows up also in the device manager as SBIG USB device. Even the fan of the cam comes up when connected. So far, so good. But when I try to connect to the cam using the control software of the cam, connection fails. I tried with two different control softwares, which both work, when the cam is directly connected. Any solution?
Best regards
Christof Wiedemair

#2

Reduce the resolution and frame-rate to the lowest possible and see if it works then. If so then the pi3 is not powerful enough and you would need to consider a faster embedded board.

#3

Hi Michael,
frame-rate or resolution cannot be an issue. In normal operation the cam does not start immediately with imaging when the control software is launched. It's an astronomy cam, we are not talking about framerate but of exposure time. Typical exposure times are several seconds to minutes. The problem does not arise when imaging. The problem is that connecting to the cam with the control software does not work.
Christof

#4

OK sorry i thought it was one of those video telescope cameras. I took a look here http://www.virtualtelescope.eu/wordpress/wp-content/uploads/2012/10/ST8… and it seems this camera is usb 1.1 for usb 1.1 devices. Normally that works with virutalhere but i think there is still a bug in raspbian. Is there any chance you can plug it into a normal linux desktop pc and run virtualhere? If that works its very likely a bug in raspbian. If it doesnt work then its probably some incompatibility somewhere, and perhaps we can setup a remote access so i can see if i can find the issue with the virtualhere connection.

#5

Ok, I'll try that. I've got an Ubuntu-laptop as well... Thank you!

#6

Hi,
I'm having the same issue when trying a similar thing: Connecting an astronomy CCD cam (SBIG ST-i) to my laptop (Windows10) via VirtualHub on a laptop (Windows 7).

When I attach the cam directly to the laptop I can use it normally. When I attach it using Virtualhere the cam shows up in the client window as USBI-CAM and is "in use by you". It shows up also in the client device manager as "SBIG USB-64 Camera with Firmware" device.

When I try to connect to the cam using the control software of the cam, connection fails. I tried with three different control applications, which all work when the cam is directly connected.

No errors are shown in the server log. Your assistance with resolving this issue would be appreciated.

Thanks
Gary

#7

I downloaded the drivers for that camera and took a look how they work. It seems that this camera needs firmware uploaded to it on connection. VirtualHere would not know this so thats probably why it doesnt work. Possibly this might work (it works for similar devices which require firmware uploaded on initial connection).

In the virtualhere client, right click on the camera and select "Custom Event Handler..." then paste in the line below:

onReset.$VENDOR_ID$.$PRODUCT_ID$=

and then press ok. Now replug the camera into the virtualhere server and then try to use it. If it still doesnt work then i dont think its going to work with virtualhere unfortunately.

#8

Ok, I have tried it with the event handler and it is still not working.

#9

Ok thats unfortunate, there is probably no way to get it working via virtualhere unless the manufacturer wanted to help...

#10

Hi Michael, hi Kelaga,
I tried connecting a Linux laptop as usb-server to the Windows laptop. Worked with a USB-stick, but didn't work with the SBIG cam. I also tried the Custom Event Handler "solution", but didn't work either. Shouldn't virtualhere guarantee full and pristine communication in two directions between the control software or driver and the USB device? So if the control software or driver tries to upload firmware to the cam, why doesn't virtualhere follow this request? Virtualhere does not need to know anything about the vendor product or the firmware, just establish a stable and complete communication between the two sides...
Kelaga, I'll try to contact SBIG support drawing their attention to this discussion and encourage you to do the same.
However I hope that Michael will figure out some solution.
Best regards
Christof

#11

There is a technical reason why the firmware is not uploaded correctly, but I have another idea we can try:

1. Unplug the camera from the pi
2. Stop and exit the virtualhere server on the raspberry pi
3. Delete the server config.ini file then create a new empty config.ini file and and add the line

ClaimPorts=1

then save the config.ini file.
4. Now reboot your raspberry pi and then start the virtualhere server
5. Now plug in your camera and use it via virtualhere.

Does it work now?

(What is causing problems is that the linux kernel will automatically select a configuration of 1 when a device is first plugged in. This is causing the firmware upload to fail when being used by virtualhere. There is an option in the virtualhere server to stop the initial set configuration of 1 command happening and thats what that setting in the config.ini does; it claims the ports for virtualhere entirely so they are left untouched by the linux kernel)

Im not sure whether the onReset... etc command above is still required. If it doesnt work now then add back in the on reset command by basically right clicking on the camera and pasting into the box:

onReset.$VENDOR_ID$.$PRODUCT_ID$=

then replug the camera again and then try using the camera again.

If this works , it only has to be done once as all these settings are remembered

#12

Hi Michael,
I did as you suggested and I think we are getting closer: I tried with the linux-laptop (32 bit) attached to the Win10-laptop. I made the new ini-file with the ClaimPorts=1 in it. When I then attached the Cam to the linux-laptop the fan didn't come up as it did the last times. When I connected to the server using the client I saw the new device and started "using it". Only in that moment the fan came up. However when I tried to use the cam with the control software I got an error message (no USB cam found). The onReset-eventhandler didn't make any difference. When I add this eventhandler I see a "onReset.0d97.PRODUCT_ID$ =" entry in the ini-file. Isn't that strange? Are the $ signs ok? There is also an automatically generated id=1482330052 entry in the ini-file, but I suppose that has to be there.
Please don't give up, Michael! I feel we're close to a solution!
Best regards
Christof

#13

OK actually that event handler is wrong, it should not have PRODUCT_ID$ in it. The virtualhere client should have replaced it automatically with the real device's product id before it was written.

1. Unplug the camera device from the laptop
2. Could you stop and exit the virtualhere server then remove that line (onReset.0d97.PRODUCT_ID$ =) from the server config.ini then start the server again
3. Plug in the camera
4. Now right click on the camera and select custom event handler then enter

onReset.$VENDOR_ID$.$PRODUCT_ID$=

5. Then try to use the camera again
6. can you check in the server config.ini and make sure the actual product id was replaced in there.

#14

Hi Michael,
I did as you said and now the line in the config.ini is "onReset.0d97.0001="
However it is still not possible to use the cam with the control software. I tried three different control programs from three different manufacturers. When I attach the cam directly to the usb port all three work. Using the virtual server the cam shows up correctly in the device manager.
Hope you do not run out of ideas...
Best regards and Happy Christmas!
Christof

#15

Im out of ideas unfortunately i dont know why that camera doesnt work via virtualhere. Edit: Possibly if you have teamviewer? I can login and take a few minutes to figure out if i can find the issue. Let me know mail [at] virtualhere.com (mail[at]virtualhere[dot]com)