[16:15:54] NASSP Logging has been started by indy91 [16:15:56] hey [19:15:08] good afternoon [19:50:01] hey hey [19:50:04] how's it going? [00:02:03] oh, not too bad. still quite busy [15:39:55] hey [15:59:37] morning! [16:03:20] what's up? [16:04:04] hopefully finishing up the layout for the AGC board for the CDU setup today [16:04:16] and also should be getting in a new 16:1 gearbox to try with the resolvers [16:04:30] and you? [16:05:19] ah fun [16:05:49] I'm working with wxWidgets for a GUI right now. I like it, let's me do things in a very C++ way, but removes all the overhead and problems I have had with Microsoft's own tool [16:06:23] converting the inputs for the launch window processor right now from a text file to GUI [16:06:29] nice :D [17:59:26] https://i.imgur.com/u7qFuPe.png [18:00:35] this launch window processor version is from the 1979 Flight Design System documents. Kind of meant as a general analysis tool and not specifically to supply data to the Shuttle computer or so. [18:00:54] So it's not really 100% helpful to supply data for NASSP or SSV directly [18:01:29] I might have to port some extra code from the RTCC and FDO MFDs [18:01:50] but I am happy with the way GUIs are designed with wxWidgets, I will proceed this way [18:01:55] looking good! [18:04:39] I guess drawing the output on pop up windows is better than text files, I'll try to figure that out next [18:43:25] cya! [11:53:06] hey Nik [11:56:30] hello hello [11:57:31] does wxWidgets need any kind of runtime library on the user side? [11:58:22] I haven't looked into that yet :D [11:58:52] I guess I will have to once this becomes release ready haha [12:05:54] Simple popup window for output displays: https://i.imgur.com/SBcHtaA.png [12:21:41] oooo nice! [12:47:34] can it to plots natively? [12:49:40] I think there is limited support for it, but to do it properly I think I would need to install this: https://wxmathplot.sourceforge.io/ [12:50:13] The OMP had a plotting capability, I sure want that as well [12:53:59] https://i.imgur.com/l9z29PZ.png [12:54:03] getting plots like this [12:55:21] The next thing I am interested in, the maneuver constraints table for the OMP basically has a CSV file format. If that could easily be edited inside the application, that would be really nice [15:43:07] morning! [16:21:19] hey Mike [19:02:25] thewonderidiot, you got us the Skylab TLEs a while ago, right? [19:02:49] Before that I had build the Skylab state vector for us by hand, I'm trying the TLE now. So far the phase angle doesn't make sense... [19:09:47] uhh [19:09:53] time issue :D [19:11:07] oh I previously copied a state vector from just before liftoff out of a scenario [19:11:23] but now I went back to the T-4h one, but didn't change the MJD of it [19:12:03] much nicer solution of course lol [19:20:37] haha got it all sorted? [19:21:40] yep [19:22:05] essentially a copy&paste error on my part [19:24:12] this TLE would work well for us, I just have to regenerate the LVDC targeting [19:26:21] awesome :D [19:26:29] or add the Saturn IB specific targeting to this new tool first haha [19:38:55] oh yeah, the targeted inclination and descending node angle agree to 0.02° to the flight evaluation report values now [19:39:42] inclination is 0.008° different, descending node probably slightly more due to the whole Orbiter timing system confusing [19:39:50] confusion* [19:40:11] very nice! [19:40:50] I'll give it a test run but this should be a pretty safe change [19:41:12] The main difference is the phase angle not being ideal for the actual Skylab 2 launch day [19:41:22] so instead of a 125 NM apogee as planned they had to use 190 [19:42:15] They also really wanted TV coverage on the US pass for rendezvous, to view the damage [19:42:44] Because of that they only considered a rendezvous on the 5th orbit instead of 5-8 orbits as planned [19:43:19] That also makes a difference for the insertion, they moved the ideal time for the 5th orbit rendezvous closer to the optimum liftoff time [19:44:17] plane vs. phase launch window aligning better for that specific profile [19:44:47] interesting effects of tweaking launch parameters [20:31:01] night! [17:26:30] morning! [17:33:40] Hey Mike [17:43:22] what's up? [17:44:43] I've added TLE support to this new planning tool. That should make things a lot easier with conversions and creating numbers for launch scenarios. [17:47:25] using the same dodgy coordinate system conversion as the Scenario Editor TLE tool, but, it seems to give decent results haha [17:47:30] oh very nice! [17:48:59] So I am not too far away now from being able to supply everything for e.g. a Saturn IB launch scenario to Skylab on a different launch day [17:49:17] Just select the Skylab TLE that is the closest and the tool would output LVDC targeting and a Skylab state vector for the scenario [17:50:15] and I want it to do the same for SSV [17:51:30] Sounds all pretty similar to the tool for planning Apollo missions to the Moon. I guess they have quite similar roles, just one for lunar missions with the Saturn V and this new one for Shuttle/Saturn IB ground-up rendezvous missions [17:52:14] that's super cool [17:52:34] And it's all meant to be the preflight planning. The RTCC MFD might still get more capabilities added because they could retarget in the RTCC on launch day [18:09:10] CDU project is waiting on a completed AGC board? [18:11:08] I ordered the board and all of the parts for it last night [18:11:24] "X=C [18:11:25] , Y=A [18:11:27] , Z=B" Is that from the order of the CDU modules in the tray? :D [18:11:30] also waiting on the right pinion gear for the resolver gearboxes [18:11:41] hah yeah [18:12:33] for the CDU, [18:12:34] A = inner gimbal [18:12:35] B = middle gimbal [18:12:36] C = outer gimbal [18:12:43] but for the AGC, [18:12:44] X = outer gimbal [18:12:45] Y = inner gimbal [18:12:45] Z = middle gimbal [18:14:36] someone liked PYR over RPY [18:15:23] so next board to design is probably the AAC filter & multivibrator [18:15:52] what is that needed for? [18:16:11] that's one of two modules that generate the precise 800Hz 28V reference for the CDU and resolvers [18:16:43] it generates a synchronized ~4V sine wave that the 800cps 1% amplifier module then creates 28V from [18:18:57] pretty strict requirements or easily achievable? [18:19:29] hmm what do you mean? [18:20:22] how precise this all needs to be for the CDU to be happy [18:20:43] probably 1%, going off the name of the module haha [18:20:57] the "AAC" part of the first module is automatic amplitude control [18:21:20] it actually closes the loop with the amplifier module and adjusts its own output such that the amplifier module will put out exactly 28V [18:24:42] I've been struggling with the 1% amplifier module. it's hard to find a transformer similar to its output transformer [18:24:53] I might use a more modern audio amplifier [18:30:15] so with the gearbox you will just rotate it by hand and that data gets fed to the read counter? That will be fun to see :D [18:30:33] How the CDU reacts [18:30:41] yep! [18:31:10] it will be much better than the current behavior of the read counter freaking out and oscillating whenever I turn one of the two resolvers haha [18:32:13] the might still be a bit of freaking out in some situations once everything works normal, that is expected :D [18:32:16] there* [18:32:28] hehehe [18:35:20] side project is mine is code reduction of the RTCC MFD display code. There is a lot to be gained, but it's difficult to automate. So a lot to do by hand in 10k lines of code... [18:35:24] of mine* [18:35:52] oof yeah that is a lot of code [18:36:41] I'm only even bothering with it because Intellisense has become slow for me in the RTCC MFD class and RTCC class :D [18:37:24] I definitely need to do something about the RTCC class, too. That's larger than the MFD by quite a bit. [18:38:24] I don't think a namespace is good enough, it needs to be one central class. But maybe I can split the RTCC up on subsystems, all having access to everything in the RTCC. [18:38:31] up in* [20:30:16] night! [15:09:00] morning! [15:11:16] hey [15:25:32] I'm adding saving/loading to this new tool. I've learned from the ATDP, I think I found a better system for save files. [15:25:58] oh yeah? what is your new system? [15:27:31] well wxWidgets helps. It write a .ini file in plain text and will automatically read from it, too, without me having to write extra code. ATDP saving is more efficient I guess, but it's binary. I guess what I have learned is: I don't have to reinvent the wheel :D [15:31:04] typically I dislike having to deal with external code and license and all that stuff, but with the GUI I need that anyway. Might as well use everything wxWidgets provides. [15:51:23] back in a few hours [19:52:44] .ini file sounds much nicer than a binary blob! [19:53:24] much easier to add or remove fields to existing save files if you make an update [19:57:06] Yeah, in the ATDP I just didn't want a line by line save/loading code like we have with NASSP scenarios, but if there is a library doing all the heavy lifting for you, it's better than binary [19:59:39] The next little feature is a tab handling state vectors. Just so that you can manage and edit them in the application and not in text files [20:00:16] That's of course a bit of a disadvantage of not running inside Orbiter where you can simply always pull the state vectors from the Orbiter API [20:01:28] My process right now could use some improvements. I have a bunch of files with TLEs and then for a specific launch day I need to manually find the TLE that is the closest and copy it over [20:01:33] I am sure that can be streamlined [20:01:50] without having to look on Wikipedia what day of the year June 5th is [20:10:12] lol yeah that definitely sounds streamline-able :D [20:16:05] that is more like the process we used to have with AGC padloads haha [20:16:13] very handcrafted [20:39:32] night! [16:36:26] morning! [16:37:18] hey Mike [16:39:05] what's up? [16:40:00] tinkering around with the ASTP rendezvous plan in my new tool [16:40:06] ASTP has some special challenges :D [16:41:09] oh yeah? [16:41:44] Soyuz does a maneuver in between Apollo maneuvers [16:42:13] a bit tricky for the rendezvous targeting [16:42:23] oh yeah that is a big difference from Skylab :D [16:43:02] also I've only added the capability for the target vessel to do maneuvers in this OMP version, Shuttle FDO MFD can't do that yet. I'm chasing a bug, but not sure yet if it's actually a bug. [16:53:08] not a targeting [16:53:09] bug [16:53:20] but an orbit that is circular and becomes less circular on its own [16:53:26] real or bug has to be seen :D [18:17:02] well I guess the orbit is not nice for a circularization [18:17:12] non-spherical gravity strikes again [18:23:09] an unrelenting villain :D [18:27:58] The circularization targeting reduces the altitude rate to 0 and adjusts the horizontal velocity to give the same altitude as right now in 180° of orbital travel [18:28:10] And with that you still get this wobble: https://i.imgur.com/kcsolyR.png [18:28:34] I guess this is a bit of a worse case, I have definitely seen more circular Earth orbits [18:28:38] worst* [18:29:34] depends where in the orbit (latitude) you do the circ burn [18:31:59] haha I've also seen worse "circular" orbits [18:38:42] The RTCC has a function that smoothes the predicted apogee and perigee with a simple J2 approximation, but it's also not faring too well with this orbit [18:39:33] The Shuttle computer has a really good calculation for this, too, for the displayed apogee and perigee. A bit more complex than the RTCC version [18:42:03] but even that display gives up if the predicted difference between apogee and perigee is less than 5 NM and just says the orbit is near circular :D [18:42:54] well it still shows the HA and HP, but not the predicted time to the next apsis [18:43:54] Better than conic at least lol: https://i.imgur.com/lW6lQZb.png [19:41:14] oh yeah haha [20:32:09] night! [16:12:08] morning! [16:27:05] good evening [16:40:59] what's up? [16:41:57] I've launched ASTP and now I am distracted by adding a mission specific system for tracking stations, specifically the ATS-6 relay satellite [16:42:19] I think I've had some ideas for this that can work [16:44:22] and you? [16:46:23] stalled on the CDU at the moment waiting for various shipments to arrive [16:46:50] so I might work on modern reimplementations of the PSA modules I need [16:47:16] but there are other thoughts bouncing around my head, like maybe I should just take a break and play video games this weekend instead lol [16:47:35] or _maybe_ launch Apollo 8 in NASSP [16:48:21] sound like good ideas haha [16:50:15] don't launch ASTP, that's kind of difficult still :P [16:53:23] hehehe [17:14:13] I would love it if you try Apollo 8! [17:49:45] haha and finally get some mission experience, after almost a decade [18:23:01] hey guys [18:23:19] hey Matt [18:23:31] I'm also encountering another issue :D [18:23:42] I don't think I introduced it [18:24:09] the current logic is that when there is a new ground station AOS then that one will become the transmitting station [18:24:42] I had AOS to the ATS-6 satellite over the Atlantic [18:24:46] then I had AOS Madrid [18:24:53] ouch [18:24:56] and I think it switched to that [18:24:58] but it gets worse :D [18:25:08] at LOS Madrid it did not switch back to the ATS-6 [18:25:28] I don't think our current logic can handle AOS/LOS within an AOS period of another station [18:25:36] yeah... it's just going to wait for the next one [18:26:04] Maybe it should be changed like this: It always stays with the current station, if it is available [18:26:21] at LOS it will pick the first(?) station it has a signal from [18:27:00] but this logic needs to be thought through, that it works right for low Earth orbit, TLC/TEC and lunar orbit [18:27:08] those cases are more important than a relay satellite... [18:27:51] with the current logic it doesn't properly reset itself either [18:28:16] in the scenario it saved that is has AOS to station 43, that is the ATS-6 [18:28:29] transmitting ground station is still 31, surely Madrid [18:28:35] if (AOSCount == 0) { [18:28:36] TransmittingGroundStation[Slot] = 0; [18:28:37] } [18:28:40] I think something needs to generate a list of stations to switch to [18:28:44] AOSCount is 1 because it has a signal to the ATS-6 [18:29:33] maybe there is some real MSFN logic to this [18:30:02] pretty sure that in my case Madrid and the ATS-6 were not far away from each other [18:30:16] So I don't think you would have them both transmitting at the same time haha [18:30:51] yeah, that wouldn't work very well [18:31:04] maybe we need a priority list? Could get complicated [18:31:49] well, we should be able to generate a list of all stations that can seethe spacecraft at ant time [18:32:11] if they had priorities it could pick the highest [18:32:30] or if some have the same priority, pick by closest [18:33:02] *"at any time" not "at ant time" [18:34:07] yeah, we have the AOS list [18:34:18] list of bools of which spacecraft currently are in AOS [18:34:44] I don't think that differentiates between S-Band and VHF, but, it could be added [18:35:38] "pick by closest" would be problematic again with the ATS-6 [18:35:50] because of the Madrid pass [18:37:00] yeah, I think a "priority" would be needed there [18:38:21] I would still like to learn more about how this worked in reality [18:38:30] I'm pretty sure I did I inplimented it they way I did so that stations would stay in AOS as long as possible...but it doesn't really have the intended effect [18:39:23] I do know that stations got a "SCM" or "station configuration message" teletyped to them by MSFN [18:40:09] and routing of traffic was manual *as far as I know* [18:42:32] according to the transcript they didn't try the ATS acquisition on this first opportunity [18:42:35] normal Madrid pass [18:43:24] something else I'd like to add to PA mfd is a manual station select [18:43:53] they acquired the ATS on the next rev [18:44:18] oh no [18:44:22] "We found a super Florida mosquito flying around [18:44:23] here a few minutes ago." [18:46:21] Günter Wendt probably not happy about it :D [18:47:29] what haha? [18:50:32] CAPCOM suggests adding an experiment on it to the schedule [19:22:56] ahh [14:29:38] hey [15:08:03] hey Nik [15:12:13] I am not sure if this is the best solution, but I am testing my new concept for the transmitting ground station [15:12:32] at least it keeps lock onto the ATS-6 satellite this way [15:12:55] It basically processes first which stations it has a signal to [15:13:37] and it uses the first one from that list if: there currently is no transmitting station or it just lost contact to the previously transmitting station [15:14:01] So this way it will keep using the same station as long as you have a signal to it [15:14:19] and then just picks the first in the ground station list that has the AOS flag set [15:14:48] this seems to give the desired behavior for ASTP, but I am not sure yet about other missions [15:18:24] lunar should be no problem. There is only ever 1-2 stations in AOS, out of a possible 3. [15:18:30] lunar orbit* [15:26:55] that should work, I would think [15:40:35] seperate lists for the LM and CSM? [15:48:57] not a new list, just the list of all ground stations we have already and their AOS flags [16:07:38] morning! [16:12:17] hey Mike [16:12:58] n7275, the only thing I changed about the ground stations is to make it a std::vector. That way it can handle that I am (optionally) adding new "stations" like the ATS-6 satellite [16:39:19] ahh, nice. are those now specified in the mission file? [16:54:39] n7275, I have added three things for the mission file. Completely override all the settings for a ground station (if you choose number 0 it adds the station instead of replacing it) [16:54:44] that's what I added the ATS-6 with [16:54:54] then an option just to change latitude/longitude of a station [16:54:57] no other changes [16:55:05] we can use that for the ARIAs and ships [16:55:19] and then an option to simply disable/enable stations [16:55:33] we can do mission specific stations [16:55:39] with that [16:57:44] no saving/loading of these settings though [16:58:24] so if we e.g. want to let the MCC move ships and ARIAs from where they were for launch/TLI versus reentry, that would be another set of changes [16:58:41] might be something nice in the future, but, not 100% required [17:08:00] awesome. no need to overcomplicate for now [17:11:59] yep, I'll give it all a test but for this branch I should have most changes done already. [17:12:09] so there should be draft PR soon [17:20:37] But I would definitely like to see ARIA and tracking ship AOS/LOS messages, that will be nice [18:01:13] I just had a case where I had AOS Bermuda and then AOS ATS-6 before I lost contact to Bermuda [18:01:37] so in my new system it will use Bermuda until LOS and I can't acquire the ATS-6 [18:22:34] out of curiosity, is ATS-6 at a fixed position, or using the state vector of an actual vessel? [18:24:48] vessel [18:24:52] I put a Delta Glider there [18:25:11] in our MCC code it already used both local and global coordinates for ground station [18:25:35] in case of the ground stations the local coordinates are of course fixed and it uses the Orbiter API function to convert to global [18:25:50] so for relay satellite it simply gets the global position of the vessel by name [18:25:53] and converts to local [18:26:10] and then the rest of the logic is identical for ground stations vs. satellites [18:26:47] ok there was one more place where I had to change something that only worked for locally fixed "ground stations", but, that all wasn't too difficult to get to work [18:27:59] I guess if we had multiplayer one person could fly an ARIA aircraft with this system lol [18:28:42] but I wanted this to also work for potential lunar farside landings that use relay satellites [18:28:52] so you can launch those satellites yourself [18:29:09] I added a lunar occulation check for relay satellites, so you can't cheat too badly [18:29:36] satellites need a line-of-sight to Earth with that [18:30:07] but no more complex relay logic than that [18:30:27] not in contact to a specific point on Earth, or satellite to satellite relay or anything like that [18:37:01] nice. I was thinking of lunar relay satelites. [19:06:30] cya! [14:51:34] hey [16:18:12] good afternoon [16:26:42] hey Matt [16:23:20] hey [16:48:49] morning! [16:56:07] what's up? [17:01:50] the AGC interface board for the CDU setup arrived yesterday [17:02:05] I have it mostly assembled, so should be able to finish that up and test it after work [17:02:35] also maaaaybe might be able to build up my first 16:1 dual resolver assembly today [17:02:59] the maybe is because the parts should all be here, but whether or not they properly fit is still up in the air :P [17:03:19] how's ASTP going? [17:04:49] nearly finished with the sleep period before rendezvous day [17:05:34] what, you don't have trust that all parts are built with the correct tolerances? :D [17:07:00] I'm trying to piece together a bunch of parts that I received no dimensions for and had to measure myself haha [17:07:17] the lack of trust is more directed inward than towards the manufacturers :P [17:07:34] haha ok [17:09:32] n7275, I think I solved the ATS vs. ground station confusion I had. The communication to the satellite was on different frequencies [17:09:50] So they have a whole separate S-Band system in the CM [17:09:53] everything twice [17:10:18] OMNIs for the normal S-Band communication, HGA for the ATS only [17:10:29] they even got separate signal strengths meters on ASTP [17:11:05] panel 2 for the omnis, panel 230 for a bunch of HGA switches and the signal strength meter for it [17:11:45] so with the different frequencies you could probably transmit and receive both at the same time, no problem [17:12:54] ... I don't know where that leaves my changed MCC code [17:13:14] I'd rather have it work like it did before, the ASTP HGA seems to be such a special case [23:09:21] thewonderidiot, who did you have manufacture your parts? [23:09:29] which parts? [23:10:31] the little lasercut plates I'm using for the resolver assemblies were made by sendcutsend [23:40:43] yes, those [15:47:55] morning! [15:48:25] hey Mike [15:48:33] what's up? [15:50:08] Have flown ASTP to the point where I could check if the Saturn IB insertion was any good. I guess I am semi-happy haha. [15:50:18] hahaha [15:50:26] not great, but not bad? [15:50:30] pretty much [15:50:51] a bit more out-of-plane DV than I expected [15:51:08] not as much as the old LVDC targeting though, that was just the operational trajectory numbers [15:51:32] Which, as ThatRedMelon had to notice, did not give a nice orbital plane [15:53:49] I am up to the point where I would start using VHF Ranging, which we can't do with the Soyuz yet [15:54:10] so I think I'll wrap up the changes I have done so far to the code and the ASTP scenario [15:55:04] and continue getting this new launch targeting tool release ready [15:56:34] nice :D [16:52:44] n7275, question for you [16:53:14] how much would there to be learned by getting a CM PCM running? [16:53:39] we're debating powering one up but are a bit... intimidated by the sheer number of connectors on the thing [20:30:57] night! [23:52:47] thewonderidiot, probably quite a bit could be learned [23:56:35] I have a lot of biases and assumptions about how it works from how dseagrav and Tschachim implimented it in 2005-8 [23:59:14] it would be really nice to know how how the sub-frame/frame/prime frame position relates to actually sampling a given value [02:46:50] how much do you think we'd have to wire up to test that? [02:59:09] I'm not sure, exactly, but I think you could demonstrate the functionality with 5 seperate inputs. [02:59:49] the question would be though, how much other stuff do you need to hook to it to make that happen [15:56:36] morning! [16:04:46] hey Mike [16:10:05] what's up? [16:19:01] my new targeting tool is now git tracked [16:19:04] but not released yet :D [16:21:28] But it's getting there where I am adding e.g. license headers to files [16:21:31] still lots of cleanup to do [16:25:29] exciting! [16:29:25] I'd still like to add an editing capability for the OMP maneuver constraints table, right now that's basically a CSV file [16:29:56] I guess at worst it just becomes a CSV editing text field [16:30:16] But then you don't need to add or changed any files with an external text editor [16:30:20] change* [16:31:40] ideally I would have something that looks like this: https://i.imgur.com/TfMOly3.png [16:34:16] with editing capability of everything in the table [16:34:25] but that isn't super simple haha [16:37:05] oh that would be very cool though [16:40:33] for sure [19:43:18] cya! [17:29:48] good afternoon [17:33:01] hello hello [17:34:58] what's up? [17:37:10] not much coding going on today, but I found a few nice papers on Orion guidance, navigation and control, so I am just reading those a bit [17:37:19] and you? [17:39:47] just getting back from a camping trip [17:40:23] oh fun, did the weather play along? [17:43:45] it did for once [17:48:06] no rain or wind. the sky's were so clear I swear I could just pick out M34 by eye at night [17:49:42] with so much luck it's probably constant rainfall from now on until winter starts :D [17:50:26] probably haha [17:50:28] we've had 30°C today. 18°C in 2 days. Looking at the forecast... I think summer might be over. [18:02:02] yeah, same situation here. it's still randomly warm-ish most days but it's getting colder in the nights...and some of the trees are looking less green in some places [18:11:48] ah I still have to watch Mike's most recent video about the CDU [18:28:04] ooo, I'll have to check that out too [18:52:20] it looks like some nice progress :D [19:18:26] afternoon! [19:18:31] yeah, things are progressing along nicely :D [20:05:46] hi Mike [20:10:05] hey hey [16:11:06] wait what? [16:11:11] I wasn't here [18:38:47] huh? [18:40:39] indy91_ [18:45:16] well I am me, I am pretty sure [18:45:42] But I joined as indy91_ because indy91 was already here, who then left a few minutes after I joined [18:46:23] the ping timeout timer is counting from when I joined, so something must have gotten confused and joined me twice or so [18:46:28] in any case, hey Matt :D [20:40:08] hello. I forgot to look at my irc client again for a bit, whoops [20:45:50] well my client apparently looked at IRC on its own at first :D [20:53:21] requesting ATS-6 TLE, I almost got all data since it launched, but then I remember it is geostationary and it is still there so I don't really want almost 50 years of useless data :D [20:56:37] And I think I'll put it as a Carina in the ASTP scenario, that's really the only stock Orbiter satellite [20:57:29] night! [14:42:09] good morning [14:44:02] hello hello [14:44:09] turns out they have no ATS-6 TLE [14:44:16] not for 1974/1975 anyway [14:45:56] I'll just have to add it to the scenario with the scenario editor, no big deal [14:58:25] oh strange [14:58:41] what's the oldest data we have for it? [14:59:50] I'm not sure, it shows a TLE for today, I think [15:00:07] but the special request I did for 1974 through 1975 resulted in an empty TLE file [15:00:33] https://celestrak.org/NORAD/elements/gp.php?CATNR=7318&FORMAT=TLE [15:00:34] probably a bit long to propagate backwards [15:00:42] Hmm, maybe [15:00:52] There were TLE for the ASTP Soyuz [15:00:56] and Skylab from launch on [15:02:45] ah [15:02:47] https://celestrak.org/NORAD/elements/gp-first.php?NAME=ATS%206 [15:02:58] This is a method to get the first available TLE [15:03:01] it's from 1977 [15:03:38] I just did it with the scenario editor. Not too complicated. We know where it was located (0°N, 35°E) [15:05:33] ah, that works [15:06:42] time to test the other feature of my branch, choosing tracking ship locations (and ARIA) with the mission file [15:07:34] oh awesome [15:09:21] the ships were already in the ground stations array, just without location and inactive [15:43:25] I'd like to add VHF at some point [15:57:52] with what functionality? [15:58:03] AOS/LOS messages are already shown for it [15:58:11] There is no signal strength meter or anything [16:08:10] maybe the voice check in the CAPCOM menu :D [16:36:35] morning! [16:55:27] hey Mike [16:55:42] indy91, that's a great idea [17:23:31] hey Mike [17:32:20] The voice check really should work for both Air-ground, and air-air (CSM-LM) [20:01:52] night! [15:06:58] hey [15:10:01] lol, I'm trying the latest Open Orbiter 64 bit development build, Uranus is zooming across the sky :D [16:27:40] morning! [16:27:45] lol [16:55:16] hey [17:04:13] I thought that issue was fixed, but I guess not [17:09:54] at least I didn't actually want to go to Uranus [17:10:10] the very first time I tired 64bit Orbiter I wanted to go to Mars but Mars had other plans [17:10:20] tried* [17:11:00] hahahaha were you just taking the delta glider there? [17:13:06] yeah, I wanted to test if I could still use the stock Orbiter MFDs well enough to navigate to Mars [17:13:16] if everything had gone normal it would have worked [17:14:45] but today I was just testing how addon development is in OO, using CMake and stuff. I ported one my various testing MFDs to it. Seems to all work fine. [17:14:53] Although maybe I should stick to 32bit for now :D [17:18:33] yeah, sounds like that might be wise :P [17:20:09] I think it's the same with Uranus as with Mars, some of their moons only have 32bit modules and that causes weirdness in 64bit OO [17:20:17] n7275 knows this better [17:32:47] hello [17:33:07] yeah, all the moons of Uranus, Neptune, and Mars [17:34:03] the don't have source code, so the Orbiter repo just had the dlls [17:36:46] they were contributed by another user (without source code, I believe) circa 2005 [17:37:41] it'd be a fun little project to decompile those and reconstruct the code [17:40:39] sounds like someone's looking for a project :) [17:43:49] dll files smaller than an AGC rope, how difficult can it be [17:46:17] and for an architecture for which tools are already widely available! [17:46:56] I've once attempted to start a decompilation project, the Shuttle portable onboard computer software [17:47:11] But that was rather challenging and I didn't get very far [19:27:51] A simpler solution would be to just replace the ephemerides modules with orbital elements for Orbiter to propagate [19:36:18] that is accurate only in the short term, in the long term most bodies don't really move on Kepler orbits [19:37:00] I've seen solutions for this with both orbital elements and the rate of change of the elements, that's a little bit more precise, but still not over 1000s of years [19:48:44] true, but it might be a good compromise in terms of difficulty of implimenting. [19:49:27] the DE440 modules are another option [19:50:40] but shipping Orbiter with gigabytes of spice kernals is problematic [19:51:57] I'm sure there is a solution to be found somewhere in the middle of these options, in terms of fidelity [19:59:46] Documentation is really the only part left for a 2024 x86 release [20:00:40] but the CELBODY modules for the moons is the showstopper for x64? [20:03:59] Yes unfortunately. [20:05:24] hmm, can that really be so difficult, to come up with something from scratch... [20:05:41] Looking at Jupiter's, it doesn't look too hard https://github.com/orbitersim/orbiter/tree/4800e525bb1ab2664d06a57da2da6f8afe38a64f/Src/Celbody/Galsat [20:06:35] At the very least, there's definitely better data avaliable, and probably published solutions, than there was on the internet in 2004-5 [20:22:24] In the code for Celestia I see an orbital element based approach [20:22:53] maybe that is what you had found that gave you the idea? :D [20:22:57] https://github.com/CelestiaProject/Celestia/blob/3c9edf58d109219df23083506b1ff9e0695ad404/src/celephem/customorbit.cpp#L1331 [20:23:13] I was looking for Phobos specifically, just the first that came to my mind [20:32:19] the Orbiter credits say what documentation the moon ephemerides were based on [20:35:28] yeah, surely that can't be too hard to decompile [20:41:15] night! [15:53:10] morning! [16:01:30] hello hello [16:10:47] what's up? [16:11:52] adding tracking ships to the mission files so that we get mission specific AOS/LOS messages for them [16:11:59] and you? [16:12:48] working on these Block I PSA modules [16:12:57] each one individually looks good, now I need to wire them together [16:15:21] ah nice [16:15:33] Block I hardware still working reliably, always good to see :D [16:15:55] yeah! as long as it didn't have the mesa diodes used in the computer, it's probably good [16:16:16] the 1% amplifiers are putting out interesting sine waves [16:16:29] they have sort of a marching ripple on the way day down [16:16:56] and both of them are doing it the exact same way which makes me think it's not a defect [16:17:09] or rather, if it is a defect it's a design defect [16:17:47] not sure yet what's causing it, but I am very curious if the Block II PSA will have the same ripple [16:18:04] and if it does, it's probably another important factor for Apollo 11 [16:18:24] oh ture [16:18:26] true* [16:44:23] okay nevermind, the ripple isn't there if I use the two modules together [16:44:29] but also they are putting out 29.07Vrms [16:44:36] not quite 28Vrms +/- 1% [16:45:10] it is slowly dropping though so I wonder if it needs to heat up... [16:46:14] hmmm the 1% amplifier module is getting quite warm to the touch [16:46:50] oh I guess I should reserve judgment until I actually get it synchronized [16:49:02] 28V +/- 1.4V if not synchronized, yeah [16:49:13] so I'm within the error bounds unsynchronized [16:51:14] doesn't exactly sound like precision devices yet :D [19:49:09] good afternoon [22:10:06] hey Matt [12:18:16] thewonderidiot, I was reading Ron's changelog regarding ASM101. in it he mentioned not having the source code to the S/360 assembler. I have a copy from 1978 (copyright free) http://mwhume.space/Files/OS360TAPES/AS037F1.TXT [12:19:36] I do not have Ron's email address; could you pass that along to him (I don't have his email address) [12:38:47] wow, I'm not awake yet, clearly haha [16:34:18] morning! [16:34:21] n7275: will do [16:52:04] hi Mike, thanks [17:18:59] I CC'd you on the email, so you can chat directly if you want :) [18:15:40] thank you! [19:38:44] good evening [19:41:39] afternoon! [19:41:50] what's up? [19:42:22] just filmed a slightly better video about these PSA modules, and now moving back to building out the CDU setup [19:42:46] I want to see if I can get rid of my OCDU fail today [19:43:22] and you? [19:44:11] checks Systems Handbook. [19:44:19] That's a bunch of OR gates for the OCDU fail :D [19:45:22] was mostly in my grandmas garden the last 2 days, but before that I wrote a little program to help me with scenario editing [19:45:24] hehehe yeah there's a lot of conditions [19:45:32] oh nice :) [19:45:49] I wanted to search for a specific line (or rather start of a line) in the scenario [19:45:54] and then insert a line before that [19:46:21] Notepad++ macros couldn't handle it for some reason, but I've also never tried them before, so maybe it was my fault [19:47:06] so lacking enough knowledge in other programming languages, I did it in C++ [19:47:23] hahahaha C++ is quite a choice for such a thing [19:47:31] yeah haha [19:47:32] but it works! [19:47:41] that's all that matters! [19:47:56] probably very different from any scenario fixing tool that n7275 has written so far, which would compare NASSP version number and then edit certain lines, but not insert any [19:48:02] inserting isn't so simple [19:48:32] I am reading all lines as strings in a vector, insert it there, and then write it back to the file. Might also be overkill, like the choice to use C++ :D [19:48:42] hehehehe [19:50:49] considering that is done to a bunch of files, probably good that I am doing it in C++ because it's still very fast! [19:51:29] our scenarios have a few lines [19:51:46] and the MCC vessel, where a line is inserted, is typically far down in the scenario [19:52:13] so that our MSFN can use mission specific ground stations, just has to know what mission it is [19:54:28] ah damn it, it worked too well! It also did it in scenarios where I already manually added the mission... [19:54:30] lol yeah, just a few lines :D [19:54:36] hahaha whoops [20:03:16] hello [20:09:26] hey hey [20:11:39] hi Mike [20:11:52] indy91, we got the okay on the Skylab mesh [20:19:34] oh nice! [21:19:42] night! [17:36:07] morning! [17:37:40] hey [17:37:55] what's up? [17:38:57] Sunday mostly gone, not sure where it went :D [17:39:08] and you? [17:39:20] hehehe [17:39:37] hooking two resolver assemblies up to the CDU did in fact resolver the OCDU fail [17:40:16] ah nice, that makes sense I guess [17:40:36] *resolve lol [17:40:44] fingers are too used to typing that additional r [17:41:26] but yeah, everything was happy except for the cos(theta-psi) check for the channel that was disconnected [17:42:39] lol I have a few english words where my fingers always want to type the noun with an additional letter instead of the verb [17:54:25] oh one project I sort of started a week ago was an updated version of this: https://www.orbiter-forum.com/resources/universal-pointing-mfdv2.35/ [17:54:49] I had some parts of it in an MFD already and was testing development for Open Orbiter x64 with it [17:55:01] I will put this in SSV when GLS lets me :D [17:56:11] this display is very undeveloped in SSV yet [17:56:23] can't even point at rendezvous targets yet [17:56:33] I need it for my favourite thing in Orbiter, flying rendezvous! [17:57:22] haha does he not want it yet? [17:58:17] still making many low level changes to the Shuttle computer system [17:59:49] gotcha [18:05:48] he is also convinced that a lot of guidance software updates are too early to be implemented due to upcoming changes in OMS/RCS thruster behavior, propellant etc. [18:06:04] I very much disagree as jet selection is the last 10% of any DAP, but, it's his project :D [18:06:45] it's correct in the sense that universal pointing supplies both an attitude error as well as a desired rate, and the desired rate would require not just an update of Universal Pointing but of the DAP code itself [18:06:54] just things being interconnected [18:07:40] he also wants to overhaul how different parts of the software interact with each other, so I guess any new code like this would have to be changed again. Still, I'd rather have features than wait for the ideal conditions for them [18:12:39] and then comes Ron with the actual software some day and everything changes :D [18:17:57] hahaha maybe someday! [18:19:09] I can wait a bit longer on the Shuttle software if it means we get the LVDC first lol [18:35:14] hello guys [18:36:29] at some point, I'm going to try to inflict our systems SDK on some other projects at some point [18:36:49] oops that was a bit reduntant [18:42:12] hey Matt [18:42:37] I was going to inflict our IMU on SSV, too, but I think first I want to really understand why its accelerometer code is so complicated and if that is really the best way to do it :D [19:22:36] that might be a good case for adding another oapi function [19:23:11] would be trivially easy [19:30:49] nope, it's not [19:32:16] well to be honest, I've never found a good equation that shows exactly what an accelerometer would measure [19:38:30] it's difficult to understand for me, but basically your accelerometers might measure gravity when sitting on the launchpad or flying straight or so and then also drag and thrust [19:38:44] -your [19:40:49] We use a weird method with GetWeightVector [19:42:50] one would think that many spaceflight simulators need to simulate this, but I've not found a method yet that works with gravity, drag and thrust. Maybe it's a lot simpler than I think, but it hasn't "clicked" for me yet :D [19:57:23] well, theoretically you'd always ignore gravity [19:58:04] and the only "force" you'd measure from it would be the contact force of the ground, accelerating you up [19:58:31] I think it would be easy to get in the vessel.cpp code [20:04:13] yeah, I guess that's where a OAPI solution would be good, to help with the contact force, not sure that's easily available right now [20:05:01] our scheme in the IMU requires the length of the last timestep, I feel like some inaccuracies are coming from that [20:05:18] a reason why the LVDC state vector degrades sometimes during launch [20:05:29] unstable framerate etc. [20:07:40] There was also an issue where a simpler solution would have been possible, but it didn't work for docked vessels [20:07:57] probably how the forces are split over the two vehicle or so [20:16:19] if we're working at the timestep level, we're also missing what orbiter does internally during the substeps [20:19:55] could contribute to a bit of error, too, I guess [20:46:34] night! [16:19:12] hey [16:22:55] morning! [16:23:08] what's up? [16:27:24] expanded my temporary breadboard PSA to be able to feed in the ISS reference [16:27:37] so after work I should be able to test IMU channels in the CDU for the first time [16:27:52] and you? [16:29:01] TEMP light off when? :D [16:30:51] uhh busy days, not sure what I want to continue this evening haha [16:31:29] TEMP light is already off! that was yesterday's addition to the PSA board lol [16:32:04] oh great [16:32:10] I am happy with your project now [16:32:15] hehehe [16:32:28] I see the TEMP-less screenshot now [16:33:33] getting rid of the alarms one by one! [16:34:02] although it's going to be a bit before I manage to have TRACKER and NO ATT off at the same time [16:40:39] hey guys [16:41:04] hello hello [16:43:33] yo [17:31:55] thewonderidiot, wxWidgets has a grid feature, so after thinking about it for a while I have added editing of the OMP constraints file in this way: https://i.imgur.com/DsG1aiq.png [17:32:02] Just gets saved/loaded in CSV format [17:33:03] oh wow! you have a whole built-in spreadsheet haha [17:34:07] haha yeah [17:34:28] that better not make the exe file a lot larger [17:34:38] nah, it's fine [17:34:53] Excel is just bloated, you can have light weight spreadsheets I am sure :D [18:07:37] hehehe [20:33:43] night! [17:42:40] morning! [18:01:12] hey Mike [18:01:18] what's up? [18:02:26] a small FDO MFD update to do, so that I stay compatible with SSV. Their last update was support for more landing sites, so I am adding those as well. [18:02:49] I did part 1 of that already, but I can do it better [18:04:19] like this beautiful place: https://www.google.com/maps/place/22%C2%B047'52.0%22N+5%C2%B026'43.1%22E/@22.7977849,5.4427251,1011m/data=!3m2!1e3!4b1!4m4!3m3!8m2!3d22.79778!4d5.4453?entry=ttu&g_ep=EgoyMDI0MDkxMS4wIKXMDSoASAFQAw%3D%3D [18:05:21] oh wow! [18:06:35] I think the new list is all the sites that the crew had maps and charts for onboard [18:07:20] there is probably not much more support for these airports than an agreement that they had procedure to clear their airspace for an incoming Shuttle [18:07:27] procedures* [18:17:22] "MLS: none, PAIP: none, Ball Bar: none, UHF: none" uhh yeah, not great support in Tamanrasset, Algeria, but I guess it closes a nice gap in the landing site coverage :D [18:17:46] PAPI* [18:24:01] yeah I guess if you gotta land, you gotta land [18:24:28] at least it can say "scenery: nice" [18:24:44] and there's a national park right nearby you can kill time at while waiting for people to show up :D [18:25:15] no support vehicles at most of these sites anyway, so if it's a random air base in the US or the middle of the Sahara probably doesn't make a big difference for the health of the vehicle [18:41:53] "The Commander will have local officials contact the nearest U.S. Embassy so [18:41:57] that a representative can immediately come to the landing site" [20:42:41] night! [16:15:49] good evening [17:25:19] morning! [17:27:15] what's up? [17:28:30] mulling over how I want to design my mini-PSA for the CDU [17:29:22] mostly about protections to add in, and thermal management [17:29:26] and you? [17:30:07] got a little FDO MFD release out of the way, now back to Apollo [17:30:21] sadly I have only boring and/or very difficult projects on my list [17:30:58] that is very sad [17:32:08] reducing the number of lines of code required for the MFD displays, I am 2500 lines through that project, out of 11,000 [17:33:51] so far it got reduced by 350 lines [17:34:41] I am not sure what is slowing down Intellisense so much in the MFD code, lines of code in the class or number of functions [17:34:48] I have to do something about the functions, too [17:36:01] I am reaching the limits of the capabilities of the MFD page handling code, that is a little library from the Launch MFD [17:36:16] each MFD button can only call a function without any argument [17:36:36] If I could change that then I could reduce the number of functions in the MFD class by quite a lot [17:36:53] oh wow yeah that is a big restriction [17:37:04] e.g. a function like SetPage(128) instead of having to do SetManeuverPADPage [17:38:08] researching if that is possible is more fun than continuing the line by line optimization of the code, so I will do that now :D [17:40:18] I will probably have to make a change to that MFD Buttons library [17:42:25] typedef void (MFDClass::* MFDFunctionPtr)(void); [17:42:32] I guess the (void) is my problem :D [17:49:15] haha indeed [17:06:39] morning! [17:21:35] hey [17:25:32] what's up? [17:26:26] I think I am going to implement the missing modes of the RTCC TLI processor, alternating with cleaning up some RTCC MFD code [17:26:43] That is calculating updated targeting for the LVDC [17:27:03] nice. where does that land on the boring vs. difficult scale? haha [17:27:07] as a start I had only implemented burning to a specific apogee altitude, a mode for E-type mission [17:27:20] slightly difficult, not boring at all :D [17:28:27] but now it will get lunar flyby calculations [17:28:33] excellent [17:28:45] in the RTCC document I only see a free-return option [17:28:58] but I am going to implement one for non-free return as well [17:29:20] the document is from Apollo 12, so they hadn't decided yet to insert directly on a non-free return yet [17:30:17] I kind of want to try and fly a trajectory similar to Artemis 1 [17:30:26] but that is for after all this is implemented :D [17:30:28] and you? [17:42:47] I got my hands on a Skylab CSM Malfunction Procedures [17:42:52] should be here in a week or so [17:43:20] otherwise just working on the PSA [17:43:28] also oh man, Artemis 1 trajectory would be crazy lol [17:44:23] oh, that would be a nice CSM document to have! [17:45:24] I've read a bit about Artemis 1, I would just retargeted my TLI to go for a 100km altitude flyby with 0° latitude in the Earth-Moon plane [17:45:31] that would barely be different than normal [17:45:41] after that the CSM would have to do a lot of new stuff lol [17:49:10] afternoon [17:52:38] hey Matt [17:53:46] hey hey [19:36:51] yeah a CSM in NRHO would be quite a thing haha [19:45:26] the basic targeting for that orbit doesn't even look so difficult [21:21:35] night! [13:10:36] good morning [13:13:58] hey Matt [13:18:10] you can tell that I am inexperienced with auctions when I find something interesting on ebay, but it takes me a few minutes to realize that it's actually just an empty folder, content removed :D [13:19:10] also [13:19:12] https://www.ebay.com/itm/166811346400?_trksid=p2332490.c101875.m1851&itmprp=cksum%3A166811346400e6fdb8024ae34ee6904787bc577788a2%7Cenc%3AAQAJAAABAKAOBbj8c9I6eO4vPyI9FfMl8NhNqsULUU1TfDUZ7khlrPFRXEo8oXy6NyFUyF6E04LepWTtfBCTCbIZ7YlKyYridiLjlzfHMaUhD4z3ozGwVyd22Rj6EJEUX5YugKN7JP9Xa%252BOwJvDgoRKeFpxnFw%252FHNu%252Fv2zE1QYPW35K%252FyFeQrTU9FAiQEWSVtBLbwrIaEw0LZelVqJOhogc%252FGxUD3umwZ75shVYB%252F2tqfSD6Y4YJ0gwMEnOoKrV6JBYATds0LhvgMwc0LMVQog8BunlInBbMkD2e [13:19:14] lRaED3lYw%252FiZMp9bEg82n4djo%252BpoJDjE5I02a4D%252FPtpU65bwdT08XvXIBpw%253D%7Campid%3APL_CLK%7Cclp%3A2332490&itmmeta=01J87S4WR6WRYWEGPDVCBK0JDT [13:19:20] I have seen this name in RTCC documents :D [13:20:29] oh wow [13:28:16] James Stokes? [13:33:44] seeing the last name, my mind immediately goes to George Gabriel Stokes haha [13:34:38] of Navier–Stokes equations fame? :D [13:36:15] https://i.imgur.com/wTAdOlF.png [13:37:32] yes, that one [13:37:40] on both counts haha [13:41:43] oh, I didn't just see the names in RTCC documents [13:41:49] in a few MSC memory, too [13:41:52] memos* [13:42:12] https://i.imgur.com/Exjpc05.png [13:43:56] I think I have something IBM-7090 related with his name in it [15:26:39] morning! [15:26:57] lol yeah I hate those random empty binders for sale [15:38:36] hey Mike [15:38:48] yeah, it would still be sort of nice to have, but no real practical use :D [15:39:02] are they just selling binder and content separately for more money? [15:44:32] maybe? it's kind of hard to say [15:44:50] I don't often seen a document that belongs in a binder that is not in one for sale [15:45:58] the empty binders seem much more common [16:07:32] Either the content has some things like "classified" on it or the person who originally owned it only took the binder with them as they weren't allowed to take documents, just as a keepsake [16:08:00] oh btw thewonderidiot [16:08:07] about the Artemis orbits [16:08:16] Artemis 1 was in a distant retrograde orbit (DRO) [16:08:25] circular, just very high up [16:08:32] that is a fairly simple orbit to figure out [16:08:37] NRHO... not sure much, I think :D [16:08:48] ohhhh interesting, gotcha [17:44:26] that's a whole other level of orbit-math [20:30:03] night! [15:02:26] good morning [15:06:56] hey Matt [15:12:57] going to test fly an Apollo 17 TLI-0 to test the TLI processor update, should be fun [15:45:26] n7275, I had a random thought regarding simulating delayed launches [15:45:54] the problem right now is that many of our subsystems use mission time, and they use it in such a way that they need it to be steady [15:46:00] no changes, not even prelaunch [15:46:20] this is bad and whatever we do, less subsystems should use such a system, makes it less flexible [15:46:36] but changing it properly for some systems requires a bunch of code changes and breaking old scenarios [15:47:23] in most cases though they don't need this supplied time to actually be mission elapsed time [15:47:30] it just needs to be steady from timestep to timestep [15:47:55] So instead of trying to completely get rid of this variable, instead I am adding a new one! [15:48:15] MissionTime will stay mission elapsed time, can be changed prelaunch, should not be changed after liftoff [15:48:28] But I would add something like SimulatedTime [15:48:47] absolute time reference of it wouldn't matter [15:49:00] it could be initialized to mission time in old scenarios [15:49:06] preventing scenarios from breaking [15:49:27] and this "SimulatedTime" would run continuously through the whole mission, no update, like MissionTime right now [15:49:56] but what we can do with that is to give many subsystems SimulatedTime instead of MissionTime [15:50:22] no internal changes to subsystems required [15:51:06] and if we do that with the problematic systems (I think the AGC currently would lock-up the simulation if you try to modify MissionTime) we should be able to change MissionTime in-sim [15:51:09] like a launch delay [15:51:48] of course the most elegant solution is to make all these subsystem changes and get rid of reliance on mission time and use Orbiter simulation time instead [15:52:02] but I think my idea could work without being a giant project [15:52:11] end of the wall of text. What do you think? :D [17:34:12] I went to put laundry in, and forgot to come back to my desk. Sorry about that [17:35:28] I like your idea. I was thinking of something similar [17:37:48] There are a lot of things that could benefit from an "age of the spacecraft" value too, so as long as SimulatedTime is always counting up, we could use it for other things. [17:45:15] no problem at all [17:45:46] age of the spacecraft could be done with simulation MJD too, but, I guess a time in seconds works well [17:46:11] maybe in new scenarios this new time should count from zero starting at T-4h [17:46:28] in old scenarios it would be identical to mission time for backwards compatibility [17:50:11] I guess I will try this soon. Should be pretty systematic, after saving/loading/updating of SimulatedTime is implemented I just need to change system by system that it gets used [17:50:24] until a mission time update doesn't crash anymore :D [18:14:53] cya! [13:51:52] hey [15:27:13] hey Nik [15:30:28] hello hello [16:23:37] enough TLI processor-ing, I think I want to try my hands at this new time variable... [17:17:57] didn't crash! [17:18:03] that didn't took many changes [17:18:05] take* [17:18:18] but there are many things to check to make sure everything is actually fine [19:40:03] That's good news [20:09:53] yeah that would be quite awesome [20:36:56] night! [17:07:13] hello [17:18:52] good evening [17:23:09] I've had a good Apollo 14 test with the in-sim launch delay, hopefully there is no surprise issue that appears in further testing [17:24:56] there could still be some edge cases where some of our cheaty countdown code gets confused if the mission time is suddenly different [17:25:13] but so far everything else looks happy enough [17:30:35] I want to try something like the Gemini launches where they launch an Agena one orbit before to an inclination barely higher than the KSC latitude, so you can just launch one orbit later when the phase angle is good for rendezvous [18:19:46] the countdown code is the only place I could see real problems [18:20:06] That would be nice to eliminate the need for [18:20:18] big project though [18:31:34] yeah, it would be [18:32:06] The countdown events in our code really ramp up in the last few minutes, I think if you do a launch delay earlier than that there should be no trouble [18:34:46] I guess what could happen is that steps of our (partial) EDS Test are repeated if you turn the time back [18:35:27] but jumping forward in the countdown won't be supported, so there is no real problem with the code there [18:37:07] I had used LC-37 as a test to get away from mission time, it needs an extra launch MJD variable right now. Maybe I should remove that again with this PR. [18:38:16] LC-39 swingarm animations are fine, they are done based on countdown steps and "simdt", don't use mission time [18:42:03] I forget what exactly we have as far as ground-based sequencer type logic [18:43:31] I would call it inconsistent :D [18:43:57] a switch/case system mostly with the different major steps in the countdown [18:44:21] doing things like the swingarms, GRR signal to the LVDC, starting the engines [18:44:43] a bit of countdown hold logic already, too [18:44:47] just no way to recycle :D [13:28:29] hey [13:55:54] hey Nik [13:57:31] I've had a question for you [13:58:07] in a bunch of IBM RTCC routines they have a system to specify if a parameters has not been input [13:58:12] parameter* [13:58:21] for example, the documentation has this [13:58:47] T_RP - Time of restart preparation (if not input, first byte = X'FF') [13:58:54] my question is about X'FF' [13:59:35] if I am readng things right, the modern C++ equivalent would be something like DBL_MAX? [14:00:22] so far I am just doing a check on negative values, as the parameters this is used for (at least in this function) cannot become negative [14:04:30] I believe that's just 0xFF [14:04:44] I'll check the 360 documentation though [14:07:09] right [14:10:41] is there a non ugly way to set and check if the first byte of a double is 0xFF? :D [14:12:57] in Fortran you would probably do it with an equivalence [14:26:14] some kind of bitmask, probably [14:27:53] if(dValue & 0xFF000000) [14:28:25] IEEE-754 double, or S/360 double? [14:30:19] I would use it in NASSP code [14:30:38] original documentation was of course for the actual RTCC [14:30:45] ahh, okay [14:31:25] just trying to use the smartest method to implement the routine with all the same features as the original [14:32:02] in this case two inputs to the routine that can have special values (in their first byte) to say if they were or were not input [14:32:29] interesting [14:32:49] I'm not sure how compatable that would be with a double though [14:35:10] yeah, and then you could get into 32 vs 64 bit issues... [14:35:32] I guess a check if the value is negative is good enough [14:36:46] ...or [14:36:56] just make it NaN [14:38:26] functionally that would be something like: if(dValue & 0x7FF00000) [14:40:49] hmm, apparently it's not in the C standard to use bitwise operations on a double value [14:40:59] you would have to do it with a union [14:41:14] and then check/set the bits in the integer [14:41:22] actually that's not so bad [14:41:36] sort of good way to do it haha [14:42:04] but there could be issues when this gets saved to scenarios [14:42:14] saving it in 32bit and then loading the scenario with 64bit [14:42:16] std::isnan() [14:42:19] scenario saving/loading it as double [14:48:43] chapter 1449 of debugging things that don't need debugging, I put a TLI from the TLI processor on the MPT and was wondering why it has such a high lunar flyby altitude [14:48:52] Apollo 11 [14:49:26] presetting in the LVDC for TLI cutoff transient is biased to account for the CSM evasive maneuver [14:49:38] and of course I didn't put the evasive maneuver on the MPT :D [15:01:41] ha [15:05:02] that's almost as good as trying to figure out why the failed CWS lights dont turn on [15:05:27] feature or bug, who can tell :D [15:07:54] if you do it right, no one can tell [15:14:41] for once I am lucky that my IBM RTCC documentation is rather early [15:14:59] they had developed the TLI planning display, but then dropped it and didn't use it for Apollo 8-11 [15:15:09] Apollo 12 got it again [15:15:43] That means if I had more documentation from 1969, instead of 1968, then it might not have included it [15:16:38] well I don't have the TLI processor itself in the IBM documents, but plenty of interfacing routines [15:17:09] That's where I am making changes that take some routines to near completion, like the one that was using the X'FF' [15:17:52] only missing part in that routine now is maneuver confirmation for TLI, but that's not really implemented in general [21:05:12] night! [13:49:32] good morning [13:50:45] good afternoon! [14:29:26] I would like to split up the RTCC class into its various subsystems, but that is going to be so painful with everything having access to everything... [14:57:21] maybe we need some kind of "message passing protocol" [15:23:05] in my idea each subsystem would have a pointer to the main RTCC class, but it's going to look really ugly [15:23:40] lots of changes of a call to "Function" and instead it will be "pRTCC->Function" or "pRTCC->Subsystem.Function" [19:15:33] cya! [14:51:52] hey Nik [14:57:42] hey Matt [15:16:51] indy91, I'd like to make some progress on the telemetry processing, but I don't want to paint us into a corner with your "external RTCC" project. how do ou think we should approach that? [15:21:14] Hmm, well this external rendezvous planning tool I have nearly finished is definitely not the external RTCC. At one point I thought it would develop towards that, but it's now very different. So my current opinion is sort of neutral, I don't feel that strongly that telemetry processing needs to be external to Orbiter. [15:24:13] There are certain things where Orbiter limits us [15:24:19] even the MFD aspect ratio :D [15:29:58] if it is external it doesn't necessarily have to start as a fullblown RTCC. More like the ultimate telemetry client [15:30:05] This some uplink and display capability [15:30:13] With* [15:30:40] but it could then have maneuver calculations etc. added to it [16:13:08] What we could do, is run everything for the RTCC internally, but make some external clients that can reach in and run commands/manipulate the internal state. effectively a "MOCR connsole and MED over TCP/IP" [16:20:59] yeah that makes sense, I would just need to finally settle on a general display format, then you could just access like in reality with the MSK number [16:21:39] so sure, implement your stuff inside of NASSP. I guess the RTCC class gets even larger now :D [16:22:28] well the MCC at first I guess, that's where you put stuff for your draft PR [20:49:51] night! [13:44:54] good afternoon [16:47:46] hello [17:14:56] hey Matt [17:22:11] how's it going [17:24:11] still thinking about Saturn IB launch azimuths [17:24:32] you can't really uplink everything to the IU that it needs for a launch in any direction [17:24:48] so some things have to be in the scenario [17:25:05] but the polynomial to calculate the launch azimuth for a rendezvous mission is only valid for a small range of orbits [17:25:38] So the logical conclusion is that I need to figure out a way to calculate the coefficients of the polynomial for other orbits [17:26:48] ahh, that sounds like an interesting challenge [17:29:10] it's not really about calculating an optimum orbit or azimuth, but it's more for the cases when you are not launching at the ideal time [17:29:25] so you have to launch a bit further left or right to intercept the target orbit [18:21:19] if I understand correctly, that should be a simple curve fit? [18:23:30] yeah, I think I know how to calculate, I just need the optimum launch azimuth for 4 slightly differing orbits (inclination and descending node angle) near the nominal orbit [18:26:31] getting the optimum launch azimuth could be the tricky part [18:27:34] the Shuttle computer has a calculation for this [18:28:30] the optimum launch time has to be calculated externally for it, but if it knows how early/late relative to the in-plane time it launches it uses that to adjust the launch azimuth [18:29:40] the equations look like spherical geometry. I don't fully get them yet, but I think it basically calculates the launch direction to intercept the normal orbit downrange [18:30:23] at some point on the launch trajectory downrange, I mean [18:32:39] a more sophisticated method to get the optimum launch azimuth for a given orbit would need some detailed Saturn IB launch simulations, I think [20:32:59] night! [15:52:00] hey Nik [15:56:40] hello hello [16:03:38] I've clearly gone mad. I started a new Saturn IB LVDC project completely from scratch for launch simulations outside of Orbiter. [16:46:53] oh my, haha [16:48:01] morning! [16:48:03] oh no lol [16:48:56] hey Mike [16:49:46] the good news is, I would write it in such a way that it can be ported to NASSP. Which is something I had wanted to do anyway, give the Saturn IB LVDC a major upgrade from all the documentation we have now. [16:50:14] like with the real LVDC software, I could use the flight simulation mode [16:50:27] then I don't need any of the external signals [16:58:47] that would be very cool :D [17:08:36] testing should be easier outside of NASSP as well [17:09:23] don't have to do a full in-sim launch [19:14:23] thewonderidiot, you have a bit of knowledge about macros in C++, right? [19:14:33] a little bit, yeah [19:15:10] I'm in my branch to improve the RTCC MFD class right now [19:15:40] there are a few issues, probably too many functions, there is a single display function with 10k lines of code etc :D [19:16:07] I have a lot of functions that only have a single of code [19:16:29] mostly because I have to pass a pointer to a function with no arguments to the MFD buttons handler library [19:16:53] if I could pass an integer with that function, that would help me a lot [19:17:02] maybe I could solve this with a macro? [19:17:24] it would then basically not even have to be a real function [19:17:38] just a macro that calls another with with the value given in the macro [19:17:46] another function* [19:18:42] ah but the MFD button handler library needs a function pointer... [19:19:33] I'm not sure what I am asking, sorry for the confusing thoughts :D [19:19:40] yeah, macros won't help with that [19:20:17] void ApolloRTCCMFD::menuSetDebugPage() [19:20:18] { [19:20:18] SelectPage(127); [19:20:19] } [19:20:21] this would be a typical case [19:20:49] menuSetDebugPage is getting passed to the MFDButtonPage library [19:21:20] and because there are so many MFD pages in the RTCC MFD, that is already 130 functions in the RTCCMFD class [19:21:27] most of which are like this [19:21:34] a few have some extra code, but most don't [19:22:56] closures / lambdas may be more along the lines of what you're looking for [19:23:05] but I don't know how exactly those are implemented in C++ [19:24:49] when I google that I find code that barely even looks like C++ to me :D [19:31:20] lol yeah, modern C++ looks nothing like the C++ of 10-15 years ago lol [19:31:54] the more traditional "C"-like approach would be to change your MFDButtonPage library registration function to accept both a function pointer and a value to pass to that function [19:32:00] so all functions get the argument, even if some don't need it [19:32:44] yep [19:32:59] I guess I have just hit a limitation with this library and have to "improve" it haha [19:35:05] to further break things down, especially the display code itself, it would maybe make sense to have a class for RTCC MFD pages [19:35:31] But then I have to move away entirely from this library really [19:37:20] the library has individual vectors for the different MFD components for a MFD page, like button labels etc. [19:37:54] But what would make sense to me is a MFD page class that has all of these things and then you manage a vector of MFD pages [19:39:11] If I want to get rid of the giant MFD display update function then this is a better solution than adding another 130 functions to the main RTCC MFD class that has the display code :D [19:40:11] hahaha yes definitely [21:05:27] night! [16:02:59] hey [16:03:09] morning! [16:03:59] what's up? [16:04:04] well I know, lots of scans :D [16:09:27] I had a question about LVDC pseudo variables. I don't really understand them. There are some LVDC parameters which have an initial value, but are changed during e.g. a simulation run. But if you want to then reset and run it again then the initial values have to come from somewhere. Is that at all related to pseudo variables? [16:09:47] That in memory the variable in code can be in more than one location? [16:14:38] haha yes, lots of scans [16:14:42] and uhhhhh [16:18:57] I think pseudo-variables are essentially equivalent to #defines in C [16:19:26] they let you give a name to a number and refer to it by name, but it's really an assembly-time thing [16:19:47] macros can also modify the value of pseudo-variables, which is used a lot for GFP table generation [16:23:27] hmm [16:24:26] ah wait, the main case I was looking at isn't even a P :D [16:24:41] D.VT1I [16:24:52] not sure if that has the same name in the Saturn V code [16:24:54] but probably [16:25:04] has an initial value and gets changed in IGM [16:25:10] there is a variable by that name, yes [16:25:21] but during mission initialization it has to get its original value back [16:25:28] so that has to exist separately then [16:25:37] ... which all this documentation doesn't talk about [16:27:09] in AS-512, it gets set to 278.59B10 in Phase 1 Initialization (label IN003A). it also gets set to zero in Phase 3 Initialization (label IN236) [16:28:03] generally I think the Phase Initialization sections take care of setting up initial values for everything that might change [16:28:25] oh in phase initialization it gets set to a fixed constant like that? [16:28:33] yep [16:28:35] but this is vehicle specific... [16:29:07] change something about the mass of the Saturn and you would already have to change this [16:29:33] I can't hardcode it, so, I guess I have to implement something that is better than the actual code :D [16:29:53] oh sorry, that's our assembler being weird [16:30:04] IN003A is storing P.T1I into it [16:30:15] oh there is the P again [16:30:23] yeah, which is defined in the GFP data pack [16:30:31] ah that sounds more like it [16:32:14] P.T1I is not mentioned anywhere in the Saturn IB flowcharts, but it will have been set up the same way there [16:32:19] I can work with that, thanks! [16:34:02] one set of data for internal use (D.VT1I) and one for the initial values, in the presettings/NASSP scenario [16:34:35] makes sense! [16:35:04] launch IGM is three stages, TLI IGM is two stages [16:35:15] that is the reason for the "zero in Phase 3 Initialization" [16:35:22] first stage is zeroed out for TLI [16:38:02] I didn't mention one more place, the Discrete Processor [16:38:40] it will also zero D.VT1I in response to discrete input 22 (interrupt 2) [16:38:44] maybe for Timebase 4A [16:38:49] early S-II/S-IVB staging [16:39:15] it's right under the label "S-II abort initialize" [16:39:23] yep [16:39:25] DIN22_SCInitSIISIVBSepB_SIVBEngineCutoffB, [16:39:27] so yeah sounds like something along those lines lol [16:39:37] INT2_SCInitSIISIVBSepA_SIVBEngineCutoffA, [16:39:50] just from my own enums in our LVDC code [16:39:55] that's the direct staging switch [16:40:25] can also be used to just shut down the S-IVB, but mainly to cause early S-II/S-IVB staging in case the S-II is in trouble [16:42:41] I guess it does its own bit of messing with the IGM variables [16:43:01] T1I being the time left to S-II mixture ratio shift [16:47:48] hey guys [16:48:30] hey hey [16:54:37] hey Matt [13:38:53] good morning [16:34:02] good evening [16:50:11] hey Nik [16:54:00] morning! [16:54:13] hey Mike [16:54:22] what's up? [16:55:01] lunch, and my 20 minute window to look at IRC :) [16:55:39] hehehe [16:55:56] trying to thet my momentum back on the telemetry project though [16:56:29] hey guys [16:58:53] hey hey [15:38:15] hey [15:42:42] morning! [15:43:24] what's up? [15:45:43] not a whole lot! [15:46:29] might try to replicate the output section of an AAC filter & multivibrator PSA module today, to make sure I have parts that will behave reasonably correctly [15:46:50] and you? [15:49:48] a bit sick, so not very motivated to continue major projects today [15:50:32] oh bummer, I hope you feel better soon! [15:50:38] thanks! [15:50:58] oh I have been reading the Saturn IB LVDC documents a bit and I am confused how the repeatable sim mode does the S-IVB cutoff [15:51:20] apparently there is a schedule call to the TB4 start logic [15:51:33] but that's at TB3 + 500 seconds according to the event timeline [15:51:39] that's like 1-2 minutes too late [15:53:32] also, even with all the EDD documents and changes to it, it seems we are missing a bunch of equations for the mass/thrust logic for the simulated flight [15:53:43] they made a big upgrade to the original EDD there [15:53:53] but I am not seeing the pages with the equations for it [15:55:09] I think they got added in revision B [15:55:18] the original document is revision A, complete [15:55:28] and the first revision document is for revision C, changes only [15:55:36] so quite unlucky there haha [15:55:47] I can probably figure something out though [15:59:29] oh that is quite unlucky [16:00:43] the TB4 section in AS-512 has a comment at the top that says "This module will initiate time base 4 upon entry from one of the following: ...... 3. The interrupt processor on occurrence of the timer 2 interrupt scheduled by the events processor module when operating in the repeatable flight simulation mode." [16:01:07] yeah, same for the Saturn IB [16:01:22] although the equivalent would be TB5 on a normal Saturn V of course [16:01:50] oh, right [16:01:52] the timing of the very last event in the Saturn V events processor for TB4 would be interesting [16:01:54] that has the same comment [16:03:04] on the Saturn IB this is the last event in TB3 [16:03:11] but the time seems too late [16:03:53] so I wonder if it also is unrealistically late in TB4 for the Saturn V and I am just missing how the repeatable sim goes into TB4 at a realistic time [16:04:03] otherwise I would expect it to continue burning the simulated engine [16:06:05] that is probably difficult to track down [16:06:20] because the address to where it jumps to is set dynamically [16:06:24] because of sim only [16:06:36] it's not really difficult to track down, I just haven't looked at these tables for a long time :D [16:07:10] I think it might be 500 seconds? [16:07:36] oh [16:07:39] then it's the same [16:07:48] then I must be overlooking the normal way [16:08:01] clearly in your repeatable sims the engine didn't keep burning :D [16:08:17] and 500 seconds in TB4 is even worse on a Saturn V [16:08:24] first S-IVB burn is short there [16:09:36] I'll continue digging [16:12:55] maybe there is some special code in the IGM or somewhere that sets a flag [16:13:11] so that instead of any S-IVB engine out interrupts or discretes the flag is used, something like that [18:22:11] cya! [13:31:47] good morning [13:31:54] hey Matt [13:48:46] I feel like all my current projects have some annoying hurdles in their way [13:55:49] I really need to prioritize refactoring of the RTCC and RTCC MFD classes, I already get build warnings in debug mode because they are too large :D [14:10:43] ouch [14:13:00] in the MFD I have too many nested if in the display code [14:13:08] actually gives me build errors if I add more [14:13:39] RTCC I get a warning in debug mode only, forgot what it was, but it strongly points to either the rtcc.cpp file being too large or the RTCC class containing too much stuff [14:30:49] I'm sure the complier's trying to do something recursive, and is just like "nope" [14:34:14] yeah, I am sure it's unhappy about a few RTCC things :D [14:36:49] what's the plan for splitting it up? [14:38:19] I don't have a good one [14:38:35] I was thinking splitting it up in the different subsystems [14:39:00] but everything needs access to everything, so that will need a bunch of changes [14:39:41] the RTCC did have subsystem that you can tell by the first letter of their module ID [14:40:21] like everything that start with a P is part of the mission planning subsystem [14:40:31] that would be a good logical way to split it up [14:42:12] what I have also done, whenever a big processor gets an upgrade, is split the processor off in a separate class with access to the "main" RTCC [14:42:16] that is an ongoing process [14:42:37] also helps a bit [14:45:20] maybe I could move some RTCC functions, that don't actually need to access anything, in a namespace, out of the RTCC class [14:46:39] I should also move a lot of struct definitions out of it [14:58:12] are all of the processors their own class? [15:00:31] only the ones I updated somewhat recently [15:00:56] so there are still a bunch I can move out of the RTCC class fairly easily [15:35:19] could it be done in such a way, that they could be loaded into a std::vector? [15:35:44] I guess they'd need to all derive from the same type [15:36:08] they do! [15:36:13] I have a simple RTCCModule class [15:36:28] all it does is provide a pointer to the main RTCC class for the modules [15:36:41] what advantage has putting them on a vector? [15:51:44] yeah I think I should move struct definitions and utility functions out of rtcc.cpp [15:52:07] the RTCC constructor doesn't come until line 1500 of that file, all above is structs and utilities :D [16:01:32] morning! [16:29:12] hey Mike [17:58:32] indy91, I was thinking a vector might help with modularity, options of loading/not loading modules, also could help with any situation where you need to itterate through all of them to update. [18:10:48] n7275, I don't think any of these apply. Most modules don't have to be permanently loaded, so the RTCC class can have a small function that then creates/calls/destroys the specific RTCC module. It just has to do a bunch of I/O with the specific processor class. [18:11:44] ahh okay [18:22:03] this could be a good system for RTCC MFD displays though [18:26:42] question on the displays. could the data for the displays be made seperate from the actual display code itself? or is that already a thing (i'll confess to not being familiar with that code) [18:28:00] in a lot of cases the RTCC MFD class just accesses the RTCC class for the data [18:29:02] but the display code formats it [18:29:15] where on the display it should be shown, conversion from radians to degrees etc [18:30:59] I have a RTCC MFD class, every new RTCC MFD you open is a new instance of it [18:31:16] about 10k lines of code for I/O, another 10k for the display [18:31:24] formatting [18:31:42] both of these can be made more efficient, but not like 50% reduction I think [18:31:45] not easily anyway [18:31:58] then I have another class that exists once per vessel [18:32:16] and another that is completely global [18:32:23] both of these are still in support of the MFD [18:32:51] they have a lot of variables that are MFD inputs that don't really belong in the RTCC class [18:33:23] the global MFD support class has a pointer to the RTCC class [18:33:47] so if the MFD wants to show something from the RTCC it goes GC->rtcc->Variable [18:33:55] GC being the pointer to the global MFD support class [18:48:49] the RTCC MFD class has like 20 variables and 900 functions, to give an impression of it :D [18:49:19] with 130 MFD pages, the functions are for switching to the displays and all their buttons [18:49:55] the MFD Update function, which repaints the MFD, is 10k alone and that is not a good size for a single function [19:42:55] in a slightly more successful project: https://i.imgur.com/ThVpNLo.png [19:43:01] thewonderidiot [19:43:25] but I still can't figure out how the repeatable flight sim does S-IVB cutoff :D [19:43:46] but I got time tilt and IGM and such working to simulate a launch like this [19:44:29] the flowcharts are almost 1 comment = 1 line of code, but not quite [19:44:37] oooooo nice! [19:44:42] so it might be something that doesn't appear in them [19:45:40] like in switch selector, I know from the document with LVDC code translated to other languages that there is a special flag used in the simulated flight to not send actually to the hardware switch selector [19:45:44] but the flowcharts don't mention it [19:46:54] It might be as simple as setting D.VFMC to zero very close to cutoff [20:09:25] night! [22:11:15] thewonderidiot, I have a question you might know the answer to [22:11:41] what's up? [22:12:27] do you know anyone who sells pre-made cables with something like an amphenol 97 series 14S-6 on each end [22:15:42] sadly no :( [22:16:58] your best bet may be ebay honestly [22:17:40] it's pretty good at finding results for searches like "14s-6 cable" [22:17:41] e.g. https://www.ebay.com/itm/314995595495 [22:23:19] oh wait [22:23:39] I probably should've just looked up what spec these are made to [22:23:46] MIL-DTL-5015 [22:27:09] the 14s-6s or 14s-6p part of the name should be common across all manufacturers [22:32:46] I've got a bunch of weird hacky solutions to both electrical and fluid connections in my lab that I'l trying to standardize [22:50:15] hahaha sounds like a worthwhile project [22:50:21] and very relatable :D