I'm new to INDI and have 3 all-sky cameras (Starlight Xpress Oculus), which I am running from one Raspberry Pi. I had originally planned for each camera to have its own Pi, but am finding it difficult to source more boards at the moment. Ideally, I would like to be able to take images on all 3 cameras simultaneously (two will have filters). 

I am using indiserver with the indi_sx_ccd driver, and python code pyindi-client based on the Indi Python programming tutorial, using the pyindi client. I have been running one indiserver instance, e.g.

indiserver -vv -m 100 indi_sx_ccd

This seems to work fine, indi recognises the devices and gives them different names (SX CCD SuperStar, SX CCD SuperStar #2 etc.). I can connect all the cameras at once and talk to them individually. The problem is that if I start say 2 exposures at the same time, the image from the second camera appears overexposed, even though the same exposure time is being sent to both devices. With shorter exposures particularly it's very noticeable.

My guess is that some command to read the pixels on the second camera is being delayed whilst the driver/client is busy receiving the BLOB from the 1st camera. If I stagger the exposures by e.g. 1s, the second exposure finishes after the first BLOB is read and the problem seems to disappear. So I can probably get away with overlapping longer exposures, but not starting them at the same time. 

Is there any reasonably simple way round this, or is it unavoidable? Being new to this I'm not sure if I've come up with the best approach. I don't actually need to have exposures starting within milliseconds of each other, but would ideally like to minimise the lag. Similarly don't really care when the image data turns up in the client, as long as the CCD exposes for the time it says it did!

Output from python after all the new property lists, with 2 cameras and 2s exposure times:

2022-03-03 13:17:44,729 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:44,730 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:45,385 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:45,385 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:46,386 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:46,386 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:47,482 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:47,644 new BLOB CCD1
2022-03-03 13:17:47,645 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:48,230 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:48,385 new BLOB CCD1
2022-03-03 13:17:48,387 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
name:  CCD1  size:  2900160  format:  .fits
name:  CCD1  size:  2900160  format:  .fits

Can provide indiserver output, images, code etc if useful.

 

Read More...

Many thanks for the quick response, much appreciated! I will stick with staggering exposures for now then, and look out for any changes that might come along in the future

Read More...

I'm new to INDI and have 3 all-sky cameras (Starlight Xpress Oculus), which I am running from one Raspberry Pi. I had originally planned for each camera to have its own Pi, but am finding it difficult to source more boards at the moment. Ideally, I would like to be able to take images on all 3 cameras simultaneously (two will have filters). 

I am using indiserver with the indi_sx_ccd driver, and python code pyindi-client based on the Indi Python programming tutorial, using the pyindi client. I have been running one indiserver instance, e.g.

indiserver -vv -m 100 indi_sx_ccd

This seems to work fine, indi recognises the devices and gives them different names (SX CCD SuperStar, SX CCD SuperStar #2 etc.). I can connect all the cameras at once and talk to them individually. The problem is that if I start say 2 exposures at the same time, the image from the second camera appears overexposed, even though the same exposure time is being sent to both devices. With shorter exposures particularly it's very noticeable.

My guess is that some command to read the pixels on the second camera is being delayed whilst the driver/client is busy receiving the BLOB from the 1st camera. If I stagger the exposures by e.g. 1s, the second exposure finishes after the first BLOB is read and the problem seems to disappear. So I can probably get away with overlapping longer exposures, but not starting them at the same time. 

Is there any reasonably simple way round this, or is it unavoidable? Being new to this I'm not sure if I've come up with the best approach. I don't actually need to have exposures starting within milliseconds of each other, but would ideally like to minimise the lag. Similarly don't really care when the image data turns up in the client, as long as the CCD exposes for the time it says it did!

Output from python after all the new property lists, with 2 cameras and 2s exposure times:

2022-03-03 13:17:44,729 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:44,730 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:45,385 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:45,385 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:46,386 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:46,386 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:47,482 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:47,644 new BLOB CCD1
2022-03-03 13:17:47,645 new Number CCD_EXPOSURE for device SX CCD SuperStar
2022-03-03 13:17:48,230 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
2022-03-03 13:17:48,385 new BLOB CCD1
2022-03-03 13:17:48,387 new Number CCD_EXPOSURE for device SX CCD SuperStar #2
name:  CCD1  size:  2900160  format:  .fits
name:  CCD1  size:  2900160  format:  .fits

Can provide indiserver output, code, images etc. if useful
 

Read More...