{"id":22127694,"url":"https://github.com/rrskybox/afprofiler","last_synced_at":"2026-02-12T21:03:04.798Z","repository":{"id":128637255,"uuid":"239557064","full_name":"rrskybox/AFProfiler","owner":"rrskybox","description":"Astroimaging tool for collection of focus position/temperature data using TheSkyX.","archived":false,"fork":false,"pushed_at":"2025-01-12T05:18:09.000Z","size":3752,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T09:49:42.084Z","etag":null,"topics":["focuser","theskyx"],"latest_commit_sha":null,"homepage":null,"language":"Visual Basic .NET","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rrskybox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-10T16:23:16.000Z","updated_at":"2025-01-12T05:18:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"a8eed4f2-359d-4612-b6a6-980910332839","html_url":"https://github.com/rrskybox/AFProfiler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rrskybox/AFProfiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rrskybox%2FAFProfiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rrskybox%2FAFProfiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rrskybox%2FAFProfiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rrskybox%2FAFProfiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rrskybox","download_url":"https://codeload.github.com/rrskybox/AFProfiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rrskybox%2FAFProfiler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29381043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T20:34:40.886Z","status":"ssl_error","status_checked_at":"2026-02-12T20:23:00.490Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["focuser","theskyx"],"created_at":"2024-12-01T17:20:20.180Z","updated_at":"2026-02-12T21:03:04.762Z","avatar_url":"https://github.com/rrskybox.png","language":"Visual Basic .NET","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AFProfiler\nAstroimaging tool for collection of focus position/temperature data using TheSkyX.\n\nAuto Focus Profiler Description (AFProfiler V1.94)\n\nRick McAlister, Dec 2018\n\nThis Windows application tool performs three tasks:\n\n1.\tPrefocus calculates and moves the focuser to a position based on the current focuser temperature, a temperature compensation trendline generated from a previously acquired focus data file. In addition, the focuser Critical Focus Zone (in steps) is calculated from focal ratio and focuser resolution.\n2.\tProfile runs the TSX @Focus2 or @Focus3 process over a set of filters for an extended period of time. Repetitions, wait period, exposure and filters are determined by the user.  To accommodate mixed wide and narrowband filter sets, AFProfiler assumes that an @Focus2/3 error is the result of a too faint image and automatically doubles the exposure time for a second try.  Upon completion (or abort) the user is prompted to save the data points in a focus data file.\n3.\tAnalyze computes focuser parameters from a previously acquired focus data file, including temperature compensation trendlines and filter offsets, based on a reference temperature and filter (normally the clear filter).  A projected effectiveness for the calculated temperature compensation and offset of each filter is also judged based on the percentage of focus data points that fall within the CFZ as centered on the temperature compensation trendline for the reference filter.\n \nNotes on Operation:  \n\nThe user sets the following parameters:  \n1)\tFocal Length of imaging system\n2)\tResolution (microns per step) of focuser\n3)\tReference Filter – filter from which all other filter offsets are calculated.\n4)\tFirst Filter number, Last Filter number, Clear Filter number – all zero-based.\n5)\tExposure time in seconds\n6)\tNumber of Repetitions\n7)\tWait Between Repetitions as time delay between sets, giving time for temperature change.\n8)\tReference Temperature around which offsets and compensation are to be calculated.\n9)\tUse CLS determines whether the program will re-center the focus star for each repetition.\n10)\t Use @Focus3 tells the program use the @Focus3 method rather than @Focus2\n\nCurrent Temp is read from the focuser itself and is only used for PreFocus calculations.\nCritical Focus Zone is calculated from focal ratio and resolution inputs.\n\nOnce set up, the application runs the filter set through the @Focus2 or 3 process, waits for the set interval, then repeats for the set number of repetitions.  Upon completion, the focus data can be stored in a *.foc file.  Note that saving the focus data must be done manually in TSX.  Neither AFProfiler or TSX will store this data automatically.  Note that if you disconnect the focuser before saving your data, all focuser data will be cleared.\n\nTemperature Compensation is computed as a least-mean-square linear fit of the focus data, individually by filter.  Essentially, this means drawing a straight line that is least distant from all the points.  As temperature compensation is computed for each filter, the TC slope may be different for different filters.  If the computed slope is wildly different between filters, then there is probably a problem with the system.\n\nSome imaging system may have a nonlinear response to changes in temperature, i.e. a curve is the best fit.  This might be especially true over large temperature ranges.  If so, TSX temperature compensation won’t help.  You’ll need to refocus to deal with temperature swings.  The accuracy measure (described below) may help determine if you are dealing with a nonlinear temperature response or not.  \n\nAccuracy provides a basis to estimate the effectiveness of applying calculated temperature compensation values and offsets.to the focuser.  The graph below plots the acquired focus data points for a range of temperatures.  The line is the temperature compensation (TC) computed for those points as a least-mean-squares fit.  A critical focus zone (CFZ) is shown as an area around the TC line.  \n\n \n\nAll the focus data points that fall within the CFZ are as good as it can get for the optical set up.  That is, for any given temperature, any position within that zone is considered focused.  So, the percentage of data points within the CFZ can be considered a measure of the accuracy of the computed temperature compensation for the given imager.  If none of the points fall within the zone then the TC line can be considered worthless.  If all of the points fall within the zone then the TC can be considered more or less accurate, assuming a large enough sample size.\n\nRequirements:  \n\nAuto Focus Profiler is a Windows Forms executable, written in Visual Basic.  The application runs as an uncertified, standalone application under Windows 7, 8 and 10.  The application uses the TSX Camera Add On capability.  AFProfiler has been validated on TSX 10.5.0 Build 11355.\n\nInstallation:  \n\nAFProfiler executes as a “Click-Once” application.  This means that it is installed and executed from a system cache and does not create folder(s) on your system.  It also means that the application will run immediately after installation – shouldn’t be a problem.  \n\nDownload the \"publish\" directory.  Open the \"Setup.exe\" application.  Upon completion, an application icon will have been added to the start menu under the category \"TSXToolkit\" with the application name  “Auto Focus Profiler\".  This application can be pinned to the Start if desired.\n\nSupport:  \n\nThis application was written for the public domain and as such is unsupported. The developer will listen to problems and suggestions for improvement, but really wishes you his best and hopes everything works out.  He further but recommends learning Visual Basic (it's really not hard and the tools are free from Microsoft) if you find a problem or want to add features.  The source is supplied as a Visual Studio project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frrskybox%2Fafprofiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frrskybox%2Fafprofiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frrskybox%2Fafprofiler/lists"}