diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 30569b5..2f60ef5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,6 @@ jobs: build-and-deploy: runs-on: ubuntu-latest steps: - - run: sudo apt-get update - run: sudo apt-get install -y python3 python3-pip texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra latexmk - name: Check out repository code uses: actions/checkout@v2 diff --git a/_static/ref/filters/GaiaG_WFS_color_conversion.csv b/_static/ref/filters/GaiaG_WFS_color_conversion.csv index b0ed4c0..aaaea97 100644 --- a/_static/ref/filters/GaiaG_WFS_color_conversion.csv +++ b/_static/ref/filters/GaiaG_WFS_color_conversion.csv @@ -1,69 +1,69 @@ -SpT,SpT numbers,G - 65/35 color,G - Ha/IR color,Gaia BP-RP -O5V,0.5,-0.3573502687639464,-0.44918874473492765,-0.5447579411076704 -O9V,0.9,-0.3452212829721007,-0.43167865583792897,-0.5183108102207823 -B0V,1.0,-0.3119085851152382,-0.3813666869817931,-0.4740289318134452 -B1V,1.1,-0.22322761405070318,-0.2724490444820063,-0.34944110964073105 -B3V,1.3,-0.1605049636182077,-0.18818124401440223,-0.24412271633316898 -B57V,1.6,-0.09096828972964349,-0.09978471165448721,-0.13402340024411763 -B8V,1.8,-0.04302853459153762,-0.048982378886952574,-0.0709859577370874 -B9V,1.9,-0.011798481131083012,-0.019440340618234263,-0.020277911122834818 -A0V,2.0,0.025957157612023253,0.036940237212156786,0.044800266752521675 -A2V,2.2,0.052604786786244154,0.06902570343015614,0.0855996129330606 -A3V,2.3,0.0925712533948121,0.11446004627986994,0.15124827902368415 -A5V,2.5,0.14743080735927525,0.19477615266145015,0.23384883933887168 -A7V,2.7,0.2013148552743384,0.2545247951194788,0.31820467261229324 -F0V,3.0,0.275902098259206,0.34427794675510287,0.4557057861937448 -F2V,3.2,0.3451696162696808,0.43826778302202013,0.5653344307397556 -F5V,3.5,0.366676162798911,0.4557920175389665,0.6125328582077155 -F6V,3.6,0.4316901751341941,0.5361533889191838,0.721924585551164 -F8V,3.8,0.46219969526790383,0.5829152512063467,0.7980493271700504 -G0V,4.0,0.49363000552065084,0.6266407823977631,0.8439556271055353 -G2V,4.2,0.4997158752245639,0.6323009275866964,0.8561529114094982 -G5V,4.5,0.5171331778540917,0.6407485263821233,0.8878001346238991 -G8V,4.8,0.5494774475398748,0.6879472944051619,0.9647263401107088 -K0V,5.0,0.5850512408082624,0.727331053936256,1.0257567626877009 -K2V,5.2,0.6347163920349166,0.7931139502832945,1.1390766113451685 -K3V,5.3,0.6815560691529127,0.8619414589186373,1.248853573956386 -K4V,5.4,0.7396831234566453,0.9326108584249518,1.38339143373997 -K5V,5.5,0.790799542742822,1.0008011195841413,1.4957155461757774 -K7V,5.7,0.8767973701533073,1.13161341351613,1.7148220131732608 -M0V,6.0,0.9273817665427095,1.2108313298872913,1.8325234089219924 -M1V,6.1,0.9890078326103835,1.3112113634919282,1.9894444247819036 -M2V,6.2,1.0404890067192225,1.3770817272834925,2.1296241119979604 -M2.5V,6.2,1.1063352727107112,1.4884526360845671,2.348380970002005 -M3V,6.3,1.1570833683131052,1.5580691893970011,2.5351984639487477 -M4V,6.4,1.2487019409555704,1.6828322030411305,2.9004408858176873 -M5V,6.5,1.3330371819032885,1.7895505244295706,3.2351023868712425 -M6V,6.6,1.483797465901902,1.9660371153837564,3.8585931299346763 -O8III,0.8,-0.3365341387644686,-0.43200499487901434,-0.5133561955047682 -B12III,1.1,-0.24558500314070913,-0.29115219927210007,-0.3753056525498394 -B3III,1.3,-0.16665399768022549,-0.1881076194088796,-0.24856698071328467 -B5III,1.5,-0.10694185288746647,-0.1219398648524167,-0.1619231224930669 -B9III,1.9,-0.031150777466806962,-0.03569301200887014,-0.05245291543342061 -A0III,2.0,0.036418138853179786,0.04319621658825884,0.056100178142295995 -A3III,2.3,0.10313400572855237,0.11610243228833902,0.1625319889399745 -A5III,2.5,0.1611317105502912,0.1994707580376872,0.25603633720033836 -A7III,2.7,0.2073187843367975,0.25969102423999135,0.32776262808592543 -F0III,3.0,0.26062970501361377,0.34002133603647344,0.4134142068622515 -F2III,3.2,0.3498683925675908,0.42669580900956566,0.572303434706529 -F5III,3.5,0.3758726018222056,0.46705991509818573,0.6184354783769902 -G0III,4.0,0.5097523142611546,0.6418978235257903,0.878198783858748 -G5III,4.5,0.5988603446638932,0.748318096934659,1.0679576477390293 -G8III,4.8,0.6186595876547154,0.7783546078955232,1.1011593921793397 -K0III,5.0,0.6559624528693306,0.818572048654205,1.184021040847753 -K1III,5.1,0.6990226801191883,0.8757291015115054,1.2694330281798643 -K2III,5.2,0.7265517131270425,0.9173798551543302,1.3448860042776878 -K3III,5.3,0.7636678042459969,0.9590503205725348,1.4242100914312674 -K4III,5.4,0.8284709217903877,1.0497191436146731,1.564413198110399 -K5III,5.5,0.8930011060188475,1.1479860130795285,1.750545228714224 -M0III,6.0,0.924767138710266,1.2083373123263845,1.8247592563546586 -M1III,6.1,0.9627623865399746,1.2692134640282642,1.922967650468946 -M2III,6.2,0.9993011400115546,1.3178708796759713,2.0281787722915783 -M3III,6.3,1.0730790513875235,1.4360206051005613,2.234175937254496 -M4III,6.4,1.1763080417462646,1.5829073965566651,2.5504309821919833 -M5III,6.5,1.3090505596468336,1.752226083521249,2.955552448411134 -M6III,6.6,1.4575397069942517,1.9076176294913596,3.4508042476882617 -M7III,6.7,1.6507350992874725,2.0836960266905216,4.108393261103334 -M8III,6.8,1.8664957191995821,2.201543143902966,4.581750756737211 -M9III,6.9,1.8600116496772827,2.1760544603866814,4.396920370183749 -M10III,7.0,1.9353425143978304,2.238884384888504,4.626825104486364 +SpT,Gaia BP-RP,G - 65/35 color,G - Ha/IR color,SpT Number +O5V,-1.7532864681297404,-0.913168607991345,-1.1443593022930152,0.5 +O9V,-1.7591234538463922,-0.8765329992833699,-1.1229287840581108,0.9 +B0V,-1.6914779464618874,-0.8582647733124666,-1.1155049901804048,1.0 +B1V,-1.576875801507171,-0.8167442952120858,-1.0746391784390141,1.1 +B3V,-1.5223633572979445,-0.7693099735462994,-0.9739993635953539,1.3 +B57V,-1.4145217020085532,-0.7087850803915394,-0.9197040328695998,1.6 +B8V,-1.3782872424798853,-0.7386849234088615,-0.9136194196493967,1.8 +B9V,-1.3334429831369405,-0.7709710104739003,-0.94533824769373,1.9 +A0V,-1.2991716970900953,-0.6806704266933927,-0.8827095168710883,2.0 +A2V,-1.243092682601194,-0.669132108428542,-0.8530215857442798,2.2 +A3V,-1.188863476666537,-0.6409097657877147,-0.8220822746370544,2.3 +A5V,-1.1229167163947302,-0.6242897989941909,-0.7662893661639494,2.5 +A7V,-1.0195926370895307,-0.5738326968074183,-0.7380648300215853,2.7 +F0V,-0.8358269852903355,-0.49368246647774683,-0.6513111258731179,3.0 +F2V,-0.764431592486158,-0.46390563767977966,-0.5889593506421207,3.2 +F5V,-0.6673397443073448,-0.43682706260830173,-0.5685484157498948,3.5 +F6V,-0.5343924392043427,-0.3873829184413502,-0.4881928491938794,3.6 +F8V,-0.4326573505151927,-0.3092745492646465,-0.41512233141524746,3.8 +G0V,-0.3069044340409057,-0.3254063922783317,-0.43502550875360413,4.0 +G2V,-0.33338916248212414,-0.31876584914954975,-0.4334898613033573,4.2 +G5V,-0.29221661438522517,-0.3455638426693426,-0.45259206875719116,4.5 +G8V,-0.13301692949210775,-0.28465241871227676,-0.36377160642409834,4.8 +K0V,0.01658256053842777,-0.3246726830365958,-0.398000039908073,5.0 +K2V,0.19611231277162489,-0.274917518990474,-0.3307364424504762,5.2 +K3V,0.5408852906321293,-0.1546103646175787,-0.25398319930981117,5.3 +K4V,0.704193469225558,-0.09356351611522484,-0.1459599805894385,5.4 +K5V,0.8573845860880596,-0.032462519899443265,-0.11730028188685893,5.5 +K7V,1.0974655745622748,0.1661332728983531,0.14229635539253138,5.7 +M0V,1.1457698465251518,0.28242990490358366,0.304490233867341,6.0 +M1V,1.3163847974653393,0.44229893660283537,0.49794550764251966,6.1 +M2V,1.5187573102515621,0.4906852918394158,0.5391408421665069,6.2 +M2.5V,1.6177334973657125,0.7009609428726655,0.8147142145965915,6.2 +M3V,1.8203380951958437,0.8957352693161802,1.048386521585634,6.3 +M4V,2.207077627578915,1.1386019699926635,1.3502434145710254,6.4 +M5V,2.366078506011476,1.3517032839880514,1.712597509251271,6.5 +M6V,2.892389795135255,1.7177004038817287,2.2772022296308236,6.6 +O8III,-1.738089487751541,-0.9075829706766427,-1.1804071313081543,0.8 +B12III,-1.6153855063877565,-0.804069640145542,-1.0284177542053747,1.1 +B3III,-1.5358043071410066,-0.7448523592891725,-0.9697305421266265,1.3 +B5III,-1.4526187300863285,-0.7128840341354774,-0.9336390767597003,1.5 +B9III,-1.3835645524765567,-0.7367857979378556,-0.957987814814004,1.9 +A0III,-1.2926801684529607,-0.7250443281884742,-0.9081940236654162,2.0 +A3III,-1.2156368528723434,-0.6872875228763995,-0.8748254479446196,2.3 +A5III,-1.1339929111290878,-0.6217311981483142,-0.7597962611072369,2.5 +A7III,-1.0047129838794682,-0.5856345466023463,-0.7408616938125867,2.7 +F0III,-0.9401350549352081,-0.5286747918992525,-0.6382163021045315,3.0 +F2III,-0.7365172125360964,-0.5017840002646388,-0.6315760003514725,3.2 +F5III,-0.669229010001807,-0.43965897665983533,-0.5717003829467515,3.5 +G0III,-0.3511058617179117,-0.3464093106842405,-0.432468976150318,4.0 +G5III,-0.08638034581701959,-0.28375217474890846,-0.3332791813405471,4.5 +G8III,-0.09497022982399272,-0.2709767396870859,-0.30785221759220605,4.8 +K0III,0.05931800510525065,-0.23772864758558043,-0.28195910952597814,5.0 +K1III,0.261278245146233,-0.23243921193056494,-0.24663287215722107,5.1 +K2III,0.3310710386346898,-0.16344134611426497,-0.20437885588356153,5.2 +K3III,0.45185309825728126,-0.1465240311538345,-0.158840153097362,5.3 +K4III,0.639344201154973,-0.0888911051785719,-0.041895707023702045,5.4 +K5III,1.0175543420493725,0.03684145780532333,0.06075327424644783,5.5 +M0III,1.0930628631636665,0.17282592953703357,0.17197479934968385,6.0 +M1III,1.2485762038730783,0.23858803124669592,0.2680995946238873,6.1 +M2III,1.382548260869651,0.27875040181439914,0.33503585463692076,6.2 +M3III,1.6068561743474987,0.47080047092184785,0.5955651773401804,6.3 +M4III,1.9392551222897865,0.6889734959049605,0.9651753158934255,6.4 +M5III,2.3137928389659486,0.9452170981945613,1.361528770147757,6.5 +M6III,2.8619888950140755,1.167730556582189,1.838462860603471,6.6 +M7III,3.6905181439059724,1.4456348053521815,2.439191533864175,6.7 +M8III,4.309957782377442,1.5654002376409188,2.786292655433371,6.8 +M9III,4.147217873776803,1.4286486052512792,2.6738329203470705,6.9 +M10III,4.413302548559017,1.540156799314115,3.1019998435686844,7.0 diff --git a/_static/ref/filters/MagAOXfilters_toSDSSfilters_color_conversion.csv b/_static/ref/filters/MagAOXfilters_toSDSSfilters_color_conversion.csv index e908a75..dc45e0d 100644 --- a/_static/ref/filters/MagAOXfilters_toSDSSfilters_color_conversion.csv +++ b/_static/ref/filters/MagAOXfilters_toSDSSfilters_color_conversion.csv @@ -1,69 +1,69 @@ -SpT,SpT numbers,g,r,i,z,SpT Number -O5V,0.5,-0.10194111396293831,0.004162180379104097,-0.01354616304490519,-0.012107742583972458,0.5 -O9V,0.9,-0.0843227343390307,0.0039112986652753146,-0.010577405822423724,-0.015159621199118456,0.9 -B0V,1.0,-0.09181981542109491,0.004248550125203143,-0.009704481781929647,-0.013369663190104741,1.0 -B1V,1.1,-0.06363479892332946,0.0028369367236378423,-0.0049038517151370475,-0.012528565043527118,1.1 -B3V,1.3,-0.05226042756063631,0.002272007117041605,-0.00105094974516369,-0.011331101628622942,1.3 -B57V,1.6,-0.03512711735500712,8.549610479562098e-05,0.0007086945559261273,-0.010510224133308474,1.6 -B8V,1.8,-0.029933095750871185,0.0009580974360037194,0.00022596424683756638,-0.005284681704134292,1.8 -B9V,1.9,-0.010442995622616132,-0.00081211556493644,-0.0012067739521353016,-0.004271752007411952,1.9 -A0V,2.0,0.007671431271074271,-7.544947712702539e-05,0.0013339285892651,-0.001508553218866733,2.0 -A2V,2.2,0.011089984519378707,-0.0016757324745606088,0.0035665331254803034,-0.0018039829827626863,2.2 -A3V,2.3,0.026100456402406727,-0.001066469240153238,0.005592354638078403,-0.004801061365123427,2.3 -A5V,2.5,0.04589484261988862,-0.0013768730963241785,0.005423392192310861,0.002235917596228487,2.5 -A7V,2.7,0.05762714737043639,-0.004865622948214479,0.009632850339789556,0.0038500383284959527,2.7 -F0V,3.0,0.08408569335106303,-0.007230849079459839,0.014299470467936948,0.0020248465684823413,3.0 -F2V,3.2,0.11183417191618389,-0.00847330776504937,0.017623663391300448,0.003205920519028016,3.2 -F5V,3.5,0.12081261159792178,-0.008072463046555373,0.01781673121329863,0.0007663468678882346,3.5 -F6V,3.6,0.13977095319707464,-0.009334560968579764,0.020700915140605347,0.009461185890811574,3.6 -F8V,3.8,0.15470439946664874,-0.010742250238430673,0.02197665945332572,0.010315641498734873,3.8 -G0V,4.0,0.1615300458152085,-0.012812421455002831,0.02379390690615324,0.008043260068325231,4.0 -G2V,4.2,0.1724058292018753,-0.012599559427550255,0.024663847988314336,0.008701264422807498,4.2 -G5V,4.5,0.1887376379294307,-0.014421324071629549,0.023889484206842226,0.008699029190388896,4.5 -G8V,4.8,0.20283981678805846,-0.013751904428402129,0.026388862540886904,0.008239440905210449,4.8 -K0V,5.0,0.22389102598157096,-0.01527317910378767,0.027508077098945205,0.011867266115394237,5.0 -K2V,5.2,0.24176967078062395,-0.01664659969966803,0.03023877185695245,0.010914231508232897,5.2 -K3V,5.3,0.24695065008909156,-0.018019210968641952,0.034099748978834166,0.010186056364881235,5.3 -K4V,5.4,0.28427108390865996,-0.018896949348721548,0.0359556164530912,0.01460067552351485,5.4 -K5V,5.5,0.3051094835460437,-0.024103721830443514,0.040832103124817776,0.01833041856359441,5.5 -K7V,5.7,0.3684902554467969,-0.029176216738944105,0.0535981408690005,0.020018692304754282,5.7 -M0V,6.0,0.343063946924812,-0.028551509255721585,0.06067003146422656,0.02576533355852284,6.0 -M1V,6.1,0.3731562209057312,-0.03276787895682454,0.07403326240926544,0.030285941457531607,6.1 -M2V,6.2,0.4014116734268782,-0.04205036419158448,0.07940192728525708,0.033776557610860625,6.2 -M2.5V,6.2,0.41676452696341015,-0.0458394574058667,0.10142132964234696,0.03155844126627105,6.2 -M3V,6.3,0.45037493036880305,-0.04972249916926663,0.1075501902651741,0.03556881827744096,6.3 -M4V,6.4,0.47075412369455083,-0.05214956215407085,0.11739182831951789,0.046895058181477545,6.4 -M5V,6.5,0.49080055179324533,-0.056381259900392,0.14463137678003424,0.04734966779997585,6.5 -M6V,6.6,0.5494633683008999,-0.058952659399133966,0.18909793555597387,0.06634449911883511,6.6 -O8III,0.8,-0.0903162850883502,0.004738943132339815,-0.01264321937981494,-0.01163453127981079,0.8 -B12III,1.1,-0.06940872544211095,0.003061703523698431,-0.004207302838813903,-0.016024636576576323,1.1 -B3III,1.3,-0.04668879754457264,0.005155440351173879,-0.0015173877520537893,-0.010062241552419054,1.3 -B5III,1.5,-0.03699304243678202,0.0002562810807684446,-5.78233333357811e-05,-0.006569381873426802,1.5 -B9III,1.9,-0.02245615365006903,-0.0006890340922697615,-0.0009180378991783186,-0.000399599136451401,1.9 -A0III,2.0,0.01478669670854739,-0.0004311668599677118,0.00043309692829147234,-0.0032336951795157026,2.0 -A3III,2.3,0.04066564759875255,-0.003115802168715001,0.001813443018897118,-0.001049523699875543,2.3 -A5III,2.5,0.05228306567498783,-0.0030943404080124443,0.0026433170023957564,0.003950669241061022,2.5 -A7III,2.7,0.05859784887866264,-0.005567010708503767,0.008674673639232938,-0.00031397349313871947,2.7 -F0III,3.0,0.075471658004234,-0.005934015101136572,0.014035404850050726,0.0044709778872511485,3.0 -F2III,3.2,0.11439362219296695,-0.009261227706656383,0.014416013147225626,0.0070381418525707895,3.2 -F5III,3.5,0.11563488540812716,-0.009685285732770638,0.016973804621397026,0.00690314601916775,3.5 -G0III,4.0,0.17922197205588475,-0.012623737623194131,0.024690829902926148,0.00833092882480957,4.0 -G5III,4.5,0.2372138953841807,-0.014238043030587788,0.02857123491283986,0.007744985040616159,4.5 -G8III,4.8,0.23018778179913651,-0.013962011971691501,0.030472790751832513,0.010732662242619595,4.8 -K0III,5.0,0.262498482707351,-0.016505290731378797,0.030434187100009003,0.010608074118269029,5.0 -K1III,5.1,0.2919662521796974,-0.015388684215944914,0.035391338733905986,0.015782080164777,5.1 -K2III,5.2,0.31765794204568987,-0.017614042085957404,0.03625702133937114,0.014720812839330577,5.2 -K3III,5.3,0.3493201108401969,-0.016541589882776486,0.036289259401412144,0.01817497846160765,5.3 -K4III,5.4,0.3728021467923197,-0.019633071141039404,0.04322208297864627,0.023862517239991776,5.4 -K5III,5.5,0.3988085571561192,-0.022552822451243237,0.050327485721459286,0.02172146259584573,5.5 -M0III,6.0,0.39369281311930004,-0.01923370543443792,0.0611906809512075,0.026164786073391344,6.0 -M1III,6.1,0.3994109764412097,-0.02165067205442095,0.06870458142404767,0.027807436683457087,6.1 -M2III,6.2,0.40994611253078705,-0.024960691028548032,0.07287561176158674,0.02870944011704646,6.2 -M3III,6.3,0.41585204690682964,-0.028315160778619508,0.08894840203061793,0.03274972502515494,6.3 -M4III,6.4,0.42366415783022127,-0.035363819920654516,0.11193156227066625,0.03977820685099287,6.4 -M5III,6.5,0.4144635123313153,-0.04637625009029017,0.13710546808840407,0.053747040972196736,6.5 -M6III,6.6,0.4037484484155249,-0.054302106911293,0.17338399451353492,0.0707052105332604,6.6 -M7III,6.7,0.3530842278549853,-0.061697068851841896,0.23033775904071963,0.09543143364219375,6.7 -M8III,6.8,0.3723272482620748,-0.07214179572751045,0.275737942032912,0.14286837898989635,6.8 -M9III,6.9,0.41737496104525185,-0.10405082486468364,0.26033772611104844,0.1523268140123113,6.9 -M10III,7.0,0.40598740726974736,-0.14403721383108598,0.2939167091074286,0.16257979040375492,7.0 +SpT,g,r,i,z,SpT Number +O5V,-0.7236663842019961,0.01010322112681905,0.09865830112794072,0.1098311849704725,0.5 +O9V,-0.7051614859113258,0.00989234333020228,0.1016880654006318,0.10663851797435875,0.9 +B0V,-0.7135542350781563,0.010091820930338002,0.10236378343948438,0.10853975191459497,1.0 +B1V,-0.6849027735611273,0.008630174128585466,0.10700998394183081,0.10948372049232447,1.1 +B3V,-0.6725293111446184,0.008069548554544781,0.1109626575118785,0.110364770510893,1.3 +B57V,-0.6546534336060432,0.005764726186676228,0.112576793489513,0.11130166230017302,1.6 +B8V,-0.6493585273237805,0.006539078609270277,0.11202203647166975,0.11644344009174645,1.8 +B9V,-0.6289815570684727,0.00464193824725001,0.11068864284063551,0.11760875447505192,1.9 +A0V,-0.6098606098617978,0.005380710489617968,0.11336088433647085,0.12017393319321101,2.0 +A2V,-0.6064569883151378,0.0037832870587397593,0.11541378705174488,0.11978055761995243,2.2 +A3V,-0.591573803191979,0.004258446021852436,0.11728073117876825,0.11668308163707408,2.3 +A5V,-0.5714262210007508,0.003891587304796218,0.11730869133101152,0.12374683916606166,2.5 +A7V,-0.5585591686824749,0.00034850906319405794,0.1212731755933838,0.1251751728213737,2.7 +F0V,-0.5314583956851742,-0.0021935551979321843,0.12590401660473738,0.12341446698143343,3.0 +F2V,-0.5029348367434991,-0.0034874249576581917,0.12909184307831545,0.12465370783922936,3.2 +F5V,-0.4941746634504156,-0.003372998432162433,0.12925246227143283,0.12211252405856143,3.5 +F6V,-0.47344854689218785,-0.004710290928027661,0.13207459453955117,0.13038047186728008,3.6 +F8V,-0.45765284434684794,-0.006163015407935291,0.13356183211190498,0.13170740902676847,3.8 +G0V,-0.4499100004729648,-0.008247585154652626,0.13521580098840857,0.12922129768947954,4.0 +G2V,-0.43936059632487456,-0.008038391416381074,0.1360778880881952,0.1299546666617104,4.2 +G5V,-0.42184797286112463,-0.009938633939841068,0.1352902682053525,0.12985777386655784,4.5 +G8V,-0.4069536970920282,-0.009377589927174412,0.13771687163948165,0.12947610075409877,4.8 +K0V,-0.3851165744844831,-0.011010693755052259,0.13876783282310434,0.1329679943176867,5.0 +K2V,-0.36642812655630763,-0.012609512533087397,0.14144328327291866,0.13206060668302833,5.2 +K3V,-0.3623039842548792,-0.014099993035909364,0.14521917306023902,0.1312613215118219,5.3 +K4V,-0.322778999401244,-0.015164327628301777,0.14721119510403113,0.13566997334933717,5.4 +K5V,-0.3018305669678192,-0.02033915590500257,0.15224799924591892,0.13930646291887072,5.5 +K7V,-0.23850790314535786,-0.02536618908337651,0.16475033127594685,0.14100632119861345,5.7 +M0V,-0.26407499388080247,-0.024847189997910135,0.17172479886137637,0.14660988257343632,6.0 +M1V,-0.23436637948790384,-0.02881434843327746,0.18527499830915595,0.15090040576595065,6.1 +M2V,-0.206455327772197,-0.03816662430753581,0.19066781630134422,0.15439849552956808,6.2 +M2.5V,-0.1894181438615501,-0.041708361678326256,0.2123418808218105,0.1522455749583571,6.2 +M3V,-0.15666440042647167,-0.04569471728145835,0.21856576307037479,0.15597128183481246,6.3 +M4V,-0.13385617995124477,-0.04804796102794384,0.22842371435489994,0.16727495281684313,6.4 +M5V,-0.11305577083816587,-0.05244935882556412,0.2553662912639787,0.16725720454042303,6.5 +M6V,-0.05113779861751944,-0.05603041810377363,0.29893576547612,0.18598284694345857,6.6 +O8III,-0.7119878713940206,0.010672905752345585,0.09962151558175592,0.11008065594341865,0.8 +B12III,-0.69038551680576,0.008941494048121612,0.10776631226368139,0.1062105778752791,1.1 +B3III,-0.6660556778686146,0.010878508415203214,0.11046816880442734,0.11198505466308717,1.3 +B5III,-0.6554592272028152,0.005965585938186635,0.1119037602930657,0.11500102122158928,1.5 +B9III,-0.6407656840799021,0.004832983491009912,0.11104353545092138,0.12110782371326678,1.9 +A0III,-0.6023654350219054,0.005132455019261073,0.11229710679971028,0.11842343615465545,2.0 +A3III,-0.576450896943598,0.00230560951000669,0.113648783286866,0.1206340720367205,2.3 +A5III,-0.5640385115172215,0.0023067613336262838,0.1145046779397152,0.12560748366427,2.5 +A7III,-0.5578328508506765,-0.00034523692062826683,0.1203175522273856,0.1212689007311063,2.7 +F0III,-0.5399055053013271,-0.0008350160591028555,0.12551940091385738,0.12616650036499344,3.0 +F2III,-0.5003963973704959,-0.004334001586242309,0.12595942324071707,0.12836964335223122,3.2 +F5III,-0.4985524227531233,-0.004852889076010669,0.12843764495278442,0.12818038278487265,3.5 +G0III,-0.43240881305655243,-0.008156771610330793,0.13604957326441358,0.1297512189339578,4.0 +G5III,-0.3711228982102135,-0.010085960225719504,0.1397835865788295,0.12898186292846248,4.5 +G8III,-0.3790549222354027,-0.009828001759236926,0.1416131760205701,0.1317954552097902,4.8 +K0III,-0.344084241980946,-0.012584828761902145,0.14155476987135884,0.13165326460945614,5.0 +K1III,-0.31375023472460306,-0.011535366223634824,0.1465646880479632,0.13665060080531077,5.1 +K2III,-0.28680042395893857,-0.013888822817161639,0.14749153853219354,0.13583062955222758,5.2 +K3III,-0.2536850008767111,-0.012950411477062218,0.14760009102871763,0.13914264040350588,5.3 +K4III,-0.23016234293613458,-0.016169512262907304,0.1541624368312089,0.14475686585023162,5.4 +K5III,-0.20412111887137208,-0.01933802582540345,0.16138197728208858,0.14247371627920025,5.5 +M0III,-0.2095862401834605,-0.015467989198864274,0.17214453349620484,0.14693190564321412,6.0 +M1III,-0.20466884880756453,-0.01778746802478537,0.17960092104235237,0.14842071820336855,6.1 +M2III,-0.1943538004836558,-0.021119999682552404,0.18358925998458986,0.14924985691909676,6.2 +M3III,-0.18887166035257152,-0.024263220274718833,0.19971169844518855,0.1532956673861996,6.3 +M4III,-0.1820939808060693,-0.031124980916629852,0.22230137385539983,0.1599317039481658,6.4 +M5III,-0.19359789976998343,-0.04217907692358658,0.24722414650315017,0.17360275027837524,6.5 +M6III,-0.2060786984716909,-0.050992920586814705,0.28253141086076283,0.18975993725938345,6.6 +M7III,-0.2629389401669009,-0.05963103690998928,0.337849301414165,0.21391152971016858,6.7 +M8III,-0.2450767597946797,-0.07077874111877769,0.38091786235886715,0.2602226508451757,6.8 +M9III,-0.19885743271782097,-0.10134701531417001,0.36342638372640756,0.2690114968360362,6.9 +M10III,-0.21155182685665608,-0.14040454958490578,0.3951372306130345,0.2793942730430441,7.0 diff --git a/appendices/aligning_magao-x_to_the_scope.pdf b/appendices/aligning_magao-x_to_the_scope.pdf deleted file mode 100644 index e5a1cd9..0000000 Binary files a/appendices/aligning_magao-x_to_the_scope.pdf and /dev/null differ diff --git a/appendices/documenting.rst b/appendices/documenting.rst index 2e4aa14..7f33ad8 100644 --- a/appendices/documenting.rst +++ b/appendices/documenting.rst @@ -77,12 +77,6 @@ You will need Python 3.5 or newer (with ``pip``) and a recent version of `Anaconda `__ is a popular installer.) - Note: on Ubuntu 24 you can instead run this command: - - .. code-block:: bash - - $ sudo apt install python3-sphinx python3-sphinx-rtd-theme - 3. Ensure ``sphinx-build`` is on the path by running ``which sphinx-build`` at the prompt @@ -98,28 +92,6 @@ You will need Python 3.5 or newer (with ``pip``) and a recent version of You now have a copy of the sources for the handbook. If you’re just editing an existing document, :ref:`skip ahead `. -Installing for windows -~~~~~~~~~~~~~~~~~~~~~~ - -1. Download and Install `Git Bash `__. Git Bash is an application - for Windows that emulates a Unix command line environment for Git - -2. Download and Install `Anaconda `__. - -3. In order for ``pip install`` and python to work properly in Git Bash from the previous section, - you must open the PowerShell and run this command: ``source /c/Path/to/anaconda3/Scripts/activate``. - You should now be able to restart Git Bash and successfully run ``pip``. - -4. You will then need to generate a ssh key pair. To generate a public/private key pair run ``ssh-keygen -t ed25519`` in Git Bash. - -5. A key fingerprint will be generated. This will need to be copied and pasted in your github account under 'Settings' -> 'SSH and GPG keys'. - Click 'New SSH key' and paste the key fingerprint under key. Click 'Add SSH key'. - -6. Back in Git Bash, you will need to run the command: ``ssh -T git@github.com`` to test - the connection. If everything is done correctly, it will tell you it has been successfully authenticated. If it - states permission denied, you need to ensure everything is correctly set up. If errors persist, try deleting - the keys, generate a new pair, and try again. - Creating a brand new document ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/compute/computer_setup/computer_setup.rst b/compute/computer_setup/computer_setup.rst index 4aacb00..260387e 100644 --- a/compute/computer_setup/computer_setup.rst +++ b/compute/computer_setup/computer_setup.rst @@ -102,8 +102,6 @@ Date & Time Partitions ~~~~~~~~~~ -See :doc:`migration` if you're migrating to a new OS or new drives because you'll probably want to save files relevant to UID/GID maps, keys, tailscale, etc. - - Select all disks - Select “I will configure partitioning” - On 2x 512 drives: @@ -354,10 +352,10 @@ devices.) (e.g. ``ping 8.8.8.8``) and the new config works to ping the machine from outside -Configure VPN -~~~~~~~~~~~~~ +Configure Tailscale +~~~~~~~~~~~~~~~~~~~ -See the :doc:`../vpn` section of the handbook for install instructions. +See the :doc:`../tailscale` section of the handbook for install instructions. If this is a migration from an old install, you will need ``/var/lib/tailscale/tailscaled.state`` from the old machine. See :ref:`migration`. @@ -626,3 +624,17 @@ Verify bootloader installation / RAID correctness - Ensure boot proceeds without dropping to recovery prompt - Replace all data drives, boot with everything in place +.. _migration: + +Migrating data from a previous installation +------------------------------------------- + +There are several very important files to retain when reinstalling the operating system. + + - ``/var/lib/tailscale/tailscaled.state`` -- this file allows the machine to keep its name and IP address on the tailnet + - ``/etc/ssh/ssh_host_*_key*`` -- these files allow clients to connect over SSH without triggering a scary warning and requiring manual intervention + - ``/home/xsup/.ssh/{authorized_keys,id_ed25519,id_ed25519.pub,known_hosts}`` -- these files allow ``xsup`` to connect to other MagAO-X machines without prompting for host key verification + - ``/etc/{passwd,group,shadow}`` -- these files contain the UID and GID mappings and user passwords to restore + - ``/etc/systemd/system/renew_certificates.service.d/override.conf`` -- API credentials used by the ``lego`` command to renew HTTPS certificates used by the web UI + +You may additionally want to back up the user home directories to retain their configuration files, though they should store data on the `/data` partition. \ No newline at end of file diff --git a/compute/computer_setup/install_magaox_rpi.rst b/compute/computer_setup/install_magaox_rpi.rst deleted file mode 100644 index 8beea7e..0000000 --- a/compute/computer_setup/install_magaox_rpi.rst +++ /dev/null @@ -1,116 +0,0 @@ -.. raw:: html - - - -.. role:: red - - -Installing MagAO-X on a Raspberry Pi -==================================== - - -Configuring the Raspberry Pi ----------------------------- - -Prepare the MicroSD card -~~~~~~~~~~~~~~~~~~~~~~~~ - -The first step is to use a Raspberry Pi imaging tool to image an SD card. On Windows, you can download the Raspberry Pi Imager from the `Raspberry Pi Website `__.) -The MicroSD card can then be inserted into your computer. Now open the Raspberry Imager and select the Raspberry Pi Device you have, the operating system (OS) -(Ubuntu server 24.04 LTS), and the storage (your MicroSD card). To access the OS customization, use ``ctrl+shift+x``. This is where you can set hostname, -username password, etc. - -.. note:: - It is crucial that you 'Enable SSH' in the OS customization. - -Now click 'next' and 'write' to install the OS on the Micro SD card. - -In the MicroSD, update ``cmdline.txt`` by adding the following string to the end: ``ip=192.168.0.5::192.168.0.1:255.255.255.0:rpi:eth0:off``. Note that -this ip can be changed to match your desired static ip settings. - - -Boot the Raspberry Pi -~~~~~~~~~~~~~~~~~~~~~ - -Insert the MicroSD card back into the Raspberry Pi. If you are using your PC, you can use an ethernet cable to connect the Raspberry Pi to your PC -(you may need an Ethernet to USB C adapter). You can now power up the Raspberry Pi (This may take a couple minutes to boot). - -While this is booting, go to 'Settings' on your computer, then 'Ethernet'. In here, edit the IP assignment to Manual, the IPv4 address to something similar -to 192.168.0.6, and the IPv4 mask to something similar to 255.255.255.0. This needs to be the same as what was added to ``cmdline.txt``. - -After this is complete, go to your terminal and ping the Raspberry Pi's IPv4 address ``ping 192.168.0.5`` to ensure -it is receiving you. Then SSH into the Raspberry Pi ``ssh 192.168.0.5``. - -Connect the Raspberry Pi to WiFi -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The first thing to do is to edit the netplan file ``/etc/netplan/50-cloud-init.yaml`` to: - -:: - - network: - version: 2 - ethernets: - eth0: - addresses: - - 192.168.0.5/24 - match: - macaddress: dc:a6:32:ef:87:8a - routes: - - to: default - via: 192.168.0.1 - set-name: eth0 - wifis: - wlan0: - optional: true - access-points: - "summit-data": {} - dhcp4: true - -The part that needs to be added is ``wifis:`` and below, where ``"summit-data"`` is the name of the WiFi. If the WiFi has a password, delete the ``{}`` and -add ``password: "ENTER_PASSWORD_HERE"`` indented under ``"summit-data"``. Back in the terminal, run the following commands: - -:: - - $ sudo netplan --debug try - $ sudo netplan --debug generate - $ sudo netplan --debug apply - -You may then check to see if you are connected to the WiFi using the ``ip ad`` command. The IP address of the WiFi can be found here. This can be used to -``ssh`` back into the Raspberry Pi. - -Connect automatically to WiFi -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Create a new file called 'interfaces' with ``sudo nano /etc/network/interfaces`` and add the text ``auto wlan0``. Then ``sudo reboot`` and wait a -couple minutes to ``ssh`` back in using the WiFi's IP address. - - -Install MagAO-X ---------------- - -These steps are also outlined :doc:`here <\computer_setup>`, however there are a few that are unnecessary. Provided below is a -simplified version. - -1. Clone `MagAO-X `__ into your home directory. - -:: - - $ cd - $ git clone https://github.com/magao-x/MagAOX.git - -2. Switch to the ``setup`` subdirectory in the MagAO-X directory you cloned (``~/MagAOX/setup``) to perform pre-provisioning steps. - -:: - - $ cd ~/MagAOX/setup - $ ./pre_provision.sh - -This will give you a prompt where you will want to select 'workstation'. - -3. Run ``provision.sh`` - -:: - - $ cd ~/MagAOX/setup - $ bash provision.sh diff --git a/compute/computer_setup/migration.rst b/compute/computer_setup/migration.rst deleted file mode 100644 index 4cc0e9e..0000000 --- a/compute/computer_setup/migration.rst +++ /dev/null @@ -1,12 +0,0 @@ -Migrating data from an existing installation -============================================ - -There are several very important files to retain when reinstalling the operating system. - - - ``/var/lib/tailscale/tailscaled.state`` -- this file allows the machine to keep its name and IP address on the VPN - - ``/etc/ssh/ssh_host_*_key*`` -- these files allow clients to connect over SSH without triggering a scary warning and requiring manual intervention - - ``/home/xsup/.ssh/{authorized_keys,id_ed25519,id_ed25519.pub,known_hosts}`` -- these files allow ``xsup`` to connect to other MagAO-X machines without prompting for host key verification - - ``/etc/{passwd,group,shadow}`` -- these files contain the UID and GID mappings and user passwords to restore. Manual surgery will be required because new installs come with new system accounts. Generally, we only want to migrate user accounts (UID ≥ 1000). - - ``/etc/systemd/system/renew_certificates.service.d/override.conf`` -- API credentials used by the ``lego`` command to renew HTTPS certificates used by the web UI (only on AOC) - -You may additionally want to back up the user home directories to retain their configuration files, though they should store data on the `/data` partition. diff --git a/compute/data_backup.rst b/compute/data_backup.rst deleted file mode 100644 index cad2c4e..0000000 --- a/compute/data_backup.rst +++ /dev/null @@ -1,49 +0,0 @@ -Using the file inventory database to synchronize backups --------------------------------------------------------- - -The lifecycle of a MagAO-X data file: - -1. Empty file is created on one of the MagAO-X instrument computers -2. Data are written to this file (either all at once, or slowly over many hours) -3. The file is closed by the creator process and never modified again - -After the file is "finished", it can (and should) be replicated to a backup volume or offsite. Unfortunately, with e.g. ``bintel`` -files, we can't trivially tell whether a file has been "finished". So, we use the ``mtime`` and ``size`` attributes of files. - -The lifecycle of a MagAO-X file **replica**: - -1. The need for a new replica is identified - a. by the creation of a new replica in the replica set (which will initially have no files) - b. by the creation of a new file record in the inventory (which will initially have no replicas, only the original copy) - c. by a discrepancy between the ``mtime`` or ``size`` for a file inventory record and the corresponding replica record -2. The file is copied to the replica -3. The table of file replicas is updated to reflect the ``mtime`` and ``size`` of the source file - -There is also a "reverse" process to populate the origins table given e.g. a backup volume. As long as the backup is organized -into folders by origin host, it is possible to use file creation time metadata and file names to work backwards to the origin -host and path. Since the origin record must exist before the replica record is created, enrolling files from a backup follows -this process: - -1. For every top-level per-host directory (e.g. ``exao1``) under the backup prefix (e.g. ``/backup/prefix``), set the notional -host to that directory's name. -2. Within the directory, walk through all paths and create file origin records. Using the absolute path of the backup file, -replace the backup prefix and host (e.g. ``/backup/prefix/exao1``) with ``/`` to get the origin path. -3. Create the replica record and point it to the origin record. - -Adding / refreshing a replica -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``xtelemdb add_replica prefix=/mnt/backup`` - -``xtelemdb add_replica host=popeye prefix=ceph/magao-x/ import_origins=true`` - -``xtelemdb replica_list`` - -``xtelemdb sync continuous=true`` - -:: - - [replicas."/mnt/backup"] - local = true - - [replicas."ssh://popeye/ceph/magao-x/"] diff --git a/compute/data_storage_management.rst b/compute/data_storage_management.rst index a073e80..fd248dc 100644 --- a/compute/data_storage_management.rst +++ b/compute/data_storage_management.rst @@ -1,11 +1,6 @@ Data Storage Management ======================= -.. toctree:: - :maxdepth: 1 - - data_backup - RAID arrays ----------- diff --git a/compute/database.rst b/compute/database.rst index 65c30df..55d4196 100644 --- a/compute/database.rst +++ b/compute/database.rst @@ -1,12 +1,9 @@ Telemetry and File Inventory Database ===================================== - -The MagAO-X telemetry database is a PostgreSQL database running on AOC that collects device telemetry from the ``.bintel`` -and ``.ndjson.gz`` files produced by instrument devices across the computers in MagAO-X. It also tracks the inventory of -files for replication to backup volumes and remote sites. -The database is designed to be a central repository for all telemetry data produced by the instrument, and to provide a -simple interface for querying and visualizing that data. +The MagAO-X telemetry database is a PostgreSQL database running on AOC that collects device telemetry from the ``.bintel`` and ``.ndjson.gz`` files produced by instrument devices across the computers in MagAO-X. It also tracks the inventory of files for replication to backup volumes and remote sites. + +The database is designed to be a central repository for all telemetry data produced by the instrument, and to provide a simple interface for querying and visualizing that data. First, you will need to set up the database as described in :ref:`setup_telemetry_database`. @@ -18,8 +15,7 @@ Maintenance Backfilling existing data ~~~~~~~~~~~~~~~~~~~~~~~~~ -There are a couple of times you may want to backfill the database. If you're starting from scratch with an empty database, -or if the ``dbIngest`` processes are interrupted and need to catch up, you can perform the backfill with: +There are a couple of times you may want to backfill the database. If you're starting from scratch with an empty database, or if the ``dbIngest`` processes are interrupted and need to catch up, you can perform the backfill with: 1. ``xtelemdb inventory`` @@ -32,9 +28,7 @@ Repeat these steps on every instrument computer that needs to be caught up. Reinitialize the database ~~~~~~~~~~~~~~~~~~~~~~~~~ -If the database gets messed up, it's no big deal. The contents should be entirely reproducible given the same set of -files on the three instrument computers. (How to fill in data that's already been shunted off to backup drives... is -another matter. TODO) +If the database gets messed up, it's no big deal. The contents should be entirely reproducible given the same set of files on the three instrument computers. (How to fill in data that's already been shunted off to backup drives... is another matter. TODO) Level 1: Remove data from tables, keeping tables/indices/views the same ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -47,8 +41,7 @@ Using ``sudo -u postgres psql xtelem`` to connect to the ``xtelem`` database as TRUNCATE TABLE file_origins CASCADE; COMMIT; -Adjust as needed for other tables. (Use ``\dt`` at the ``xtelem=#`` prompt to list.) Continue with -the :ref:`backfill procedure `. +Adjust as needed for other tables. (Use ``\dt`` at the ``xtelem=#`` prompt to list.) Continue with the :ref:`backfill procedure `. Level 2: Remove tables and views ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -59,8 +52,7 @@ Using ``sudo -u postgres psql xtelem`` to connect to the ``xtelem`` database as DROP TABLE file_origins CASCADE; COMMIT; -Use the ``xtelemdb setup`` command to re-create the tables and views, then continue with -the :ref:`backfill procedure `. +Use the ``xtelemdb setup`` command to re-create the tables and views, then continue with the :ref:`backfill procedure `. Level 3: Remove database and roles (users) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -71,9 +63,7 @@ Using ``sudo -u postgres psql xtelem`` to connect to the ``xtelem`` database as DROP ROLE xsup; DROP ROLE xtelem; -Next, use ``setup/steps/configure_postgresql.sh`` in the MagAOX repository to create the database. Then, -use the ``xtelemdb setup`` command to re-create the tables and views, and continue with -the :ref:`backfill procedure `. +Next, use ``setup/steps/configure_postgresql.sh`` in the MagAOX repository to create the database. Then, use the ``xtelemdb setup`` command to re-create the tables and views, and continue with the :ref:`backfill procedure `. .. _setup_telemetry_database: @@ -81,15 +71,12 @@ the :ref:`backfill procedure `. Setup ----- -This is for setting up on the instrument (most likely AOC / exao1). For use on a non-instrument computer or a cluster, -see :ref:`setup_telemetry_database_nosudo`. +This is for setting up on the instrument (most likely AOC / exao1). For use on a non-instrument computer or a cluster, see :ref:`setup_telemetry_database_nosudo`. Prerequisites ~~~~~~~~~~~~~ -PostgreSQL version 14 or newer should be installed. The setup shell scripts include -a `configure_postgresql.sh `_ script -to run on AOC which does several things. It: +PostgreSQL version 14 or newer should be installed. The setup shell scripts include a `configure_postgresql.sh `_ script to run on AOC which does several things. It: * adds a line to the ``/etc/postgresql/14/main/pg_hba.conf`` file telling it to search ``/etc/postgresql/14/main/pg_hba.conf.d/*.conf`` for additional configuration, * creates that directory and a file within it that enables network access to the PostgreSQL server from the instrument LAN, @@ -140,9 +127,7 @@ After running them, ensure: Setup from CLI ~~~~~~~~~~~~~~ -Code to interact with the telemetry database is centralized in ``magaox`` Python package, which is maintained in the main -magao-x/MagAOX repository. On AOC, the package is installed in the default conda environment. To update the installed version, -run ``make python_install`` in ``/opt/MagAOX/source/MagAOX`` with a developer account. +Code to interact with the telemetry database is centralized in ``magaox`` Python package, which is maintained in the main magao-x/MagAOX repository. On AOC, the package is installed in the default conda environment. To update the installed version, run ``make python_install`` in ``/opt/MagAOX/source/MagAOX`` with a developer account. After installation, there is an ``xtelemdb`` command available:: @@ -154,9 +139,7 @@ After installation, there is an ``xtelemdb`` command available:: {setup,inventory,backfill} -We want to set up the database, so run ``xtelemdb setup``. Note that you will have to do this step as ``xsup`` or else -get the message ``ERROR Tried to get password from /opt/MagAOX/secrets/xtelemdb_password`` and a ``PermissionError``. -That could look like this:: +We want to set up the database, so run ``xtelemdb setup``. Note that you will have to do this step as ``xsup`` or else get the message ``ERROR Tried to get password from /opt/MagAOX/secrets/xtelemdb_password`` and a ``PermissionError``. That could look like this:: $ xsupify xsup@exao1:~$ xtelemdb setup @@ -184,10 +167,7 @@ Check that the tables you expect were created:: Start device processes ~~~~~~~~~~~~~~~~~~~~~~ -The proclist for each instrument computer will launch a ``dbIngest`` device process at ``xctrl startup``. -(These are named ``dbIngestAOC``, ``dbIngestRTC``, and ``dbIngestICC``.) If they were started before the database -became available, they will probably have crashed. Use ``xctrl restart dbIngestAOC`` to start the device on AOC, and -modify accordingly for the other two machines. +The proclist for each instrument computer will launch a ``dbIngest`` device process at ``xctrl startup``. (These are named ``dbIngestAOC``, ``dbIngestRTC``, and ``dbIngestICC``.) If they were started before the database became available, they will probably have crashed. Use ``xctrl restart dbIngestAOC`` to start the device on AOC, and modify accordingly for the other two machines. .. _setup_telemetry_database_nosudo: @@ -195,8 +175,7 @@ modify accordingly for the other two machines. Setup a personal copy of the database ------------------------------------- -PostgreSQL is a full database system which generally requires administrator access to install. However, in cluster -computing settings where you don't have ``sudo``, you may still install a database using ``conda`` / ``mamba``. +PostgreSQL is a full database system which generally requires administrator access to install. However, in cluster computing settings where you don't have ``sudo``, you may still install a database using ``conda`` / ``mamba``. Installing a personal PostgreSQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/compute/index.rst b/compute/index.rst index 785a4ff..8c5b03d 100644 --- a/compute/index.rst +++ b/compute/index.rst @@ -13,11 +13,9 @@ The MagAO-X computing system. networking data_storage_management computer_setup/computer_setup - computer_setup/migration - computer_setup/install_magaox_rpi ssl_certs nas - vpn + tailscale Computer Architecture --------------------- diff --git a/compute/lco_network.drawio b/compute/lco_network.drawio deleted file mode 100644 index 2828e54..0000000 --- a/compute/lco_network.drawio +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/compute/lco_network.drawio.svg b/compute/lco_network.drawio.svg deleted file mode 100644 index 926e93a..0000000 --- a/compute/lco_network.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Observatory
Telescope
Network
Boundary
Electronics Rack
operator workstation
AOC
exao1
instrument control
ICC
exao3
real-time control
RTC
exao2
MagAO-X instrument network
instrument equipment
(PDUs, etc.)
trusted network
ethernet/wifi
10Gbps ethernet
encrypted tunnel
10 Gbps fiber to platform
testbed control
TIC
exao0
remote researcher computer
LCO/Carnegie
firewall
telescopes network
Internet
onsite
researcher computer
GO workstation
COC
exao4
control room
network switch
LCO-VISITOR WiFi
LCO network
weather.lco.cl
Magellan TCS
UofA network
LCO-STAFF WiFi
\ No newline at end of file diff --git a/compute/nas.rst b/compute/nas.rst index dca4287..9130e6b 100644 --- a/compute/nas.rst +++ b/compute/nas.rst @@ -15,7 +15,7 @@ You can also access the share from your own computer, as described in the next s Connecting your own computer to the Steward NAS ----------------------------------------------- -Your first step should be to install the :doc:`vpn` following instructions for your operating system. Then, to connect: +Your first step should be to install :doc:`tailscale` following instructions for your operating system. Then, to connect: **macOS:** On macOS, open Finder and then go to the "Go" menu and select "Connect to Server..." (alternatively, hit command-K). The top text box accepts a URL for connection, which should be ``smb://YOURNETID@10.130.133.220/jrmales0`` where ``YOURNETID`` is, well, your NetID from University of Arizona. You can "favorite" the url using the "+" button at lower left. Click "Connect". You will be prompted for a password, which is just your NetID password. diff --git a/compute/networking.rst b/compute/networking.rst index 55a1e30..4907f43 100644 --- a/compute/networking.rst +++ b/compute/networking.rst @@ -13,7 +13,7 @@ Topology **University of Arizona** -.. figure:: ua_network.drawio.svg +.. figure:: ua_network.svg :alt: Schematic representation of the connections between our lab computers when at home at University of Arizona Schematic representation of the connections between our lab computers when at home at University of Arizona @@ -21,11 +21,7 @@ Topology **Las Campanas Observatory** -.. figure:: lco_network.drawio.svg - :alt: Schematic representation of the connections between our computers when at the telescope at Las Campanas Observatory - - Schematic representation of the connections between our computers when at the telescope at Las Campanas Observatory - +TODO Ubuntu and NetworkManager and ufw and firewalld ----------------------------------------------- @@ -66,16 +62,17 @@ Network Connections exao1 ~~~~~ -+------------------+-------------------+------------------+----------------+--------------------------+----------------------+-----------------+ -| connection name | device | IPv4 address | subnet mask | default route / gateway | DNS servers | search domains | -+==================+==================+==================+================+==========================+======================+==================+ -| instrument-10g | 98:B7:85:01:AD:66 | 192.168.0.10 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | -+------------------+-------------------+------------------+----------------+--------------------------+----------------------+-----------------+ -| www-ua | 2C:FD:A1:C6:1F:09 | (DHCP) | -+------------------+-------------------+------------------+----------------+--------------------------+----------------------+-----------------+ -| lco-telescope | 2C:FD:A1:C6:1F:09 | 200.28.147.221 | 255.255.255.0 | 200.28.147.1 | 10.8.8.11 10.8.8.12 | lco.cl | -+------------------+-------------------+------------------+----------------+--------------------------+----------------------+-----------------+ - ++------------------+------------------+------------------+----------------+--------------------------+----------------------+-----------------+ +| connection name | device | IPv4 address | subnet mask | default route / gateway | DNS servers | search domains | ++==================+==================+==================+================+==========================+======================+=================+ +| instrument | enx2cfda1c61dde | 192.168.0.10 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | ++------------------+------------------+------------------+----------------+--------------------------+----------------------+-----------------+ +| www-ua | enx2cfda1c61ddf | (DHCP) | ++------------------+------------------+------------------+----------------+--------------------------+----------------------+-----------------+ +| lco-telescope | enx2cfda1c61ddf | 200.28.147.221 | 255.255.255.0 | 200.28.147.1 | 10.8.8.11 10.8.8.12 | lco.cl | ++------------------+------------------+------------------+----------------+--------------------------+----------------------+-----------------+ +| lco-visitor | | | 255.255.255.0 | | 10.8.8.11 10.8.8.12 | lco.cl | ++------------------+------------------+------------------+----------------+--------------------------+----------------------+-----------------+ **For reference:** At last setup, the automatic DHCP-assigned configuration for ``www-ua`` was: @@ -91,16 +88,16 @@ exao2 +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ | connection name | device | IPv4 address | subnet mask | default route / gateway | DNS servers | search domains | +==================+==================+==================+================+==========================+============================================+=================+ -| instrument-10g | enx98b78501aebd | 192.168.0.11 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | +| instrument | enx2cfda1c6db1a | 192.168.0.11 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| www-ua | enx50ebf6b783bb | 10.130.133.207 | 255.255.254.0 | 10.130.132.1 | 128.196.208.2 128.196.209.2 128.196.11.233 | as.arizona.edu | +| www-ua | enx2cfda1c6db1b | 10.130.133.207 | 255.255.254.0 | 10.130.132.1 | 128.196.208.2 128.196.209.2 128.196.11.233 | as.arizona.edu | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| lco-telescope | enx50ebf6b783bb | 200.28.147.222 | 255.255.255.0 | 200.28.147.1 | 10.8.8.11 10.8.8.12 | lco.cl | +| lco-telescope | enx2cfda1c6db1b | 200.28.147.222 | 255.255.255.0 | 200.28.147.1 | 10.8.8.11 10.8.8.12 | lco.cl | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| rtc_icc | enx98b78501aebc | 192.168.2.2 | 255.255.255.0 | n/a | n/a | n/a | +| rtc-to-icc | enx00133b219c6e | 192.168.2.2 | 255.255.255.0 | n/a | n/a | n/a | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -``instrument-10g`` is a routerless network within the rack (and to AOC) using a switch. +``instrument`` is a routerless network within the rack using a switch. ``rtc-to-icc`` is a direct NIC-to-NIC link between RTC and ICC. exao3 @@ -109,15 +106,13 @@ exao3 +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ | connection name | device | IPv4 address | subnet mask | default route / gateway | DNS servers | search domains | +==================+==================+==================+================+==========================+============================================+=================+ -| instrument | enx2cfda1c6db1a | 192.168.0.192 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | -+------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| instrument-10g | enx98b78501ae65 | 192.168.0.12 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | +| instrument | enxd45d6407cb48 | 192.168.0.12 | 255.255.255.0 | 192.168.0.1 | n/a | n/a | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| www-ua | enx2cfda1c6db1b | 10.130.133.208 | 255.255.254.0 | 10.130.132.1 | 128.196.208.2 128.196.209.2 128.196.11.233 | as.arizona.edu | +| www-ua | enxd45d6407cb49 | 10.130.133.208 | 255.255.254.0 | 10.130.132.1 | 128.196.208.2 128.196.209.2 128.196.11.233 | as.arizona.edu | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| lco-telescope | enx2cfda1c6db1b | 200.28.147.223 | 255.255.255.0 | 200.28.147.1 | 10.8.8.11 10.8.8.12 | lco.cl | +| lco-telescope | enxd45d6407cb49 | 200.28.147.223 | 255.255.255.0 | 200.28.147.1 | 10.8.8.11 10.8.8.12 | lco.cl | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ -| rtc_icc | enx98b78501ae64 | 192.168.2.3 | 255.255.255.0 | n/a | n/a | n/a | +| icc-to-rtc | enx6cb31152a245 | 192.168.2.3 | 255.255.255.0 | n/a | n/a | n/a | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ | camsci1 | enx503eaa0ceeff | 192.168.101.2 | 255.255.255.0 | 192.168.101.1 | n/a | n/a | +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ @@ -125,7 +120,7 @@ exao3 +------------------+------------------+------------------+----------------+--------------------------+--------------------------------------------+-----------------+ ``instrument`` is a routerless network within the rack using a switch. -``rtc_icc`` is a direct NIC-to-NIC link between RTC and ICC. The +``icc-to-rtc`` is a direct NIC-to-NIC link between RTC and ICC. The ``camsci1`` and ``camsci2`` networks are just direct connections from the Princeton Instruments cameras to their NICs. @@ -252,3 +247,8 @@ If either exao2 or exao3 does not appear, ssh into them and verify …and finally, consult the `chrony FAQ `__. + +Topology +-------- + +Figure TODO diff --git a/compute/remote_operation.rst b/compute/remote_operation.rst index 13384d1..bafefd4 100644 --- a/compute/remote_operation.rst +++ b/compute/remote_operation.rst @@ -9,19 +9,14 @@ Configuring the virtual machine is done from the command line. Example commands You will want to first install Multipass, a virtual machine manager specifically for Ubuntu Linux VMs on Linux, Windows, and macOS computers. Follow the `instructions on their website `_ to install. -Automated Creation -------------------- - -After you have installed multipass, you can run `this script `_ to attempt a fully automated setup and provisioning. If that does not work, the below steps for manual provisioning will guide troubleshooting and recovery. - -Manually Create the virtual machine -------------------------------------- +Create the virtual machine +-------------------------- **Windows users note:** you should run ``multipass set local.privileged-mounts=true`` to enable file transfers. Read `here `_ about the security implications this setting has for Windows. -In a new terminal window, to create a VM with Ubuntu version 24.04:: +In a new terminal window, to create a VM with Ubuntu version 22.04:: - $ multipass launch -n magao-x-vm 24.04 + $ multipass launch -n magao-x-vm 22.04 Launched: magao-x-vm You should mount your home directory into the VM:: @@ -85,10 +80,8 @@ To recreate the VM, follow the instructions from the top of the page again. .. _sw_install: -Manually Install MagAO-X Software ------------------------------------ - -Note: you do not need to do this if the automated creation script worked above. +Install MagAO-X Software +------------------------ Next, within the VM, obtain a copy of the MagAO-X software and install scripts. Using ``git`` we clone the MagAOX repository:: @@ -105,19 +98,7 @@ Go to the ``setup`` subdirectory:: ubuntu@magao-x-vm:~$ cd MagAOX/setup/ -Run the pre-provisioning script to establish the workstation role:: - - ubuntu@magao-x-vm:~/MagAOX/setup$ MAGAOX_ROLE=workstation ./pre_provision.sh - -You need to reload the ubuntu user's groups, so now logout:: - - ubuntu@magao-x-vm:~/MagAOX/setup$ exit - -And log back in:: - - $ multipass shell magao-x-vm - -You can now run the provisioning script:: +Run the provisioning script:: ubuntu@magao-x-vm:~/MagAOX/setup$ bash provision.sh diff --git a/compute/tailscale.rst b/compute/tailscale.rst new file mode 100644 index 0000000..b8d2f0a --- /dev/null +++ b/compute/tailscale.rst @@ -0,0 +1,45 @@ +Tailscale for secure connection tunnels +======================================= + +Tailscale automates the setup of secure tunnels between machines in a network. Using it, you can fool your computer into thinking it's on the instrument network, for instance. + +Authentication and user access control are managed through GitHub. Your first order of business should be to obtain a GitHub account and get it added to the https://github.com/magao-x organization. + +1. Download Tailscale: https://tailscale.com/download/ + +2. Install following the instructions for your operating system + +3. When prompted, choose "Sign in with GitHub". You may be prompted for your GitHub username / password / 2FA code. The default options are fine, so click "allow". + +4. After you're authenticated, you will be asked to choose a "tailnet". You want the "magao-x" tailnet. + +5. The first time you connect, you will need to be approved by an admin. Send a Slack message in ``#lab-computers`` or directly to an admin so they know you need to be approved. + +6. Connect to our lab/instrument machines confidently and securely through the wonders of encryption and overlay networking. + +Making use of Tailscale +----------------------- + +You will now be able to ssh to the name ``exao1`` or ``exao0`` without a fully-qualified domain (i.e. ``exao1.as.arizona.edu`` or ``exao1.lco.cl``). This name will remain stable even when the instrument is moved. You'll see that it is actually an automatically-generated fully-qualified domain under ``ts.net`` if you ping it:: + + % ping exao1 + PING exao1.tailf46fc.ts.net (100.80.124.82): 56 data bytes + +The domains exao1.magao-x.org, exao2.magao-x.org, and exao3.magao-x.org point to the tailnet (private) IP addresses. As long as Tailscale is running, you can use them to access lab resources. + +SSH +~~~ + +Deploying Tailscale for our lab was mainly to achieve the joy of never having to worry that your free internet connection in the Santiago airport blocks SSH. Regardless of where and how you and MagAO-X are connected to the Internet, so long as you **are** connected to the Internet, Tailscale will find a path for you. + +Jupyter +~~~~~~~ + +There is an auto-started Jupyter notebook server on each exaoN system on port 9999. You can use, e.g., http://exao1.magao-x.org:9999 to reach the notebook server. The notebook password prompt uses a different password than the operator workstation account, but you can get it from a colleague. + +Note that if ``http`` doesn't work---perhaps because of an issue with exao1---many browsers will try upgrading to ``https``, which definitely won't work in this case. Once the issue is resolved, be sure to change the ``https`` back to ``http`` before trying again. + +Web UI +~~~~~~ + +The MagAO-X web GUI lives at https://exao1.magao-x.org/ and is only accessible from the operator workstation and machines on the tailnet. \ No newline at end of file diff --git a/compute/ua_network.drawio b/compute/ua_network.drawio index 3fc028f..6efd44c 100644 --- a/compute/ua_network.drawio +++ b/compute/ua_network.drawio @@ -4,7 +4,7 @@ - + diff --git a/compute/ua_network.drawio.svg b/compute/ua_network.drawio.svg deleted file mode 100644 index 50d5fbf..0000000 --- a/compute/ua_network.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
VPN servers
Steward Server Room
Room 265 (lab)
Electronics Rack
operator workstation
AOC
exao1
instrument control
ICC
exao3
real-time control
RTC
exao2
UofA wired network
(10 Gbps)
MagAO-X instrument network
UofA WiFi
researcher laptop
Network Attached Storage
(NAS)
testbed control
TIC
exao0
Archive
magaoarx
Lab-local network
testbed operator
TOC
corona
GPU
kaiju
testbed equipment
(PDUs, etc.)
instrument equipment
(PDUs, etc.)
researcher laptop
UofA wired network
(1 Gbps)
UofA/UITS
firewall
Internet
trusted network
ethernet/wifi
10Gbps ethernet
encrypted tunnel
\ No newline at end of file diff --git a/compute/ua_network.svg b/compute/ua_network.svg new file mode 100644 index 0000000..5f8941e --- /dev/null +++ b/compute/ua_network.svg @@ -0,0 +1,4 @@ + + + +
Tailscale servers
Tailscale servers
Steward Server Room
Steward Server Room
Room 265 (lab)
Room 265 (lab)
Electronics Rack
Electronics Rack
operator workstation
AOC
exao1
operator workstation...
instrument control
ICC
exao3
instrument control...
real-time control
RTC
exao2
real-time control...
UofA wired network
(10 Gbps)
UofA wired network...
MagAO-X instrument network
MagAO-X instrument ne...
UofA WiFi
UofA WiFi
researcher laptop
researcher laptop
Network Attached Storage
(NAS)
Network Attached Sto...
testbed control
TIC
exao0
testbed control...
Archive
magaoarx
Archive...
Lab-local network
Lab-local network
testbed operator
TOC
corona
testbed operator...
GPU
kaiju
GPU...
testbed equipment
(PDUs, etc.)
testbed equipment...
instrument equipment
(PDUs, etc.)
instrument equipment...
researcher laptop
researcher laptop
UofA wired network
(1 Gbps)
UofA wired network...
UofA/UITS
firewall
UofA/UITS...
Internet
Internet
trusted network
trusted network
ethernet/wifi
ethernet/wifi
10Gbps ethernet
10Gbps ethernet
encrypted tunnel
encrypted tunnel
Text is not SVG - cannot display
\ No newline at end of file diff --git a/compute/vpn.rst b/compute/vpn.rst deleted file mode 100644 index e5584d2..0000000 --- a/compute/vpn.rst +++ /dev/null @@ -1,65 +0,0 @@ -Instrument Virtual Private Network -================================== - -The MagAO-X instrument uses a secure self-hosted virtual private network (VPN) to allow authorized users to access the instrument. Since this is an "overlay network" VPN, traffic between your computer and the instrument computer travels by the most direct route possible. All traffic is encrypted in transit. - -On first connection -------------------- - -The first time you connect your computer to the MagAO-X VPN, you will need to register its encryption key with the coordinating server at https://inst.magao-x.org/. - -1. `Download `_ the VPN client - -2. Install, following the instructions for your operating system. Skip any prompts to log in, as we will need to set the MagAO-X login server later. - -3. Depending on your operating system: - - a. **Linux**: In a terminal, run ``sudo tailscale up --hostname=YOURHOSTNAMEHERE --login-server=https://inst.magao-x.org/ --force-reauth``. (If you don't know / care what your hostname is, you can leave off the whole ``--hostname=YOURHOSTNAMEHERE`` segment.) - - b. **macOS (terminal)**: Use Tailscale's login command to add your profile: ``tailscale login --login-server https://inst.magao-x.org`` - c. **macOS (GUI)**: - - 1. Hold the alt/option key and click the Tailscale icon in the menu, go down to the "Debug" menu - 2. Under "Custom Login Server", select "Add Account..." - 3. Enter the address of the headscale instance "https://inst.magao-x.org" and press "Add Account" - 4. Follow the login procedure in the browser - d. **Windows**: Open a command prompt (hold the Windows key + R, type ``cmd``, hit enter). In the command prompt, type ``tailscale login --login-server https://inst.magao-x.org`` and hit enter. - -4. You will get a message of the form:: - - To authenticate, visit: - - https://inst.magao-x.org/register/nodekey:... - - (Or, the link might be opened for you automatically on macOS or Windows.) - -5. After loading the page, it will contain a command like ``headscale nodes register --user USERNAME --key nodekey:...``. Copy the entire line and send it to an admin (e.g. by Slack direct message). For reference, ``--user`` is the name of the private network, ``xnet`` in this case. - -6. Once they confirm your machine has been registered, you will have network access to the MagAO-X computers over a virtual private network. - -Making use of the VPN ---------------------- - -You will now be able to ssh to the name ``exao1`` or ``exao0`` without a fully-qualified domain (i.e. ``exao1.as.arizona.edu`` or ``exao1.lco.cl``). This name will remain stable even when the instrument is moved. You'll see that it is actually an automatically-generated fully-qualified domain under ``xnet.magao-x.org`` if you ping it:: - - % ping exao1 - PING exao1.xnet.magao-x.org (100.64.0.4): 56 data bytes - -The domains exao1.magao-x.org, exao2.magao-x.org, and exao3.magao-x.org point to the VPN (private) IP addresses. As long as you have the VPN running, you can use them to access lab resources. - -SSH -~~~ - -The first time you use ``ssh`` to connect over the VPN, you will probably have to authorize the host key again by typing ``yes`` (and may get notified that the key is already known by other names). You may use the full name ``exao1.magao-x.org`` or just ``exao1`` to connect. - -Jupyter -~~~~~~~ - -There is an auto-started Jupyter notebook server on each exaoN system on port 9999. You can use, e.g., http://exao1.magao-x.org:9999 to reach the notebook server. The notebook password prompt uses a different password than the operator workstation account, but you can get it from a colleague. - -Note that if ``http`` doesn't work---perhaps because of an issue with exao1---many browsers will try upgrading to ``https``, which definitely won't work in this case. Once the issue is resolved, be sure to change the ``https`` back to ``http`` before trying again. - -Web UI -~~~~~~ - -The MagAO-X web GUI lives at https://exao1.magao-x.org/ and is only accessible from the operator workstation and machines on the VPN. diff --git a/generate_pdfs.sh b/generate_pdfs.sh old mode 100755 new mode 100644 diff --git a/handling/bmc_dm_cabling.rst b/handling/bmc_dm_cabling.rst index 413422d..fa92d7a 100644 --- a/handling/bmc_dm_cabling.rst +++ b/handling/bmc_dm_cabling.rst @@ -20,14 +20,14 @@ The ESD monitor must be connected to the system, to power, and to the personnel - 2 wrist straps with buttons to attach the leads - 1 AC to DC power converter with black "headphone jack" plug -2. Connect: +2. Connect: 1. RJ11 between black terminals and jacks on ESD monitor (**Note:** Missing/loose RJ11 connections do NOT trigger the 'grounding lost' alarm.) 2. each curly wrist strap lead to a black terminal's yellow banana plug receptacle and to the button connection on the wrist strap (see image) - + .. image:: figures/esd_monitor_user_terminal.jpg :width: 50% - + 3. The ground leads: - **If you have a grounding mat,** connect it to the jack labeled "MAT" on the plastic enclosure @@ -46,7 +46,7 @@ The BMC ribbon cables run from the DM in MagAO-X, through a strain relief clamp, Required workers: 2 minimum, 3 preferred. Required equipment: - + - ESD bags - scotch tape - hex drivers @@ -125,24 +125,4 @@ If a pin sticks, very carefully pull it out using needle nose pliers. Do not dr If removable connector is stuck and can't be removed with fingers, very carefully use a small flathead screwdriver to pry it off from one side. Do not allow the screw driver to touch any contacts. -Check actuator functionality (2K only) --------------------------------------- - -Once enough of the system is up that you can :doc:`start CACAO <../operating/cacao>`, you can compare a newly acquired response matrix to an historical one. - -.. note:: - - CACAO commands change frequently, compare the following to the latest `CACAO docs `_ (unless those have changed names too). - -To acquire a linear response matrix, CACAO must be seeing wavefront sensor images and combining DM channels into commands (which in turn must be written by the ``dmtweeter`` MagAO-X process). Then, you can (from the ``tweeter-vispyr-rootdir`` as described in :doc:`../operating/cacao`):: - - $ cacao-mkDMpokemodes -z 5 -c 25 - $ cacao-aorun-030-acqlinResp -n 4 HpokeC - $ cacao-aorun-031-RMHdecode - $ cacao-aorun-032-RMmkmask - -This updates ``/data/cacao/tweeter-vispyr/tweeter-vispyr-rootdir/conf/zrespM.fits`` (you can ``stat`` it to confirm it was modified). That response matrix can then be compared with a reference response matrix, e.g., ``/data/cacao/tweeter-vispyr/tweeter-vispyr-calibs/lco_1564modes_20220418_224654/RMmodesWFS/zrespM-H.fits`` to find any actuators with flaky connectionss. - -Open http://exao2.magao-x.org:9999/ (equivalently, ``rtc:9999`` from AOC) and make a copy of the ``connection_doctor_YYYY-MM-DD`` notebook (based on `this notebook `_). Update the ``zrespM_ref =`` variable to hold the path to the reference response matrix, and ``zrespM =`` to ``/data/cacao/tweeter-vispyr/tweeter-vispyr-rootdir/conf/zrespM.fits``. - -Run the rest of the cells. Flaky actuators will be identified with a particular connector, which can be cleaned and re-seated. +Finish by checking actuator functionality, following `this notebook on the RTC `_ diff --git a/handling/figures/lco_cleanroom_connections.drawio b/handling/figures/lco_cleanroom_connections.drawio deleted file mode 100644 index 3d49b4c..0000000 --- a/handling/figures/lco_cleanroom_connections.drawio +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/handling/figures/lco_cleanroom_connections.svg b/handling/figures/lco_cleanroom_connections.svg deleted file mode 100644 index 8f992ab..0000000 --- a/handling/figures/lco_cleanroom_connections.svg +++ /dev/null @@ -1 +0,0 @@ -
Group 2
(3x 5-20R)
Group 2...
Group 1
(6x 5-15R)
Group 1...
wall 120
wall...
lab cooler
lab cooler
control room 10G
control room 10G
AOC
AOC
MagAO-X VLAN
MagAO-X VL...
5 port sw
5 port sw
lan
lan
www
www
lan
lan
pwr0
pwr0
pwr1
pwr1
pwr2
pwr2
pdu1
pdu1
A/C Power
A/C Power
Glycol
Glycol
cat6 ethernet
cat6 ethernet
USB
USB
220V UPS
220V UPS
Wall 220V
Wall 220V
Note: Only pwr0 is plugged into Group 2.  Do not add anything to Group 2.
Note: Only pwr0 is plugged...
Note: pwr1 must not be plugged into the UPS.  
Note: pwr1 must not b...
MagAO-X Rack
MagAO-X Rack
UPS
UPS
10G fiber
10G fiber
www
www
inst 10G
inst 10G
Text is not SVG - cannot display
\ No newline at end of file diff --git a/handling/index.rst b/handling/index.rst index d647530..3fdb916 100644 --- a/handling/index.rst +++ b/handling/index.rst @@ -16,10 +16,8 @@ Handling Procedures electronics_unpacking instrument_unpacking telescope_install - legs_air_setup telescope_removal electronics_packing instrument_packing so_instrument_packing bmc_dm_cabling - lco_remote_ops diff --git a/handling/lco_remote_ops.rst b/handling/lco_remote_ops.rst deleted file mode 100644 index bae9f70..0000000 --- a/handling/lco_remote_ops.rst +++ /dev/null @@ -1,7 +0,0 @@ -Setting Up For Remote Operations at LCO -======================================== - -This procedure describes how to setup the MagAO-X instrument for remote operations in the LCO cleanroom. - -.. image:: figures/lco_cleanroom_connections.svg - diff --git a/handling/legs_air_setup.rst b/handling/legs_air_setup.rst index fa01ea7..468ca08 100644 --- a/handling/legs_air_setup.rst +++ b/handling/legs_air_setup.rst @@ -1,14 +1,13 @@ Setting up the PEPS II and DM air system ======================================== -This procedure details how to set up the air supply for the self-leveling floating table system (PEPS II) and the MEMS DMs. -The procedure was documented in the LCO clean room, but these steps should be mimicked when installing MagAO-X on the telescope. +This procedure details how to set up the air supply for the self-leveling floating table system (PEPS II) and the MEMS DMs. The procedure was documented in the LCO clean room, but these steps should be mimicked when installed MagAO-X on the telescope. Estimated time to complete if MagAO-X is not on legs: 1.0 hr Estimated time to complete if just setting up air: 0.5 hr -If MagAO-X has yet to be installed on the Legs +If MagAO-X has yet to be Installed on the Legs --------------------------------------------------- @@ -59,7 +58,7 @@ Setting up the air system for PEPS II .. image:: figures/air_receiver_drier_mounted.jpeg - *The air drier and filter for the main line connection.* + *Mount the geophones in the illustrated orientation.* Step 0: Check filter media in the air receiver driers for the legs (black plastic unit, see above) and for the DMs (5 inline white plastic units) for dirt and contamination. Replace if needed. @@ -70,7 +69,7 @@ Step 2: Take the long part of the plastic air tubing and lead to the instrument. .. image:: figures/cleanroom_air_yfitting.jpeg -Step 3: Connect any one side of the y-fitting to the tubing connected to the air flow regulator. This portion of the air supply will go to the DM chambers for humidity control. +Step 3: Connect any one side of the y-fitting to the tubing connected to the air flow regulator. This portion of the air supply will go to the DM chambers for humidity mitigation. .. image:: figures/dm_air_regulator.jpeg diff --git a/handling/telescope_install.rst b/handling/telescope_install.rst index efbf704..a115716 100644 --- a/handling/telescope_install.rst +++ b/handling/telescope_install.rst @@ -16,10 +16,7 @@ Initial Conditions Preparations ------------ -- If operating, shut down MagAO-X. - - - Make sure to leave stages/wheels in positions that are safe for transportation - - Complete procedure in the :ref:`telescope removal procedure ` +- Shutdown MagAO-X - Prepare Legs for Move @@ -160,7 +157,7 @@ Rig Onto Cart - Position two people to remove the legs from under the table -- Begin SLOWLY lifting the table off the legs. Once table is fully supported by the crane, the scale will read around 2000 lbs (as of March 2024). +- Begin SLOWLY lifting the table off the legs. - Go up 0.5inch then stop and inspect the platters. Use a long flathead screwdriver to very gently pry any stuck platters off bottom of table. @@ -310,8 +307,6 @@ Install MagAO-X On The Platform - Conduct the daytime alignment procedure per alignment plan -See detailed alignment procedure :download:`Aligning MagAO-X to the Telescope <../appendices/aligning_magao-x_to_the_scope.pdf>` - Transport Electronics --------------------- @@ -358,8 +353,6 @@ Install Electronics and Cable - Install all cables but the 2K DM cables -- Power on the UPS located in the electronics rack - Install AOC in Control Room --------------------------- diff --git a/handling/telescope_removal.rst b/handling/telescope_removal.rst index 73920df..b77fec7 100644 --- a/handling/telescope_removal.rst +++ b/handling/telescope_removal.rst @@ -13,8 +13,6 @@ Initial Conditions - Instrument on Magellan Clay Nasmyth Platform, operating. -.. _tel_remove_shutdown:: - Shutdown ------------ @@ -22,42 +20,40 @@ Shutdown - Power down all of MagAO-X - - Ensure that ``stagepickoff`` is in the ``tel`` position. + - Ensure that `stagepickoff` in the `out` position. - Place the k-mirror at 0 degrees. - Select the Ha-narrow and CH4-875 filters on fwsci1/2 - turn off power for all devices on MagAO-X following the regular shutdown procedure. - - use the ``shutdown -h now`` command to halt both RTC and ICC + - use the `shutdown -h now` command to halt both RTC and ICC - once the computers are off, turn off all things in the rack. + - Remove blower hose and cover the hole. - Remove all cables - - See :ref:`detailed procedure ` for removing MEMS DM cables + - See detailed procedure for removing 2K DM cables - Electronics Rack - Ensure that roll-out shelves are restrained - - Power off the UPS located in the electronics rack - Close and lock doors - Tape keys down - Instrument - - Install window cover - Remove eyepiece - Remove bumpers and pusher hardware - Remove air connection - - Remove the PEPS II - Tape over any exposed holes (from cables, etc) - Secure any loose cables - Shrink wrap the instrument - - Install solar blanket over shrink wrap + - Install solar blanked over shrink wrap - Cart and Rigging - Verify all cart hardware is in-hand - - Verify two wire harnesses are in-hand + - Verify two wire harnesses are in hand Rig Onto Cart ------------- @@ -71,7 +67,7 @@ Rig Onto Cart - **CAUTION:** be careful to not bump the legs with the cart -- The 8 large bolts on the cart should just be touching the washers, but the washers should still spin. +- Ensure that the 8 large bolts on the cart are snug but not tight - Attach the lifting wire-harness to each side of the cart @@ -88,14 +84,14 @@ Rig Onto Cart - Lift the load spreader, and position it over the instrument - Being careful to not bump the instrument, lower the load spreader - and attach the lifting harness D rings. Use 4x shackles to extend the + and attach the lifting harness D rings. Use 3x shackles to extend the length to reach the cart on the floor. .. image:: figures/cart_lift_extensions.jpg *Lifting harnesses attached with shackle extensions* -- Position a person at each end of the cart +- Position a person at each corner of the cart **CAUTION:** Do not allow the cart to bump the legs or the table uncontrolled @@ -111,15 +107,16 @@ Rig Onto Cart on the cart as needed to adjust. - Once the cart is bolted to the table bottom, while **320 lbs** is - still on the crane, tighten all cart bolts. Do not over-tighten: make + still on the crane, tighten all cart bolts. Do not over-tighten, make 1/4 turn after the washers are no longer free. This is to avoid excessive stress on the table. +- Install the triangle stabilizing ropes between the crane hook and + - Reposition the load spreader center to the instrument + cart position marked on it. -- Install the triangle stabilizing ropes between the crane hook and - the lifting fixture in accordance with the below figure. Tighten, but do not cause + the lifting fixture IAW the below figure. Tighten, but do not cause them to pick the load. .. image:: figures/stabilizers.jpg @@ -182,8 +179,6 @@ Transport MagAO-X To The Clean room - Next, using the come-along, carefully move MagAO-X onto the lift gate. -- Move MagAO-X into the cleanroom. - - Return to the top with the flatbed and move the legs to the cleanroom. @@ -228,8 +223,8 @@ Transport Electronics Remove AOC from Control Room ---------------------------- -- power down AOC and COC +- power down AOC - remove monitors and pack -- move AOC and COC to cleanroom. +- move AOC to cleanroom. diff --git a/index.rst b/index.rst index bacc03f..55f2ace 100644 --- a/index.rst +++ b/index.rst @@ -12,7 +12,6 @@ Table of contents observers/index operating/index testbed/index - maintenance/index troubleshooting handling/index compute/index diff --git a/maintenance/cooling/figures/cooling.drawio b/maintenance/cooling/figures/cooling.drawio deleted file mode 100644 index 8bf8070..0000000 --- a/maintenance/cooling/figures/cooling.drawio +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/maintenance/cooling/figures/cooling.svg b/maintenance/cooling/figures/cooling.svg deleted file mode 100644 index c6925bf..0000000 --- a/maintenance/cooling/figures/cooling.svg +++ /dev/null @@ -1 +0,0 @@ -
tank
tank
camwfs
camwfs
pump
pump
manifold
manifold
manifold
manifold
camsci1
camsci1
camsci2
camsci2
bypass (was camlowfs)
bypass (was camlow...
manifold
manifold
manifold
manifold
RTC
RTC
RTC GPUs%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22RTC%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22295%22%20y%3D%22410%22%20width%3D%2285%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
RTC GPUs%3CmxG...
ICC
ICC
ICC GPUs
ICC GPUs
VIS-X
VIS-X
filter
filter
Facility Glycol
Facility G...
Rack Hx
w/ Fans
Rack Hx...
Hx
Hx
instCool
instCool
Rack
Rack
Table
Table
Text is not SVG - cannot display
\ No newline at end of file diff --git a/maintenance/cooling/figures/instCool_control_access.jpg b/maintenance/cooling/figures/instCool_control_access.jpg deleted file mode 100644 index 4b064b8..0000000 Binary files a/maintenance/cooling/figures/instCool_control_access.jpg and /dev/null differ diff --git a/maintenance/cooling/figures/instCool_filter.jpg b/maintenance/cooling/figures/instCool_filter.jpg deleted file mode 100644 index b2cdff8..0000000 Binary files a/maintenance/cooling/figures/instCool_filter.jpg and /dev/null differ diff --git a/maintenance/cooling/figures/instCool_filter_basket.jpg b/maintenance/cooling/figures/instCool_filter_basket.jpg deleted file mode 100644 index 8f17920..0000000 Binary files a/maintenance/cooling/figures/instCool_filter_basket.jpg and /dev/null differ diff --git a/maintenance/cooling/figures/instCool_filter_cleaned.jpg b/maintenance/cooling/figures/instCool_filter_cleaned.jpg deleted file mode 100644 index 3afb239..0000000 Binary files a/maintenance/cooling/figures/instCool_filter_cleaned.jpg and /dev/null differ diff --git a/maintenance/cooling/figures/instCool_filter_open.jpg b/maintenance/cooling/figures/instCool_filter_open.jpg deleted file mode 100644 index 7f590a6..0000000 Binary files a/maintenance/cooling/figures/instCool_filter_open.jpg and /dev/null differ diff --git a/maintenance/cooling/figures/instCool_filter_opening.jpg b/maintenance/cooling/figures/instCool_filter_opening.jpg deleted file mode 100644 index 303a198..0000000 Binary files a/maintenance/cooling/figures/instCool_filter_opening.jpg and /dev/null differ diff --git a/maintenance/cooling/filter_cleaning.rst b/maintenance/cooling/filter_cleaning.rst deleted file mode 100644 index 965fe74..0000000 --- a/maintenance/cooling/filter_cleaning.rst +++ /dev/null @@ -1,114 +0,0 @@ -Coolant Filter Cleaning -======================= - -The instrument cooling system has an inline filter which must be cleaned out periodically. - -Indications ------------- - -The INDI property `instCool.status.flow_rate` shows the instrument cooling flow rate in LPM. The pump speed -is shown in `instCool.pump_level.current`. - -Coolant flow should be at or above 1.9 LPM under normal operating conditions. With the cameras off and with minimal -computational loads it can fall below this due to the viscosity of cold glycol (especially at the telescope where it -is colder than Tucson). If the system is under full load, the pump is on 10, and the sytem is in -thermal equilibrium, but flow is consistenly under 1.9 LPM the filter should be inspected and cleaned if necessary. -It should also be done routinely prior to a telescope run and every few months. - -.. note:: - the 1.9 LPM specification is derived from the required flow rate for the OCAM 2K camera (`camwfs`). - -Precautions ------------ - -.. warning:: - Do not dump glycol down a sink drain or into the environment. - -.. warning:: - All liquid cooled components must be off prior to turning off `instCool` - -Procedure ----------- - -1. Required Tools - - - 2x goose neck pliers - - paper towels - - a small flat screwdriver - - wire brush - - q-tip - - acetone [maybe] - - -2. Initial Conditions. - - - RTC, ICC, and liquid cooled cameras (camwfs, camsci1, camsci2) off. - - instCool on - -3. Remove the lower cover plate labeld "cooling access" on the input side of the electronics rack to -expose the cooler control panel. - - .. image:: figures/instCool_control_access.jpg - - *Instrument cooling control panel access* - -4. Note coolant flow in `instCool.status.flow_rate` and on the cooler control panel. As noted above this is somewhat -thermal-load dependent. - -5. Power off `instCool` with the rocker switch. Do this locally, as opposed to with `pwrGui`, for later leak checks. - -6. Remove the filter from the system using its quick disconnects. - - .. image:: figures/instCool_filter.jpg - - *Instrument cooling filter and quick disconnects.* - -.. note:: - In the next step be sure to note the order of components inside the filter - -.. warning:: - Take care to not damage the o-rings - -7. Using 2x goose neck plier (or a vise grip in a bench) open the filter housing by unscrewing it. - -.. image:: figures/instCool_filter_opening.jpg - -*The red arrows indicate where the pliers grip to unscrew the filter housing.* - -.. image:: figures/instCool_filter_open.jpg - -*After opening. The o-ring shown goes between the filter basket and the inside of the housing. The one shown is in need of replacement.* - -8. Remove the filter, being careful with the o-ring - -.. image:: figures/instCool_filter_basket.jpg - -*The filter basket full of glycol gunk.* - -9. Clean the filter - - - Use the wire brush to dislodge the crud - - Scrape with the screw driver as need inside - - Soak in acetone if needed to loosen the crud - - Once clean, rinse the filter in water to remove acetone residue - -.. image:: figures/instCool_filter_cleaned.jpg - -*The filter basket after cleaning.* - -10. Reassemble the filter, carefully threading it together and seating on the o-ring. - -11. Tighten with the pliers. Use full force, it should stop turning like it hit a hard stop. - -12. Reinstall the filter. - -13. Turn `instCool` back on with the rocker switch. - -14. Check for leaks from the reinstalled filter (wait at least 10 minutes). - -15. Note coolant flow, comparing to the pre-clean value noted above. - -16. Reinstall the cover plate on the rack. - -17. It is now ok to power up and do some wavefront control. - diff --git a/maintenance/cooling/index.rst b/maintenance/cooling/index.rst deleted file mode 100644 index 490a8d4..0000000 --- a/maintenance/cooling/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -Liquid Cooling -=================================== - -The instrument cooling system cools the cameras, computer CPUs and GPUs. Facility glycol cools the instrument -cooling system (liquid to liquid heat exchanger) and the rack air heat exchanger to remove heat from the rack. - - .. image:: figures/cooling.svg - - *Instrument cooling system* - -Maintenance ---------------- - -Procedures and guidelines for maintenance of MagAO-X liquid cooling systems. - -.. toctree:: - :maxdepth: 1 - - filter_cleaning - diff --git a/maintenance/electronics/figures/erack_input_side_open.jpg b/maintenance/electronics/figures/erack_input_side_open.jpg deleted file mode 100644 index 4a2619f..0000000 Binary files a/maintenance/electronics/figures/erack_input_side_open.jpg and /dev/null differ diff --git a/maintenance/index.rst b/maintenance/index.rst deleted file mode 100644 index bd36696..0000000 --- a/maintenance/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -Maintenance of the MagAO-X instrument -====================================== - -Procedures and guidelines for maintenance of MagAO-X systems. - -.. toctree:: - :maxdepth: 2 - - cooling/index - diff --git a/observers/coronagraphs.rst b/observers/coronagraphs.rst index 31aa826..6691b13 100644 --- a/observers/coronagraphs.rst +++ b/observers/coronagraphs.rst @@ -48,7 +48,7 @@ fwfpm position: `lyotsm` :header-rows: 1 * - lambda [um] - - spot radius [lam/D] + - spot size [lam/D] - opt. dens. * - 0.600 - 3.285 @@ -76,7 +76,7 @@ fwfpm position: `lyotlg` :header-rows: 1 * - lambda [um] - - spot radius [lam/D] + - spot size [lam/D] - opt. dens. * - 0.600 - 5.47 diff --git a/observers/data_access.rst b/observers/data_access.rst index 89b3cd6..04f3f07 100644 --- a/observers/data_access.rst +++ b/observers/data_access.rst @@ -3,11 +3,11 @@ Accessing data as a guest observer MagAO-X (but not all visiting instruments) record data in a compressed format. Standard FITS-formatted data with full headers is produced during observations, becoming available within a few minutes of the start of the observation. This document explains how to access it. -**Extremely short version, for those who just need a refresher:** ``rsync -rtz --progress guestobs@exao1.lco.cl:/data/obs/vizzy@xwcl.science/ ./my_obs/`` +**Extremely short version, for those who just need a refresher:** ``rsync -kaz --progress guestobs@exao1.lco.cl:/data/obs/vizzy@xwcl.science/ ./my_obs/`` Observation data are exported to the Adaptive optics Operator Computer, aka AOC or ``exao1``. Note that ``exao1`` is part of the instrument, and ships back and forth to Chile for observing runs. That means two things: -1. It will not be available for several weeks if it is in transit, and +1. It will not be available for several weeks while it is in transit, and 2. It has a different IP and host-name when it's at University of Arizona than when it's at Las Campanas Observatory. Guest observers will access exao1 with SSH and (preferably) rsync. (Users on Windows may be able to use WinSCP or rclone.) @@ -74,36 +74,47 @@ Edit your SSH config file to save this option with a shorthand name. (On macOS a ProxyJump exao0 User guestobs -Now you can do ``ssh exao1-lco`` and that extra step will be taken care of. Importantly, you can use this for ``rsync`` as well! The ``user@host`` part of the ``rsync`` command (``guestobs@exao1.lco.cl`` in the example below) can be replaced with ``exao1-lco``. +Now you can do ``ssh exao1-lco`` and that extra step will be taken care of. Importantly, you can use this for ``rsync`` as well! The ``user@host`` part of the ``rsync`` command (``guestobs@exao1.magao-x.org`` in the example below) can be replaced with ``exao1-lco``. Browsing the data ----------------- -Your data are rooted in ``/data/obs/$SEMESTER/$EMAIL/``. So, for example, ``/data/obs/2024A/jrmales@arizona.edu/`` will contain:: +Your data are rooted in ``/data/obs/your@email.com/``. So, for example, ``/data/obs/jrmales@arizona.edu/2022B/`` will contain:: - [guestobs@exao1] $ ls /data/obs/2024A/jrmales@arizona.edu/ - 2024-02-07_004357_vib_all_loops_off - 2024-02-07_004444_vib_all_loops_off + [guestobs@exao1] $ ls /data/obs/jrmales@arizona.edu/2022B/ + 2022-10-22_23 [... and so on ...] -One folder is created for every observation interval (i.e. toggle of the "recording" switch). Within those folders, there is a folder for each science camera that was actively recording (usually just camsci1 and camsci2):: +and an individual night will contain a folder per target:: - [guestobs@exao1] $ ls /data/obs/2024A/jrmales@arizona.edu/2024-02-07_004444_vib_all_loops_off/ - camsci1 - camsci2 + [guestobs@exao1] $ ls /data/obs/jrmales@arizona.edu/2022B/2022-12-02_03 + tet01OriC + [... and so on ...] + +When there is no catalog target active, the observations will be grouped under the folder ``UNKNOWN``. (In rare cases there could be no catalog header at all, which will result in a ``_no_target_`` folder name.) + +Within the target folder are folders for every observation interval (i.e. toggle of the "recording" switch):: + + [guestobs@exao1] $ ls /data/obs/jrmales@arizona.edu/2022B/2022-12-02_03/tet01OriC/ + camacq-astrom_20221203T071725 + tet1Orib-astrometry-50-50-infocus_20221203T082958 [... and so on ...] -Note that the UT start timestamp is appended to the folder name to prevent collisions. So, toggling the observation off and back on will create a new folder for the new "start" time. +Note that the UT start timestamp is appended to the name to prevent collisions. Within those folders, there is a folder for each science camera that was actively recording (usually just camsci1 and camsci2):: + + [guestobs@exao1] $ ls /data/obs/jrmales@arizona.edu/2022B/2022-12-02_03/tet01OriC/tet1Orib-astrometry-50-50-infocus_20221203T082958/ + camsci1 + camsci2 You can use your favorite tool to browse, but we recommend ``rsync`` to handle the large numbers of images. (See the following section.) Downloading science data ------------------------ -You can use ``rsync`` to get your images out. Here's an example to download/update images from semester 2024A for the observer ``vizzy@xwcl.science``, skipping those you already have:: +You can use ``rsync`` to get your images out. Here's an example to download/update all images (from all semesters) for the observer ``vizzy@xwcl.science``, skipping those you already have:: - $ rsync -rtz --progress \ - guestobs@exao1.lco.cl:/data/obs/2024A/vizzy@xwcl.science/ \ + $ rsync -kaz --progress \ + guestobs@exao1.magao-x.org:/data/obs/vizzy@xwcl.science/ \ ./my_magao-x_obs/ receiving file list ... done @@ -117,17 +128,41 @@ You can use ``rsync`` to get your images out. Here's an example to download/upda sent 5016 bytes received 221150763 bytes 23279555.68 bytes/sec total size is 221081847 speedup is 1.00 -The ``-z`` option compresses the files in transit. **If you're on-site where MagAO-X lives (when it's at UA or LCO), you can omit ``-z``, as the compression overhead will waste more time than it saves.** +The ``-k`` option ensures directories are copied with their full contents (rather than symbolic links). The ``-a`` "archives" (copies recursively, preserving metadata). The ``-z`` option compresses the files in transit. -Re-running this command will only sync changed files (assuming the file modification times are accurate/unchanged). During an observation, new frames will be processed in chunks as they are written, so you may want to re-run this command periodically. +Re-running this command will only sync changed files. During an observation, new frames will be processed in chunks as they are written, so you may want to re-run this command periodically. The paths are constructed as follows: ``/data/obs/////_//``. -So, for example, here's mock output of ``tree /data/obs/ -L 3``:: +So, for example, here's mock output of ``tree /data/obs/ -L 4``:: /data/obs/ - ├── 2024A - │   ├── aweinberger@carnegiescience.edu - │   │   ├── 2024-03-20_002551_HD12345_smlyot_zi - │   │   ├── 2024-03-20_012527_HD12345_smlyot_zi - [...] + ├── 2022B + │ ├── 2022-12-02_03 + │ │ └── tet01OriC + │ │ └── jrmales@arizona.edu + │ └── 2022-12-03_04 + │ ├── gam02Vel + │ │ └── jrmales@arizona.edu + │ ├── HD20121 + │ │ └── warrenbfoster@arizona.edu + │ └── PDS201 + │ └── lclose@as.arizona.edu + ├── jrmales@arizona.edu + │ └── 2022B + │ ├── 2022-12-02_03 + │ │ └── tet01OriC -> /data/obs/2022B/2022-12-02_03/tet01OriC/jrmales@arizona.edu + │ └── 2022-12-03_04 + │ └── gam02Vel -> /data/obs/2022B/2022-12-03_04/gam02Vel/jrmales@arizona.edu + ├── lclose@as.arizona.edu + │ └── 2022B + │ └── 2022-12-03_04 + │ └── PDS201 -> /data/obs/2022B/2022-12-03_04/PDS201/lclose@as.arizona.edu + ├── lookyloo_success.txt + └── warrenbfoster@arizona.edu + └── 2022B + └── 2022-12-03_04 + └── HD20121 -> /data/obs/2022B/2022-12-03_04/HD20121/warrenbfoster@arizona.edu + +Datestamps are in a format that suggests the fact they span a day boundary: ``2022-04-11_12`` contains observations from the night of April 11 (Chilean local time) through the morning of April 12. (This matches the naming of our observing logs.) + diff --git a/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion-ByBPRPcolor.png b/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion-ByBPRPcolor.png index 66f4638..f6a9467 100644 Binary files a/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion-ByBPRPcolor.png and b/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion-ByBPRPcolor.png differ diff --git a/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion.png b/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion.png index 42c76ec..e78ba92 100644 Binary files a/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion.png and b/observers/figures/GaiaG_to_MagAO-X_WFS_color_conversion.png differ diff --git a/observers/figures/MagAOX-Sloan-Filter-Transmission.png b/observers/figures/MagAOX-Sloan-Filter-Transmission.png deleted file mode 100644 index c3d8477..0000000 Binary files a/observers/figures/MagAOX-Sloan-Filter-Transmission.png and /dev/null differ diff --git a/observers/figures/MagAOX-to-SDSS-color-conversion.pkl b/observers/figures/MagAOX-to-SDSS-color-conversion.pkl deleted file mode 100644 index ce39db7..0000000 Binary files a/observers/figures/MagAOX-to-SDSS-color-conversion.pkl and /dev/null differ diff --git a/observers/figures/MagAOXfilters_SDSSfilters.png b/observers/figures/MagAOXfilters_SDSSfilters.png new file mode 100644 index 0000000..c390d54 Binary files /dev/null and b/observers/figures/MagAOXfilters_SDSSfilters.png differ diff --git a/observers/figures/MagAOXfilters_toSDSSfilters_color_conversion.png b/observers/figures/MagAOXfilters_toSDSSfilters_color_conversion.png index 8d2df3a..b229db4 100644 Binary files a/observers/figures/MagAOXfilters_toSDSSfilters_color_conversion.png and b/observers/figures/MagAOXfilters_toSDSSfilters_color_conversion.png differ diff --git a/observers/figures/WFS-Gaia-curves.png b/observers/figures/WFS-Gaia-curves.png index 06918dc..59690bf 100644 Binary files a/observers/figures/WFS-Gaia-curves.png and b/observers/figures/WFS-Gaia-curves.png differ diff --git a/observers/figures/WFS-curves.png b/observers/figures/WFS-curves.png new file mode 100644 index 0000000..fb38861 Binary files /dev/null and b/observers/figures/WFS-curves.png differ diff --git a/observers/filters.rst b/observers/filters.rst index 5116619..130f9a7 100644 --- a/observers/filters.rst +++ b/observers/filters.rst @@ -325,7 +325,7 @@ MagAO-X WFS and Gaia G bandpasses with atm model: MagAO-X conversion to Sloan filter system ----------------------------------------- -.. image:: figures/MagAOX-Sloan-Filter-Transmission.png +.. image:: figures/MagAOXfilters_SDSSfilters.png :alt: Plot of MagAO-X and Sloan filter transmission curves .. image:: figures/MagAOXfilters_toSDSSfilters_color_conversion.png diff --git a/observers/usepolicy.rst b/observers/usepolicy.rst index 9443cdd..baf515f 100644 --- a/observers/usepolicy.rst +++ b/observers/usepolicy.rst @@ -2,63 +2,45 @@ Instrument Use Policy ****************************** -Introduction +Introduction =========================== MagAO-X is an experimental coronagraphic extreme adaptive optics system. It seeks to employ the latest cutting-edge technologies to demonstrate the highest -possible contrast at the smallest possible inner working angles, to enable exoplanet, circumstellar disk, and other high contrast and/or high resolution astronomical observations. +possible contrast at the smallest possible inner working angles, to enable exoplanet, circumstellar disk, and other high contrast and/or high resolution astronomical observations. -MagAO-X is a PI instrument and its operation is very complex. Observing with MagAO-X requires -the support of a large team both at the telescope and in the lab to prepare it for telescope observations. -We welcome scientific proposals, for either astronomy observations or technical/instrumentation experiments, from Magellan Consortium members +MagAO-X is a PI instrument, still undergoing commissioning. Operation of MagAO-X is very complex, and requires +the support of a large team both at the telescope and in the lab to prepare it for telescope observations. +We welcome scientific proposals, for either astronomy observations or technical/instrumentation experiments, from Magellan Consortium members in collaboration with the MagAO-X team. Any such proposals must be approved by the MagAO-X PI prior to submission. Collaborations ============================ -To use MagAO-X, you must first agree to offer co-authorship on any publications which include MagAO-X data to members of the MagAO-X -team who have supported your observations. +To use MagAO-X, you must first agree to offer co-authorship on any publications which include MagAO-X data to members of the MagAO-X +team who have supported your observations. This will include researchers (including students, post-docs, and faculty) who have helped develop, implement, and test the various -observing modes, algorithms, and technologies as implemented in MagAO-X, in addition to the specific team members at the telescope for your run. +observing modes, algorithms, and technologies as implemented in MagAO-X, in addition to the specific team members at the telescope for your run. We will provide a list of co-author names and affiliations for any such MagAO-X publications when requested. Proposals =========================== -To propose to use MagAO-X in collaboration with the team, please send at minimum the following to the MagAO-X PI (Jared Males, jrmales@arizona.edu) at least 72 hrs +To propose to use MagAO-X in collaboration with the team, please send the following to the MagAO-X PI (Jared Males, jrmales@arizona.edu) at least 72 hrs prior to your institution's deadline: - The project title. - A complete list of researchers outside the MagAO-X team collaborating on the project. - An abstract providing basic scientific and technical information about the project. -- List of targets, with RA and Dec. +- List of targets, with RA and Dec. -A full proposal is preferred. This information will be used by the MagAO-X team to assess technical feasibility, and ensure that there are no conflicts between various +This information will be used by the MagAO-X team to assess technical feasibility, and ensure that there are no conflicts between various users of MagAO-X. This latter need is crucial given the limited telescope time available and the relatively small number of targets in our performance envelopes. -Backup Plans -~~~~~~~~~~~~~~~ -As an instrument optimized for short wavelengths, and in particular H-alpha SDI observations, -MagAO-X does not perform optimally in all seeing and wind (jetstream) conditions. -E.g.: a search for 1e-4 planets at 250 mas around a 10th mag guide star isn't going to be successful in worse -than 0.8" seeing. However, there are usually worthwhile projects which could be performed in such conditions that -would make better use of the telescope. - -All proposals to use MagAO-X must include a statement of maximum usable seeing, and a backup plan for if seeing exceeds -this value or if weather prevents executing the main plan. This is not intended to be a second science proposal. -An example could be: "Backup plans: the maximum usable seeing for this project is 0.6''. -If average seeing exceeds this value or clouds prevent closing the loop on this guide star, -we will conduct follow-up observations in z-band of previously identified companions to bright stars in order to -confirm common proper motion." That is just an example, you can choose the seeing, etc, and we can help give advice -about that. - -Note that you could in principle use LDSS3 for your backup plan, though there is some overhead in switching and some -planning for the masks would be needed. We have successfully switched in the middle of the night so it is possible. The H-alpha Proto-Planet Survey ================================== -Currently, our team's key astronomy science project is the MagAO-X H-alpha Protoplanet Survey, MaXProtoPlanetS. Lead by Co-PI Laird Close, this is a +Currently, our team's key astronomy science project is the MagAO-X H-alpha Protoplanet Survey, MaXProtoPlanetS. Lead by Co-PI Laird Close, this is a survey of nearby young stars to look for planetary mass companions using the H-alpha accretion signature. Collaborations within the context of this survey are welcome, contact Laird Close (lclose@arizona.edu) to discuss. This project is one of the key performance drivers of the first phase of MagAO-X, and one of our main motivations for developing this instrument. As such, many of the well-known targets are reserved as part of this survey. Below is the current list of reserved targets, which will be updated periodically as we revise selection criteria, @@ -66,8 +48,8 @@ and before the proposal cycle for planned runs. (The below list is currently on .. list-table:: Reserved Targets :header-rows: 1 - - * - Star Name + + * - Star Name - RA - Dec * - HD 377 @@ -217,11 +199,11 @@ and before the proposal cycle for planned runs. (The below list is currently on * - HD 34700 - 05:19:41.40 - 05:38:42.77 - * - RX J1604.3-2130A - - 16:04:21.6 + * - RX J1604.3-2130A + - 16:04:21.6 - -21:30:28.5 - * - HD 135244B - - 15:15:48.43 + * - HD 135244B + - 15:15:48.43 - -37:09:16.0 @@ -234,7 +216,7 @@ The ultimate science goals for MagAO-X involve very high contrast observations o Laboratory Experiments ============================ -MagAO-X is often set up in the eXtreme Wavefront Control Laboratory (XWCL) at Steward Observatory, where it is available for conducting experiments and demonstrations. It is also often available at LCO when not on the telesscope for remote operations. We welcome such efforts, and will work to support them. This includes providing remote access to the instrument when appropriate. Please contact Jared Males (jrmales@arizona.edu) to discuss. +MagAO-X is often set up in the eXtreme Wavefront Control Laboratory (XWCL) at Steward Observatory, where it is available for conducting experiments and demonstrations. We welcome such efforts, and will work to support them. This includes providing remote access to the instrument when appropriate. Please contact Jared Males (jrmales@arizona.edu) to discuss. Publications based on lab experiments will folow the same co-author agreement described in Collaborations above. diff --git a/operating/abeginnersguidetomagaox.rst b/operating/abeginnersguidetomagaox.rst new file mode 100644 index 0000000..8bd1baf --- /dev/null +++ b/operating/abeginnersguidetomagaox.rst @@ -0,0 +1,974 @@ +.. raw:: html + + + +.. role:: red + + + +.. raw:: html + + + +.. role:: blue + + +.. raw:: html + + + +.. role:: green + + +.. raw:: html + + + +.. role:: orange + + +.. raw:: html + + + +.. role:: gray + + +********************************** +A Beginner's Guide to Using MagAOX +********************************** + +A Bit of Book-Keeping +===================== + +To ssh on to rtc and icc from our local machine rather than the VM, we need to set up a proxy jump through aoc: + +.. code-block:: bash + + cd ~/.ssh + +make or edit a file named config to include: + +Host aoc + HostName exao1.magao-x.org +Host rtc + HostName rtc + ProxyJump aoc +Host icc + HostName icc + ProxyJump aoc +Host * + User + +With this set up, you should now be able to jump to rtc and icc just by typing: +``ssh rtc`` or ``ssh icc`` in a terminal without logging in to the VM. This is especially useful for using scp to copy files to local. + + +Getting Started +=============== + +First, open a terminal window (henceforth terminal #1), navigate to the VM, start it up, and start the tunnels: + +.. code-block:: bash + + cd dir/to/MagAOX/ + vagrant up # if not done already + vagrant ssh + xctrl startup + +Now, open up Terminator (or any terminal emmulator like Konsole in kde), and split in half such that it has an upper window and a lower window. + +Log in to the VM in both windows and then: + +top window: + +.. code-block:: bash + + cursesINDI + + +bottom window: + +.. code-block:: bash + + tail -f /tmp/cursesINDI_logs.txt + +The cursesINDI_logs.txt file will print updates to let you know that the connection to the INDI server, and thus to the hardware, is active and working the way it should be. + +:blue:`Note`: +When using cursesINDI, you can type the name of the device you want to scroll to it faster. For target properties that are toggle-able, press "t" for toggle, then "y" to confirm. + +| :green:`================================================================================` +| :green:`In case this goes wrong`: + + +If cursesINDI or getINDI fails with a connection error, we might need to run the system startups as the INDI server is probably down. But first, check the VM: + +.. code-block:: bash + + # Exit the VM via ctrl+d or typing logout + vagrant reload + vagrant ssh + xctrl startup + getINDI + + +If the problem persists after doing this the following steps are needed: + +Check rtc: + +.. code-block:: bash + + ssh rtc + xsupify + cd + bash ./cacao_startup_woofer.sh + bash ./cacao_startup_tweeter.sh + fpsCTRL #to check if DMCOMB has started + xctrl startup + xctrl status #to check that processes have started + +If everything is green, logout of the ssh + +Now check icc: + +.. code-block:: bash + + ssh icc + xsupify + cd + bash ./cacao_startup_dmncpc.sh + xctrl startup + xctrl status #to check that processes have started + fpsCTRL #to check if DMCOMB has started + +If everything looks good, logout of the ssh + +Now check aoc: + +.. code-block:: bash + + ssh aoc + xsupify + cd + xctrl startup + xctrl status + + +All processes should be green, but if isAOC is red: +``xctrl startup`` + +If this doesn't fix the process: +``xctrl restart isAOC`` + + +Now we need to check isICC and isRTC to make sure the INDI servers are connected + +.. code-block:: bash + + ssh icc + xsupify + getINDI + +If there is no response, ie: + +.. code-block:: bash + + [xsup@exao3] $ getINDI + No *.*.* from localhost:7624 + +Do: + +.. code-block:: bash + + xctrl restart isICC + getINDI + +If still no response: + +.. code-block:: bash + + xctrl shutdown + xctrl startup + xctrl status + getINDI + +Now repeat the same process on rtc until getINDI gives a response. With this done, everything should be good to go to continue on as normal + +:green:`================================================================================` + + +In terminal #1, type: + +.. code-block:: bash + + getINDI + +If a bunch of information is printed, it means you are connected to the INDI server. + + + +Now power up the Power GUI in terminal #1: + +.. code-block:: bash + + pwrGUI & + +A window with a bunch of sliders will pop open. + + +:red:`Important`: +(the following sliders should all be on when pwrGUI comes up, and left on when shutting down!) +**NEVER TURN OFF**: + +| :orange:`pdu0`: +| compicc +| comprtc +| dcpwr +| swinst + +| :orange:`pdu3`: +| blower +| fan1 +| fan2 +| instcool + + +Set up the milkzmqClient with everything we (may) need, again in terminal #1: + +.. code-block:: bash + + milkzmqClient -p 9000 localhost camwfs camwfs_dark camtip camtip_dark camlowfs camlowfs_dark camsci1 camsci1_dark camsci2 camsci2_dark dm00disp00 dm00disp dm00dispST dm01disp00 dm01disp dm01dispST dm02disp00 dm02disp dm02dispST & + + +Now the real time image viewers can be turned on. Let's start with camtip, the camera viewing light picked off of the Pyramid WFS tip. + +1. now can power on camtip using the slider in :orange:`pwrGUI:usbdu0` + +2. Turn on the real time viewer for camtip by typing the command: + +.. code-block:: bash + + rtimv -c rtimv_camtip.conf & + +:green:`================================================================================` +:green:`Note for if camtip has an error`: + +if camtip-sw has an error appear in the INDI log that lead it to shutdown, the process needs to be restarted: + +.. code-block:: bash + + ssh icc + xsupify + xctrl status # to verify the process is dead + xctrl restart camtip-sw + +:green:`================================================================================` + + +The DMs +======= + +:blue:`Note`: +dm00 is the woofer, dm01 is the tweeter, and dm02 is the ncpc + + +The safety check for turning on the DMs is the tweeter humidity. The easiest way to check the humidity is to open the real time viewers for the DMs, and check the RH value printed for dm01: + +.. code-block:: bash + + rtimv -c rtimv_dm00disp.conf & + rtimv -c rtimv_dm01disp.conf & + rtimv -c rtimv_dm02disp.conf & + +Looking at the viewer for dm01, the upper right corner should have "RH: #.#%" printed. This is a readout of rhtweeter.humidity.current in cursesINDI. + +This means it you can also use: + +.. code-block:: bash + + getINDI rhtweeter.*.* + +Read the number next to humidity.current + +:red:`Important`: +Anything higher than **18%** for the current humidity, **do NOT** power the DMs on, and post about it on Slack. + +If humidity.current < 18, it is safe to turn on the 3 DMs in :orange:`pwrGUI:pdu1`, and post in Slack that MagAOX is in use. + +| If the real time viewer for dm01 does not have the humidity printed, the cameraGUI isn't building: +| 1. post in Slack software channel, then when notified of fix: +| 2. ``cd /opt/MagAOX/source/MagAOX`` +| 3. ``git pull`` +| 4. ``make guis_install`` +| This should fix the problem. + + +Although we are checking the humidity of dm01, the tweeter, to ensure the safety powering it up, we also start the other two DMs first in part to get the ALPAO DMs over their creep. + +.. code-block:: bash + + dmCtrlGUI dmwoofer & + dmCtrlGUI dmtweeter & + dmCtrlGUI dmncpc & + + +Once all 3 GUIs are open, press the "set flat" button on all 3 GUIs + +:green:`================================================================================` +If one of the DMs isn't responding when trying to flatten it, its process is likely down (or hanging). To fix: + +**Follow steps in the Handbook for:** +:doc:`Software Startup <./startup>` + +Specifically, for dmwoofer and dmtweeter: + +.. code-block:: bash + + ssh rtc + xsupify + cd + bash ./cacao_startup_woofer.sh + bash .cacao_startup_tweeter.sh + xctrl restart isRTC + xctrl restart # until it reconnects + +For dmncpc + +.. code-block:: bash + + ssh icc + xsupify + cd + bash ./cacao_startup_dmncpc.sh + xctrl restart isICC + tmux attach -t dmncpc + # ctrl+c, up-arrow, press enter until it reconnects + + +After this process, the DM in question should be reconnected to the INDI server and work in the GUI again. + +:green:`================================================================================` + +| :blue:`Note`: +| "[" on the keyboard to square rtimv viewers as big as possible (scaled to the data) +| "]" makes square as small as possible + + + + +Now the Tip/Tilt mirrors +======================== + +Turn on the Pupil Alignment GUI: + +.. code-block:: bash + + pupilGuideGUI & + +now in :orange:`pwrGUI:pdu1`, turn on ttmmod, ttmpupil, and in :orange:`pwrGUI:pdu2`, turn on stagecamlens. + +:blue:`Note`: the ttmmod slider automatically goes halfway and stays for a bit, and then all the way to the right after some time for safety + + +Now in the Pupil Alignment GUI, press the "set" button for the Modulation & Centering and the Pupil Steering sections. The Camera Lens section largely takes care of itself. + + +Now power up camwfs using the :orange:`pwrGUI:pdu1` camwfs and run: + +.. code-block:: bash + + rtimv -c rtimv_camwfs.conf & + + +open the camera GUI for camwfs: + +.. code-block:: bash + + cameraGUI camwfs & + +:green:`================================================================================` +:green:`Note for if this doesn't go right`: + +If the rtimv viewer for camwfs appears all white, and the cameraGUI for it is blank, the process for camwfs has failed. To check this, open a terminal and: + +.. code-block:: bash + + ssh rtc + xsupify + tmux a -t camwfs + +This should give a log. If it has an error in it that has stopped the funtion (e.g. "no serial response"), you need to restart the driver. This is most easily done by doing **ctrl-c** to stop the process, and then the up-arrow key to get the correct command. Press enter. The rtimv image should look right, and the cameraGUI should no longer be blank. Detach the tmux shell with **ctrl-b + d**, and then you can close the connection to rtc and the terminal. + +:green:`================================================================================` + + +In the camwfs cameraGUI, the Mode should be bin2 (use the "..." button and pulldown bar to select bin2). +Cool down **camwfs** by editing the **Detector Temp** to **-40** +Set **camwfs** FPS to **200** + + +Now turn on shwfs in :orange:`pwrGUI:dcdu1` (shwfs stands for wfs shutter). +"(off)" should disapper at the camwfs cameraGUI shutter. + +:blue:`Note`: The shutter is open with the slider to the left, closed with the slider to the right. + + +Now repeat the process for the science cameras, camsci1 and camsci2: + +Power up camsci1 and camsci2 using the pwrGUI sliders for them. + +.. code-block:: bash + + rtimv -c rtimv_camsci1.conf & + rtimv -c rtimv_camsci2.conf & + + +open the camera GUI for camwfs: + +.. code-block:: bash + + cameraGUI camsci1 & + cameraGUI camsci2 & + + +Open the shutters for both cameras by sliding the shutter slider in their respective cameraGUI window. + + + +Finally, turn source on in :orange:`pwrGUI:pdu0` using source slider. + + +:blue:`Note`: At this point, the DMs are flat, the TT mirros are set, the shutter is open: +check if there is light in camtip and camwfs + + +Filter Wheels, Final Power ups, and Final Checks +================================================ + + +:red:`IMPORTANT`: The proper order for powering on the filter wheels fwscind and fwtelsim is to turn on the DC power first in pwrGUI before the USB power: + +1. Slide the sliders for fwscind fwtelsim in :orange:`pwrGUI:dcdu1`. + +2. Now all sliders in :orange:`dcdu0` and :orange:`dcdu1` categories. + +3. Now can turn on everything in :orange:`usbdu0` except for camacq. + +:red:`REMINDER`: fwscind and fwtelsim in :orange:`usbdu0` must be done after the dcdu1 ones! + +4. Turn on sliders in :orange:`usbdu1` except for flipacq and flipeye + +5. now in :orange:`pdu3`, turn on fliptip and tableair + +6. now in :orange:`pdu2`, turn everything on + +:blue:`Note`: stagerot and stagezaber take a couple minutes to home; the INDI log in the split window terminal bottom will print when they are ready. Wait for that message. + +| :blue:`Note`: Now in pwrGUI, everything is on except: +| evncontweeter and flipacq (in :orange:`pdu3`) +| camacq and flipacq (in :orange:`usbdu1`) +| flipeye + + +Now perform the final checks: + +1. In cursesINDI (the top window of the split window terminal), go to fwtelsim +we want to be in ND1, so go to ND1 filterName and toggle it on. + +2. Double check that fliptip is "in" (also in cursesINDI) + +3. Check that flipwfsf is also "in" (also in cursesINDI) + +4. Make sure that stagepickoff is "in" (also in cursesINDI) + + +Now Align the System +==================== + + +**Follow steps in the Handbook for:** +:doc:`System Pupil Alignment <./alignment>` + + + +:green:`Pointers for going through this procedure`: + +1. Make sure to check the list at the top of the linked page vs. your curseINDI. It is **important** for getting light on camtip, camlowfs, and camwfs, at the correct light level. + +2. If you need to open the camlowfs shutter (e.g. the rtimv viewer for camlowfs has "SHUT" written in it): + +.. code-block:: bash + + cameraGUI camlowfs & + rtimv -c rtimv_camlowfs.conf & + +Just toggle the shutter slider as you did on camwfs. + +3. In the real time viewer for camlowfs, press z to get the yellow box. Move it over the pupil image to set viewer scales appropriately. + +4. set Rtest_03um on dmtweeter: +using the pulldown at the bottom of the dmtweeter GUI, select 'Rtest_0p3um', then click the "set test" button. + +5. Use the Pupil Steering section of the Pupil Alignment GUI to center the pupil using the diagonal arrows at the bottom middle. Make the the edge actuators evenly illuminated. If needed, you can switch to "ND2" on fwtelsim (to reduce saturation). + +6. Press the "zero test" button on the dmtweeter control GUI when done. + + +Now align the WFS +================= + +You need camwfs and the Camera Lens section in the Pupil Alignment GUI to do this + +1. In the camwfs viewer, press "t" to get the target quadrants to show + +2. Using the **Camera Lens** section in Pupil Alignment GUI, use the arrows at the bottom to move pupils to roughly be even in the 4 quadrants in the real time viewer. + +3. press "t" again to turn off the quadrant targets. + + +Now go to **Modulation & Centering**: + +1. click the box for delta from mean + +2. Use the arrows at the bottom to make the light in each pupil close to equal. you want to move from the largest positive toward the negative (mainly will be on the diagonal motions) + +3. When they are pretty even, modulate: + - type 1000 in Frequency taret and hit enter + - type 3 in Radius and hit enter + - now click the modulate button (watch camtip real time viewer to see it working) + +4. Go back to camwfs viewer and press "r", then "P" (shift+p) to fit circles to the pupils + - if the Red circles overlap or look funky, you aren't getting enough signal + - go to the camera gui for camwfs, and edit the FPS to be slower (should be at 200Hz) + +5. Go back to **Camera Lens** in the Pupil Alignment GUI + - try to match the red circles to the green ones + - click the delta from set pt box, and look at the avg. try to get them to be ~0.1 or less + - do "P" (shift+p) again in the viewer to turn off the fitting lines + +:blue:`The system is now aligned!` + + + +Now for Cacao-ing +================= + +To begin, set up rtc in the mode to have the lowest latency: + +.. code-block:: bash + + ssh rtc + cat /proc/cpuinfo | grep MHz | wc -l + +If this is 72: + +.. code-block:: bash + + sudo /opt/MagAOX/source/MagAOX/script/rtc_cpuset + sudo /opt/MagAOX/source/MagAOX/script/rtc_procset + cat /proc/cpuinfo | grep MHz | wc -l + + +:blue:`Note`: Do not switch to xsup to do this, as you need sudo! + + +| It should now be 54. Now we are ready to set rtc into lowest latency mode: +| go to cursesINDI +| search sysMonRTC +| go to sysMonRTC.set_latency and toggle it on + + +Open another terminal (henceforth terminal #2): + +.. code-block:: bash + + ssh rtc + xsupify + cd /opt/MagAOX/cacao/tweeter + ./aolconf + +:blue:`Note`: If you close this loop on accident, start again with ``./aolconf -n``. This doesn't load the shared memory stuff, so it will connect faster. This is likely not dangerous to do, but only if you have run ``./aolconf`` already. + + +Now, open another terminal (terminal #3) and ssh to rtc: + +.. code-block:: bash + + xsupify + cd + procCTRL + +Now change font size (by zooming out or otherwise, depending on your default terminal) until all the text fits. +Press X (shift+x) to quit, and then restart the program so it can all be seen (will help detect crashes in CACAO, and let you know when processes have completed) + +.. code-block:: bash + + procCTRL + + +:blue:`Note`: To reset procCTRL, press "R" (shift+r) on the keyboard + +1. Get the dm01disp and camwfs real time viewers up. + +In terminal #2, the left and right arrow keys move between "select" and "exit" on the bottom; up and down arrow keys move in the menu. + +2. Scroll down (via down arrow presses) to **Configure/link AO loop**. + +3. Go to the **camwfs cameraGUI** and make sure it is running at 1kHz, as it is probably not due to the alignment steps (click in Frame Rate box, type 1000, hit enter, box will be blue when it reaches it. Then restretch the camwfs viewer with "r") + +:blue:`Note`: The 1000 Hz here is actually whatever speed the loop is being run at. It must be the same as the **Modulation & Centering** modulation frequency! If you change the loop frequency (say to 2kHz), you must change the modulation frequncy. To do that, go to the **Pupil Alignment GUI**, **Modulation & Centering**, enter the desired frequency, 2000, in the Frequency target box, hit enter, 3 in the Radius target box, hit enter, then press the modulate button. + +4. Return to the Cacao GUI, scroll down to **Acquire WFS Dark** and hit enter. This will take dark frames. "D" (shift+D) in the viewer for cameras will show with/out dark subtraction. + +5. Scroll down in Cacao now to **Measure Hardware Latency** and hit enter. Hit enter again on 100. It will run. procCTRL will list "lat aol1_dmC aol1_wfsim", when complete, the message will say "Loop exit ". +Scroll up in the GUI to read **Hardware Latency** and hope to see < 2 frames. +If it's near 2 frames or larger, message the PI / Slack. + +6. Go back to the Pupil Alignment GUI and check the centering using **Modulation & Centering** only (no need for other two again!) + +7. Adjust to try to get the median fluxes deltas close to 0 using the arrows and small movements + +:green:`Protip`: Have No. Avgs set to 200 still + + +Getting a Response Matrix: +========================== + + +1. Now, in the Cacao GUI terminal (terminal #2), scroll to **START AUTO SYSTEM CALIBRATION (new modes)** + +2. Press enter + - procCTRL will say loop exit on far right for two processes (dmpokeC2b both times, one for hadamard modes and one for low order zernike modes) with STOPPED as the status. If it crashed, it will say so with a red box. + +3. Scroll up in Cacao to the line with **AUTOMATIC SYSTEM CALIBRATION** and hit enter to refresh the GUI + +To save the Response Matrix: + +1. Open a new terminal: + +.. code-block:: bash + + ssh rtc + xsupify + cd /opt/MagAOX/cacao/tweeter + ls -l zrespM.fits + +2. If it's there we can copy it to local. Open a terminal without any ssh'ing: +``scp rtc:/opt/MagAOX/cacao/tweeter/zrespM.fits /home/.../`` + +3. It is also useful (and pretty much necessary) to copy some other files from this location as well in order to do reconstructions. These include: + - dmmask.fits + - wfsmask.fits + - wfsref0.fits + - wfsdark/wfsdark_.fits + + + +Closing the Loop! +================= + +1. Now use the right arrow to select :gray:`Top` at bottom of cacao window and press enter. This will take you back to the main cacao menu + +| 2. Select: **Modes and Control Matrix** and press enter +| scroll to: +| modeCPA, press enter, and change to 24 +| mkModes0, press enter + + +3. open a terminal to monitor when this process completes: + +.. code-block:: bash + + ssh rtc + xsupify + tmux ls # to look for aol1mkmodes + tmux attach -t aol1mkmodes + + +"dologext: command not found"ill will be printed. Press enter and if you get a command prompt, and that means the process is done + + +| 4. Go back to cacao window: +| Take note of the date in **STAGED CONFIGURATION**: press enter and verify the date changes +| Arrow down and press enter on **Configuration Update**, check **ACTIVE CONFIGURATION** below to see its date matches the new one in **Staged configuration**. + + +5. Now scroll to **Load shared memory from conf** and press enter + + +6. Open a terminal to monitor when this process completes: + +.. code-block:: bash + + ssh rtc + tmux atach -t aol1SMload + # wait for process to complete (getting a bash prompt) + + + +| 7. now select :gray:`Top` again in the cacao window +| Select **Control AO (L)oop** + + +| 8. scroll down to: +| **Loop processes ON, press to STOP** and press enter + + +| 9. scroll down to: +| **START loop processes** and press enter +| check procCTRL; you should see 4 new processes that all stay green (Active) + +10. Now that 4 new processes have been launched, we need to update the script that is allowing us to run with low latency: + +.. code-block:: bash + + ssh rtc + sudo /opt/MagAOX/source/MagAOX/script/rtc_procset + +It should run without any errors or warnings. + + +| 11. Scroll down to **LOOP SETTING** +| Verify loop gain is 0 + + +| 12. Scroll to **LOOP CONTROL** +| Highlight **START control loop** and press enter +| Check procCTRL again, and see that loopcnt is updating at the frame rate + + +| 13. Go to loop gain under **LOOP SETTING** again: +| Increase the value little by little and verify the loop is stable + It is stable if dm01disp (the tweeter) has no saturated actuators, and is not oscillating between values + + +Congrats! You have closed the loop on the WFS! + +You can test this by opening up the DM modes GUI for dmwoofer and adding an aberration. You should immediately see the opposite shape appear in the viewer for the tweeter, and the camwfs output not change. You can open the modes GUI for dmncpc as well: + +.. code-block:: bash + + dmModeGUI wooferModes & + dmModeGUI ncpcModes & + + + +Preparing camsci1 for images +============================ + + +Set up to get light on camsci1 + | Go to cursesINDI and make the following changes: + | fwfpm.filterName -> open1 + | fwsci1.filterName -> z + | fwsciND -> ND2 or ND3 (to stop saturation) + + +Setting up ROI for camsci1: + | Click the ROI button on camsci1 cameraGUI + | Mouse over the central pixel of the PSF in the camsci1 viewer to get its coordinate + | Set the coordinate you found to the X Center and Y center boxes with that coordinate + | Set Width and Height to 32 each press enter (32 for speed, 64 can work too) + | Click check + | Click set + | Press z in camsci1 and move the gold box to restretch the color scale. + | Close the ROI gui + + + +Now we want more speed on the camera by a bit: + | Click the box for Readout Spd and use the target pulldown to change to emccd_10MHz + | Click Vert. Shift Spd and use the target pulldown to change to 0_7us + | set exp time [sec.] to 0.001 to force fastest readout + + +You should get an FPS of ~156.1 on camsci1 after making those changes. Once you know this FPS, you need to update the AO loop to use it: + +1. To stop the loop, scroll down to **LOOP SETTING** and set loop gain to 0. Then press enter on "stop loop" under **LOOP CONTROL** + +2. Update the frame rate of camwfs and the modulation frequency to match the camsci1 FPS: + change FPS on camwfs + update modulation frequency in Pupil Alignment GUI + + + +Now that you can see the light in our ROI on camsci1, you may want to clean up the PSF a little. To do this, run eye doctor. + +1. See :doc:`Eye-Doctor <./software/utils/eyedoctor>` for more details + +In terminal #1: + +.. code-block:: bash + + dmModesGUI ncpcModes & # if not opened earlier + + +Open a new terminal: + +.. code-block:: bash + + ssh icc + xsupify + cd + dm_eye_doctor 7624 ncpcModes camsci1 5 2...10 0.25 + +It will print when it is done, and you can watch in NCPC DM Modes GUI, DMdm02disp, and camsci1 viewers to see what it is doing, and if it is imroving the PSF quality. + + + + + + + + + + +To do stuff in Python +===================== + +1. open a terminal: +2. ``ssh aoc -L 9999:localhost:9999`` +3. navigate to localhost:9999 in a browser + +Useful Python stuff to know to build around: + +.. code-block:: python + + from magpyx.utils import ImageStream + + # getting camera images + cam = ImageStream('camwfs') + image = cam.grab_latest() # simplest way to grab an image + cam.close() # when you're done + + # commanding DMs + dm = ImageStream('dm01disp04') + cmd = np.zeros_like(dm.buffer) + cmd[20,23] = 0.1 # a poke + dm.write(cmd) # send the command + dm.close() # when finished + + # Magic recipe for matching how Cacao does its reconstructions + # subtract the wfsdark from the measurement + # Multiply by wfsmask + # normalize by the sum [ e.g. var /= var.sum() ] + # Subtract wfsref0 + + +To save fits files written in python here to local: + | Copy the fits files writen to /home/xsup/magic_portal + | Go to Box + | MagAOX/magic_portal + | Download the files + | Go back to the terminal ssh'd to aoc + | cd to /home/xsup/magic_portal + | remove the files you added + + + + +Safe Shutdown! +============== + +Shutting down cacao: + | set loop gain to 0 + | scroll to STOP control loop, and press enter + | scroll to Loop processes ON, press to STOP, and press enter + +The 4 processes for the loop should show as "stopped" in procCTRL, and the loop counter should no longer be increasing. Use :gray:`Top` to get back to the main cacao menu, or :gray:`Exit` to close aolconf. + + +:red:`IMPORTANT`: First is warm up the 4 EMCCDs! These are camwfs, camlowfs, camsci1, and camsci2 (the camsci's cool automatically, even if you don't use them) + +| 1. Edit in their camera GUI temp box, or through cursesINDI: +| In cursesINDI, go to the device and edit the .temp_ccd target to 20. +| For example: +| type "camsci1" in cursesINDI, go to target for temp_ccd, press "e", type 20, then press enter, then press "y" + +2. Close the shutter on camwfs in its cameraGUI (slide slider to the right) + +3. Close the shutter on camlowfs in its cameraGUI + +4. Close the shutter on camsci1 in its cameraGUI + +5. Close the shutter on camsci2 in its cameraGUI + +| 5. **For the 3 DMs and 2 Tip/Tilt mirrors:** +| For DMs, press the "zero flat" button and then "release" button +| It is now safe to slide the DMs off in :orange:`pwrGUI` (dmtweeter, dmwoofer, and dmncpc) + +| 6. **For ttmmod and ttmpupil:** +| go to the Pupil Alignment GUI and hit the "set" button under **Modulation & Centering** +| once it is in SET state, it is safe to hit "rest" for **Modulation & Centering** and **Pupil Steering** +| Both will have state set to RIP +| It is now safe to slide off ttmmod and ttmpupil in :orange:`pwrGUI` + + +:red:`IMPORTANT!` You must turn off fwtelsim and fwscind in :orange:`usbdu0` next (must be done before the dc power ones!!) + +| 7. Now everything in pwrGUI except the following can be off: +| :orange:`cameras`: +| camwfs +| camlowfs +| camsci1 +| camsci2 + +| :orange:`pdu0`: +| compicc +| comprtc +| dcpwr +| swinst + +| :orange:`pdu3`: +| blower +| fan1 +| fan2 +| instcool + + +If the temperature is 20C, the cameras can be slid off. 19C is okay, <19C is not. Check cursesINDI or camera GUIs for the current temps. + + +:red:`IMPORTANT`: Before being done, double check that "instcool" is still powered on in pwrGUI (this is important as it keeps the CPUs and such from overheating) + +Go to cursesINDI, and stop set_latency: +sysMonRTC.set_latency, toggle off + +Now close all the windows and post in Slack that MagAOX is off. + +:green:`================================================================================` +:green:`Note if things go wrong:` + + +If sliders in pwrGUI stop sliding off, it is possible that fwtelsim in usbdu0 has rebooted ICC. If this happens, we need to go ensure that the processes are all running, and that the INDI server is connected. + +open a terminal: + +.. code-block:: bash + + ssh icc + xsupify + xctrl status # everything should be dead if ICC rebooted + xctrl startup + xctrl status # everything should be green again + getINDI + + +| getINDI probably still won't connect. Symptoms of this include: +| 1. ``getINDI`` on ICC returns nothing +| 2. Inspecting the log of one of the processes (e.g. logdump -f camlowfs) will show "waiting for power state" +| 3. pwrGUI from the VM or AOC will only have pdu0-3 (and nothing else) + +In order to reconnect, run + +.. code-block:: bash + + xctrl restart isICC + + +Once this completes, cursesINDI and the INDI log should reconnect, and running ``getINDI`` on ICC should return stuff. +You should now notice all of the options back in pwrGUI. Continue to shut off where you left off (likely at fwtelsim or fwscind) +:green:`================================================================================` + + diff --git a/operating/acqfromguider.png b/operating/acqfromguider.png new file mode 100644 index 0000000..c527d41 Binary files /dev/null and b/operating/acqfromguider.png differ diff --git a/operating/alignment.rst b/operating/alignment.rst index d4e704b..593683f 100644 --- a/operating/alignment.rst +++ b/operating/alignment.rst @@ -7,7 +7,7 @@ System Pupil Alignment Tweeter Pupil Alignment (F-Test) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To align the pupil on the tweeter, we perform the F-Test (which is actually an R). +To align the pupil on the tweeter, we perform the F-Test. Prepare the system: @@ -19,49 +19,23 @@ Prepare the system: * **fwscind.filterName** in **pupil** -* **fwsci1.filterName** in **z** (in almost all cases you should align in `z` for repeatability) +* **fwsci1.filterName** in **z** (or whichever filter works the best for conditions) * configure **camsci1** so that you can see the pupil without saturating. -* Move **stagesci1** to preset **fpm**. +* as needed, move **stagesci1** to focus the pupil image. You want to be somewhat out of focus to see the test pattern well. The preset **fpm** works well. -Now put the test pattern on the tweeter with **Pupil Alignment GUI** for dmtweeter. Press the **set test** under **Tweeter** +Now put the test pattern on the tweeter with **Pupil Alignment GUI** for dmtweeter. Press the **set test** under **tweeter** -Next, use the "TTM Pupil" section to align the pupil on the tweeter using the arrow keypad. -The following figure demonstrates what a good alignment looks like. +Next, use the "Pupil Steering" section to align the pupil on the tweeter using the arrow keypad . The following figure demonstrates what a good alignment looks like. .. image:: f-test-good.png :width: 500 :align: center + +Note that you may need to change the focus by moving **stagelowfs**. - -When done, press the **zero test** button on dmCtrl GUI uner **Tweeter**. - -NCPC Pupil Alignment (J-Test) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To align the pupil on the NCPC DM, we perform the J-Test. - -Prepare the system: - -* **fwpupil.filterName** in **open** - -* **fwfpm.filterName** in **open** - -* **fwlyot.filterName** in **open** - -* **fwscind.filterName** in **pupil** - -* **fwsci1.filterName** in **z** (in almost all cases you should align in `z` for repeatability) - -* configure **camsci1** so that you can see the pupil without saturating. - -* Move **stagesci1** to preset **jtest**. - -Now put the test pattern on the NCPC with **Pupil Alignment GUI** for dmncpc. Press the **set test** under **NCPC** - -Next, use the "TTM Peri" section to align the pupil on the tweeter using the arrow keypad. -The following figure demonstrates what a good alignment looks like. +When done, press the **zero test** button on dmCtrl GUI for dmtweeter. Pyramid Alignment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -88,14 +62,14 @@ Find and mark the pupil position on **camlowfs**: * **stagelosel.presetName** in **pupil** -* **fwlowfs.filterName** in **z** +* **fwlowfs.filterName** in **z** * **camlowfs** settings can be adjusted. Typical settings are - + - **exptime** = **0.05** - + - **readout_speed** = **emccd_17MHz** - + - **vshift_speed** = **3_3us** * **camlowfs.shutter** to **open** @@ -107,7 +81,7 @@ Find and mark the pupil position on **camlowfs**: .. image:: camlowfs_tgt.png :width: 500 :align: center - + Now align the desired pupil mask. First select the presets for the mask: * **fwpupil.filterName** in desired position (e.g. **bump-mask**) @@ -119,28 +93,28 @@ Now open coronaAlignGUI and use the "Pupil Plane" buttons to move the mask. The .. image:: bump-mask_aligned.png :width: 500 :align: center - + Do not move fwpupil anymore. Lyot Stop Alignment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* Set **fwfpm.filterName**: +* Set **fwfpm.filterName**: - if you are using the Lyot FPM, or any other transmissive FP optic: + select the desired mask - + + **stagelosel.presetName** = fpm - + + using the coronaAlignGUI "Lyot Plane" left-right buttons, move the spot so it is not obstructing the beam. You will see two approx equal images (one is a ghost). - - + adjust **dmncp** focus using such that the spots are roughly in focus. - + + + adjust **dmncp** focus using such that the spots are roughly in focus. + + note that you may need to adjust **camlowfs** due to saturation - + - otherwise, select **open** - + * **fwscind.filterName** = **pupil** * **stagescibs** = **none** (any position will actually work) @@ -164,7 +138,7 @@ and adjust Lyot Plane with coronaAlignGUI until aligned. See the below figure: .. image:: fwlyot_lyotlg1_aligned.png :width: 500 :align: center - + Focal Plane Mask Alignment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -186,7 +160,7 @@ Now adjust Focal Plane with coronaAlignGUI until aligned. The post-coronagraph :width: 500 :align: center -Now run eye-doctor to optimize the FPM alignment with the following command +Now run eye-doctor to optimize the FPM alignment with the following command .. code:: diff --git a/operating/aoc_onsky_layout.png b/operating/aoc_onsky_layout.png new file mode 100644 index 0000000..a1ab272 Binary files /dev/null and b/operating/aoc_onsky_layout.png differ diff --git a/operating/cacao.rst b/operating/cacao.rst deleted file mode 100644 index 7b1aa70..0000000 --- a/operating/cacao.rst +++ /dev/null @@ -1,215 +0,0 @@ -CACAO Setup -=================================== - -MagAO-X uses the "Compute and Control for Adaptive Optics" software package. -This document describes how to start up CACAO on MagAO-X and use it for normal operations. It assumes that -software installation and configuration is already complete. - -Terminal Interface Setup -------------------------- - -1. The basic interface to CACAO is through the terminal. We normally set up a three-panel terminal. Open a terminal on AOC, - and first "split left/right". Then in the left half, "split up/down". - -2. In each of the resultant terminals, ssh to rtc (or to icc) as xsup. - -3. Next: - - :: - - [xsup@rtc ~]$ cd /opt/MagAOX/cacao/tweeter-vispyr/tweeter-vispyer-rootdir - - - For ICC the path is `/opt/MagAOX/cacao/ncpc/ncpc-rootdir`. This should be done in the lower left and right hand - terminals. It is not required in the upper left. - -4. Now that you are in the `rootdir`: - - - in the upper left panel, run the command `milk-procCTRL` - - in the right-hand panel, run the command `cacao-fpsctrl-TUI` - - The following image shows the state just before the above commands are run - - .. image:: figures/cacao_term_setup.png - - *CACAO terminal preparation* - - The following image shows the state after the above commands are run - - .. image:: figures/cacao_term_inop.png - - *CACAO terminals in operation* - - In the upper left panel where you have run `milk-procCTRL`, you will want to change the font size to fit it all in. You - can do this by pressing `ctrl` and using the scroll wheel on the mouse. `ctrl +` and `ctrl -` also work. - -.. note:: - The above steps are ripe for scripting. Volunteers needed. - -Graphical User Interface -------------------------- - -To start the GUI for loop control for the high-order loop on AOC: - - :: - - [xsup@aoc ~]$ loopCtrlGUI ho - - .. image:: figures/holoop.png - -And for the LOWFS loop: - - :: - - [xsup@aoc ~]$ loopCtrlGUI lo - - .. image:: figures/loloop.png - -High-order Loop ------------------ - -.. note:: - Almost all CACAO CLI commands must be executed in the `rootdir` of the relevant loop. On RTC this is - `/opt/MagAOX/cacao/tweeter-vispyr/tweeter-vispyer-rootdir`, which is in the lower-left terminal after the above setup. - -1. First decide which calibration you wish to load. On RTC this is currently almost certainly `default`. - -2. To see a list of calibration available, execute - - :: - - [xsup@rtc tweeter-vispyr-rootdir]$ ls ../tweeter-vispyr-calibs. - -.. warning:: - Ensure the loop is open before loading a new calibration, or re-loading the current calibration. - -3. To load a calibration, in the lower left terminal run - - :: - - [xsup@rtc tweeter-vispyr-rootdir]$ cacao-calib-apply XXXX - - where `XXXX` is the name of the calibration. You do not include the full path. For most things, you probably want - `default`. So: - - :: - - [xsup@rtc tweeter-vispyr-rootdir]$ cacao-calib-apply default - - -Low-order T/T Loop -------------------- - -.. note:: - Almost all CACAO CLI commands must be executed in the `rootdir` of the relevant loop. On ICC this is - `/opt/MagAOX/cacao/ncpc/ncpc-rootdir`, which is in the lower-left terminal after the above setup. - -The low-order T/T loop uses light rejected by the coronagraph to control residual vibrations. The "wavefront sensor" -for this mode is a program running a center-of-light algorithm on either `camflowfs` or `camllowfs`, or the average image -from either camera. - -1. First, setup the desired camera. The ROI size does not really matter, but typically we use 32x32 to make the - centroiding algorithm efficient. - - - You can run the LOWFS cameras extremely fast. This can be advantageous to control saturation since roughly 100% of the - star light is rejected by the coronagraph. However, you may want to run the loop slower. So you can use the - averager for the camera to effectively reduce the exposure time. - -.. warning:: - Ensure the loop is open before changing cameras, loading a new calibration, or re-loading the current calibration. - -2. Now to setup CACAO to use the desired camera, run the command - - :: - - [xsup@icc ncpc-rootdir]$ lowfs_switch camflowfs_fit - - In addition to `camflowfs_fit` you can select `camflowfs_avg_fit`, `camllowfs_fit`, or `camllowfs_avg_fit`. - -3. Now load the desired calibration. Note that this only depends on the camera, not whether you are using the averager - for that camera. For `camflowfs` run: - - :: - - [xsup@icc ncpc-rootdir]$ cacao-calib-apply flowfsTT - - and for `camllowfs` run: - - :: - - [xsup@icc ncpc-rootdir]$ cacao-calib-apply llowfsTT - - Now the following processes should be running in `cacao-fpsctrl-TUI` (the right hand CACAO terminal). - These should all be green: - - - wfs2cmodeval-2 - - mvalC2dm-2 - - mfilt-2 - - DMch2disp-02 - - acquWFS-2 - - It is ok if other processes are green. - -4. To record the current star location (or rather its average) you need to take a reference with: - - :: - - [xsup@icc ncpc-rootdir]$ cacao-aorun-026-takeref -n 20000 - - You can change the number of measurements averaged to suit based on the exposure time of the camera in use. This - sets the convergence point of the loop. Now Check that the `acquWFS-2` processes is updating `aol2_imWFS2` with: - - :: - - [xsup@icc ~]$ milk-shmimmon aol2_imWFS2 - -Troubleshooting -~~~~~~~~~~~~~~~~~ -If the loop isn't working or is behaving erratically, for instance you close the loop and it runs away immediately, try the following: - -0. In cursesINDI, there are a variety of parameters that can be adjusted to fix or optimize the behavior of the FLOWFS loop. - - - camflowfs-fit.deltaPixThresh [pixels] - - This regularizes magnitude of the Tip/Tilt commands sent to the NCPC DM via CACAO. E.g., for a value of 2 pixels, if the pixel coordinates for the center-of-light is more than 2 pixels away from the max value pixel coordinates on camflowfs (or camllowfs), no - command will be sent. This is useful for, e.g., a hot pixel in a corner of the current ROI. - - - camflowfs-fit.sigmaMaxThreshDown and camflowfs-fit.sigmaMaxThreshDown - - This sets upper/lower sigma clipping thresholds for RMS pixel values of the max pixel value in the current ROI, frame-by-frame. This has a 5 seconds circular buffer (can be modified using `camflowfs-fit.statstime`). If the max pixel value falls outside these thresholds, no command will be sent to the NCPC DM. This is useful for, e.g., intermittent clouds or seeing bursts. - - - camflowfs-fit.sigmapixthresh - - This sets a sigma clipping threshold for the center-of-light pixel coordinate, frame-by-frame. This has a 5 seconds circular buffer (can be modified using `camflowfs-fit.statstime`). - - - camflowfs-fit.dx and camflowfs-fit.dy [pixels] - - This sets an additive value to the tip/tilt commands sent to the NCPC DM via CACAO. This is useful for, e.g., moving the PSF on camflowfs as an alternative to nudging the focal plane mask using coronAlignGUI. - -1. Restart the fitter process: - -In cursesINDI, use: - -- camflowfs-fit.reset - -Toggle this to do a soft reset of the camflowfs-fit process. This should avoid needing to rerun steps 2 through 5. - -If the loop is *still* not behaving: - - :: - - [xsup@icc ~]$ xctrl restart camflowfs-fit / camflowfs-avg-fit / camllowfs-fit / camllowfs-avg-fit - - selecting the process accordingly - -2. Verify in `cacao-fpsctrl-TUI` (the right hand CACAO terminal) that: - - - `wfs2cmodeval-2.option.MODENORM=OFF` - - `acquWFS-2.comp.WFSrefsub=ON` - - `acquWFS-2.comp.****=OFF` (all other things but WFSrefsub off) - -3. Re-run steps 2,3,and 4 under "Low Order T/T Loop" above. Note especially that you need to run step 4 if you run step 3. - - - - diff --git a/operating/cam_acq.png b/operating/cam_acq.png new file mode 100644 index 0000000..b9f7987 Binary files /dev/null and b/operating/cam_acq.png differ diff --git a/operating/daily_shutdown.rst b/operating/daily_shutdown.rst index f24d3e6..2e7b1ba 100644 --- a/operating/daily_shutdown.rst +++ b/operating/daily_shutdown.rst @@ -1,27 +1,7 @@ Daily Shutdown =============== -These procedures are used for shutting down MagAO-X at the end of a work period. - -Rules to follow: - - do not power off a DM unless it has been released - - do not power off a temperature-controlled camera unless its temp is 20C or higher - - do not power off instcool! - - steps can be done in parrallel, so start warming up cameras, go on, then come back - - -Lunch Break -------------- -If you are just taking a break and plan to come back to keep working, you only need to -shut off `dmtweeter` and `dmncpc`: - - open the loop if closed (holoop for tweeter, loloop for ncpc) - - press "loop zero" - - zero flat - - zero all ch - - release - - power off - - +These procedures are used for shutting down MagAO-X at the end of a work day. Minimal shutdown ---------------- @@ -39,25 +19,29 @@ The main goal here is to shutoff "the expensive stuff". Namely: - camlowfs - ttmmod - ttmpupil - - ttmperi - -Cameras (each of camsci1 camsci2 camwfs, camvisx, but not camflowfs and camllowfs): +Rules: + - do not power off a DM unless it has been released + - do not power off a camera unless its temp is 20C or higher + - do not power off instcool! + - steps can be done in parrallel, so start warming up cameras, go on, then come back + +Cameras (each of camsci1 camsci2 camlowfs camwfs): - close the shutter - warm up to 20C (use cameraGUI, change setpoint) - wait for it to finish - power off - note: for camlowfs, power off under both pdu1 and usbdu0. -dmtweeter and dmncpc: - - open the loop if closed (holoop for tweeter, loloop for ncpc) +dmtweeter: + - open the loop - press "loop zero" - zero flat - zero all ch - release - power off -dmwoofer +dmwoofer and dmncpc - zero flat - zero all ch - release @@ -72,10 +56,6 @@ ttmpupil - press rest in Pupil Alignment GUI - power off -ttmperi - - press rest in Pupil Alignment GUI - - power off - Additionally: - power off camtip (its just a heater) - power off source @@ -86,7 +66,7 @@ Remaining devices such as focus stages and filter wheels can be left on, which w Standard Daily Shutdown ----------------------- -If MagAO-X will be unused for a longer period of time (say a weekend), we typically shut down everything but computers, networking and cooling. +If MagAO-X will be unused for a longer period of time (say a weekend), we typically shut down everything but computers, networking and cooling. At the end of this, the following things will still be on: @@ -94,16 +74,19 @@ At the end of this, the following things will still be on: - pdu0.comprtc - pdu0.dcpwr - pdu0.swinst -- pdu2.camflowfs -- pdu2.camllowfs -- pdu3.blower +- pdu3.blower - pdu3.fanaux - pdu3.fanmain -- pdu3.instcool +- pdu3.instcool **Note:** it is critical that you not shutdown instcool while compicc and/or comprtc are on! -Follow the steps in "Minimal Shutdown" above. +Follow the steps in "Minimal Shutdown" above. Also do the following. + +fwtelsim and fwscind: + +- first power off on usbdu0 +- then power off on dcdu1 -Everything else (except the items listed above) can be shutdown in any order. Occassional errors in the logs during shutdown may occur. +Everything else (except the items listed above) can be shutdown in any order. Occassional errors in the logs during shutdown may occur. diff --git a/operating/daily_startup.rst b/operating/daily_startup.rst index 77a500b..fd22569 100644 --- a/operating/daily_startup.rst +++ b/operating/daily_startup.rst @@ -10,23 +10,19 @@ generally be the instrument state on a daily basis. - pdu3.fanaux - pdu3.fanmain - pdu3.instcool - - usbdu0.rhtweeter - - usbdu1.rhncpc If any of these are off, stop and investigate. These are safety issues and you should not go on. -2. On the `pwrGUI`, verify that the following items are on: +3. On the `pwrGUI`, verify that the following items are on: - pdu0.compicc - pdu0.comprtc - pdu0.dcpwr - pdu0.swinst - - pdu2.camllowfs - - pdu2.camflowfs + +If any of these are off the instrument probably won't work. -If any of these are off the instrument probably won't work. - -3. Ensure MagAO-X processes are started on AOC, ICC and RTC. We do this by running `xctrl status` on each machine. +1. Ensure MagAO-X processes are started on AOC, ICC and RTC. We do this by running `xctrl status` on each machine. :: @@ -45,33 +41,34 @@ If any of these are off the instrument probably won't work. # verify processes are all green/running [[xsup@exao2 ~]$ exit -4. On actual MagAO-X, you should have all of the needed GUIs open. On a remote machine, you will need - to setup GUIs to your liking. - -5. Power up the MagAO-X components: +2. Power up the MagAO-X components: - dcdu0: all devices - dcdu1: all devices - - pdu0: source, ttmperi (other devices are already on as above) + - pdu0: source, ttmperi (other devices are already one as above) - pdu1: all devices [check humidity before dmncpc and dmtweeter] - pdu2: all devices - pdu3: flippers, tableair. camvisx and turbsim are maybe. (other devices are already on as above) - - pduhcat: if you are using GMT HCAT, all devices on. (only in lab, won't show up at telescope) + - pduhcat: if you are using GMT HCAT, all devices on. (only in lab) - usbdu0: all devices - usbdu1: camvisx is maybe. all other devices. -6. Set the flat on the `woofer` and the `tweeter`. +3. Set the flat on all three DMs. -7. For lab work, put `stagepickoff` in `lab`. At the telescope it must be in `tel` to see a star. +4. For lab work, put `stagepickoff` in `lab`. At the telescope it must be in `tel` to see a star. -8. Now ``set`` the pupil TTM, ``set`` the pyramid modulator TTM, and ``set`` ttmPeri on the "Pupil Alignment GUI. +5. Now ``set`` the pupil TTM and ``set`` the pyramid modulator TTM on the "Pupil Alignment GUI. -9. At this point you should see a PSF image on `camtip`. If you don't use the system block diagram to troubleshoot. +6. At this point you should see a PSF image on `camtip`. If you don't use the system block diagram to troubleshoot. The most likely causes are that you forgot to power something on (the source?) or that `stagepickoff` is in the wrong position. -10. Now you can proceed to alignment +7. Now you can proceed to alignment -.. |image1| image:: figures/moxa_dio_do.png -.. |image2| image:: figures/moxa_dialog.png +.. |image1| image:: moxa_dio_do.png +.. |image2| image:: moxa_dialog.png +.. |image3| image:: rtc_ikvm_login.png +.. |image4| image:: rtc_ikvm_launch.png +.. |image5| image:: rtc_ikvm_f1.png +.. |image6| image:: rtc_save_and_exit_yes.png diff --git a/operating/dm_setflat.png b/operating/dm_setflat.png new file mode 100644 index 0000000..7bda30e Binary files /dev/null and b/operating/dm_setflat.png differ diff --git a/operating/figures/cacao_term_inop.png b/operating/figures/cacao_term_inop.png deleted file mode 100644 index fed8c4d..0000000 Binary files a/operating/figures/cacao_term_inop.png and /dev/null differ diff --git a/operating/figures/cacao_term_setup.png b/operating/figures/cacao_term_setup.png deleted file mode 100644 index 009bcf4..0000000 Binary files a/operating/figures/cacao_term_setup.png and /dev/null differ diff --git a/operating/figures/holoop.png b/operating/figures/holoop.png deleted file mode 100644 index 7c9387f..0000000 Binary files a/operating/figures/holoop.png and /dev/null differ diff --git a/operating/figures/loloop.png b/operating/figures/loloop.png deleted file mode 100644 index 3515db0..0000000 Binary files a/operating/figures/loloop.png and /dev/null differ diff --git a/operating/index.rst b/operating/index.rst index 526d435..5ccf9b8 100644 --- a/operating/index.rst +++ b/operating/index.rst @@ -1,17 +1,17 @@ Operation of the MagAO-X instrument =================================== -The MagAO-X instrument has (at last count) several thousand controllable -degrees of freedom, three computers, and dozens of processes. To manage +The MagAO-X instrument has (at last count) several thousand controllable +degrees of freedom, three computers, and dozens of processes. To manage that complexity, we have the guides and tools detailed herein. Good starting points include the :doc:`startup ` guide and the -:doc:`troubleshooting <../troubleshooting>` guide. Useful tools include -:doc:`software/utils/xctrl`, :doc:`software/guis/cursesINDI`, and +:doc:`troubleshooting <../troubleshooting>` guide. Useful tools include +:doc:`software/utils/xctrl`, :doc:`software/guis/cursesINDI`, and :doc:`software/utils/logdump`. Viewing camera output and DM input (really, any shared memory image) uses -`rtimv`, which is documented in its own +`rtimv`, which is documented in its own `User Guide `_. .. toctree:: @@ -19,14 +19,14 @@ Viewing camera output and DM input (really, any shared memory image) uses startup daily_startup - cacao daily_shutdown shutdown alignment + lab_to_sky dashboard software/python_indi_device software/guis/index software/utils/index software/apps/index - abeginnersguidetomagaox - + abeginnersguidetomagaox + diff --git a/operating/j_test.png b/operating/j_test.png new file mode 100644 index 0000000..860ff4b Binary files /dev/null and b/operating/j_test.png differ diff --git a/operating/k_test.png b/operating/k_test.png new file mode 100644 index 0000000..da1a779 Binary files /dev/null and b/operating/k_test.png differ diff --git a/operating/lab_to_sky.rst b/operating/lab_to_sky.rst new file mode 100644 index 0000000..da4bd15 --- /dev/null +++ b/operating/lab_to_sky.rst @@ -0,0 +1,220 @@ +MagAO-X Lab to On-sky AO Setup +============================== + +Internal Source Alignment +--------------------------- +Before, aligning on a star, an initial alignment of the system must be performed with the internal source. + +System Startup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Power on MagAO-X as documented in :doc:`Daily Startup <./daily_startup>`. + * For remote operations startup, consult :doc:`A Beginner's Guide to Using MagAO-X <./abeginnersguidetomagaox>`. + * In the ``dmCtrl`` GUIs, set default flats on the woofer, tweeter, and NCPC DMs as shown in the example below: |image1| + +In TTM modulator, + * Under ``Frequency`` type 2000 and press the enter key. + * Under ``Radius`` type 3 and press the enter key. + * Click ``Set`` and again wait for the modulator status to update. + * Click ``Modulate`` (note that it will take a few minutes before the WFS begins modulating): |image2| + +Pupil Alignment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. Tweeter + + * From ``cursesINDI``: + * **fwpupil.filterName** in **open** + + * **fwfpm.filterName** in **open** + + * **fwlyot.filterName** in **open** + + * **fwscind.filterName** in **pupil** + + * **fwsci1.filterName** in **z** (or whichever filter works the best for conditions) + + * In the ``pupilAlignment`` GUI, under ``Tweeter``, click ``set test``. + * Use the arrows under ``TTM Pupil`` to adjust the illumination such that the black and white pattern appears symmetric on opposite sides of the DM: |image3| + * Once the tweeter is evenly illuminated, click ``zero test``. + + +2. NCPC + + * In the ``Pupil Alignment`` GUI under ``NCPC``, press ``Set Test``. + * In ``camsci1Ctrl`` set ``stagesci1`` to the ``J test`` focus position. You should see a test pattern appear on the pupil. + * In the ``Pupil Alignment`` GUI below ``TTM Peri``, use the arrow keys to evenly illuminate the NCPC DM. + * The final result should look something like this: |image4| + * Once aligned, set ``stagesci1`` back to FPM. + + +3. CamWFS + + * In the ``Pupil Alignment`` GUI under ``Tip Alignment``, move the woofer until the pupils of the Pyramid WFS appear evenly illuminated on ``camwfs`` (this doesn't need to be exact): |image5| + * Use the 4 buttons under ``Camera Lens`` to center the Pyramid WFS pupils. Monitor the (x, y) values under ``Pupil Tracking Loop`` as you do this. Once the (x, y) values are <0.1, you may proceed to the next step. + +Closing the Loop +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In the ``HOloop`` GUI: + * Close the higher order loop on the first 3 blocks (tip, tilt, and defocus) as shown: |image6| + * Monitor the DM woofer and tweeter pupils to ensure that they are not saturating (the pupils will turn red if saturated). + * Once the HO loop is stable, open the loop and toggle the ``synchro`` slider in the the ``camWFS`` GUI. + * After toggling ``synchro``, wait a few seconds before closing the HO loop on more blocks. + * As you increase the number of blocks, continue monitoring the (x, y) values under ``Pupil Tracking Loop``, and adjust the ``Camera Lens`` as needed to keep the (x, y) values below 0.1. + +Bump Mask Alignment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +From the ``camscixCtrl`` GUI: + * Change ``fwscind`` to ``pupil`` + * Move the ``stagescix`` focus position to ``telsim`` + * Take an open-shutter dark frame + * Insert the bump mask by changing ``fwpupil`` to ``bump-mask`` +From the ``corAlign`` GUI: + * Use the buttons under ``Pupil Plane`` to move the bump mask until it is aligned on the pupil. (TODO: Insert Picture). + * Take a closed-shutter dark. + +Focus Diversity Phase Retrieval (FDPR) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +From the ``camscixCtrl`` GUI: + * Change ``fwscix`` to ``CH4-875``. + * Set the camera ROI to 369x369 and center the PSF (TODO: Insert Picture) + * Adjust the ND filter/exp time/EM gain until the camera registers ~45000 counts (setting ``fwscind`` to ND0_3 will typically suffice). + * Take a closed-shutter dark. + * In a terminal, ssh to ``icc`` as the ``xsup`` user: + + .. code:: + + $ ssh icc + $ xsupify + + * Then run fdpr: + + .. code:: + + [icc]$ fdpr2_close_loop fdpr2_dmncpc_camsci1_CH4 + + * Continue running fdpr until you obtain a Strehl ration of ~0.94. + +Coronagraph Alignment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Coming soon... + +.. Closing the Pupil Alignment Loop +.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. #. In the ``Pupil Alignment`` GUI, use the keypad in the lower-righthand corner to drive the x and y avg values to 0. After each translation, wait a few seconds for the readings to stabilize. Also note that the x-axis is much more sensitive than the y-axis. When moving x-axis avg to 0, use step sizes of about 0.1. When moving y-axis to 0, higher step sizes can be used. +.. #. Once the x, y avgs are at roughly 0, set the pupil alignment loop gain to 0.1 and turn on the pupil alignment loop. + +.. With the instrument installed on the telescope and the dome open, you can proceed with on-sky operations. + +.. The following assumes that you have provided the telescope operator with a target and that you are sitting at the AOC workstation. All GUIs, camera viewers, and the MagAO-X web interface should be open at this point. The GUI layout for on-sky operations on AOC will look something like this: |image1| + +.. If this is the beginning of the night, start from Step 1. Otherwise, proceed to Step 2. + +Telescope Target Acquisition +------------------------------ +1. Modulating the WFS + + * Set the FPS on the ``camwfsctrl`` GUI to your desired frequency. + * In CursesINDI, type ``fxngensync`` and toggle the state to ``On`` (see the `cursesINDI guide <./software/guis/cursesINDI>`__ if you need a refresher) + * Navigate to the upper left-hand corner of the ``Pupil Alignment`` GUI. The GUI looks like this: |image7| + + In TTM modulator, + + * Under ``Frequency`` type your desired loop frequency and press the enter key. + * Under ``Radius`` type your desired radius and press the enter key. + * Click ``Set`` and again wait for the modulator status to update. + * Click ``Modulate`` (note that it will take a few minutes before the WFS begins modulating) + +2. Camera Safety Precautions + + * **IMPORTANT** Set ``EM gain`` on the ``camwfsctrl``, ``camsci1ctrl``, and ``camsci2ctrl`` GUIs to ``1``. This will reduce the risk of damaging the cameras. +3. Once the telescope operator tells you that they are pointing at the target, navigate to the telescope acquisition box on the MagAO-X web interface (https://exao1.magao-x.org/#/): |image4| + + * move the acquisition mirror to the ``In`` position + * Set ``K-mirror tracking``, ``ADC tracking``, and ``telescope T/T offload`` to ``On``. + * Press the ``acquire from guider`` button (it should light up red after putting in the acquisition mirror). You are now controlling the telescope. + +4. If observing in Halpha: + + * Set ``stagebs`` on the web interface to ``Ha-ir`` + +Otherwise: + * Set ``stagebs`` to ``65-35`` + +1. You should see a star appear on ``camacq``. + + * TODO: Fill in this section with new ``camacq`` procedure. The star will look something like this when aligned on camacq: |image8| + * In the web interface, move the acquisition mirror to the ``Out`` position. Now, increase ``EM gain`` under ``camwfsctrl`` (for fainter targets an EM gain of ``600`` is sufficient). This will put more light on camwfs. + * Now, look at ``camwfs``. Reduce the step size under ``Move Telescope`` and finely adjust the telescope pointing until the pupils on ``camwfs`` appear evenly illuminated. + +2. Closing the Loop + + * In the ``OffloadingCtrl`` GUI, drag the slider to ``On`` and set the gain to ``0.1``. |Image9| + * In the ``holoop`` GUI, click ``Zero All`` to remove any existing loop gain settings. + * Raise the global gain to ``1.0``. + * Drag the slider from the ``Open`` to the ``Closed`` position. + * Raise tip and tilt to gains of roughly ``0.1`` - ``0.2``. + * Raise focus to a gain of ``0.1``. + * In the ``OffloadingCtrl`` GUI under ``Focus``, press ``Dump``. + * Monitor the DM displays to ensure that the DMs are not heavily saturating (the DM will turn red when it saturates). + * If the loop reopens, press ``Zero`` in the ``holoop`` GUI and ``Zero`` in ``OffloadingCtrl`` before attempting to close the loop again. + +On-Sky Alignment +------------------ +Note: We have assumed that an initial system alignment has already been done with the internal source. + +Pupil Alignment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1. Tweeter + + * See the `F-test guide <./alignment>`__ for documentation regarding alignment of the tweeter. + +2. NCPC + + * In the ``Pupil Alignment`` GUI under ``NCPC``, press ``Set Test``. + * In ``camsci1Cntrl`` set ``stagesci1`` to the ``J test`` focus position and ``EM Gain`` to ``25``. You should see a test pattern appear on the pupil. + * In the ``Pupil Alignment`` GUI below ``TTM Peri``, use the arrow keys to align the pupil on the NCPC DM. + * Once aligned, set ``stagesci1`` back to FPM. + +Coronagraph Alignment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Coming soon... + +Bump Mask Alignment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. In the web interface, set ``fwpupil`` to ``bump-mask``. +#. Now use the ``Pupil Plane`` buttons in the ``coronAlignGUI`` to align the bump mask on the pupil. Set the step size to ``100`` and press the down arrow 3 times. This is typically enough to align the bump mask. However, if the bump mask still appears slightly misaligned, reduce the step size to ``5`` and use the left/right arrow keys for fine adjustments. + +Closing the Pupil Alignment Loop +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. In the ``Pupil Alignment`` GUI, use the keypad in the lower-righthand corner to drive the x and y avg values to 0. After each translation, wait a few seconds for the readings to stabilize. Also note that the x-axis is much more sensitive than the y-axis. When moving x-axis avg to 0, use step sizes of about 0.1. When moving y-axis to 0, higher step sizes can be used. +#. Once the x, y avgs are at roughly 0, set the pupil alignment loop gain to 0.1 and turn on the pupil alignment loop. + +Cleaning up the PSF +------------------------------------ + +Adjusting Higher Order Loop Gains +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#. Now increase tip and tilt quickly to about 0.7 each. +#. Increase defocus to about 0.5. Note that the specific gain values aren't as important. It's best to push the gains as high as they will go until you see heavy saturation on the DM or the PyWFS pupils begin flashing--this signifies overdriving in the system. +#. Now begin increasing higher order gains with each successive gain value being slightly lower than the last. +#. Once you are satisfied with the quality of the PSF on camsci, you may begin conducting observations. + +Focus Diversity Phase Retrieval (FDPR) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +See the `FDPR guide <./utils/fdpr>`__ for more info. + +.. |image1| image:: dm_setflat.png +.. |image2| image:: modulating_pywfs.png +.. |image3| image:: k_test.png +.. |image4| image:: j_test.png +.. |image5| image:: aoc_onsky_layout.png +.. |image6| image:: pywfs_illum.png +.. |image7| image:: loop_tt_defoc.png +.. |image8| image:: acqfromguider.png +.. |image9| image:: pupil_alignment_gui.png +.. |image10| image:: cam_acq.png +.. |image11| image:: offloading_ctrl_gui.png +.. |image12| image:: loop_gain_dist.png \ No newline at end of file diff --git a/operating/loop_gain_dist.png b/operating/loop_gain_dist.png new file mode 100644 index 0000000..296855e Binary files /dev/null and b/operating/loop_gain_dist.png differ diff --git a/operating/loop_tt_defoc.png b/operating/loop_tt_defoc.png new file mode 100644 index 0000000..3889ab4 Binary files /dev/null and b/operating/loop_tt_defoc.png differ diff --git a/operating/modulating_pywfs.png b/operating/modulating_pywfs.png new file mode 100644 index 0000000..bbc8910 Binary files /dev/null and b/operating/modulating_pywfs.png differ diff --git a/operating/figures/moxa_dialog.png b/operating/moxa_dialog.png similarity index 100% rename from operating/figures/moxa_dialog.png rename to operating/moxa_dialog.png diff --git a/operating/figures/moxa_dio_do.png b/operating/moxa_dio_do.png similarity index 100% rename from operating/figures/moxa_dio_do.png rename to operating/moxa_dio_do.png diff --git a/operating/offloading_ctrl_gui.png b/operating/offloading_ctrl_gui.png new file mode 100644 index 0000000..f6954fa Binary files /dev/null and b/operating/offloading_ctrl_gui.png differ diff --git a/operating/pupil_alignment_gui.png b/operating/pupil_alignment_gui.png new file mode 100644 index 0000000..f9131cc Binary files /dev/null and b/operating/pupil_alignment_gui.png differ diff --git a/operating/pywfs_illum.png b/operating/pywfs_illum.png new file mode 100644 index 0000000..5874128 Binary files /dev/null and b/operating/pywfs_illum.png differ diff --git a/operating/rtc_ikvm_f1.png b/operating/rtc_ikvm_f1.png new file mode 100644 index 0000000..33b4d93 Binary files /dev/null and b/operating/rtc_ikvm_f1.png differ diff --git a/operating/rtc_ikvm_launch.png b/operating/rtc_ikvm_launch.png new file mode 100644 index 0000000..12b2b9a Binary files /dev/null and b/operating/rtc_ikvm_launch.png differ diff --git a/operating/rtc_ikvm_login.png b/operating/rtc_ikvm_login.png new file mode 100644 index 0000000..c9011e6 Binary files /dev/null and b/operating/rtc_ikvm_login.png differ diff --git a/operating/startup.rst b/operating/startup.rst index 9dde952..04fa6ec 100644 --- a/operating/startup.rst +++ b/operating/startup.rst @@ -5,16 +5,16 @@ Once the instrument has been unpacked and cabled, begin startup from System Powerup. Subsequent (nightly/daily) re-startup should generally begin from “Preparing For Operation” below. -The following assumes you're sitting at the AOC workstation, but it +The following assumes you’re sitting at the AOC workstation, but it could be done anywhere with appropriate network tunnels. When one must SSH to different hosts, the one where the command should be run will be indicated before the prompt, like ``[xsup@exao1 ~]$ ls`` to run ``ls`` -on AOC in the ``~`` directory. (Don't type the ``[host $]`` prompt, or +on AOC in the ``~`` directory. (Don’t type the ``[host $]`` prompt, or any comment lines starting with ``#``.) You should run these commands as the user ``xsup`` to ensure you can read shared memory images (shmims) and ``ssh`` around to RTC and ICC. If -sitting at AOC, it's therefore best to be logged into the desktop as +sitting at AOC, it’s therefore best to be logged into the desktop as ``xsup``. If working remotely, note that steps in RTC and ICC power-up must be @@ -30,9 +30,9 @@ System Powerup :: - [xsup@exao1 ~]$ xctrl startup + [[xsup@exao1 ~]$ xctrl startup # you'll see some output as the processes start, wait a little bit - [xsup@exao1 ~]$ xctrl status + [[xsup@exao1 ~]$ xctrl status # verify processes are all green/running 2. You should have power control now. AOC talks over the instrument @@ -40,16 +40,16 @@ System Powerup control over INDI via several different interfaces: ``sup``, ``cursesINDI``, or ``pwrGUI``. - Since you're sitting at AOC, it's simplest to open ``pwrGUI``. You + Since you’re sitting at AOC, it’s simplest to open ``pwrGUI``. You should see switches appear. :: - [xsup@exao1 ~]$ pwrGUI & + [[xsup@exao1 ~]$ pwrGUI & # window should pop open with switches 3. The following devices should be powered up, and never powered off - (unless you know what you're doing): + (unless you know what you’re doing): - swinst -- should already be on - instcool -- have someone watching for flow (and leaks) before toggling! @@ -90,7 +90,27 @@ System Powerup selected, and check the box under Pulse Start. Then press the ``Submit`` button at the bottom. This remotely presses the ATX power button on the RTC. - #. Wait for it to come up, and you can ssh in. (You should not need to babysit it over the KVM.) + #. **IMPORTANT** Immediately on AOC as xsup in home, run the command: + + :: + + [xsup@exao1 ~]$ ./jviewer-starter/jviewer-starter 192.168.0.22 & + + Note that if you do not do this right away, the iKVM module will not register as a keyboard. + #. This brings up a video display of the ICC VGA output. Use the + display to monitor progress. It will sometimes hang with a message + to press F1 as shown: |image5| + #. This message is meaningless. When this message appears, press F1. + Do NOT alter any settings. Immediately press F10 (Save Changes + and Reset) and hit enter to say Yes. A soft keyboard can be + brought up from the dispaly controls to facilitate these + interactions: |image6| + #. Without fail, ICC will lose a GPU, and shortly after, it will lock up. Just run ``watch nvidia-smi`` or something and wait until this happens. + #. When it locks up, use the iKVM interface's power button to power off (not reset) ICC remotely. + #. Power it up as before, and it should be fine from then on. (Although sometimes you have to do this dance twice.) + #. Once the boot finishes, use ``nvidia-smi`` in a terminal on ICC to be sure all GPUs + are visible (currently two 2080Tis on ICC). + #. If a GPU has ``fallen off the bus``, see :ref:`the troubleshooting guide ` for steps to take. Software Startup ---------------- @@ -104,7 +124,7 @@ Software Startup :: [xsup@exao2 ~]$ cd /opt/MagAOX/cacao - [xsup@exao2 cacao]$ bash ./startup + [xsup@exao2 cacao]$ bash ./startup.sh - Use ``milk-fpsCTRL`` to verify that both ``dmch2disp-00`` and ``dmch2disp-01`` are running: @@ -123,7 +143,7 @@ Software Startup :: [xsup@exao3 ~]$ cd /opt/MagAOX/cacao - [xsup@exao3 cacao]$ bash ./startup + [xsup@exao3 cacao]$ bash ./startup.sh - Use ``milk-fpsCTRL`` to verify that ``dmch2disp-02`` is running: @@ -161,5 +181,9 @@ Some windows will need to be rearranged. The DM displays should self-normalize. where you replace `tweeter` with either `woofer` or `ncpc` as necessary. -.. |image1| image:: figures/moxa_dio_do.png -.. |image2| image:: figures/moxa_dialog.png +.. |image1| image:: moxa_dio_do.png +.. |image2| image:: moxa_dialog.png +.. |image3| image:: rtc_ikvm_login.png +.. |image4| image:: rtc_ikvm_launch.png +.. |image5| image:: rtc_ikvm_f1.png +.. |image6| image:: rtc_save_and_exit_yes.png diff --git a/publish.sh b/publish.sh old mode 100755 new mode 100644 diff --git a/troubleshooting.rst b/troubleshooting.rst index a515949..f1f914e 100644 --- a/troubleshooting.rst +++ b/troubleshooting.rst @@ -89,7 +89,7 @@ Loop failing to close for no apparent reason and/or intermittent failures of CAC Believe it or not, this can be a sign of insufficient disk space. Consult ``df -h`` and see if any of the filesystems have ``Use%`` of -100%. This can also be checked in INDI with the sysMonitor process for the relevant compute (sysMonRTC, sysMonICC). +100%. .. _missing_gpu: @@ -375,58 +375,4 @@ Examples with known fixes: - Follow the BIOS setup guide - Reboot (F10, save settings). - Now shutdown, fully power down, and reinstall/reconnect all GPUS. - - Reboot. - -USB Device Communication Problems -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If USB controlled devices, such as filter wheels, focus stages, and rotation stages, have errors such as:: - - ERRNO: -42001 [Unknown error -42001] >TTY: tcgetattr returned error - -or:: - - USB Device 0403:6001:A9EF0AMU not found in udev - -or similar, try these things: - -.. note:: - As of 2024A we are seeing occasional near-total scrambling of USB communications at LCO, probably due to grounding - problems. If many, essentially all, USB devices appear to be having problems skip to step 3. - -1. Power cycle the problem device. - - - Note that not all USB devices have power control. In this case skip to step 2. - - Be sure to power cycle both main power and the USB power if necessary - -2. If power cycling the device did not fix it (or it doesn't have power control), next restart the software controller. - This may be necessary after power-cycling if the USB device was re-enumerated on the motherboard. - - - Use `xctrl restart xxxx` where xxxx is the name of the device - - watch the logs to see if the device is "found in udev" - -3. If the above steps do not work, the USB hub associated with the device may need to be reset. - - - The following devices are not on the main USB hub, but plugged directly into the computer - - - rhtweeter (RTC) - - ttmpupil (RTC) - - usbdu0 (RTC) - - rhncpc (ICC) - - temprack: lower and upper (ICC) - - usbdu1 (ICC) - - For these devices you can try unplugging and replugging their USB cables directly on the motherboard - - - If the above direct connection devices are not fixed by re-plugging, the computer will have to be rebooted. - Follow the procedure for doing so. - - - Most USB devices are connected to the main 16-port USB hub. This can be remotely power cycled to reboot it. - - - Power off `dcpwr` from the pdu using `pwrGUI`. Wait a couple seconds, and power it back on. - - This will cause all of the USB devices to get new addresses/tty numbers, so the software will have to be - restarted.It's probably easiest at this point to use `xctrl restart all` on ICC instead of restarting them - one-by-one. - - - + - Reboot. \ No newline at end of file