×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

ASI usb3 camera retries 3 times on exposure and fails - git builds

  • Posts: 28
  • Thank you received: 17
Yes, I mean 1.17.
I am not getting detailed information from ZWO, I am trying to establish cooperation with them. I am working on the libASICamera2Boost library. Unfortunately, each camera has a different implementation and it's hard for me to keep developing without the original library source.

In original library (1.17), there are probably larger double buffers used for communication with the camera.
The usbfs_memory_mb value should be at least '6 x Resolution'. For now, these are guesses, I need to analyze the library more.
Anyway, to rule out a memory problem, I suggest temporarily increasing the usbfs_memory_mb value and testing indi with different ZWO libraries.
For example:
sudo sh -c 'echo 512 > /sys/module/usbcore/parameters/usbfs_memory_mb'
# test for biggest camera
# sudo sh -c 'echo 1024 > /sys/module/usbcore/parameters/usbfs_memory_mb'
 
# Test different versions of the ZWO library.
LD_PRELOAD=/path_to_library/libASICamera2.so.1.16 indiserver indi_asi_ccd
LD_PRELOAD=/path_to_library/libASICamera2.so.1.17 indiserver indi_asi_ccd
2 years 11 months ago #69992

Please Log in or Create an account to join the conversation.

  • Posts: 1119
  • Thank you received: 182
The image buffer is not the only thing that is broken.

Yesterday I used an installation from March 17 that had worked perfectly last month after I manually increased the usbfs memory in the asi.rules file. Unfortunately, I had not turned off unattended-upgrades for the Pi (running Ubuntu 20.04) and after that had completed, the indi server crashed every time I called it up. It would crash even when just starting the Moonlite driver for my focuser, so unrelated to the ZWO issue.

With the system already broken, I figured upgrading everything from the nightly repo might help. It did, indi server no longer crashed after that, but now my ZWO-EFW was missing again! Moving my old asi.rules and efw.rules files back into the /etc/udev/rules.d folder did not fix it this time.

Is there a solution on the horizon for this, or is the only practical solution right now to go back to the stable version from March 1?

Jo
2 years 11 months ago #69999

Please Log in or Create an account to join the conversation.

  • Posts: 1009
  • Thank you received: 133
Hi Jo,

In my experience it is enough to keep the current nightly/devel of indi, and only downgrade the version of libasi. Haven't yet tested my filter wheel, though - will do later today.
The following user(s) said Thank You: Jose Corazon
2 years 11 months ago #70000

Please Log in or Create an account to join the conversation.

  • Posts: 1009
  • Thank you received: 133
256MB should be enough for the ASI183MC, no?  Nevertheless, I tried with both 512 and 1024, no change there.  Crashes with both.  It does take a while though:  The image is downloaded and displayed, and only some 3s later I get the crash message which states
Child process 14326 died
2021-04-13T13:52:57: Driver indi_asi_ccd: stderr EOF
 
2 years 11 months ago #70001

Please Log in or Create an account to join the conversation.

  • Posts: 61
  • Thank you received: 10
This may be interesting too:

Compiled from git two days ago (sdk 1.17) Opensuse Tumbleweed, ASI1600mm-pro

Picture size:   4656 x 3522       driver-crash      Edit: 4656 x 3520
Picture size:   3880 x 3520       driver-crash
Picture size:   3879 x 3520       no crash!

So, reduzing the picture size a bit let the crash dissapeare

Edgar
Last edit: 2 years 11 months ago by Edgar Scholz. Reason: Type mismatch
2 years 11 months ago #70012

Please Log in or Create an account to join the conversation.

  • Posts: 1119
  • Thank you received: 182
Did you go back to a larger picture size again and ascertain that the crash still occurred?

Maybe the first instance was not surprising, the sensor of the ASI1600 measures only 4656 x 3520 pixels, so you added an extra 9312 pixels that are not addressed.
2 years 11 months ago #70024

Please Log in or Create an account to join the conversation.

  • Posts: 61
  • Thank you received: 10
Sorry for the first instance, it was a type mismatch. I corrected it.
Yes, I went back to larger picture sizes an the driver crashed
Edgar
2 years 11 months ago #70025

Please Log in or Create an account to join the conversation.

  • Posts: 28
  • Thank you received: 17
256MB should be enough. However, for testing, it's worth increasing if you hear that they've been doing something with buffers.

Please confirm that everything is fine for the newest INDI / INDI-3rdParty builds with the old library.
LD_PRELOAD=/path_to_library/libASICamera2.so.1.16 indiserver indi_asi_ccd
2 years 11 months ago #70028

Please Log in or Create an account to join the conversation.

  • Posts: 535
  • Thank you received: 109
I was able to get set up tonight, so thought I would try a quite recent build. Kstars crash, as others have reported. Here is the backtrace:
Core was generated by `kstars'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  std::__uniq_ptr_impl<ISD::CCDChip, std::default_delete<ISD::CCDChip> >::_M_ptr (this=0x98) at /usr/include/c++/10/bits/unique_ptr.h:173
173          pointer    _M_ptr() const { return std::get<0>;(_M_t); }
[Current thread is 1 (Thread 0x7f16c8062a00 (LWP 4357))]
(gdb) bt
#0  std::__uniq_ptr_impl<ISD::CCDChip, std::default_delete<ISD::CCDChip> >::_M_ptr() const (this=0x98) at /usr/include/c++/10/bits/unique_ptr.h:173
#1  std::unique_ptr<ISD::CCDChip, std::default_delete<ISD::CCDChip> >::get() const (this=0x98) at /usr/include/c++/10/bits/unique_ptr.h:422
#2  ISD::CCD::getChip(ISD::CCDChip::ChipType) (this=0x0, cType=cType@entry=ISD::CCDChip::PRIMARY_CCD) at /usr/src/debug/kstars-3.5.3.git-20210412132123.fc33.x86_64/kstars/indi/indiccd.cpp:1918
#3  0x00005633127ad77c in Ekos::Focus::stop(bool) (this=0x563318241290, aborted=<optimized out>;) at /usr/src/debug/kstars-3.5.3.git-20210412132123.fc33.x86_64/kstars/ekos/focus/focus.cpp:931
#4  0x00005633127b6035 in Ekos::Focus::completeFocusProcedure(bool) (this=0x563318241290, success=<optimized out>;) at /usr/src/debug/kstars-3.5.3.git-20210412132123.fc33.x86_64/kstars/ekos/focus/focus.cpp:1483
#5  0x00007f16cce96386 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff009a7cf0, r=0x563318241290, this=0x5633182a2520) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false>;(QObject*, int, void**) (sender=0x56331824fdd0, signal_index=9, argv=argv@entry=0x7fff009a7cf0) at kernel/qobject.cpp:3886
#7  0x00007f16cce909a8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x56331824fdd0, m=m@entry=0x7f16cde076a0 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fff009a7cf0)
    at kernel/qobject.cpp:3946
#8  0x00007f16cd9eb316 in QAbstractButton::clicked(bool) (this=this@entry=0x56331824fdd0, _t1=<optimized out>;) at .moc/moc_qabstractbutton.cpp:308
#9  0x00007f16cd9ebcde in QAbstractButtonPrivate::emitClicked() (this=this@entry=0x563318250960) at widgets/qabstractbutton.cpp:415
#10 0x00007f16cd9ed673 in QAbstractButtonPrivate::click() (this=this@entry=0x563318250960) at widgets/qabstractbutton.cpp:408
#11 0x00007f16cd9ed855 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) (this=0x56331824fdd0, e=0x7fff009a82b0) at widgets/qabstractbutton.cpp:1044
#12 0x00007f16cd93cb1e in QWidget::event(QEvent*) (this=0x56331824fdd0, event=0x7fff009a82b0) at kernel/qwidget.cpp:9019
#13 0x00007f16cd8fbec3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x56331824fdd0, e=0x7fff009a82b0) at kernel/qapplication.cpp:3632
#14 0x00007f16cd902eeb in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3076
#15 0x00007f16cce66bd8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x56331824fdd0, event=0x7fff009a82b0) at kernel/qcoreapplication.cpp:1063
#16 0x00007f16cd901efa in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
    (receiver=receiver@entry=0x56331824fdd0, event=event@entry=0x7fff009a82b0, alienWidget=alienWidget@entry=0x56331824fdd0, nativeWidget=0x5633170265d0, buttonDown=buttonDown@entry=0x7f16cde3a330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2614
#17 0x00007f16cd955375 in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x5633174f82f0, event=0x7fff009a8560) at kernel/qwidgetwindow.cpp:683
#18 0x00007f16cd9586be in QWidgetWindow::event(QEvent*) (this=0x5633174f82f0, event=0x7fff009a8560) at kernel/qwidgetwindow.cpp:300
#19 0x00007f16cd8fbec3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5633174f82f0, e=0x7fff009a8560) at kernel/qapplication.cpp:3632
#20 0x00007f16cce66bd8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5633174f82f0, event=0x7fff009a8560) at kernel/qcoreapplication.cpp:1063
#21 0x00007f16cd2a2143 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at kernel/qguiapplication.cpp:2275
#22 0x00007f16cd2838cc in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>;) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#23 0x00007f16baa3947e in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x563313c00750) at qxcbeventdispatcher.cpp:105
#24 0x00007f16cb9dba9f in g_main_dispatch (context=0x7f16b4005000) at ../glib/gmain.c:3325
#25 g_main_context_dispatch (context=0x7f16b4005000) at ../glib/gmain.c:4043
#26 0x00007f16cba2da98 in g_main_context_iterate.constprop.0 (context=context@entry=0x7f16b4005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>;) at ../glib/gmain.c:4119
#27 0x00007f16cb9d8e73 in g_main_context_iteration (context=0x7f16b4005000, may_block=1) at ../glib/gmain.c:4184
#28 0x00007f16cceb36f3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>;) (this=0x563313ad2160, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#29 0x00007f16cce6557b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>;) (this=this@entry=0x7fff009a8890, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#30 0x00007f16cce6d1b4 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#31 0x000056331239c082 in main(int, char**) (argc=<optimized out>, argv=<optimized out>;) at /usr/src/debug/kstars-3.5.3.git-20210412132123.fc33.x86_64/kstars/main.cpp:346
 
 

and on the INDI server side:
Core was generated by `indi_asi_ccd'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fab55f25035 in list_add_tail (head=0x7fab30002c78, entry=0x7fab34001388) at libusbi.h:187
187        head->prev->next = entry;
[Current thread is 1 (Thread 0x7fab4911a640 (LWP 2087))]
(gdb) bt
#0  0x00007fab55f25035 in list_add_tail (head=0x7fab30002c78, entry=0x7fab34001388) at libusbi.h:187
#1  add_to_flying_list (itransfer=0x7fab34001380) at io.c:1427
#2  libusb_submit_transfer (transfer=transfer@entry=0x7fab340013f8) at io.c:1541
#3  0x00007fab55f279ff in libusb_control_transfer (dev_handle=0x55cf1ac82fb0, bmRequestType=<optimized out>, bRequest=<optimized out>, wValue=<optimized out>, wIndex=<optimized out>, data=0x7fab49119de0 "", wLength=2, timeout=500) at sync.c:127
#4  0x00007fab565e8525 in CCameraFX3::SendCMD(unsigned char, unsigned short, unsigned short, bool, unsigned char*, long) () from /lib64/libASICamera2.so
#5  0x00007fab565dd1f4 in CCameraBase::GetTMP100Temp() () from /lib64/libASICamera2.so
#6  0x00007fab565de665 in CCameraBase::GetSensorTemp() () from /lib64/libASICamera2.so
#7  0x00007fab565e7de8 in AutoTempFunc(bool*, void*) () from /lib64/libASICamera2.so
#8  0x00007fab565e5434 in MyThr(void*) () from /lib64/libASICamera2.so
#9  0x00007fab55b7d3f9 in start_thread (arg=0x7fab4911a640) at pthread_create.c:463
#10 0x00007fab56036b53 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
 
Last edit: 2 years 11 months ago by Jim.
2 years 11 months ago #70030

Please Log in or Create an account to join the conversation.

  • Posts: 1009
  • Thank you received: 133
I can confirm that, same here.  Reducing the FOV of my ASI183 to 3672x3672 prevents it from crashing!  But already at 4000 it starts crashing again, so no workable solution.

FWIW, I also tried using a USB2 cable to connect.  But no difference to USB3.
 
2 years 11 months ago #70053

Please Log in or Create an account to join the conversation.

So a crash in the driver led to a crash in KStars. I can look into the one in KStars, but not sure about the ASI. does ./asi_camera_test causes a crash as well?
2 years 11 months ago #70056

Please Log in or Create an account to join the conversation.

  • Posts: 535
  • Thank you received: 109
I did not try asi_camera_test, but will when I set up again.
2 years 11 months ago #70057

Please Log in or Create an account to join the conversation.

Time to create page: 1.289 seconds