×
INDI Library v1.8.8 Released (09 Jan 2021)

Here are the changes from v1.8.7 to v1.8.8

Meade DSIPro III connection error

4 months 1 week ago
gwen0
New Member
New Member
Posts: 3
More
Topic Author
Meade DSIPro III connection error #60275
Hello,

I'm trying to use my DSIPro III with indi and I'm running into the following issue :
# indiserver -v indi_dsi_ccd
...
2020-09-20T07:07:29: Driver indi_dsi_ccd:     00000000: 03 50 36                                      GET_EXP_TIME
2020-09-20T07:07:29: Driver indi_dsi_ccd: r 81 40                                 [dt=1]
2020-09-20T07:07:29: Driver indi_dsi_ccd:     00000000: 07 50 06 01 00 00 00                          ACK 1
2020-09-20T07:07:29: Driver indi_dsi_ccd: w 1 3                                   [dt=0]
2020-09-20T07:07:29: Driver indi_dsi_ccd:     00000000: 03 51 03                                      TRIGGER
2020-09-20T07:07:29: Driver indi_dsi_ccd: r 81 40                                 [dt=0]
2020-09-20T07:07:29: Driver indi_dsi_ccd:     00000000: 03 51 06                                      ACK
2020-09-20T07:09:29: Driver indi_dsi_ccd: r 86 0                                  [dt=120006]
2020-09-20T07:09:29: Driver indi_dsi_ccd: read odd data, status = (-7) Argument list too long
2020-09-20T07:09:29: Driver indi_dsi_ccd:     requested 3225600 bytes 1536 x 1050 (odd pixels)
2020-09-20T07:09:29: Driver indi_dsi_ccd: terminate called after throwing an instance of 'DSI::device_read_error'
2020-09-20T07:09:29: Driver indi_dsi_ccd:   what():  read odd data, status = (-7) Argument list too long
2020-09-20T07:09:29: Driver indi_dsi_ccd: stderr EOF
<delProperty device="DSI"/>
Child process 307283 died
...

For this test, I ran indiserver manually and
indi_setprop "DSI.CONNECTION.CONNECT=On"

I investigated with tshark
  630   7.101698       1.29.1 → host         USB 67 URB_BULK in
  631   7.102230         host → 1.29.6       USB 64 URB_BULK in
  632 127.102188       1.29.6 → host         USB 3215936 URB_BULK in
And inside the last packet with wireshark:
Frame 803: 3215424 bytes on wire (25723392 bits), 245824 bytes captured (1966592 bits)
USB URB

    URB status: No such file or directory (-ENOENT) (-2)
    URB length [bytes]: 3215360
    Data length [bytes]: 245760
    [Request in: 802]
    [Time from request: 119.999720000 seconds]
    [bInterfaceClass: Vendor Specific (0xff)]
    Unused Setup Header
    Interval: 0
    Start frame: 0
    Copy of Transfer Flags: 0x00000200, Dir IN
    Number of ISO descriptors: 0
Leftover Capture Data: 0ad10aff0b290b8035b03660374d381c38e2399a3a583b1c…

As far as I understand, the bulk transfer times out because the camera only returns 245760 bytes

My environement:
Ubuntu 20.04
installation from PPA
ii  indi-bin                                                    1.8.6~202008211453~ubuntu20.04.1          amd64        INDI server, drivers and tools
ii  indi-dsi                                                    0.2~202008220022~ubuntu20.04.1            amd64        INDI Meade DSI Pro I/II Driver
ii  indi-full                                                   1.8.6~202008211453~ubuntu20.04.1          amd64        Instrument-Neutral Device Interface library - Full INDI

ii  libusb-1.0-0:amd64                                          2:1.0.23-2build1                          amd64        userspace USB programming library


I tested the camera with Envisage 7.10 on Windows10 and it's working fine.


Am I missing something or is it an issue with the driver ?
I attached the indiserver log. Let me know if the usb pcap can be useful.


Thanks for you help.
Attachments:

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

4 months 1 week ago
bgilsrud
Senior Member
Senior Member
Posts: 72
Karma: 1
More
Meade DSIPro III connection error #60298
It's possible that nobody has ever tried to use a DSI III Pro with the INDI driver before.

The data that you collected is excellent. After a little googling, it looks like the DSI III Pro uses the ICX285AL, which an active pixel array of 1360x1024. Even the total pixel array (1434x1050) doesn't quite match what the logs seem to indicate. I'll have to look at the code to be sure. But, I suspect that you're on the right track that the issue is the driver trying to download more data than is available.

I'll let you know what I find.

Thanks,
Ben

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

4 months 6 days ago
bgilsrud
Senior Member
Senior Member
Posts: 72
Karma: 1
More
Meade DSIPro III connection error #60352
If you have the pcap, could you please attach it? I'm trying to figure out exactly how many bytes are actually available from the camera. I don't understand why the driver is trying to download 1536x1050 pixels...even after looking at the code.

One thing that I did realize is that the ICX285 sensors are progressive scan CCDs rather than interlaced like the rest of the DSI families use. This is handled in the code by only using the "odd" field and setting the "even" field to 0.

The user that added support for the DSI III cameras had the Color version, not the Pro...though I would expect this aspect to remain the same between those two.

Thanks,
Ben

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

4 months 6 days ago
gwen0
New Member
New Member
Posts: 3
More
Topic Author
Meade DSIPro III connection error #60374
Hi,

The indi driver seems to behave like the windows driver. The only differences I could detect are :
  • The init phase is done twice on linux.
  • A call to "SET_EXP_MODE 01" is missing before the SET_ROW_COUNT_EVEN 0.
  • The parameter for "SET_GAIN" is "0" on windows, "3F" on linux.
  • The parameter for "SET_OFFSET" is "0" on windows, "7F" on linux.

I managed to patch the driver to correct these differences but I got the same error in the end.
Could it be that the firmware is different ?


Attached are the usb pcaps:
linux_1.pcap : firmware upload on linux
linux_2.pcap : driver initialization
win_1.pcap : firmware upload on windows
win_2.pcap : driver initialization and captures on windows.
Attachments:

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

4 months 6 days ago
gwen0
New Member
New Member
Posts: 3
More
Topic Author
Meade DSIPro III connection error #60376
Hi,

I managed to dump the firmware loaded by the windows driver (in a VM) using the dumper program from github.com/rumengb/libdsi.
If I replace the original firmware hex file with the one attached here, the driver works perfectly.

Could you test if this firmware works also with older and color models ?

Thanks.
Attachments:

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

4 months 6 days ago
bgilsrud
Senior Member
Senior Member
Posts: 72
Karma: 1
More
Meade DSIPro III connection error #60379
Awesome, that's great! I can try it on my DSI Pro (I) later tonight.

-Ben
The following user(s) said Thank You gwen0

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

4 months 6 days ago
bgilsrud
Senior Member
Senior Member
Posts: 72
Karma: 1
More
Meade DSIPro III connection error #60405
I tried the newer firmware and it causes the image download to fail on my DSI Pro:
2020-09-22T02:28:01: Driver indi_dsi_ccd: read even data, status = (0) Success
2020-09-22T02:28:01: Driver indi_dsi_ccd:     requested 388608 bytes 768 x 253 (even pixels)
2020-09-22T02:30:01: Driver indi_dsi_ccd: r 86 0                                  [dt=120001]
2020-09-22T02:30:01: Driver indi_dsi_ccd: read odd data, status = (-7) Argument list too long
2020-09-22T02:30:01: Driver indi_dsi_ccd:     requested 387072 bytes 768 x 252 (odd pixels)
2020-09-22T02:30:01: Driver indi_dsi_ccd: terminate called after throwing an instance of 'DSI::device_read_error'
2020-09-22T02:30:01: Driver indi_dsi_ccd:   what():  read odd data, status = (-7) Argument list too long
2020-09-22T02:30:01: Driver indi_dsi_ccd: stderr EOF
<delProperty device="DSI"/>
Child process 235489 died

It looks like the same issue that you are seeing with the old firmware. I don't know if Envisage is able to determine what type is DSI is present in order to load the "correct" firmware or if the driver is the problem.

-Ben

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

Time to create page: 0.741 seconds