Hello.

I dont know actually what commands uses existing driver and just start my journey with Linux so it is abit complicated for me to read all the drivers source< but i run serail port monitor and get next results for ESATTO 2.

ESATTO 2 (and i bielieve 3) uses Silicon labs CP210 USB to UART bridge.
After connection on comport (which is was 10 on both my computers) there is continiusly data transfer which looks like
{"req":{"get": ""}}} - i bieleve it is request form original software

the answer is JSON (or similar)
<code>{"res":
{"get":
{"SN":"ESATTO20101","MACADDR":"70:B3:D5:32:91:28","MODNAME":"ESATTO2","WIFI":
{"CFG":0,"SSID":"ESATTO20101","PWD":"primalucelab"},
"SWVERS":
{"SWAPP":"1.2","SWWEB":"1.2"},
"EXT_T":"-127.00","VIN_12V":"14.04","VIN_USB":"5.30",
"PRESET_1":{"NAME":"","M1POS":0},
"PRESET_2":{"NAME":"","M1POS":0},
"PRESET_3":{"NAME":"","M1POS":0},
"PRESET_4":{"NAME":"","M1POS":0},
"PRESET_5":{"NAME":"","M1POS":0},
"PRESET_6":{"NAME":"","M1POS":0},
"PRESET_7":{"NAME":"","M1POS":0},
"PRESET_8":{"NAME":"","M1POS":0},
"PRESET_9":{"NAME":"","M1POS":0},
"PRESET_10":{"NAME":"","M1POS":0},
"DIMLED_1":200,"DIMLED_2":200,"DIMLED_3":200,
"MOT1":
{"ABS_POS":191263,"SPEED":0,
"STATUS":{"HIZ":1,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":0,"MST":"stop"},
"CAL_MAXPOS":439000,"CAL_MINPOS":0,"CAL_STATUS":"stop","HSENDET":0,"NTC_T":"16.92","LOCKMOV":1},
"DIMLEDS":"on"}
}
}</code>

each transmission from hardware ends with
<code><LF></code>

I tried to undestand what each part of JSON means:
Where SN - should be SN
MACAADR is address of wifi onboard
MODNAME obiviosly sis model name
"WIFI":{"CFG":0,"SSID":"ESATTO20101","PWD":"primalucelab"} - wifi network config
SWVER - software version
EXT T - used for external T .Probe which is not installed on my setup.
"VIN_12V":"14.04","VIN_USB":"5.30" voltage on 12v input and USB
Presets it is presets which can be stored for future use (my is empty)
DIMLEDS it is should be a parameters for onboard leads (there is three of them)

And most inetresting thing is MOT1 section
ABS_POS":191263,"SPEED":0 absolute position. May confirm that is position which indicates in software. Speed - will test it but should be or focuser speed at the moment or settings for speed
I have no clue what STATUS section means...
But "CAL_MAXPOS":439000,"CAL_MINPOS":0 that is a calibration settings for min and max.
NTC_T":"16.92 is internal T.probe data

Moving of focuser is achieved by sending command {"req":{"cmd":{"MOT1":{"GOTO":204222}}}}
After move complete there is respond transmiting from software {"res":{"cmd":{"MOT1":{"GOTO":"done"}}}}

When the motor moves standart comms continues I droped all messages and just show you MOT1
Right after command
<code>"MOT1":{"ABS_POS":204091,"SPEED":9024,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":1,"DIR":0,"MST":"acc"}
"MOT1":{"ABS_POS":204091,"SPEED":27335,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":1,"DIR":0,"MST":"acc"}
"MOT1":{"ABS_POS":195834,"SPEED":66560,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":1,"DIR":0,"MST":"CstSpeed"}</code>

after sending MOT_STOP. Please beaware respond <code>{"res":{"cmd":{"MOT1":{"MOT_STOP":"done"}}}}</code> was recivied before that status
<code>"MOT1":{"ABS_POS":179489,"SPEED":55843,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":1,"DIR":0,"MST":"dec"}
"MOT1":{"ABS_POS":172091,"SPEED":40624,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":1,"DIR":0,"MST":"dec"}
"MOT1":{"ABS_POS":168608,"SPEED":0,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":0,"MST":"stop"}
</code>

DIM LEDS OFF
<code>{"req":{"cmd":{"DIMLEDS":"off"}}}</code>
respond
<code>{"res":{"cmd":{"cmd":"done"}}}</code>

MOTOR STOP COOMMAND
<code>{"req":{"cmd":{"MOT1":{"MOT_STOP":""}}}}</code>
respond
<code>{"res":{"cmd":{"MOT1":{"MOT_STOP":"done"}}}}</code>

To run a CALIBRATION
<code>{"req":{"set":{"MOT1":{"CAL_STATUS":"exec"}}}}</code>
respond
{<code>"res":{"set":{"MOT1":{"CAL_STATUS":"done","STATUS":{"HIZ":1,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":0,"MST":"stop"},"HSENDET":0}}}}</code>

after that calibration process starting . status messagesMOT1 section looks like
<code>"MOT1":{"ABS_POS":1999870,"SPEED":40263,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":0,"MST":"CstSpeed"},"CAL_MAXPOS":439000,"CAL_MINPOS":0,"CAL_STATUS":"exec","HSENDET":0,"NTC_T":"16.06","LOCKMOV":1}</code>
we can see motor speed and status of calibration EXEC
after CALIBRATION Is done
<code>"MOT1":{"ABS_POS":0,"SPEED":0,"STATUS":{"HIZ":0,"UVLO":0,"TH_SD":0,"TH_WRN":0,"OCD":0,"WCMD":0,"NOPCMD":0,"BUSY":0,"DIR":0,"MST":"stop"},"CAL_MAXPOS":439000,"CAL_MINPOS":0,"CAL_STATUS":"stop","HSENDET":1,"NTC_T":"16.06","LOCKMOV":1}</code>



That information should be enought to create first version of simple driver. I can test it . I will try to create my own driver but need to read all the tutorials and hat take time) For skilled and familiar with INDI engenner is should be much faster
if someone will work on driver i can provide any additional info

Read More...