Should PHD2 still dither Dec if Dec Guide Mode is not set to Auto?

109 views
Skip to first unread message

mj.w...@gmail.com

unread,
Aug 13, 2017, 9:11:35 AM8/13/17
to Open PHD Guiding
Hi,

PHD2 Guide Log attached

In Log Section 4, with the Dec Guide Mode set to Auto, there are two instances of dithers on both axis. As you can see the Dec performance was poor, due to stiction on the axis I believe, so I set Dec Guide Mode to North.

In Log Section 5 I realised I should be guiding Dec South, so I switched Dec to South at 23:42 and Dec guiding improved. Note however that in North and South modes  the dithers are only in RA.

In Log Section 6 all the dithers are in RA only except the last, where I tried setting the Dec Guide Mode to Auto a few seconds before the dither command. I was lucky to get that one in, because the clouds then rolled in and I packed up for the night.

(Note the dither commands are initiated by PHDMax software - it detects a new Raw file arriving in the Save folder and commands PHD2 to dither)

Thanks

Michael
Wiltshire UK
PHD2_GuideLog_2017-08-12_230011.txt

bw_msgboard

unread,
Aug 13, 2017, 11:13:15 AM8/13/17
to mj.w...@gmail.com, Open PHD Guiding

Hi Michael.  To answer the question in your subject line, PHD2 may temporarily switch to bi-directional Dec guiding in order to perform a dither.  But that will only be done if the client application has specified settling parameters and RA-only isn’t set as a dithering constraint.  We’d need to see your debug log file to see what command PHDMax sent – it may not be sending settling params to PHD2, perhaps handling settling on its own.

 

Regards,

Bruce

 


--
You received this message because you are subscribed to the Google Groups "Open PHD Guiding" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-phd-guidi...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

mj.w...@gmail.com

unread,
Aug 13, 2017, 11:53:51 AM8/13/17
to Open PHD Guiding, mj.w...@gmail.com, bw_m...@earthlink.net
Thanks Bruce, 

Debug and fail log attached

Michael
PHD2_DebugLog_2017-08-12_230011.txt

mj.w...@gmail.com

unread,
Aug 13, 2017, 11:57:27 AM8/13/17
to Open PHD Guiding, mj.w...@gmail.com, bw_m...@earthlink.net
The Fail log wouldn't go with the Debug log
PHD2_AutoSelectFail_2017-03-13_004216.fit

bw_msgboard

unread,
Aug 13, 2017, 2:13:40 PM8/13/17
to mj.w...@gmail.com, Open PHD Guiding

Hi Michael.  Judging from the debug log, PHDMax is using the old-style server interface, the same as the one in PHD1.  That interface doesn’t provide any way for the client app to specify settling parameters.  So as I said in the earlier message, that means dithering would be RA-only unless Dec Mode is auto.  I just looked quickly at the PHDMax web site, and my impression is that it’s quite old and probably hasn’t been updated to stay current with PHD2.  Depending on what other software you’re using – notably which imaging app – you can probably find a better solution for dithering.

bw_msgboard

unread,
Aug 13, 2017, 2:19:52 PM8/13/17
to mj.w...@gmail.com, Open PHD Guiding

Just for future reference, this isn’t actually a log file – it’s an automatically generated capture of your guide image when the PHD2 auto-select of a star fails.  We do that to help with product support.  So you may find these in your logging directory but you can ignore them unless you’re having ongoing problems with auto-select.  They will be automatically removed on a scheduled basis so they won’t consume much disk space.  In this particular case, it was a very noisy image with a high background level, so the SNR was probably too low.

 

Cheers,

Bruce

 

Sent: Sunday, August 13, 2017 8:57 AM
To: Open PHD Guiding

mj.w...@gmail.com

unread,
Aug 13, 2017, 3:53:37 PM8/13/17
to Open PHD Guiding, mj.w...@gmail.com, bw_m...@earthlink.net
Thanks Bruce
Well I usually guide with Dec in Auto, only last night at low Dec (M17) was the mount unhappy.
There's DitherMaster too, but I haven't come across any other free software that dithers or incorporates dither - Canon Utilities takes care of the imaging.
Yes the SNR was low at the start of the session last night, the sky appeared clear but there were sneaky little clouds spoiling things.
"You can't win, you post a guide log and no, they want a debug log......."  :->
Seriously, wonderful service from you guys.
Michael

bw_msgboard

unread,
Aug 13, 2017, 4:30:38 PM8/13/17
to mj.w...@gmail.com, Open PHD Guiding

You might want to take a look at Sequence Generator Pro, it does a very good job of using PHD2 for guiding.  And there is a free “Lite” version that probably handles everything you’re doing now.  Or if you use an imaging app that is capable of running a batch or script after an exposure is completed, you can use the PHD_Dither package from our web site.

 

Have fun,

Bruce

 


steve

unread,
Aug 15, 2017, 3:57:17 PM8/15/17
to open-phd...@googlegroups.com

Hi. OK, so if I set DEC guide unidirectional and I'm using APT to dither, will PHD2 dither both axes? IOW, does APT send the required information to PHD2 for a 2 axis dither?

TIA

Andy Galasso

unread,
Aug 15, 2017, 8:12:52 PM8/15/17
to OpenPHD Guiding
On Tue, Aug 15, 2017 at 3:57 PM, steve <stev...@gmail.com> wrote:

if I set DEC guide unidirectional and I'm using APT to dither, will PHD2 dither both axes? IOW, does APT send the required information to PHD2 for a 2 axis dither?


Hi Steve,

PHD2 will ordinarily dither both axes when you have un-directional dec guide mode selected (North or South).  The exceptions would be if a) you selected the "dither RA only" option in the brain, or b) if APT explicitly tells phd2 to dither RA-only. I doubt APT would be doing that, but we could tell for sure by looking in the PHD2 Debug Log.

Andy

steve

unread,
Aug 16, 2017, 6:40:30 AM8/16/17
to open-phd...@googlegroups.com
Hi Andy
Here's a Debug Log *EDIT: Can't upload the complete debug log ATM. Is the snippet enough to tell?

The reason I ask is that the last discussion we had -I was getting streaking as a result of RA dither only with unidirectional DEC- was when I was recommended Bruce's Dither app as the only way to dither both axes with unidirectional DEC.

 You advised, 'PHD2 knows not to dither Dec when dec guide mode is North or South; it will only dither RA. When Dec mode is Auto dither will be in any direction unless you have the "dither RA only" option checked.'

That was in December 2016. Has the behaviour has changed since then? I have 2.6.3dev7.
TIA,
Steve


22:43:35.319 00.000 6028 dither: size=5.00, dRA=-4.99 dDec=0.64
22:43:35.319 00.000 6028 MountToCamera -- mountTheta (-3.01) + m_xAngle (3.12) = xAngle (0.10 = 0.10)
22:43:35.319 00.000 6028 MountToCamera -- mountX=-4.99 mountY=0.64 hyp=5.03 mountTheta=-3.01 cameraX=5.00, cameraY=0.51 cameraTheta=0.10
22:43:35.319 00.000 6028 setting lock position to (243.39, 115.79)
22:43:35.319 00.000 6028 dither: clearing mount guide algorithm history
22:43:35.319 00.000 6028 Mount: notify guiding dithered (-5.0, 0.6)
22:43:35.319 00.000 6028 GetInt("/profile/3/scope/calibration/focal_length", 0) returns 240
22:43:35.319 00.000 6028 GetDouble("/profile/3/scope/calibration/image_scale", 1.000000) returns 3.222890
22:43:35.319 00.000 6028 GetDouble("/profile/3/scope/calibration/ra_guide_rate", -1.000000) returns 0.003342
22:43:35.319 00.000 6028 GetDouble("/profile/3/scope/calibration/dec_guide_rate", -1.000000) returns 0.003342
22:43:35.319 00.000 6028 GetDouble("/profile/3/scope/calibration/ortho_error", 0.000000) returns 0.784076
22:43:35.319 00.000 6028 GetInt("/profile/3/scope/calibration/ra_step_count", 0) returns 13
22:43:35.319 00.000 6028 GetInt("/profile/3/scope/calibration/dec_step_count", 0) returns 12
22:43:35.319 00.000 6028 GetDouble("/profile/3/scope/calibration/orig_binning", 1.000000) returns 1.000000
22:43:35.319 00.000 6028 GetInt("/profile/3/scope/calibration/last_issue", 0) returns 0
22:43:35.319 00.000 6028 GetString("/profile/3/scope/calibration/orig_timestamp", "Unknown") returns "13/08/2017 22:20:24"
22:43:35.319 00.000 6028 GetString("/profile/3/scope/calibration/ra_steps", "") returns "{0.0 0.0}, {-1.2 0.2}, {-3.2 0.1}, {-5.2 -0.1}, {-7.4 0.1}, {-9.3 0.0}, {-11.2 0.4}, {-13.4 0.3}, {-15.8 0.6}, {-17.8 0.4}, {-19.8 0.5}, {-21.9 0.9}, {-24.0 0.8}, {-26.3 0.7}, {-26.3 0.7}, {-18.7 0.3}, {-9.6 0.0}, {-0.5 -0.3}, {1.0 -0.0}"
22:43:35.319 00.000 6028 GetString("/profile/3/scope/calibration/dec_steps", "") returns "{0.0 0.0}, {-0.1 -2.2}, {-0.1 -4.6}, {-0.1 -6.6}, {-0.2 -8.7}, {-0.3 -11.0}, {-0.3 -13.0}, {-0.4 -15.4}, {-0.8 -18.2}, {-0.6 -20.3}, {-0.4 -22.3}, {-0.6 -24.5}, {-1.0 -26.6}, {-1.0 -26.6}, {-1.4 -21.0}, {-0.8 -12.5}, {-0.9 -6.4}"
22:43:35.319 00.000 6028 Status Line: Dither by -4.99,0.64
22:43:35.335 00.016 6028 PhdController: newstate STATE_SETTLE_BEGIN
22:43:35.335 00.000 6028 PhdController: newstate STATE_SETTLE_WAIT
22:43:35.335 00.000 6028 Sending socket response 2 (0x2)
22:43:36.882 01.547 5328 Exposure complete
22:43:37.085 00.203 5328 worker thread done servicing request
22:43:37.085 00.000 6028 OnExposeComplete: enter
22:43:37.085 00.000 6028 UpdateGuideState(): m_state=6
22:43:37.085 00.000 6028 Star::Find(15, 238, 115, 0, (0,0,0,0), 0.0, 0) frame 211
22:43:37.085 00.000 6028 Star::Find false star n=3 nbg=267 bg=286.4 sigma=9.1 thresh=314 peak=308
22:43:37.085 00.000 6028 Star::Find returns 0 (2), X=238.00, Y=115.00, Mass=99, SNR=2.9, Peak=342 HFD=0.0
22:43:37.085 00.000 6028 DistanceChecker: activated
22:43:37.085 00.000 6028 Error thrown from C:\cygwin\home\agalasso\projects\phd2\guider_onestar.cpp:640->UpdateCurrentPosition():newStar not found
22:43:37.085 00.000 6028 SchedulePrimaryMove(06EF30A8, x=0.00, y=0.00, type=2)
22:43:37.085 00.000 6028 Enqueuing Move request for scope (0.00, 0.00)
22:43:37.085 00.000 5328 Worker thread wakes up
22:43:37.085 00.000 5328 worker thread servicing REQUEST_MOVE scope dir 0 (0.00, 0.00)
22:43:37.085 00.000 5328 Handling move in thread for scope dir=0
22:43:37.085 00.000 5328 endpoint = (0.00, 0.00)
22:43:37.085 00.000 5328 PPEC (deduced): control: 0.02, exposure: 2000
22:43:37.085 00.000 5328 Dead-reckoning move xDistance=0.02 yDistance=0.00
22:43:37.085 00.000 5328 Move(3, 8, 2)
22:43:37.085 00.000 5328 Guiding  Dir = 3, Dur = 8
22:43:37.085 00.000 5328 IsSlewing returns 0
22:43:37.085 00.000 5328 IsGuiding returns 0
22:43:37.116 00.031 5328 IsGuiding returns 0
22:43:37.116 00.000 5328 Move returns status 0, amount 8
22:43:37.116 00.000 5328 Move(0, 0, 2)
22:43:37.116 00.000 5328 Move returns status 0, amount 0
22:43:37.116 00.000 5328 move complete, result=0
22:43:37.116 00.000 5328 worker thread done servicing request
22:43:37.194 00.078 6028 Throw from C:\cygwin\home\agalasso\projects\phd2\guider.cpp:1214->unable to update current position
22:43:37.194 00.000 6028 Status Line: Star lost - low SNR
22:43:37.198 00.004 6028 UpdateImageDisplay: Size=(1280,960) min=0, max=489, FiltMin=257, FiltMax=489
22:43:37.406 00.208 6028 Resizing image to 474,356
22:43:37.440 00.034 6028 UpdateGuideState exits: Star lost - low SNR
22:43:37.441 00.001 6028 PhdController: settling, locked = 0, distance = 5.46 (99.00) aobump = 0 frame = 1 / 10
22:43:37.441 00.000 6028 OnExposeComplete: CaptureActive=1 m_continueCapturing=1
22:43:37.441 00.000 6028 ScheduleExposure(2000,3,0) exposurePending=0
22:43:37.441 00.000 6028 Enqueuing Expose request
22:43:37.442 00.001 5328 Worker thread wakes up
22:43:37.442 00.000 5328 worker thread servicing REQUEST_EXPOSE 2000
22:43:37.442 00.000 5328 Handling exposure in thread, d=2000 o=3 r=(0,0,0,0)
22:43:37.442 00.000 6028 GuideStep: 0.0 px 8 ms WEST, 0.0 px 0 ms SOUTH
22:43:37.451 00.009 6028 read socket command 10
22:43:37.451 00.000 6028 processing socket request REQDIST
22:43:37.451 00.000 6028 SOCKSVR: Sending pixel error of 2.55
22:43:37.451 00.000 6028 Sending socket response 255 (0xff)
22:43:38.924 01.473 5328 Exposure complete
22:43:39.130 00.206 5328 worker thread done servicing request
22:43:39.130 00.000 6028 OnExposeComplete: enter
22:43:39.131 00.001 6028 UpdateGuideState(): m_state=6
22:43:39.131 00.000 6028 Star::Find(15, 238, 115, 0, (0,0,0,0), 0.0, 0) frame 212
22:43:39.132 00.001 6028 Star::Find returns 1 (0), X=237.37, Y=115.22, Mass=474, SNR=10.9, Peak=364 HFD=2.6
22:43:39.132 00.000 6028 Status Line: Mass: 474 vs 1710
22:43:39.136 00.004 6028 UpdateCurrentPosition: star mass new=473.8 exp=1710.4 thresh=65% limits=(529.5, 3106.2, 3934.0)
22:43:39.136 00.000 6028 Throw from C:\cygwin\home\agalasso\projects\phd2\guider_onestar.cpp:666->massChangeThreshold error
22:43:39.136 00.000 6028 SchedulePrimaryMove(06EF30A8, x=0.00, y=0.00, type=2)
22:43:39.137 00.001 6028 Enqueuing Move request for scope (0.00, 0.00)
22:43:39.137 00.000 5328 Worker thread wakes up
22:43:39.137 00.000 5328 worker thread servicing REQUEST_MOVE scope dir 0 (0.00, 0.00)
22:43:39.137 00.000 5328 Handling move in thread for scope dir=0
22:43:39.137 00.000 5328 endpoint = (0.00, 0.00)
22:43:39.141 00.004 5328 PPEC (deduced): control: 0.08, exposure: 2000
22:43:39.141 00.000 5328 Dead-reckoning move xDistance=0.08 yDistance=0.00
22:43:39.141 00.000 5328 Move(3, 25, 2)
22:43:39.142 00.001 5328 Guiding  Dir = 3, Dur = 25
22:43:39.152 00.010 5328 IsSlewing returns 0
22:43:39.152 00.000 5328 IsGuiding returns 0
22:43:39.183 00.031 5328 IsGuiding returns 1
22:43:39.183 00.000 5328 scope still moving after pulse duration time elapsed
22:43:39.234 00.051 5328 IsSlewing returns 0
22:43:39.234 00.000 5328 IsGuiding returns 0
22:43:39.235 00.001 5328 scope move finished after 25 + 49 ms
22:43:39.235 00.000 5328 Move returns status 0, amount 25
22:43:39.235 00.000 5328 Move(0, 0, 2)
22:43:39.235 00.000 5328 Move returns status 0, amount 0
22:43:39.235 00.000 5328 move complete, result=0
22:43:39.235 00.000 5328 worker thread done servicing request
22:43:39.246 00.011 6028 Throw from C:\cygwin\home\agalasso\projects\phd2\guider.cpp:1214->unable to update current position
22:43:39.246 00.000 6028 Status Line: Star lost - mass changed
22:43:39.250 00.004 6028 UpdateImageDisplay: Size=(1280,960) min=0, max=488, FiltMin=256, FiltMax=488
22:43:39.456 00.206 6028 Resizing image to 474,356
22:43:39.490 00.034 6028 UpdateGuideState exits: Star lost - mass changed
22:43:39.490 00.000 6028 PhdController: settling, locked = 0, distance = 5.46 (99.00) aobump = 0 frame = 2 / 10
22:43:39.491 00.001 6028 OnExposeComplete: CaptureActive=1 m_continueCapturing=1
22:43:39.491 00.000 6028 ScheduleExposure(2000,3,0) exposurePending=0
22:43:39.491 00.000 6028 Enqueuing Expose request
22:43:39.491 00.000 5328 Worker thread wakes up
22:43:39.491 00.000 6028 GuideStep: 0.1 px 25 ms WEST, 0.0 px 0 ms SOUTH
22:43:39.499 00.008 5328 worker thread servicing REQUEST_EXPOSE 2000
22:43:39.500 00.001 5328 Handling exposure in thread, d=2000 o=3 r=(0,0,0,0)
22:43:40.955 01.455 5328 Exposure complete
22:43:41.194 00.239 6028 OnExposeComplete: enter
22:43:41.194 00.000 6028 UpdateGuideState(): m_state=6
22:43:41.195 00.001 6028 Star::Find(15, 238, 115, 0, (0,0,0,0), 0.0, 0) frame 213
22:43:41.195 00.000 6028 Star::Find returns 1 (0), X=238.24, Y=115.92, Mass=734, SNR=14.2, Peak=370 HFD=2.6
22:43:41.196 00.001 6028 DistanceChecker: deactivated
22:43:41.197 00.001 6028 dither recenter: remaining=(5.0,-0.6) step=(5.0,-0.6)
22:43:41.199 00.002 6028 MountToCamera -- mountTheta (0.13) + m_xAngle (3.12) = xAngle (3.24 = -3.04)
22:43:41.199 00.000 6028 MountToCamera -- mountX=4.99 mountY=-0.64 hyp=5.03 mountTheta=0.13 cameraX=-5.00, cameraY=-0.51 cameraTheta=-3.04
22:43:41.199 00.000 6028 SchedulePrimaryMove(06EF30A8, x=-5.00, y=-0.51, type=0)
22:43:41.200 00.001 6028 Enqueuing Move request for scope (-5.00, -0.51)
22:43:41.200 00.000 6028 UpdateImageDisplay: Size=(1280,960) min=0, max=490, FiltMin=257, FiltMax=490
22:43:41.211 00.011 5328 worker thread done servicing request
22:43:41.211 00.000 5328 Worker thread wakes up
22:43:41.211 00.000 5328 worker thread servicing REQUEST_MOVE scope dir 0 (-5.00, -0.51)
22:43:41.211 00.000 5328 Handling move in thread for scope dir=0
22:43:41.211 00.000 5328 endpoint = (-5.00, -0.51)
22:43:41.212 00.001 5328 CameraToMount -- cameraTheta (-3.04) - m_xAngle (3.12) = xAngle (-6.16 = 0.13)
22:43:41.212 00.000 5328 CameraToMount -- cameraTheta (-3.04) - (m_xAngle (3.12) + m_yAngleError (-3.13)) = yAngle (-3.03 = -3.03)
22:43:41.212 00.000 5328 CameraToMount -- cameraX=-5.00 cameraY=-0.51 hyp=5.03 cameraTheta=-3.04 mountX=4.99 mountY=-0.57, mountTheta=-0.11
22:43:41.212 00.000 5328 Moving (-5.00, -0.51) raw xDistance=4.99 yDistance=-0.57
22:43:41.212 00.000 5328 Move(3, 1614, 0)
22:43:41.212 00.000 5328 Guiding  Dir = 3, Dur = 1614
22:43:41.213 00.001 5328 IsSlewing returns 0
22:43:41.213 00.000 5328 IsGuiding returns 0
22:43:41.236 00.023 5328 PulseGuide returned control before completion, sleep 1603
22:43:41.416 00.180 6028 Resizing image to 474,356
22:43:41.452 00.036 6028 UpdateGuideState exits: m=734 SNR=14.2
22:43:41.452 00.000 6028 PhdController: settling, locked = 1, distance = 5.37 (99.00) aobump = 0 frame = 3 / 10
22:43:41.452 00.000 6028 OnExposeComplete: CaptureActive=1 m_continueCapturing=1
22:43:41.452 00.000 6028 ScheduleExposure(2000,3,1) exposurePending=0
22:43:41.453 00.001 6028 Enqueuing Expose request
22:43:42.864 01.411 5328 IsGuiding returns 0
22:43:42.864 00.000 5328 Move returns status 0, amount 1614
22:43:42.864 00.000 5328 Move(0, 153, 0)
22:43:42.864 00.000 5328 Guiding  Dir = 0, Dur = 153
22:43:42.864 00.000 5328 IsSlewing returns 0
22:43:42.864 00.000 5328 IsGuiding returns 0
22:43:42.926 00.062 5328 PulseGuide returned control before completion, sleep 102
22:43:43.051 00.125 5328 IsGuiding returns 1
22:43:43.051 00.000 5328 scope still moving after pulse duration time elapsed
22:43:43.098 00.047 5328 IsSlewing returns 0
22:43:43.098 00.000 5328 IsGuiding returns 0
22:43:43.098 00.000 5328 scope move finished after 153 + 85 ms
22:43:43.098 00.000 5328 Move returns status 0, amount 153
22:43:43.098 00.000 5328 move complete, result=0
22:43:43.098 00.000 6028 GuideStep: 5.0 px 1614 ms WEST, -0.6 px 153 ms SOUTH
22:43:43.114 00.016 5328 worker thread done servicing request
22:43:43.114 00.000 5328 Worker thread wakes up
22:43:43.114 00.000 5328 worker thread servicing REQUEST_EXPOSE 2000
22:43:43.114 00.000 5328 Handling exposure in thread, d=2000 o=3 r=(228,101,31,31)
22:43:43.114 00.000 5328 ZWO: getimagedata clearbuf 1 ret 0
22:43:43.285 00.171 6028 read socket command 10
22:43:43.285 00.000 6028 processing socket request REQDIST
22:43:43.285 00.000 6028 SOCKSVR: Sending pixel error of 2.55
22:43:43.285 00.000 6028 Sending socket response 255 (0xff)
22:43:43.364 00.079 6028 read socket command 10
22:43:43.364 00.000 6028 processing socket request REQDIST
22:43:43.364 00.000 6028 SOCKSVR: Sending pixel error of 2.55
22:43:43.364 00.000 6028 Sending socket response 255 (0xff)
22:43:45.004 01.640 5328 Exposure complete
22:43:45.207 00.203 5328 worker thread done servicing request
22:43:45.207 00.000 6028 OnExposeComplete: enter
22:43:45.207 00.000 6028 UpdateGuideState(): m_state=6
22:43:45.207 00.000 6028 Star::Find(15, 238, 115, 0, (0,0,0,0), 0.0, 0) frame 214
22:43:45.207 00.000 6028 Star::Find returns 1 (0), X=243.59, Y=116.12, Mass=1691, SNR=23.1, Peak=481 HFD=3.6
22:43:45.207 00.000 6028 SchedulePrimaryMove(06EF30A8, x=0.21, y=0.33, type=1)
22:43:45.207 00.000 6028 Enqueuing Move request for scope (0.21, 0.33)
22:43:45.207 00.000 5328 Worker thread wakes up
22:43:45.207 00.000 6028 UpdateImageDisplay: Size=(1280,960) min=0, max=483, FiltMin=251, FiltMax=483
22:43:45.207 00.000 5328 worker thread servicing REQUEST_MOVE scope dir 0 (0.21, 0.33)
22:43:45.207 00.000 5328 Handling move in thread for scope dir=0
22:43:45.207 00.000 5328 endpoint = (0.21, 0.33)
22:43:45.207 00.000 5328 CameraToMount -- cameraTheta (1.01) - m_xAngle (3.12) = xAngle (-2.11 = -2.11)
22:43:45.207 00.000 5328 CameraToMount -- cameraTheta (1.01) - (m_xAngle (3.12) + m_yAngleError (-3.13)) = yAngle (1.02 = 1.02)
22:43:45.207 00.000 5328 CameraToMount -- cameraX=0.21 cameraY=0.33 hyp=0.39 cameraTheta=1.01 mountX=-0.20 mountY=0.33, mountTheta=2.11
22:43:45.207 00.000 5328 Moving (0.21, 0.33) raw xDistance=-0.20 yDistance=0.33
22:43:45.207 00.000 5328 PPEC rslt(dithering): input = -0.20, final = -0.08
22:43:45.207 00.000 5328 PPEC: input: -0.20, control: -0.08, exposure: 2000
22:43:45.207 00.000 5328 Throw from C:\cygwin\home\agalasso\projects\phd2\guide_algorithm_resistswitch.cpp:141->not compelling enough
22:43:45.207 00.000 5328 GuideAlgorithmResistSwitch::Result() returns 0.00 from input 0.33
22:43:45.207 00.000 5328 Move(2, 26, 1)
22:43:45.223 00.016 5328 Guiding  Dir = 2, Dur = 26
22:43:45.223 00.000 5328 IsSlewing returns 0
22:43:45.223 00.000 5328 IsGuiding returns 0
22:43:45.254 00.031 5328 IsGuiding returns 1
22:43:45.254 00.000 5328 scope still moving after pulse duration time elapsed
22:43:45.301 00.047 5328 IsSlewing returns 0
22:43:45.332 00.031 5328 IsGuiding returns 0
22:43:45.332 00.000 5328 scope move finished after 26 + 84 ms
22:43:45.332 00.000 5328 Move returns status 0, amount 26
22:43:45.332 00.000 5328 Move(0, 0, 1)
22:43:45.332 00.000 5328 Move returns status 0, amount 0
22:43:45.332 00.000 5328 move complete, result=0
22:43:45.332 00.000 5328 worker thread done servicing request
22:43:45.411 00.079 6028 Resizing image to 474,356
22:43:45.442 00.031 6028 UpdateGuideState exits: m=1691 SNR=23.1
22:43:45.442 00.000 6028 PhdController: settling, locked = 1, distance = 0.39 (99.00) aobump = 0 frame = 4 / 10
22:43:45.442 00.000 6028 OnExposeComplete: CaptureActive=1 m_continueCapturing=1
22:43:45.442 00.000 6028 ScheduleExposure(2000,3,1) exposurePending=0
22:43:45.442 00.000 6028 Enqueuing Expose request
22:43:45.442 00.000 5328 Worker thread wakes up
22:43:45.442 00.000 5328 worker thread servicing REQUEST_EXPOSE 2000
22:43:45.442 00.000 6028 GuideStep: -0.2 px 26 ms EAST, 0.3 px 0 ms SOUTH
22:43:45.442 00.000 5328 Handling exposure in thread, d=2000 o=3 r=(228,101,31,31)
22:43:45.457 00.015 6028 read socket command 10
22:43:45.457 00.000 6028 processing socket request REQDIST
22:43:45.457 00.000 6028 SOCKSVR: Sending pixel error of 0.38
22:43:45.457 00.000 6028 Sending socket response 38 (0x26)
22:43:46.551 01.094 6028 read socket command 10
22:43:46.551 00.000 6028 processing socket request REQDIST
22:43:46.551 00.000 6028 SOCKSVR: Sending pixel error of 0.38
22:43:46.551 00.000 6028 Sending socket response 38 (0x26)
22:43:47.036 00.485 5328 Exposure complete
22:43:47.239 00.203 5328 worker thread done servicing request
22:43:47.239 00.000 6028 OnExposeComplete: enter
22:43:47.239 00.000 6028 UpdateGuideState(): m_state=6
22:43:47.239 00.000 6028 Star::Find(15, 243, 116, 0, (0,0,0,0), 0.0, 0) frame 215
22:43:47.239 00.000 6028 Star::Find returns 1 (0), X=243.07, Y=116.04, Mass=1903, SNR=24.4, Peak=491 HFD=3.9
22:43:47.239 00.000 6028 SchedulePrimaryMove(06EF30A8, x=-0.31, y=0.26, type=1)
22:43:47.239 00.000 6028 Enqueuing Move request for scope (-0.31, 0.26)
22:43:47.239 00.000 5328 Worker thread wakes up
22:43:47.239 00.000 6028 UpdateImageDisplay: Size=(1280,960) min=0, max=491, FiltMin=259, FiltMax=491
22:43:47.239 00.000 5328 worker thread servicing REQUEST_MOVE scope dir 0 (-0.31, 0.26)
22:43:47.239 00.000 5328 Handling move in thread for scope dir=0
22:43:47.239 00.000 5328 endpoint = (-0.31, 0.26)
22:43:47.239 00.000 5328 CameraToMount -- cameraTheta (2.46) - m_xAngle (3.12) = xAngle (-0.66 = -0.66)
22:43:47.239 00.000 5328 CameraToMount -- cameraTheta (2.46) - (m_xAngle (3.12) + m_yAngleError (-3.13)) = yAngle (2.47 = 2.47)
22:43:47.239 00.000 5328 CameraToMount -- cameraX=-0.31 cameraY=0.26 hyp=0.41 cameraTheta=2.46 mountX=0.32 mountY=0.25, mountTheta=0.66
22:43:47.239 00.000 5328 Moving (-0.31, 0.26) raw xDistance=0.32 yDistance=0.25
22:43:47.254 00.015 5328 PPEC rslt(dithering): input = 0.32, final = 0.13
22:43:47.254 00.000 5328 PPEC: input: 0.32, control: 0.13, exposure: 2000
22:43:47.254 00.000 5328 Throw from C:\cygwin\home\agalasso\projects\phd2\guide_algorithm_resistswitch.cpp:141->not compelling enough
22:43:47.254 00.000 5328 GuideAlgorithmResistSwitch::Result() returns 0.00 from input 0.25
22:43:47.254 00.000 5328 Move(3, 42, 1)
22:43:47.254 00.000 5328 Guiding  Dir = 3, Dur = 42
22:43:47.254 00.000 5328 IsSlewing returns 0
22:43:47.254 00.000 5328 IsGuiding returns 0
22:43:47.286 00.032 5328 PulseGuide returned control before completion, sleep 23
22:43:47.317 00.031 5328 IsGuiding returns 1
22:43:47.317 00.000 5328 scope still moving after pulse duration time elapsed
22:43:47.364 00.047 5328 IsSlewing returns 0
22:43:47.364 00.000 5328 IsGuiding returns 0
22:43:47.364 00.000 5328 scope move finished after 42 + 68 ms
22:43:47.364 00.000 5328 Move returns status 0, amount 42
22:43:47.364 00.000 5328 Move(0, 0, 1)
22:43:47.364 00.000 5328 Move returns status 0, amount 0
22:43:47.364 00.000 5328 move complete, result=0
22:43:47.364 00.000 5328 worker thread done servicing request
22:43:47.442 00.078 6028 Resizing image to 474,356
22:43:47.473 00.031 6028 UpdateGuideState exits: m=1903 SNR=24.4
22:43:47.473 00.000 6028 PhdController: settling, locked = 1, distance = 0.39 (99.00) aobump = 0 frame = 5 / 10
22:43:47.473 00.000 6028 OnExposeComplete: CaptureActive=1 m_continueCapturing=1
22:43:47.473 00.000 6028 ScheduleExposure(2000,3,1) exposurePending=0
22:43:47.473 00.000 6028 Enqueuing Expose request
22:43:47.473 00.000 5328 Worker thread wakes up
22:43:47.473 00.000 6028 GuideStep: 0.3 px 42 ms WEST, 0.3 px 0 ms SOUTH
22:43:47.473 00.000 5328 worker thread servicing REQUEST_EXPOSE 2000
22:43:47.473 00.000 5328 Handling exposure in thread, d=2000 o=3 r=(228,101,31,31)
22:43:49.077 01.604 5328 Exposure complete
22:43:49.280 00.203 5328 worker thread done servicing request
22:43:49.280 00.000 6028 OnExposeComplete: enter
22:43:49.280 00.000 6028 UpdateGuideState(): m_state=6
22:43:49.280 00.000 6028 Star::Find(15, 243, 116, 0, (0,0,0,0), 0.0, 0) frame 216
22:43:49.280 00.000 6028 Star::Find returns 1 (0), X=242.71, Y=115.77, Mass=1781, SNR=23.4, Peak=458 HFD=3.6
22:43:49.280 00.000 6028 SchedulePrimaryMove(06EF30A8, x=-0.68, y=-0.02, type=1)
22:43:49.280 00.000 6028 Enqueuing Move request for scope (-0.68, -0.02)
22:43:49.280 00.000 6028 UpdateImageDisplay: Size=(1280,960) min=0, max=491, FiltMin=258, FiltMax=491
22:43:49.280 00.000 5328 Worker thread wakes up
22:43:49.280 00.000 5328 worker thread servicing REQUEST_MOVE scope dir 0 (-0.68, -0.02)
22:43:49.280 00.000 5328 Handling move in thread for scope dir=0
22:43:49.280 00.000 5328 endpoint = (-0.68, -0.02)
22:43:49.280 00.000 5328 CameraToMount -- cameraTheta (-3.11) - m_xAngle (3.12) = xAngle (-6.23 = 0.05)
22:43:49.280 00.000 5328 CameraToMount -- cameraTheta (-3.11) - (m_xAngle (3.12) + m_yAngleError (-3.13)) = yAngle (-3.10 = -3.10)
22:43:49.280 00.000 5328 CameraToMount -- cameraX=-0.68 cameraY=-0.02 hyp=0.68 cameraTheta=-3.11 mountX=0.67 mountY=-0.03, mountTheta=-0.04
22:43:49.280 00.000 5328 Moving (-0.68, -0.02) raw xDistance=0.67 yDistance=-0.03
22:43:49.280 00.000 5328 PPEC rslt(dithering): input = 0.67, final = 0.27
22:43:49.280 00.000 5328 PPEC: input: 0.67, control: 0.27, exposure: 2000
22:43:49.280 00.000 5328 Throw from C:\cygwin\home\agalasso\projects\phd2\guide_algorithm_resistswitch.cpp:108->input < m_minMove
22:43:49.280 00.000 5328 GuideAlgorithmResistSwitch::Result() returns 0.00 from input -0.03
22:43:49.280 00.000 5328 Move(3, 87, 1)
22:43:49.280 00.000 5328 Guiding  Dir = 3, Dur = 87
22:43:49.296 00.016 5328 IsSlewing returns 0
22:43:49.296 00.000 5328 IsGuiding returns 0
22:43:49.311 00.015 5328 PulseGuide returned control before completion, sleep 83
22:43:49.421 00.110 5328 IsGuiding returns 0
22:43:49.421 00.000 5328 Move returns status 0, amount 87
22:43:49.421 00.000 5328 Move(0, 0, 1)
22:43:49.421 00.000 5328 Move returns status 0, amount 0
22:43:49.421 00.000 5328 move complete, result=0
22:43:49.421 00.000 5328 worker thread done servicing request
22:43:49.483 00.062 6028 Resizing image to 474,356
22:43:49.515 00.032 6028 UpdateGuideState exits: m=1781 SNR=23.4
22:43:49.515 00.000 6028 PhdController: settling, locked = 1, distance = 0.48 (99.00) aobump = 0 frame = 6 / 10
22:43:49.515 00.000 6028 OnExposeComplete: CaptureActive=1 m_continueCapturing=1
22:43:49.515 00.000 6028 ScheduleExposure(2000,3,1) exposurePending=0
22:43:49.515 00.000 6028 Enqueuing Expose request

Andy Galasso

unread,
Aug 16, 2017, 8:34:13 PM8/16/17
to steve, OpenPHD Guiding
On Wed, Aug 16, 2017 at 6:40 AM, steve <stev...@gmail.com> wrote:

Here's a Debug Log *EDIT: Can't upload the complete debug log ATM. Is the snippet enough to tell?

yes, that is enough to show that the app is using the old PHD1-style interface which has no way to indicate RA-only, so the only way you'll get RA-only is if you have the RA-only option selected in PHD2, but see below.

 You advised, 'PHD2 knows not to dither Dec when dec guide mode is North or South; it will only dither RA. When Dec mode is Auto dither will be in any direction unless you have the "dither RA only" option checked.'

That was in December 2016. Has the behaviour has changed since then?

There was a change in 2.6.3 where PHD2 will dither both axes and switch to bi-directional guide mode until the dither settles. However ... this does not apply for apps like APT that are still using the old PHD1 interface because with those apps PHD2 has no idea when settling is done and does know when to switch back to uni-directional guiding. So unfortunately for those apps PHD2 does not dither both axes and it dithers RA only always when dec guide mode is N or S.

Andy

Ivaylo Stoynov

unread,
Aug 22, 2017, 10:12:39 AM8/22/17
to Open PHD Guiding, stev...@gmail.com
Hi Andy,

I'm one of the authors of APT. Implementing native support for PHD is in our plans. However I'm wondering if PHD2 knows when the dithering is finished? If it knows it will be good automatically to switch back to uni-directional guiding. This will give possibility to all programs that still use PHD1 protocol to be compatible with the new features of PHD2 :)

Regards,
Ivo

Andy Galasso

unread,
Aug 22, 2017, 11:46:54 AM8/22/17
to Open PHD Guiding, Ivaylo Stoynov
On Tue, Aug 22, 2017 at 10:12 AM, Ivaylo Stoynov <isto...@gmail.com> wrote:

However I'm wondering if PHD2 knows when the dithering is finished? If it knows it will be good automatically to switch back to uni-directional guiding. This will give possibility to all programs that still use PHD1 protocol to be compatible with the new features of PHD2 :)

Hi Ivo,

PHD2 uses the criteria passed in by the imaging app to determine when settling is done.  The imaging app tells PHD2 to dither, and includes the settling criteria in the request (settle is done when guide error stays below P pixels for T seconds).  While settling, PHD2 sends status messages to the app, and when settling is done it sends a final status (success/failure).

Feel free to contact me if there is any other info you need regarding the PHD2 interface, or if there are any missing features in the interface that would be useful for APT.

Andy

Reply all
Reply to author
Forward
0 new messages