OpenLiveStacker icon indicating copy to clipboard operation
OpenLiveStacker copied to clipboard

App crashes with use of indi-remote camera

Open HolographicX opened this issue 5 months ago • 30 comments

Beta 46. Crashes as soon as starting Indi Remote session. Tested on Nothing Phone 1 and Oneplus Nord 5.

log.txt

HolographicX avatar Aug 04 '25 16:08 HolographicX

Check if there is a communication with the server.

It seems to indeed crash if the address points to incorrect location.

Do you running indi server? What camera?

artyom-beilis avatar Aug 04 '25 16:08 artyom-beilis

Yes, I'm running the server. Server seems to be up, I'm quite sure. Tested with kstars on another device.

I'm using a Canon DSLR.

The app doesn't just freeze (like it does when incorrect address is entered), it navigates onto a white screen and then closes.

HolographicX avatar Aug 04 '25 17:08 HolographicX

Can you please enable camera debug and attach alpaca_camera log.

I must say I hadn't tested aplaca with DSLR and it is usually tricky.

artyom-beilis avatar Aug 04 '25 17:08 artyom-beilis

Sorry hadn't tested INDI with DSLR... (too much talks about alpaca)

(indi_camera.log)

artyom-beilis avatar Aug 04 '25 17:08 artyom-beilis

Going to sleep now, will send it over in the morning. I'd love to help fix this. I'll look into it tomorrow.

HolographicX avatar Aug 04 '25 17:08 HolographicX

Tried it out today and it didn't crash. It was able to connect I believe. However, format was empty and had no options.

Screenshot_20250805-085317.png

log.txt

indi_camera.log.txt

HolographicX avatar Aug 05 '25 03:08 HolographicX

Ok I see the problem

1st "the small one"

03:22:59.031   CN Canon DSLR EOS 6D:CCD_CAPTURE_FORMAT (Idle) rw type INDI_SWITCH
   0 FORMAT_1/L OFF
   1 FORMAT_2/cL OFF
   2 FORMAT_3/M OFF
   3 FORMAT_4/cM OFF
   4 FORMAT_5/S1 OFF
   5 FORMAT_6/cS1 OFF
   6 FORMAT_7/S2 OFF
   7 FORMAT_8/S3 OFF
   8 FORMAT_9/RAW ON 

There is no bits reported but I can easily assume if it is "raw" than it is 16 bit and fix it.

But the second one is tougher

03:22:59.031   CN Canon DSLR EOS 6D:CCD_FRAME (Idle) rw type INDI_NUMBER
   0 X/Left  val=0.000000 min=0.000000 max=0.000000 step=0.000000
   1 Y/Top val=0.000000 min=0.000000 max=0.000000 step=0.000000
   2 WIDTH/Width val=0.000000 min=0.000000 max=0.000000 step=0.000000
   3 HEIGHT/Height val=0.000000 min=0.000000 max=0.000000 step=0.000000

Honestly I don't understand why indi reports 0 frame size.

What version of indi server do you use?

artyom-beilis avatar Aug 05 '25 05:08 artyom-beilis

Here is an example from another indi-ccd log I got for DLSR

DN Canon DSLR EOS 750D:CCD_FRAME (Ok) rw type INDI_NUMBER
   0 X/Left  val=0.000000 min=0.000000 max=6023.000000 step=0.000000
   1 Y/Top val=0.000000 min=0.000000 max=4021.000000 step=0.000000
   2 WIDTH/Width val=6024.000000 min=1.000000 max=6024.000000 step=0.000000
   3 HEIGHT/Height val=4022.000000 min=1.000000 max=4022.000000 step=0.000000

And it provides this information. I must have it.

Versions seem to be the same

Connected to camera Canon DSLR EOS 750D
 CN Canon DSLR EOS 750D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4

vs yours

onnecting to Canon DSLR EOS 6D
 CN Canon DSLR EOS 6D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4
   3 DRIVER_INTERFACE/Interface val=10

Really strange why indi driver does not give the information

artyom-beilis avatar Aug 05 '25 05:08 artyom-beilis

Another question: have you tries to run OpenLiveStacker directly on Linux - because it supports DSLR via libgphoto directly.

artyom-beilis avatar Aug 05 '25 05:08 artyom-beilis

Considering this answer to this issues: https://github.com/indilib/indi-3rdparty/issues/1127#issuecomment-3153735147

It isn't going to be something easy to fix... need to add a capture frame flow

artyom-beilis avatar Aug 05 '25 07:08 artyom-beilis

Oh, that's unfortunate. Yeah, Ekos too prompts for frame size when using dslr with indi.

I can't use the release version of OLS on the linux device I'm using, it's aarch64. Would building from source work?

HolographicX avatar Aug 05 '25 08:08 HolographicX

Oh, that's unfortunate. Yeah, Ekos too prompts for frame size when using dslr with indi.

Wow didn't expect that.

I can't use the release version of OLS on the linux device I'm using, it's aarch64. Would building from source work?

Yes, sure it shouldn't be a big problem.

Most of dependencies (if you aren't using 3rd party sdks) are easily apt-get installable only one that isn't CppCMS but it is fairly easy to build.

artyom-beilis avatar Aug 05 '25 08:08 artyom-beilis

Other than that I probably need to start building for aarch64 as well but it is kinda tricky since only ARM HW I have is my smartphone tablet that do not run Linux :-) so need to cross compile somehow

artyom-beilis avatar Aug 05 '25 08:08 artyom-beilis

I'll install OLS on linux there, seems like that setup would work for me. Thank you very much!

I can build for now if needed! But can we not use github actions? https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/

HolographicX avatar Aug 05 '25 08:08 HolographicX

I just need to learn how to do it. I think there even way to build arm chroot and should be doable. I just need to get to it.

artyom-beilis avatar Aug 05 '25 08:08 artyom-beilis

I can fork and try building for arm with github actions today if that's okay. No promises though, I'm not 100% if I can do it.

HolographicX avatar Aug 05 '25 08:08 HolographicX

Sure!

artyom-beilis avatar Aug 05 '25 08:08 artyom-beilis

Hi @artyom-beilis I built OLS on my arm device. It runs, but I don't see my DSLR under Cameras; I only see "Simulation". I'm quite sure I have the required libraries, and even gphoto2 --capture-image works.

Thanks so much for your help! Really appreciate it.

HolographicX avatar Aug 05 '25 09:08 HolographicX

Was it built with gphoto2 support: look at build directory if it has libols_driver_gphoto2.so

How do you run it - from ols_gui or from command line?

artyom-beilis avatar Aug 05 '25 10:08 artyom-beilis

In ols_gui you can select gphoto2 dirver, from command line you can edit config file and change "driver" to "gphoto2" - but I recommend ols_gui

artyom-beilis avatar Aug 05 '25 10:08 artyom-beilis

Ah, that was it. I was using ols_cmd. Changing the config worked.

I can't see ols_gui in my build, any idea why that is?

HolographicX avatar Aug 05 '25 10:08 HolographicX

it is in scripts - since it is a python script that configures and starts ols_cmd

artyom-beilis avatar Aug 05 '25 10:08 artyom-beilis

Ah got it.

Just a side note, I see that the maximum shutter speed is 30 seconds (which is the max shutter speed on my dslr). This is fine, but for me, this is a deal breaker. Potential enhancement could be to allow bulb mode (or some other way) to take longer exposures. Is this already a feature and something I'm missing?

HolographicX avatar Aug 05 '25 10:08 HolographicX

I see that the maximum shutter speed is 30 seconds (which is the max shutter speed on my dslr). This is fine, but for me, this is a deal breaker. Potential enhancement could be to allow bulb mode (or some other way) to take longer exposures. Is this already a feature and something I'm missing?

No, there is no bulb mode support, but 30s is fairly long exposure.

You'll likely need a guiding to be able to shut with such a long exposures unless you are using a short focal length lens. Generally speaking, that is what stacking for combine multiple frames to a single image.

artyom-beilis avatar Aug 05 '25 10:08 artyom-beilis

I see. Is guiding planned to be supported?

HolographicX avatar Aug 05 '25 11:08 HolographicX

I see. Is guiding planned to be supported?

Not in a near future.

I explain, OLS is mostly designed as EAA tool - observe the images in real time. Long exposures are rare and typical overall imaging session length per objects last from few minutes to tens of minutes.

For AP you can use EKOS as is and stack in Siril for example.

So for EAA guiding is rarely needed. I may work on it in future for example for EAA with narrow band filters that can benefit from long exposures, but it isn't a priority now.

Artyom

artyom-beilis avatar Aug 05 '25 11:08 artyom-beilis

Understood, that makes sense. In my case, I found OLS as a great option as a portable live capture tool. Very few other options for android. But I understand. Thanks so much for this awesome project!

HolographicX avatar Aug 05 '25 11:08 HolographicX

もう 1 つの質問: OpenLiveStacker を Linux で直接実行しようとしたことがありますか。OpenLiveStacker は libgphoto 経由で直接 DSLR をサポートしているからです。

これは私がDLSRで取得した別のindi-ccdログの例です。

DN Canon DSLR EOS 750D:CCD_FRAME (Ok) rw type INDI_NUMBER
   0 X/Left  val=0.000000 min=0.000000 max=6023.000000 step=0.000000
   1 Y/Top val=0.000000 min=0.000000 max=4021.000000 step=0.000000
   2 WIDTH/Width val=6024.000000 min=1.000000 max=6024.000000 step=0.000000
   3 HEIGHT/Height val=4022.000000 min=1.000000 max=4022.000000 step=0.000000

そして、この情報を提供してくれる。これは絶対に手に入れたい。

バージョンは同じようです

Connected to camera Canon DSLR EOS 750D
 CN Canon DSLR EOS 750D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4

あなたのものと比較して

onnecting to Canon DSLR EOS 6D
 CN Canon DSLR EOS 6D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4
   3 DRIVER_INTERFACE/Interface val=10

インディドライバーがなぜ情報を提供しないのか本当に不思議だ

As Cloudy Night mentions, the problem is likely caused by improper INDI connection procedures.

  1. Start the driver on the server side → load the XML for client connection.

  2. Connect to the driver on the client side → obtain the XML → obtain the device connection functions and driver parameters. If the parameter values are correct, the device can be used. If they are incorrect, correct them in the control panel and save.

  3. Connect to the device and use it.

The device configuration file will remain on the server side.

Step 2 is processed on the client side on something called the Control Panel, but this functionality is not included in OpenLiveStacker.

As a result, if the device is not already connected using another app, the driver settings on the server will not be able to be loaded.

The operating instructions for INDIStarer and CCDCiel created by Padric are very useful for understanding the INDI communication flow.

The Ekos connection instructions are inappropriate.

T-STUDIO avatar Aug 10 '25 03:08 T-STUDIO

もう 1 つの質問: OpenLiveStacker を Linux で直接実行しようとしたことがありますか。OpenLiveStacker は libgphoto 経由で直接 DSLR をサポートしているからです。

これは私がDLSRで取得した別のindi-ccdログの例です。

DN Canon DSLR EOS 750D:CCD_FRAME (Ok) rw type INDI_NUMBER
   0 X/Left  val=0.000000 min=0.000000 max=6023.000000 step=0.000000
   1 Y/Top val=0.000000 min=0.000000 max=4021.000000 step=0.000000
   2 WIDTH/Width val=6024.000000 min=1.000000 max=6024.000000 step=0.000000
   3 HEIGHT/Height val=4022.000000 min=1.000000 max=4022.000000 step=0.000000

そして、この情報を提供してくれる。これは絶対に手に入れたい。 バージョンは同じようです

Connected to camera Canon DSLR EOS 750D
 CN Canon DSLR EOS 750D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4

あなたのものと比較して

onnecting to Canon DSLR EOS 6D
 CN Canon DSLR EOS 6D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4
   3 DRIVER_INTERFACE/Interface val=10

インディドライバーがなぜ情報を提供しないのか本当に不思議だ

Cloudy Night が述べているように、この問題は不適切な INDI 接続手順によって発生した可能性があります。

  1. サーバー側でドライバーを起動 → クライアント接続用の XML をロードします。
  2. クライアント側でドライバーに接続 → XMLを取得 → デバイス接続関数とドライバーパラメータを取得。パラメータ値が正しければデバイスを使用できます。正しくない場合は、コントロールパネルで修正して保存してください。
  3. デバイスに接続して使用します。

デバイス構成ファイルはサーバー側に残ります。

ステップ 2 は、コントロール パネルと呼ばれるクライアント側で処理されますが、この機能は OpenLiveStacker には含まれていません。

その結果、デバイスが別のアプリを使用してまだ接続されていない場合、サーバー上のドライバー設定を読み込むことができません。

Padric が作成した INDIStarer および CCDCiel の操作手順は、INDI の通信フローを理解するのに非常に役立ちます。

Ekos の接続手順が不適切です。

If you're using a local Android server, the current specifications should be fine, but if you're connecting remotely, you'll need a function to read the XML sent from the server and a function to read the driver configuration file on the server.

This function is normally handled by a client called a control panel, so you'll need either a control panel function or the ability to read configuration files from the server.

T-STUDIO avatar Aug 10 '25 04:08 T-STUDIO

もう 1 つの質問: OpenLiveStacker を Linux で直接実行しようとしたことがありますか。OpenLiveStacker は libgphoto 経由で直接 DSLR をサポートしているからです。

これは私がDLSRで取得した別のindi-ccdログの例です。

DN Canon DSLR EOS 750D:CCD_FRAME (Ok) rw type INDI_NUMBER
   0 X/Left  val=0.000000 min=0.000000 max=6023.000000 step=0.000000
   1 Y/Top val=0.000000 min=0.000000 max=4021.000000 step=0.000000
   2 WIDTH/Width val=6024.000000 min=1.000000 max=6024.000000 step=0.000000
   3 HEIGHT/Height val=4022.000000 min=1.000000 max=4022.000000 step=0.000000

そして、この情報を提供してくれる。これは絶対に手に入れたい。バージョンは 同じようです

Connected to camera Canon DSLR EOS 750D
 CN Canon DSLR EOS 750D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4

あなたのものと比較して

onnecting to Canon DSLR EOS 6D
 CN Canon DSLR EOS 6D:DRIVER_INFO (Idle) ro type INDI_TEXT
   0 DRIVER_NAME/Name val=GPhoto CCD
   1 DRIVER_EXEC/Exec val=indi_canon_ccd
   2 DRIVER_VERSION/Version val=3.4
   3 DRIVER_INTERFACE/Interface val=10

インディドライバーがなぜ情報を提供しないのか本当に不思議だ

Cloudy Night が起きているように、この問題は必要な INDI 接続手順によって発生した可能性があります。

  1. サーバー側でドライバーを起動 → クライアント接続用の XML をロードします。
  2. クライアント側でドライバーに接続 → XML を取得 → デバイス接続関数とドライバーパラメータを取得します。パラメータ値が正しければデバイスを使用できます。正しくない場合は、コントロールパネルで修正して保存してください。
  3. デバイスに接続して使用します。

デバイス構成ファイルはサーバー側に残ります。 ステップ 2 は、コントロールパネルと呼ばれるクライアント側で処理されますが、この機能は OpenLiveStacker には含まれていません。 その結果、デバイスが別のアプリを使用してまだ接続されていない場合、サーバー上のドライバー設定を読み込むことができません。 Padric が作成した INDIStarer および CCDCiel の操作手順は、INDI の通信フローを理解するのに非常に役立ちます。 Ecos の接続手順が必要です。

ローカルの Android サーバーを使用する場合は、現状の仕様で問題ありませんが、リモートで接続する場合は、サーバーから送信された XML を読み込む機能と、サーバー上のドライバー構成ファイルを読み込む機能が必要になります。

この機能は通常、コントロール パネルと呼ばれるクライアントによって処理されるため、コントロール パネル機能またはサーバーから構成ファイルを読み取る機能のいずれかが必要になります。

Ekos is designed to automatically launch drivers directly, incorporating XML files received from the server. Therefore, drivers using XML files not included in Ekos, such as Indigo, cannot be launched. (This creates inconsistencies in the connection procedure.)

The combination of INDIStarter and CCDCiel clearly demonstrates the process from driver startup to client connection, so we recommend it as a reference.

OpenLiveStacker is an app with great potential, so we hope you'll continue to support it.

T-STUDIO avatar Aug 10 '25 04:08 T-STUDIO