Closed ChristianHen closed 2 years ago
This is what I could find out so far about the communiaction with ARCO. The following requests and responses are being sent via the serial port in the respective situations:
DISABLE ARCO {"req":{"set": {"ARCO": 0}}} {"res":{"set":{"ARCO":"done"}}}
ENABLE ARCO {"req":{"set": {"ARCO": 1}}} {"res":{"set":{"ARCO":"done"}}}
REPEATED STANDARD STATUS COMMUNICATION {"req":{"get": {"ARCO":"","MOT1":""}}}}} //(2x --> Why?) {"res":{"get":{"ARCO":1,"MOT1":{"ABS_POS":0,"EL_POS":0,"MARK":0,"SPEED":0,"ACC":70,"DEC":70,"MAX_SPEED":65,"MIN_SPEED":0,"TVAL_HOLD":2,"TVAL_RUN":18,"TVAL_ACC":18,"TVAL_DEC":18,"T_FAST":25,"TON_MIN":41,"TOFF_MIN":41,"FS_SPD":39,"OCD_TH":2,"STEP_MODE":4,"CONFIG":11904,"ALARM":255,"STATUS":{"HIZ":1,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":"In","MST":"stop"},"SUBMODEL":"ESATTO3","NTC_T":"30.28","BKLASH":0,"CAL_STATUS":"stop","CAL_MAXPOS":731000,"CAL_BKLASH":149,"CAL_MIN_LO":0,"CAL_MIN_HI":19364,"CAL_MAX_LO":685087,"CAL_MAX_HI":731000,"CAL_OFFMIN":19364,"HSENDET":1,"CAL_MINPOS":0,"CAL_HOMEP":1000,"CAL_NUMOF":2,"CAL_DIR":"normal","LASTDIR":0,"HOLDCURR_STATUS":0,"COMPENSATION_POS":0.00000,"POSITION":0.00000,"POSITION_MEC":0.00000}}}}
{"req":{"get": {"CALRESTART": ""}}} (2x --> why?) {"res":{"get":{"CALRESTART":{"MOT1":0,"MOT2":1}}}} //(="ARCO-MOTOR needs recalibration, ESATTO Motor is ok!" (Request was sent after Disable ARCO and reENABLE Arco!)
{"req":{"get": {"ARCO_LEDBLINKSTATUS":""}}} //(Only occurs when CALRESTART = 1 for MOT2, i.e. when ARCO needs recal)) {"res":{"get":{"ARCO_LEDBLINKSTATUS":"CalRestart_MaxPosEqualMinPos"}}}
{"req":{"get":{"EXT_T":""}}} {"res":{"get":{"EXT_T":"-127.00"}}}
{"req":{"get":{"VIN_12V":""}}} {"res":{"get":{"VIN_12V":"12.45"}}}
{"req":{"get":{"VIN_USB":""}}} {"res":{"get":{"VIN_USB":"5.16"}}}
{"req":{"get":{"MOT2":{"ABS_POS":"DEG","COMPENSATION_POS":"DEG","POSITION":"DEG"}}}} {"res":{"get":{"MOT2":{"ABS_POS":"0.000157220[deg]","COMPENSATION_POS":"-0.000157220[deg]","POSITION":"0.000000000[deg]","STATUS":{"HIZ":1,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":"CCW","MST":"stop"},"HSENDET":1}}}}
GOTO ANGLE Go to an angle of 20 Degrees {"req":{"cmd":{"MOT2":{"GOTO":{"DEG":20.0002}}}}}
CALIBRATION Start calibration: {"req":{"set": {"MOT2":{"CAL_STATUS": "exec"}}}} Response: {"res":{"set":{"MOT2":{"CAL_STATUS":"done","STATUS":{"HIZ":1,"UV
Asc for motor-calibration status: (still calibrating??) {"req":{"get": {"MOT2" :{"CAL_STATUS":""}}}}...
Response: {"res":{"get":{"MOT2":{"CAL_STATUS":"stop","STATUS":{"HIZ":1,"UV... or {"res":{"get":{"MOT2":{"CAL_STATUS":"exec","STATUS":{"HIZ":1,"UV...
This looks very similar to the existing driver? perhaps some simple changes are required to make it work with Arco?
I had the same impression, but unfortunatelly, I don't even know where to begin? Can the rotator driver be integrated into the focuser driver? I suppose so, becouse for the Nightcrawler this seems to be possible, but I have no idea of how to realize that.
Ok, I managed to realize a rudimentary driver for the Esatto that allows for absolute goto to a given angle. To do so, I have modified the existing sestosenso2 driver. I don't know, if it respects any convention, and I am sure, any experienced programmer could have done better. But it moves. If anybody is interested in it, I can share it.
Could anybody please tell me, what would be the way to get the changes I made to the senstosenso2 driver (Arco-support) into the regular builds? What are the basic requirements for changes to be accepted? Is there any kind of quality control? What do I have to do?
Can you please share your changes? Did you test other functionalities?
See the modified files attached. I only implemeted goto for the Arco.
Added Abort and sync for the Arco Rotator.
sestosenso2 (Arco goto abort sync).cpp.txt sestosenso2 (Arco goto abort sync).h.txt
Arco support includes now Goto Abort Sync Cal
see here: https://github.com/ChristianHen/indi/blob/Add-Esatto-Arco-support/drivers/focuser/sestosenso2.cpp https://github.com/ChristianHen/indi/blob/Add-Esatto-Arco-support/drivers/focuser/sestosenso2.h
Did you make sure there is no existing driver for your device? Please check [supported devices portal](https://indilib.org/devices]. Please confirm you verified no drivers exist for your device.
YES. The Arco is attached to the ESATTO. There is an existing Driver for the ESATTO, which probably can be modified to support the Arco as well (?)
Provide link to product page Provide URL to the product description and details.
https://eu.primalucelab.com/esatto-3/esatto-3-robotic-microfocuser.html
Describe device family All INDI devices fall under one or more of the following categories:
Provide device communication protocol All devices use some sort of communication language between them and the host system. This could be called Command Set or SDK. It is best to provide a link to a document or PDF with such details from the manufacutrer. It needs to include the following information:
Serial; I dont know the command set but i can monitor the serial port and see the commands that make the Arco move. e.g. to make Arco move to an abs position of 20 degrees, the command is
{"req":{"cmd":{"MOT2":{"GOTO":{"DEG":20.0002}}}}}
which is very similar to the GOTO commands in the ESATTO driver
Hardware Sample Would it be possible to send the developer a sample hardware unit to develop the driver? If that's not possible, would it be possible to setup a remote environment with the devie attached?
A remote environment is possible.