[12:41:27] NASSP Logging has been started by n7275 [12:41:29] Thymo, so I spoke to Tschachim and he is going to look into whether ot not he still has access to the NASSP twitter account. [13:19:45] hey [13:51:45] hey Matt [14:02:15] how's it going today? [14:03:06] just checking why Ryan had a large corridor control burn [14:03:28] can't reproduce it [14:04:31] but I discovered one small bug and one thing I am unsure about [14:06:44] want my scn? [14:06:58] I could have screwed up of course [14:06:59] I have a scenario just after MCC-2 [14:07:11] but you might be able to rule out operator error [14:07:27] do you have a scenario saved with flyby and PC+2 on the MPT? [14:07:51] https://www.dropbox.com/s/fs31ra6gbzorlz8/Apollo%2013%20-%20RTE%20Work.scn?dl=0 [14:07:52] so that I could better reproduce it [14:08:05] should be there [14:08:33] the AST solution already had the 18 ft/s, right? [14:08:47] Yeah I saved that shortly after I took the screenshot [14:09:04] the L in "LFCUA" was only a display bug btw [14:09:15] it checked the wrong state vector for Earth vs. lunar reference [14:09:49] but not for the calculation [14:10:10] so the math was good haha [14:10:12] also, I am not getting a 815 ft/s burn [14:10:18] I get 840 [14:10:42] I dont know what to tell you there lol [14:10:45] back in a sec [14:13:26] the flyby maneuver doesn't reenter. Perige of 200NM. [14:14:46] that will probably make the difference [14:17:07] if I recalculate it then it's fine [14:17:24] 41.1 vs 41.7 ft/s [14:17:47] not sure what the cause of that is. Maybe you calculated the flyby burn before updating the state vector? [14:18:22] maybe it was using the post MCC-2 state vector [14:19:03] I think that's the most plausible explanation [14:19:13] that 0.6 ft/s difference growing to 18 ft/s by 105 hours [14:19:35] well I computed an anchor vector right before starting all of these [14:20:01] so i assumed that was current [14:20:12] and using the TUP button. All that before even starting with the flyby calculation? [14:20:40] maybe I can recreate it with the scenario directly after MCC-2 [14:21:51] hmm [14:21:53] not exactly [14:22:13] yep [14:22:27] you can look at the time on the anchor vector [14:22:51] where? [14:26:02] the order I think happened is: MCC calculation -> anchor vector update and MCC transfer to MPT -> PC+2 calculation [14:26:24] so when I make it calculate a corridor control burn it has the current, actual trajectory [14:26:38] but that wasn't used for the flyby and therefore it's a little bit off free return [14:28:07] on the page where you do the TUP [14:28:17] doesnt it timestamp the vector in the top after a TUP? [14:28:29] yes [14:28:30] and the vector was the very first thing I did, that much I am sure of haha [14:28:39] well I can't really check that haha [14:28:50] why not? [14:28:50] the scenario you just send me has the updated vector for sure [14:29:02] ok [14:29:07] that is the entire problem [14:29:13] the flyby was calculated with a different vector [14:29:15] I think [14:29:17] I am confused [14:29:29] I did the anchor vector before computing anything [14:29:47] or maybe you had the MPT mode not activated? [14:30:42] first steps were activate MPT, delete the old burns, initialize, and did the anchor vector [14:30:43] I am fairly sure the flyby maneuver was not calculated with the anchor vector in the scenario you sent me [14:31:01] and so the DV was slightly different [14:31:05] thats really odd [14:31:24] and after the state vector update the trajectory isn't free return anymore [14:31:31] close [14:32:35] hmmm [14:32:50] I updated the anchor vector before clearing the MPT of old burns [14:33:13] hmm interesting. Shouldn't cause problems, but it might [14:33:14] I think that was the order I did it [14:33:39] I'll try to reproduce it with that [14:33:55] were you using 40 or 60NM as the lower pericynthion limit? [14:34:38] whatever was default [14:34:41] 40 [14:34:46] oh and did you delete maneuver 1 first [14:34:47] or 2 [14:34:50] 2 [14:34:53] ok [14:35:52] nah, I'm getting the 41.1 ft/s solution [14:36:03] and not the 41.7 one you have on the MPT which doesn't reenter [14:36:09] transfer options? [14:36:15] ullage and DPS settings? [14:38:25] So I wrote down what I did: [14:40:00] Initialize MPT, set anchor vector, delete old burns in MPT, TLMCC Option 9, VTI & TIM 61:30, Constraints F29 upper 135NM, tradeoff table CLC, ENG, CSM, dont replace, 1, DPS, PGNS, 4 10, iterate, 5s, 0.40, optimum tig, CLC [14:40:08] thats what I wrote down last night [14:40:51] hmm [14:41:09] I wonder if that should be -5 seconds [14:41:27] but when to do that or not is quite confusing :D [14:41:35] yeah I am still a touch lost on it [14:42:44] maybe that's how they did 3 step burns [14:42:53] using 5 seconds at 50% makes it go [14:42:57] 10% for 5 seconds [14:43:04] 40% for 21 seconds [14:43:14] and then it automatically throttles up if the burn isn't over yet [14:43:40] I'll have to think about that [14:43:56] anyway, I don't think we'll fully figure out what happened there [14:44:05] but if I start from scratch in your scenario it all works out [14:44:18] so, here is one interesting thing I am unsure about [14:44:26] flyby and PC+2 burn on the MPT [14:44:45] calculating a corridor control burn at 105h using a vector time from before PC+2 [14:44:55] that's what you did yesterday [14:45:12] when it comes to the RTE Digitals, what weight should it use? [14:45:20] pre or post PC+2 weight? [14:45:27] post [14:45:28] vector time was before, but TIG is after PC+2 [14:45:38] yeah, that's what it's doing [14:45:53] that was the first thing I noticed here: https://www.dropbox.com/s/2l6r3wktnvy4w11/Screenshot%202021-05-26%20182100.jpg?dl=0 [14:46:06] 90055 lbs, post PC+2 weight [14:46:33] I could make it use the weight at the vector time, but it's probably better to use the weight at TIG [14:47:02] I guess it's up to the user to enter consistent vector times for calculations [14:47:07] yeah weight at vector time could be problematic, especially if theres a large burn [14:47:25] but I see where both could be used [14:47:55] just need to make sure it's all consistent when you used a vector time that wasn't the same as TIG [14:48:26] so I leave that as it is [14:51:04] yeah I still need a lot of practice with all of this [14:51:19] yeah it's a lot haha [14:51:28] and definitely not bug free [14:51:43] so always good to chase something like this [14:53:36] absolutely [14:53:49] 13 makes a pretty fun case to test as well [14:54:41] yep [15:26:33] I've also started to remove the old lunar launch time calculation, still used by the MCC [15:27:32] and that issue that happened to someone where it calculated the time for the wrong rev really shouldn't happen anymore [15:33:21] unless the TPI time estimate is off by an hour :D [15:59:34] haha great [16:25:10] so I guess what's next on the docket [16:27:16] for me a few smaller RTCC things that I put off until after the RTE update [16:28:26] I know theres a bunch of things like the power project on the horizon..but are we looking to support Apollo 12 or beyond with NASSP 8? [16:29:20] I'd rather not do it, not until we have really run out of things to do [16:29:24] not for the MCC at least [16:29:37] makes sense [16:29:53] I still have a bunch of updates I want to do for the Apollo 7-11 MCC [16:30:04] oh like what? [16:30:36] like the new deorbit targeting [16:30:45] used by the RTCC MFD right now, but not the MCC [16:33:01] and when he have the more realistic drag some stuff will need to be adjusted and tested as well [16:34:33] Oh thats right they are separate computations [16:35:42] I'd love to get ggalfi back in here, I need to pick his brain further on the VESIM stuff I really want to get my sticks set up...keyboard is expensive fuel wise :P [17:40:58] Evening! [17:41:43] n7275: Damn, didn't know he was even alive still. I tried to contact him years ago but never got any signs of life back. Nice one [18:07:48] So I have been thinking about the LM/CM power thing...its only one way right now but how do we make it share a bus? because that's essentially what its doing in this case [19:03:28] so in terms of circuit breakers and connections, how did the LM to CM power work? [19:04:12] the only chance we have is to put a negative power load on the CM DC Bus, coming from the LM [19:04:29] otherwise we would have to change fundamentally how our power distribution works [19:10:01] You mean how it actually worked? [19:12:20] yes [19:12:55] and do you think we might want to try and make the ECA stuff better as the first step? Would that help? [19:16:02] So in the CM, main bus B powered the 2 LM PWR cbs which went to the LM PWR CSM switch, from there, when enabled, logic disabled the LV and HV taps on the LM batteries and power from the CM Main B went through the umbilicals to the LM ECAs and from there to the x lunar busses [19:16:35] so at that point, the xlunar bus essentially was a load on the CM main B [19:17:43] which is why it worked in reverse, the LM busses were energized with the batteries and the CM main B was a load on that in simple terms [19:18:15] so when hooked up, the buss voltage in the LM was essentially seen by the CM Main B and was able to be sent to the battery charger etc etc [19:18:33] right, from bus B to the charger it worked normally [19:18:34] And yes I think the ECA would be a good first step as it controls the logic [19:18:35] Didn't the ECA breakers also get pulled after setting it up in a certain way to prevent the LM buses being disconnected when CM power was applied? That's what I recall from when I looked at it. [19:19:10] only the ascent ecas [19:21:43] so what they did was put ascent batteries on the line and shut down the descent batteries, connected the umbilical and closed the LM pwr breakers in the csm, closed the batt b entry/pl cb, sig sensor main b cb, and main b bat buss b cb [19:22:05] then LM pwr csm switch was thrown, and this would have normally brought the des bats offline but they were already [19:22:44] then batt b was taken back offline and the des bats in the LM were brought back [19:23:15] the ECA breaker was only used when working the ascent ECAs [19:24:41] the principle was of course energizing the CM MNB with the LM BUS [19:25:46] After MNB had power from the LM they simply fired up the battery charger with a small procedure to get the inverter up on MNB and subsequently the charger connected to a battery (A first) [19:26:02] the two LM power breakers in the CSM are set up as a PowerMerge [19:26:20] which I don't think is correct [19:26:27] it is separate power lines [19:26:30] going to the LM [19:26:44] so that might also be an early step to get this working [19:27:03] PowerMerge checks its source voltage [19:27:11] yeah both breakers connect to the LM umbilical from MNB via the switch [19:27:21] I think they are redundant [19:27:33] so if we don't have to rewrite the PowerMerge class then that already helps a bit [19:27:54] absolutely [19:28:18] the code side I am not well versed with but I think I understand the actual hardware part pretty well [19:33:02] yeah the problem is that our power system is build very one directional when it comes to the power flow [19:33:05] it is usually [19:33:11] has source voltage? [19:33:15] if yes draw power [19:33:19] if no system doesn't work [19:33:44] that's why the battery charger work in a bit of a cheaty way [19:33:48] right [19:34:01] which might be the solution we have to do as well, we will have to see [19:35:00] oh another little gotcha, I dont know how its handled, but I dont think the LM PWR CSM switch will actually send the command to the RJB in the LM without power on it...which would explain the procedure putting BATT B onto MNB before throwing the switch and then taking that battery off the line [19:35:08] I need to look at that further [19:36:16] right, that shouldn't be too difficult [19:36:37] hmm is the RJB part of the ECA or is that its own animal? [19:37:02] we don't really have a good version of that [19:37:06] because it looks like the RJB controls the LV/HV OFF command or LV ON command [19:37:09] but it's a separate system [19:37:35] that job is currently done by [19:37:36] int csm_power_latch; [19:37:43] in the LEMPowerConnector class [19:38:19] but I will add a RJB class with relays [19:39:33] It looks like just that circuit being energized from the CM sends that signal? [19:40:11] for csm_power_latch? [19:40:14] It also looks like the RJB is separate from the ECAs but just communicates with them [19:40:24] in the actual hardware [19:41:01] I said that wrong actually [19:41:22] I believe csm_power_latch in the real LM is two relays located in one of the panels [19:41:35] the relay is energized just by virtue of getting power from the switch correct? [19:41:36] I think it's those 4K3 and 4K4 [19:41:41] yes [19:42:18] I forgot if something in the LM also needs to be set [19:42:30] I believe the Grumman schematics are clearer than the Systems Handbook about this [19:42:47] I need to look at that [19:43:09] which one? [19:43:14] I forgot the naming convention [19:43:25] archived NTRS [19:43:26] 19710070889 [19:43:35] 19710070891 [19:43:48] it's called elementary functional schematics [19:44:14] yep I have them [19:49:03] now where are they somewhere in the 4- section [19:51:15] I see CSM control going direct into the RJB as expected [19:53:38] ah 889 doc pdf 291 [20:59:15] night! [21:02:29] see ya! [22:18:44] I PMed Xyon today since I wasn't able to add prefixes to forum threads anymore. Turns out they weren't enabled on the NASSP forum when it they updated the software. They're enabled again now. :) [12:12:43] .tell indy91 any idea why the line: //LMPIsolValve.Init(this, &LMPSuitIsolValve, &LMPActuatorOvrd); was commented out in the following PR? [12:12:56] .tell indy91 https://github.com/orbiternassp/NASSP/pull/595/files [12:44:31] hey Ryan [12:44:41] morning [12:45:38] yeah, that's an odd one [12:47:00] It was done with a lot of VC stuff I am wondering if it was an accident [12:47:28] I dont think Alex is on the Libera yet [12:50:30] https://github.com/orbiternassp/NASSP/blob/e16292a728aa7dd1bf06edbafdd902f76308e70f/Orbitersdk/samples/ProjectApollo/src_lm/lm_ecs.cpp#L747 [12:50:48] Looks like it controls the disconnect when you press the actuator override. [12:51:05] Haha I know what it does...I helped design it in here :P [12:51:20] Not sure why that would be commented out. [12:51:26] I am wondering why Alex commented that out, I am thinking its a mistake [12:51:39] it's almost like he was going to change the definition of the init function, had it commented out while testing and then never uncommented [12:52:18] there are two other changes to lemsystems.cpp in that commit [12:52:26] yeah thats when a lot of LM ECS stuff was added to the VC..unless it breaks something in the VC it should not be commented out [12:53:37] worth a try uncommenting [12:53:45] see what happens [12:58:36] Haha I already have [12:58:46] I havent seen anything break in VC [12:59:21] I just wanted to check with Nik/Alex to make sure it was an accident [13:07:27] Its just the logic for the override though [13:07:37] It should have no effect on the valve itself [13:20:52] probably wouldn't hurt to message Alex and Jordan on github/orbiteforum about the switch to Libera [13:41:26] I shot him a message [14:12:08] hey [14:12:24] Oh hey haha yeah that ^ [14:17:30] Looks like it was something Alex left commented out by mistake...I believe its just the actuator (disconnect) code [14:17:31] hmm, probably something Alex did by accident [14:17:49] it shouldnt effect anything but the disconnect logic [14:19:29] right [14:19:48] we should ask him, but I'm sure we can simply uncomment it [14:21:18] yeah theres a PR sitting there with it uncommented, but we can ask first [14:22:35] I was researching the ECAs and found something interesting [14:22:39] Oh? [14:22:55] to accomodate the lunar battery they didn't actually change the descent ECAs, which I had assumed before [14:23:31] they wired it differently, so that the lunar battery uses the low voltage wiring from batteries 2 and 3 [14:23:56] and to make the new switches work they added a battery control relay assembly [14:24:42] so instead of changing the ECAs they added a system on top of them for the new control logic [14:25:08] I think that will make it easier for us to have both version eventually [14:26:32] Oh interesting [14:26:45] I always thought the Grumman schematics document with the ending 891 had changes while 889 has the original version [14:26:51] but it seems to be the other way around [14:27:11] 889 has the battery control relay assembly and lunar battery [14:27:15] 891 doesn't yet [14:27:15] I havent looked into the stay battery much, did it have LV/HV taps or just LV [14:27:41] Or rather, was it like the ascent batts where it didnt use taps [14:27:46] two switches, but you could choose CDR vs. LMP DC bus with that [14:27:48] and not taps [14:27:59] so put the battery on either bus [14:28:46] oh I see [14:29:46] I guess it simply uses the LV circuitry that were used for batteries 2 and 3 [14:29:50] in the ECAs [14:29:58] and that's what you are switching on/off [14:30:40] and only HV of course then [14:30:59] no option to switch between LV or HV for the lunar battery [15:17:01] Was the lunar battery the same size as a des bat? [15:20:51] also 400 Ampere hours, yes [15:24:59] I'm working on the logic for the descent ECAs [15:25:02] 415? [15:26:06] 400Ah were pre J missions [15:26:43] then they didn't update that in the flown Apollo 15 Systems Data [15:26:54] which is Systems Handbook pages [15:29:26] hmmm [15:30:32] Maybe LM-9 used 400Ah? [15:30:37] I know LM-10 used 415 [15:32:08] hmm [15:32:35] "Manufacturing [15:32:36] processes were altered and additional flight battery cells were fabricated [15:32:37] for use in ground tests to refine battery ampere-hour capacity predictions." [15:32:48] Apollo 16 [15:32:59] Interesting [15:33:26] maybe they didn't actually change the batteries, just 415 being closer to the actual [15:36:49] This has me intrigued [15:38:56] ah no [15:38:58] so the cell count remained the same, so I guess as that states, the batteries were improved [15:39:09] they just didn't properly update the documentation [15:39:12] for Apollo 15: [15:39:13] ahhh [15:39:20] In addition to the four descent batteries (par. A.2.1), a fifth bat- [15:39:20] tery (called the lunar battery) was provided to increase lunar stay time [15:39:21] capability. The capacity of each battery was 415 ampere-hours compared [15:39:22] with 400 ampere-hours for previous missions. [15:40:08] thats what I thought [15:44:46] I still want to better understand how our batteries work though, like the voltage in the cfg file, how the CSM did the Ah computations etc [15:45:59] I computed the LM bats using 30V [15:46:17] based on the "nominal" voltage of 30V [15:47:23] and in the LM's case, we should never see a voltage >32.5 or so with a load applied to the batteries [15:53:49] CM batteries are supposed to have 40Ah, and if I back calculate the voltage they were computed using 38.25V [20:43:18] night! [13:41:15] good morning [13:58:32] morning! [14:25:16] I am trying to figure out how our batteries actually work and the C++ is just enigmatic to me :( [14:25:34] The voltage things bother me especially with how amp hours are computed etc [16:33:24] amp hours are a weird unit. [16:33:39] basically just charge [17:25:13] morning! [18:20:28] hey mike [13:58:56] hey Ryan [13:59:20] sorry I haven't been much help on the batteries [14:02:20] storing their capacities as amp-hours is basically just storing the total number of electrons that will flow from then (AH*3600*faraday, if you wanted an exact number) but that doesnt explicitly tell you joules [14:03:28] I think calculating a volts(amps) function from the databook would be a good start [14:04:16] I usually use webplotdigitizer [14:05:04] I can help you impliment an iterative loop [14:14:12] haha well I know how battery chemistry works [14:14:35] I mean why the CSM cfg file used 38.25V to compute the stored capacity [14:14:43] instead of a normal load [14:16:24] I just used 30V as the nominal online voltage for the LM bats, converted Ah into W/s which is joules [14:17:05] yeah I think part of the issue is we have a very cheaty way of displaying voltage [14:17:41] Many of our batteries (LM specifically) show like 37 volts for a long time when it should be closer to 30 [14:20:35] I think this also affects the battery capacity as well, since we are using higher voltage than nominal in the LM [14:24:57] hey [14:38:52] hey Niklas [14:39:14] rcflyinghokie, yeah that definitely affects the capacity [14:39:22] exactly [14:39:56] I think a better load curve wouldn't necessitate such a high voltage [14:40:00] I have implemented most of the new ECA control logic, including connections to the CM [14:40:21] I'll make a branch for you to try once it actually does some work [14:41:17] excellent [14:41:50] n7275 yeah, I mean the open circuit voltages are high but the loaded voltages shouldnt be that high (speaking of the LM in this case) [14:42:47] that coupled with the fact that I computed the capacity using 30V means we are depleting faster [15:02:47] indy91 did you see this? https://www.orbiter-forum.com/threads/nassp-8-apollo-7-flightplan-question.39915/ [15:03:05] ah yeah, I'll respond [15:03:10] he makes a good point pulling up the flight plan for that time was a rest period (I havent flown 7 in a very very long time) [15:08:10] we do the 2nd phasing maneuver where the actual mission did a second, unscheduled phasing maneuver [15:08:37] turns out they didn't predict the drag of S-IVB or CSM right, something that can happen to us soon as well haha [15:21:57] I'm very excited for the new drag model [15:24:57] I mean the actual drag is easy. I think I'll make it a fixed CD of 2 in all orientations [15:25:08] it gets complicated in the RTCC... [15:29:11] I bet [15:36:36] when I change the drag I also want to quickly work on propulsive LH2 venting for the S-IVB [15:37:01] that effect was stronger than the drag actually [15:37:24] so before TLI the altitude was slowly rising all the time [15:38:03] so with realistic drag and without any propulsive venting the drag update makes the trajectories (at least of the Saturn Vs) less realistic and not more [15:55:16] I managed to actually open visual studio today, now I have to figure out what exactly I was working on last time [16:14:12] ahh, making the fuel cells properly die with low pressures [19:08:43] afternoon! [19:08:52] yo [19:09:01] what's up? [19:13:14] trying to work on some fuel cell code, but keep getting destracted by simh [19:17:14] how's the DSKY project [19:17:36] going pretty well -- very happy with the prototype keycap, although I have since accidentally killed it [19:17:53] oh no [19:17:58] ...at the moment I'm fiddling with fontforge to get the letters exactly right [19:18:04] that's what prototypes are for, learning :D [19:19:02] turns out acrylic paint dries quickly, but has a longer cure period after that, and you should wait to sand it until after it's fully cured [19:20:12] ahh, yep [19:21:31] also part of the issue was that the primer let go of the surface, so for this next prototype round I also gave the cap a pass with coarse sandpaper to rough it up a bit [19:21:41] I've got four more prototypes primed and ready for painting tonight :) [19:29:10] hey Mike [19:33:31] yo [20:00:41] I really wish our pressures were [more] stable [20:05:45] not going to happen unless we change to a different numerical method [20:07:00] yep, unfortunately [20:07:22] or branching out a bunch of the physics calculations and run them at a steady rate, 100Hz or so [20:12:58] yeah, that would be a lot of rewriting [20:14:04] I think Flightgear does something like that though [20:31:54] okay, I have a simple solution to the Apollo 13 "Eternal Fuel Cell" problem, in a branch called "FuelCellReactantPower" [20:32:25] not sure I'm 100% happy with how the actual shutdown occurs, but it's a start [20:42:06] I'll take a look [21:00:54] night! [16:16:50] hey [16:18:57] morning! [17:25:03] hi folks [17:28:30] haven't done anything NASSP related yet, weather was too nice :) [17:29:16] but I am at the point where I am looking at the power flow between CSM and LM and not just the controlling logic for it [18:03:56] I've been having the same problem with the weather. I have time again to work on projects, but summer's starting and it's nice to be able to see people again, lol [20:51:36] night! [14:36:41] hey [14:48:42] morning [14:55:50] my NASSP builds again [14:56:06] so I am done with the first phase of the LM EPS update. Now just to see if it works like before [15:03:39] oh excellent [15:03:54] so what has been changed internally? [15:04:17] relay by relay implementation of the ECAs, relay junction box and deadface junction box [15:04:56] and the way it can be controlled from the CM [15:05:12] didn't touch the power flow in any way yet [15:07:49] so the slightly weird procedure at the start of LM to CM power should work with that [15:08:16] which procedure? [15:08:53] where you first have to power the CM Main Bus B with CSM power to set relays in the LM, followed by the LM powering the CM bus [15:10:59] Oh yeah [15:11:18] and wasn't there an issue with the CM forcing the ECAs off or something [15:11:51] So the switch sends a command to the RJB which issues either a HV/LV off command or LV on command [15:12:02] its a single command and isnt held [15:12:10] yep [15:12:16] I implemented that [15:12:44] relay by relay, in this case the latching relays have a contact of themselves in the set and reset lines [15:13:12] so if the relay is set then there is a contact that prevents the set signal from staying on [15:13:24] and vice versa for relay reset [15:13:35] most of the ECA latching relays have that [15:13:38] ok excellent [15:13:58] And it only effects the DES ECAs [15:14:07] the CM logic I mean [15:14:27] yes. Did it affect the ascent ones before? [15:14:50] I dont know, I didnt test that [15:14:57] I dont think so [15:15:21] Yeah when i tried the LM PWR procedure for 13 my ASC BATS remained on the line [15:15:59] one thing that might not have been there before is logic that automatically connects the ascent batteries when you deadface the descent batteries [15:17:14] or no [15:17:19] in the case of an abort [15:17:31] staging [15:17:36] I have to check if there already was logic for that somewhere else [15:18:29] Yeah there is the deadface switching logic and abort stage switching logic [15:18:44] I moved that to a new deadface relay box class [15:19:00] the deadface? [15:19:02] which is basically responsible now for all descent/ascent power connection [15:19:16] I thought the RJB still controlled the logic for these [15:19:27] and dent the command to the DRB [15:19:29] sent* [15:19:40] yes the RJB does some stuff for it [15:19:51] might the actual power connection [15:19:58] descent ECAs to DC buses [15:20:09] I mean* [15:20:34] I thought the commands were issues through the RJB as well? [15:20:51] or the logic handling [15:21:03] partially yes [15:21:25] but it's a relay (the one relay) in the deadface relay box that switches the power of the descent module on/off [15:21:32] Just looking at the block diagram now [15:21:57] so that's where I put the logic where NASSP handles the power connection [15:22:02] ah ok [15:22:07] the same one that was in the deadface switch [15:22:22] but I like switches being dumb and dedicated system classes being smart [15:22:29] yes absolutely :) [15:22:35] so there is no more special class for battery and deadface switches [15:23:34] hmm [15:23:55] does the RJB handle the power connection for the LMP bus? [15:24:02] and the deadface box for the CDR [15:24:13] that's how it looks like in the Systems Handbook [15:24:33] I can easily move half the code to the RJB [15:24:44] it has a relay with the same name and the same logic anyway [15:25:31] the wiring from descent ECAs goes through the RJB to the LMP bat feed tie CBs [15:26:05] but for the CDR bat feed tie CBs the same thing goes through the DRB [15:27:00] From the AOH: [15:27:30] "The power feeders of descent batteries No. 1 and 2 are routed through the RJB deadface relay to the LM Pilot's circuit breaker panel (16). The power feeders of batteries No. 3 and 4 are routed through the DRB deadface relay to the [15:27:31] Commander's circuit breaker panel (11)." [15:30:02] I think the LMP bus is the only one connected to the RJB [15:30:27] yep, that's what the AOH says, too [15:30:31] And CDR bus is powered through the CM power [15:32:31] or ECA 2 [15:32:38] via the DRB [15:33:42] right [15:35:41] this almost seems simple compared to fixing the power handling lol [15:51:10] I just really dont understand well enough the code for our power handling [15:52:29] yeah, that might be the tricker part. But even just for this control logic I had to take a good look at the CM/LM power connection, so I know more about it than before [15:53:44] Yeah I have been looking at it a lot [15:54:45] And actually the Apollo 13 powerup procedure and looking into why it was done that way has added a lot of clarity [16:35:39] hmm I need to figure out the initial state of a few new relays [16:36:10] like those deadface relays in RJB and DRB [16:36:21] probably set, or else no power goes through [16:58:49] yeah I would think so [16:59:15] could be set via power from the ground power feeder [17:01:26] yeah [17:01:40] I'll not put much in place for GSE, but I'll add a TBD for it [17:11:37] there is GSE commands for the same commands as the CM can do [17:11:42] LV on and LV/HV off [17:15:24] Yeah TBD is good since we dont even have a LM on the pad haha [17:17:20] Apollo 5 disagrees [17:17:41] I guess I can already implement some LM GSE in LC-37 [17:24:50] Haha fair point! [17:50:14] yeah, that's what I ment to do... [18:12:44] rcflyinghokie, did you see this? https://github.com/orbiternassp/NASSP/issues/621 [18:13:07] I did not [18:13:23] Oh he posted that on the forum [18:13:41] I figured it out, he started the mission before the latest ECS update so it was missing pipes [18:13:54] I have a PR up with the fix for the commented line [18:14:08] Oh wait [18:14:18] This is a new one [18:14:34] I'll merge the PR anyway now, ok? [18:14:53] yeah its just isol valve logic [18:15:15] shouldnt have any bearing on the valve here, I will look into this because it sounds identical to the other issue on the forums [18:15:26] I've definitely seen the CO2 rise before [18:16:23] but it goes away after a bit [18:17:30] I have flown a few missions now with the ECS changes with no CO2 issues in the LM [18:17:43] so this has me curious [18:19:06] oh [18:19:10] suit fan isnt running [18:19:17] he is on suit fan 1 but the breaker is pulled [18:19:18] ah [18:19:21] that will do it [18:22:19] also it looks like his crew was in suits in the LM for some time before the ECS was activated as the suits are full of CO2 [18:25:03] I am checking the checklist to make sure the "crew to suits" instruction is in the correct location [18:30:15] ahh [18:30:20] the cabin CO2 [18:31:02] So looks like the reason wasnt the suits or the fan in this case [18:31:26] There is a ton of CO2 in the LM cabin (I assume from all the time he had crew in the cabin without the LM ECS running [18:32:07] since we dont have any hoses modeled to exchange gas with the CSM ECS during those periods, it just stays there until the ECS is activated in which it causes the rise [18:34:07] I still think this scn is using an earlier state though because I cannot get the suit loop to cool in his scn [18:34:43] but I am not sure I need to investigate further [18:36:12] in any case its the cabin CO2 causing the spike [18:48:00] sounds fine [18:48:49] I have edited the issue title and assigned it to myself [18:51:05] one thing I dont get is why his suit temps are so high though [18:51:57] astronaut in suit but disconnected from the suit loop? [18:56:26] yeah that is possible, but looking at the scn the CO2 in the suits is low...so the crew wasnt in there for long or at all [18:56:49] I also dont know what his glycol temp was before glycol loop activation [18:56:54] that could be why [18:56:58] it came back down for me [18:57:01] as did CO2 [18:58:02] I have never had my cabin get that saturated though [19:07:02] I am trying to conceptualize a solution to this, connecting 2 pipes between the LM cabin and CM suit circuit? one pumping to the LM and one pumping from the LM? [19:12:42] something like that. Could be controlled with a button in the PAMFD [19:14:38] thats what I am thinking [19:18:20] I was thinking that for the umbilical cable, too, actually [19:18:30] button in the PAMFD, and/or clickspot in the VC [19:21:16] yeah absolutely [19:21:36] I am trying to figure out where to connect the CSM ECS to the LM Cabin [19:21:59] Normally it would be suit hoses..but until the CSM ECS gets love that wont work lol [19:22:54] Probably output from the suit and input to the return valve [19:23:12] would have to be done via the ECS connector class [19:23:47] Yeah I am doing the pipes first in the cfg [19:24:13] hoping because its before and after the suit compressor I wont need a pump [19:24:42] but I probably will haha [19:26:58] actually, is the ecs connector class connecting tanks in code? [19:30:28] I am not well versed in how that class work [19:30:30] works* [19:34:39] yes, connects/disconnects CM and LM upon docking/undocking [19:35:01] so I wouldnt even need to add pipes in the config? [19:35:13] if the tanks I need to connect already exist [19:35:30] you still need a pipe to be connected in code [19:35:44] Ok I have them [19:35:49] an inlet and outlet [19:35:56] but by default it probably shouldn't connect to anything [19:37:02] it would be possible to have a pipe that only exists in code [19:37:11] but it's a bit annoying to set up [19:37:30] and if the pipe has a physical equivalent we should have it in the config [19:37:47] the pipes we used for the other connections have connections in code [19:37:50] in the config* [19:38:19] I guess I am trying to figure out how for example the tunnels are connected [19:51:55] oh I didn't mean just connecting the pipe in code, but defining the pipe in code [19:52:01] but that wouldn't be a good solution [19:52:21] so normally CM and LM tunnel are connected to CABINVENT [19:52:36] right [19:52:44] when they get docked then the ECS connector class are also connected to each other [19:53:07] I think the CSM has the active part [19:53:12] so the tanks are connected in code? [19:53:14] CSMToLEMECSConnector::ConnectTo [19:54:13] that sends out a signal via the connector to get a pointer to the pipe in the LM that was connected to CABINVENT [19:55:08] and then it connects the CSM pipe to the in valve of the LM pipe [19:55:17] Hmm ok [19:55:21] and the LM pipe then doesn't do anything anymore [19:55:27] So what would be the path for the following: [19:56:37] connect CSM SUIT to LM CABIN and LM CABIN to CSM SUITCIRCUITRETURNVALVE [19:57:19] what's the physical equivalent of that? Some hoses that are also in the Systems Handbook? [19:57:45] Since we dont have a properly modeled suit circuit in the CSM this would be the closest thing [19:57:52] hmm ok [19:57:59] does CSM SUIT have a free valve? [19:58:04] unused* [19:58:29] technically "LEAK" [19:58:36] good enough [19:58:51] ok again, how did this work in reality? Especially the LM to CSM part [19:59:13] so they connected suit hoses to one of the CSM suit connectors [19:59:37] instead of inlet and outlet from a suit, they sat in the LM tunnel/cabin [20:00:38] so it was two hoses. One from the suit loop to the LM, end of it open. The other open in the LM and connected to the other side of the suit loop? [20:01:34] pretty much [20:01:47] were the two open ends of the hose close to each other in the LM? [20:01:48] so imagine the LM cabin as a suit connected to the CSM suit circuit lol [20:01:52] right [20:02:05] I think one was longer [20:02:14] so not right next to one another but not far apart [20:02:24] I need to find some pictures to verify [20:02:35] I don't think it will work with both in LM CABIN [20:03:05] hmm [20:03:28] well if the one end of it creates a higher pressure in LM CABIN [20:03:34] than exists in CSM SUITCIRCUITRETURNVALVE [20:04:27] in any case [20:04:45] can put one in cabin and one in tunnel [20:05:00] I am looking for a procedure now though [20:05:31] we wouldn't want to disable the connection between CSM SUIT and CSM SUITCIRCUITRETURNVALVE, right? [20:05:40] no [20:06:12] more of an additional connection [20:06:44] yeah since we dont have suit connections implemented like the LM [20:07:29] so we use SUIT:LEAK [20:07:39] have a pipe that leads to nowhere by default [20:08:04] and then a pipe that leads to SUITCIRCUITRETURNVALVE:IN [20:08:08] both pipes ONEWAY [20:08:19] and the second pipe also has a connection to nowhere [20:08:46] and then whatever establishes the connection gets pointers to two valves in the LM [20:08:52] and connects them to the pipes [20:09:11] and nulls those valve pointers in the pipe when they get disconnected [20:09:44] hmmm I cannot find where they had both hoses in there, I know it was discussed [20:09:54] In most procedures I just see an O2 hose [20:10:08] maybe that was enough? [20:10:32] so basically a suit hose pumping conditioned air into the LM [20:10:50] so just one hose [20:11:03] sure, if that creates a pressure in the LM that works [20:11:10] Yeah [20:11:16] will slowly move the CO2 to the CSM [20:11:34] I know 2 was mentioned somewhere but it might have been 13 for the mailbox config [20:12:11] so yeah one hose coming from the PSC should create pressure and backflow the atmosphere back to the CSM via tunnel [20:12:21] lets try that first and see what it does [20:12:59] CSM SUIT to LM CABIN? [20:14:02] or specifically, CSM SUIT:LEAK to LM CABIN:IN [20:15:22] yes [20:16:11] I am playing in my ECS branch at the moment [20:16:21] I have added the LEAK to SUIT in the CSM [20:18:07] in the config [20:18:40] you probably want a connector call for this [20:19:05] to get the valve pointer from the LM [20:20:32] yeah thats what I dont quite understand the functionality of [20:20:40] first you need a function in the LM [20:20:46] h_Pipe* LEM::GetLMTunnelPipe() [20:20:48] like that one [20:20:56] but returning a pointer to the valve [20:21:00] CABIN:IN [20:21:39] I don't really want to commit my LM EPS stuff right now to switch branches [20:21:51] takes too long to check everything [20:23:05] haha no problem [20:23:19] but I can guide you through the worst of it [20:25:00] so would I use h_valve? [20:25:20] yes [20:25:28] h_valve* [20:25:33] as its a pointer [20:27:19] I have power in the LM [20:27:31] good sign! [20:27:32] can't directly switch to HV though [20:27:42] have to switch LV off, then HV on [20:28:57] might be correct? [20:29:20] there is a relay contact on the HV SET. You can't set HV if LV is on [20:30:01] yes that sounds correct as the OFF/RESET is used before switching taps [20:30:17] but I don't think it worked like that before in NASSP [20:30:18] or did it... [20:31:09] I think OFF/RESET on either tap turns off that batteries connections [20:31:56] To switch to HV taps for instance, with a LV tap on, you go HV OFF/RESET then HV ON [20:33:20] yeah, that's true, both resets switch off both HV and LV relays [20:33:39] but can you currently switch directly from LV to HV without off? [20:33:54] why do I not know that haha [20:34:07] but in the new version you will have to go to off first [20:34:43] shouldnt be an issue as thats how the checklists do it [20:34:48] right [20:35:38] not seeing anything in the old LEMBatterySwitch class that would prevent it [20:35:57] so one more realistic thing that is now implemented [20:36:47] also automatic disconnect with an overvoltage [20:36:57] over current [20:36:58] oh nice [20:37:15] overtemp didnt disconnect, did it? It just lit the lamp? [20:37:23] yeah, I think so [20:37:44] reverse current... [20:38:20] yeah the battery didnt disconnect on 13 [20:38:23] also light only [20:39:06] 13 had reverse current into the LM batteries? [20:39:16] or did you mean over temp [20:39:49] overtemp [20:40:06] but it ended up being a sensor glitch [20:41:43] hmm this doesnt seem to like me using h_valve [20:42:11] h_Valve [20:42:20] come on, you could have looked that up :D [20:42:41] Yeah I just realized my stupidity as I hit enter [20:43:23] typing it out here, seeing it, immediately palm on forehead [20:44:55] we will have to edit some old scenarios [20:45:26] because the controlling relays are now elsewherem the LM EPS will default to LV taps on descent batteries [20:45:29] and ascent batteries off [20:45:37] ah ok [20:48:25] I have a pointer to the valve in lemsystems [20:48:35] h_Valve* LEM::GetCSMO2HoseOutlet() [20:48:42] great [20:48:43] next [20:48:50] LEMECSConnector::ReceiveMessage [20:49:22] you copy the if for message type 0 [20:49:28] if (m.messageType == 0) [20:49:29] { [20:49:29] m.val1.pValue = OurVessel->GetLMTunnelPipe(); [20:49:30] return true; [20:49:31] } [20:49:37] call the new function instead [20:49:43] and make it message type 3 [20:49:45] 2 [20:50:02] so if the CSM requests a pointer to the valve it does so with message type 2 [20:50:14] place after the current if? [20:50:24] yeah, make that a third case [20:50:29] so a new "else if" [20:50:53] and calling the new function, otherwise all the same as the GetTunnePipe thing [20:51:11] the pointers gets temporarily stored in m.val1.pValue [20:51:13] pointer* [20:51:20] got it [20:51:23] which is what the CSM will access [20:51:32] now the counter part in the CSM [20:51:38] CSMToLEMECSConnector in csmconnector [20:51:48] there is a function called GetDockingTunnelPipe [20:52:02] got it [20:52:05] make a copy of that function [20:52:23] new name, return valve instead of pipe [20:52:27] change message type to 2 [20:52:42] and in that static_cast also make it to a valve [20:53:58] done [20:54:28] so the Saturn class has a function to get the pointer to the CM tunnel pipe [20:54:30] GetCMTunnelPipe [20:54:50] I guess what you want there is the same for your new pipe that goes into the LM [20:55:03] btw, what did you connect the pipe to in the config? [20:56:30] there is no pipe [20:57:42] do we just need one or one in each spacecraft? [20:57:49] just one [20:58:33] LM or CSM? [20:58:38] CSM [20:58:52] input valve would come from the SUIT tank [20:59:42] I guess I could just connect it to the suit circuit return for now? [20:59:56] the output? [21:01:03] yes [21:01:09] just checking, but I think you could name the output something like NOTHING [21:01:15] Oh I can? [21:01:18] that would be ideal haha [21:01:19] and it will not find a system with a name like that [21:01:32] so it should NULL the output valve pointer in the pipe class [21:01:34] I think [21:01:38] yeah, would be ideal [21:01:56] we just can't ever name a tank or pipe or so NOTHING [21:02:09] sure I will use that [21:02:44] there seems to be no check on the valve being NULL [21:02:50] when the pipe gets build [21:03:07] as long as it doesnt break anything [21:03:14] worse case I just loop it back to the suit [21:03:28] if ((!in) || (!out)) return; [21:03:35] that's what the pipe refresh function does [21:03:40] so out should be NULL [21:03:44] ok cool [21:03:46] and nothing should happen with the pipe [21:04:47] CSMTOLMO2HOSE is the pipe [21:05:04] so you probably want a function like Saturn::GetCMTunnelPipe for it [21:06:21] I am going to have to put a hold on this for now, I need to run out for a bit...to be continued? [21:06:30] sure [21:06:33] and the last step would be to enable the flow. Maybe for testing you just let it do flow whenever the CSM and LM are docked? [21:06:56] we can do that tomorroqw [21:07:19] yeah thats what I plan on doing, see what it does as is :) [21:07:24] goodnight! [21:07:40] same from me. Night! [15:40:13] morning! [15:55:41] there we go [15:55:48] think I finally got ZNC set up for libera [16:18:53] hey guys [16:21:12] thewonderidiot basically my feelings on needing to change znc settings https://imgs.xkcd.com/comics/x11.png [16:41:42] hahahaha yup [16:59:12] hey [16:59:17] yo [18:07:10] hmm [18:07:29] why does the CM command the descent batteries not only off, but also deadfaces them... [18:11:56] oh it doesn't [18:16:58] during abort staging that happens [18:17:13] descent batteries switched off and deadfaced [18:35:26] need to test that, but CM to LM power properly works again [18:47:09] Hey [18:57:02] hey Thymo [19:06:00] hi Thymo [19:24:18] good afternoon [19:36:00] hey Ryan [19:36:37] reading above, get that deadface sorted out? [19:38:47] yeah, I think I have most things sorted out [19:39:08] just want to test a bunch more things [19:39:25] oh and one good news is, old scenarios before LM activation are fine [19:39:34] CM to LM power fixes itself with the new relays [19:39:43] oh excellent! [19:39:46] there is one timestep where the LM will use its own power [19:40:28] and then it switches to CM power [19:41:33] there was also one relay I didn't fully understand, but I think it's mainly for the strange case where you use both the HV and LV switches at the same time [19:41:43] it prevents weird things from happening if you try that [19:42:47] I think Reset/Off position takes precedence above switching HV or LV on [19:43:11] so if you hold one of the switches to the Off position you can't switch anything on [19:43:24] keeping you from going right from LV to HV or reverse? [19:43:28] which makes sense [19:43:45] and trying to set both relays (so HV and LV on) at the same time [19:43:56] also important haha [19:44:10] which wouldn't work anyway, but maybe in reality the relay contacts wouldn't open/close quick enough [19:44:56] and I don't know how that worked before, but I think I had a few times where I did abort staging and the power went out completely [19:45:08] because I hadn't switched on the ascent batteries [19:45:20] but that seems to happen automatically [19:45:33] but I still have to test that [19:46:04] abort staging does ascent batteries on, descent batteries off, deadface [19:46:23] yeah thats the logic [19:46:32] I think every time I have done an abort they were already on though [19:46:49] So I never saw the previous behavior truly [19:47:26] yeah, it's normal procedure to do that before staging [19:49:09] or the possibility of it (ie PDI) [19:49:18] the automatic signal only works with the abort stage CBs, so if you rely on the battery switchover to happen at staging then you are risking some circuit not working right I guess [19:50:53] yeah you want every precaution to keep power alive [20:11:06] ok so if you have a moment, where were we with the CSM hose guidance? [20:18:52] almost done I think [20:21:03] "so you probably want a function like Saturn::GetCMTunnelPipe for it" [20:21:42] so a function that returns a pointer to the hose pipe [20:22:55] Ok [20:23:35] So maybe GetCSMO2Hose wasnt the best name for the connector? [20:25:56] name for the connector? [20:26:41] did you already name something GetCSMO2Hose? [20:27:17] yes lol [20:27:23] h_Valve* CSMToLEMECSConnector::GetCSMO2Hose() [20:28:18] going to use h_Valve* CSMToLEMECSConnector::CSMO2HoseConnector() [20:28:30] and GetCSMO2Hose as the Saturn function [20:30:03] ah I think I have gotten myself lost :( [20:30:32] I would prefix that one with a verb, otherwise it looks like you're creating a constructor [20:30:48] yeah I need to back up haha [20:31:11] didn't you call the same thing GetCSMO2HoseOutlet in the LM? [20:31:19] h_Valve* CSMToLEMECSConnector::GetCSMO2HoseOutlet() works [20:31:37] the hose is a pipe [20:31:40] the outlet is a valve [20:31:52] that works [20:33:06] Maybe something more generic like h_Valve* CSMToLEMECSConnector::GetHose(hose_t hose)? [20:33:21] Because it looks to me that all the functions do is return a pointer to a hose [20:33:49] it doesn't [20:34:05] the hose is a pipe, the outlet is a valve [20:34:11] the outlet is in the LM [20:34:21] there is a connector call to get a pointer to that valve [20:34:27] that was already there [20:34:48] and it's better to call the function outlet, which is what Ryan already did in the LM on the other side of the connector call [20:35:05] the hose (the pipe) exists in the CSM [20:35:25] CSMToLEMECSConnector can't access it directly so it needs to call the Saturn class to get a pointer to it [20:36:15] so if you are just consisten with valve vs. pipe and Hose vs. HoseOutlet it should all work out [20:36:23] sounds good [20:36:32] so the next thing is the pipe, correct? [20:37:48] Okay that sounds good. A generic function indeed wouldn't work now that you explain it. [20:38:29] Saturn class needs a function that gives a pointer to the hose (pipe) which can be called in the CSMToLEMECSConnector class [20:38:48] equivalent to GetCMTunnelPipe [20:39:06] although the Saturn class already has a pointer to that pipe [20:39:10] CMTunnel [20:39:37] I was more thinking about a Panelsdk.GetPointerByString [20:39:45] like you did with the valve in the LM [20:40:56] where should it go? [20:41:51] saturn.cpp [20:41:53] close to [20:41:54] Saturn::ConnectTunnelToCabinVent [20:42:06] that's thematically related [20:43:37] got it [20:43:55] I see in the .h that the CM tunnel pipe has a return on it [20:44:02] h_Pipe* GetCMTunnelPipe() { return CMTunnel; } [20:44:07] yeah, but that's so simple [20:44:09] shouldnt matter here, correct? [20:44:19] the full Panelsdk.GetPointerByString in the header is a bit messy [20:44:35] h_Pipe* GetCSMO2Hose(); [20:44:40] thats in my header [20:44:56] h_Pipe* Saturn::GetCSMO2Hose() [20:44:57] { [20:44:57] return (h_Pipe*)Panelsdk.GetPointerByString("HYDRAULIC:CSMTOLMO2HOSE"); [20:44:58] } [20:45:02] in saturn.cpp [20:46:15] that works [20:47:09] Oh you can have endless discussions about having single line functions in headers or not. [20:49:45] we definitely aren't consistent on it, but for me it just looks bad if you call a function in a function in a header [20:50:02] returning a pointer like CMTunnel is just on the edge of being acceptable :D [20:51:46] ok thats in [20:52:10] I think we should add two functions in CSMToLEMECSConnector [20:52:18] one to connect and one to disconnect the hose [20:52:25] and that can be called internally for testing [20:52:34] or in the future externally by the PAMFD or so [20:52:47] so just make two empty functions in that class for that [20:52:49] I can see that. Both have an argument to be use. One thing that does bother me is the inconsistency with: [20:52:55] void function() { [20:52:58] and [20:53:01] void function() [20:53:01] { [20:54:08] yeah [20:54:15] it used to be function() { [20:54:21] our old functions are all like that [20:54:41] 2 is better IMO [20:54:42] but I guess VS auto formats to putting that on two lines [20:54:47] yeah I prefer that, too [20:55:00] I don't like my code being squeezed against the declaration [20:56:11] I find it ok for "else if {", in some cases [20:56:17] like in our load functions [20:56:21] load from scenarios [20:56:27] just to not waste 100s of lines [20:56:45] the code being more condense actually helps there [20:56:52] but not with functions [20:57:57] I always put the brace on the same line for anything that's not a function or class declaration. [20:58:09] For if/else I put it on the same line [20:58:43] Hmmm so where I am there are tons of build errors [20:59:05] what kind? [20:59:12] I mostly code according to the kernel coding style: https://www.kernel.org/doc/html/v4.10/process/coding-style.html#placing-braces-and-spaces [20:59:27] lots of missing ; and missing type specifier -int [20:59:58] gosh I've gotten so used to matching the style of whatever file I'm in that I don't even know what I would default to if left to my own devices anymore.... it probably wouldn't even be consistent project to project lol [21:00:03] weird, I didn't think we added anything that needs a forward declaration or so [21:00:37] its up on my LMECS if you want to just check out it on git https://github.com/rcflyinghokie/NASSP/tree/LMECS [21:00:43] I would emulate the RTCC coding style but luckily it's in FORTRAN so I can't [21:01:25] oh I see [21:01:28] hahahaha I mean you could certainly try [21:01:30] there is a forward declaration [21:01:38] in csmconnector.h [21:01:43] it does [21:01:44] class h_Pipe; [21:01:51] or else it wouldn't know what a pipe is [21:01:56] and I guess it needs the same for valve [21:02:09] so add "class h_Valve;" just below that [21:02:15] hopefully it builds then [21:02:24] ahh [21:03:43] yep [21:05:23] You could totally emulate FORTRAN in C. Just define all C components to their fortran equivalent and the preprocessor will take care of it. [21:05:26] Please don't do that. [21:06:01] or! you could actually write it all in FORTRAN and then use f2c to generate C for inclusion into NASSP [21:06:24] *hides in engineering schematics* [21:06:40] *takes comfort in the glycol system* [21:07:02] "rcflyingmarmot" [21:07:49] FORTRAN is also not the same as FORTRAN [21:08:07] I set up FORTRAN in CodeBlocks [21:08:15] hahaha [21:08:21] and when I took a routine from one of the MSC internal memos it complained a lot [21:08:32] yeah I would imagine it has changed a lot over the years [21:08:51] I think it still is backwards compatible so that it builds and should work [21:08:54] but lots of warnings [21:09:43] ok so do we need some sort of connect/disconnect logic? [21:09:56] starts looking for the banhammer [21:10:10] thewonderidiot: I'll have none of that thank you very much. :P [21:10:22] rcflyinghokie: https://github.com/rcflyinghokie/NASSP/commit/2387ae7f8992e3353643a87bf99a0875622c513f#r51646849 [21:10:25] rcflyinghokie, yes [21:10:36] should be a one liner for each function [21:10:38] yeah if you find that banhammer I probably deserve it [21:11:24] Thymo, we were actually adding something in ConnectCSMO2Hose, just wanted to set up the functions [21:12:08] Hmm [21:12:09] I think the shortest version is [21:12:23] I guess adding something to a function would make more sense huh [21:12:43] OurVessel->GetCSMO2Hose()->out = GetCSMO2HoseOutlet(); [21:13:03] and to disconnect [21:13:06] OurVessel->GetCSMO2Hose()->out = NULL; [21:13:44] Works. But kind of ugly. [21:14:15] ideas? [21:14:17] Would probably be better to have a connect and disconnect function [21:14:29] yes, that's what this is [21:14:30] Instead of modifying internals through a getter. [21:14:44] these are connect/disconnect functions [21:14:53] I mean, for the tunnel we are doing this [21:14:54] h_Pipe *cmpipe = OurVessel->GetCMTunnelPipe(); [21:14:58] h_Pipe *lmpipe = GetDockingTunnelPipe(); [21:15:01] cmpipe->out = lmpipe->in; [21:15:10] oh, you mean in the pipe class [21:15:39] sure, the pipe class could get a function to set either of the valve pointers [21:16:11] it is a very special case though, we rarely are connecting pipes and valves together in code [21:16:22] I think we only do it for the CM and LM tunnel connection [21:16:26] and now this hose [21:16:50] but yeah, would be cleaner to have a function in the pipe class for it. We can add that some time [21:20:41] getting the connections to work is more important right now haha [21:20:49] ok so where can I call these functions [21:21:39] well for testing I was thinking to enable it whenever CSM and LM are docked [21:21:57] so maybe in CSMToLEMECSConnector::ConnectTo and Disconnect [21:22:06] together with the other pipe/valve manipulation [21:22:31] but that's really just for testing as it will work even with the hatches closed [21:22:36] right [21:23:07] eventually I would like a PAMFD button that only works with both hatches open [21:23:12] alternatively in SaturnForwardHatch [21:23:20] so that the hose works whenever the hatch is open [21:23:32] but of course it would kind of require both hatches to be open to work, right? [21:23:45] yes since in our case we are pumping to the cabin and not the tunnel [21:24:00] you can have power connection with the hatches closed though, right? [21:24:06] but not this hose [21:24:09] in reality [21:24:10] yes those are in the docking tunnel [21:24:53] I suppose you could connect this to the LM TUNNEL instead and only require the CM FWD hatch open...but i dont know how effective it would be [21:25:09] I want to start with the cabin for a baseline [21:25:15] wouldn't work very well [21:25:28] the best chance we have in NASSP is to create an overpressure in LM CABIN [21:25:38] push all the air to the CSM, over time [21:26:50] exactly [21:27:02] CO2 in the CM cabin also gets scrubbed, right? [21:27:07] yes [21:27:11] ah good [21:28:11] cabin air also goes to the suit circuit return valve which goes to the suit compressor [21:28:16] and scrubber etc [21:28:54] so hopefully that stops accumulation of CO2 [21:29:18] yeah even just a little hinderance would work in this case [21:30:22] ok so what will turn this on and off in the mean time [21:33:06] for testing CSMToLEMECSConnector::ConnectTo and Disconnect [21:33:51] but if you want to PR it soon, then it should be the version where nothing connects and disconnects it yet [21:34:10] because that should really be in the PAMFD with some additional logic for the hatches being open etc. [21:34:20] yeah agreed [21:34:22] hmm [21:34:30] so I just put the ConnectCSMO2Hose() function in ConnectTo? [21:34:32] what if it's connected and you close the hatch [21:34:40] we'll deal with that later :D [21:34:45] yes [21:34:50] together with the other pipe stuff [21:34:52] Yeah for now lets make sure the actual intent works [21:34:58] in the if statement?> [21:35:03] yeah [21:35:33] ok [21:35:39] SaturnConnector::ConnectTo(other) is what actually connects the connectors and it returns true/false if it worked [21:36:41] ok all set [21:37:01] let me put some debug lines in to watch CO2 [21:37:06] sure [21:37:19] you can tell me tomorrow how it went [21:37:43] haha sure [21:37:46] goodnight! [21:38:26] night! [22:13:31] well damn no flow [22:13:38] seems its not connecting to the LM side :( [22:45:01] darn, looks like I missed the FORTRAN conversation earlier [23:05:26] I've been playing around with IBFTC on the simH 7094. [12:31:44] good morning [12:54:51] morning [13:53:41] good morning [13:54:49] hey [13:55:57] automatic power transfer from descent to ascent batteries is working well [13:58:29] excellent, any issues with interruption? [14:00:27] have to check with an actual abort [14:00:32] there is a small time delay on the abort [14:00:51] but it does take like 2 timesteps for all the relays to set for switching from descent to ascent power [14:01:03] abort staging I should say [14:01:24] so I would be curious if, for instance the batteries were off the line, would you get an interruption [14:02:52] well, the only possible issue could be the ascent batteries not coming on line before the staging in NASSP happens [14:03:13] but otherwise the EPS logic prevents that from happening [14:03:26] the ascent batteries are switched on [14:03:30] yeah I was alluding to an NASSP/timestep issue [14:03:38] and only if that has happened does it switch off the descent batteries [14:03:48] just did an abort, no interrupt [14:03:52] interruption* [14:03:54] excellent [14:04:14] it's possible that you get an interruption with time acceleration [14:04:16] but [14:04:30] the relay logic for an abort also has to propagate through the systems first [14:05:01] well if you are staging with time accel...you are already likely in for a bad time [14:05:07] yeah [14:05:33] so I think both the power switching and the staging takes 1-2 timesteps to start happening because of timesteps [14:05:43] so no interruption [14:06:27] on my first try right now I did a bad sequence of events it seems [14:06:33] I armed the APS instead of the DPS [14:07:04] engine start button [14:07:12] but no ED master arm [14:07:18] got an ED relays light [14:07:23] then I switched master arm on [14:07:26] and pop [14:07:28] and lost all power, no staging :D [14:07:31] oh [14:07:34] haha [14:07:47] have to check what happened there and if it's correct [14:09:18] oh so sadly something is not working with the O2 hose [14:09:22] I get no flow [14:09:50] verified the valve was open on the suit, and the suit pressure was higher than the LM cabin [14:10:04] also, when I put a pointer to the hose outlet via debug line I got a CTD [14:10:34] but that might have been because it was in another vehicle idk [14:12:20] yeah [14:12:26] do you have the latest version on Github? [14:15:17] just pushed [14:15:18] ah, the EDS code disconnects the power [14:15:23] I think I can delete that [14:15:57] I knew there would be some more old code messing with the EPS [14:20:02] yeah I am not surprised [14:22:02] hmm actually, that is a different kind of deadfacing. I think that's the permanent cutting of the wires to the ascent stages [14:22:03] stage* [14:22:24] I think the timestep thing is actually a problem there [14:22:45] if you arm the APS and set engine start then the LM is primed for staging [14:23:06] and when you then switch on ED master arm it does staging immediately, or at least starts the sequence immediately [14:23:14] and immediately cuts off the descent stage power [14:23:23] before transfer of power [14:25:14] hmm [14:25:17] might be realistic [14:25:32] the auto transfer of power is only done when you use the abort stage button [14:26:34] return true; [14:26:38] ConnectCSMO2Hose(); [14:26:51] I think you got there order of that wrong :D [14:26:54] the* [14:30:23] ah I see [14:33:40] now why does this in the satsystems debug: (csmO2hose->out->parent->space.Press)*PSI cause a ctd [14:33:48] is that because its calling a LM part?> [14:34:37] csmO2hose is a valid pointer? [14:35:07] I'm not really sure [14:35:25] the pipe class access that valve and the valve the parent tank [14:35:37] but that might be because it runs in the PanelSDK and not directly CSM code [14:35:57] what error does it give when it CTDs? [14:36:06] well the in code works and returns the SUIT tank pressure [14:36:11] one sec I will print it [14:37:39] oh it worked this time [14:37:44] maybe it was the order in that if [14:38:01] got flow! [14:40:29] nice [14:42:02] now lets see if it does anything to CO2 [14:49:03] is there any way on that debug line to have LM Cabin CO2 printed? [14:51:13] the "space" should have it [14:51:56] space.composition maybe? [14:52:07] space.composition[SUBSTANCE_CO2] [14:52:20] I tried that it returned zero [14:52:41] which variable of it? [14:52:45] space.composition[SUBSTANCE_CO2].mass ? [14:52:54] or p_press [14:53:07] ah forgot the ppress [14:53:22] that should work [14:55:52] we don't simulate separate circuit interrupters yet, so what I will do is to not let the EDS mess with the EPS directly [14:56:11] but I'll require the circuit interrupters to have fired, or else descent and ascent stage don't separate [14:56:14] I think that makes sense [14:56:22] there wouldn't be much connecting them [14:56:26] only those cables [14:56:42] but still somewhat connected [14:57:04] and I did get something wrong about staging before [14:57:46] I'll be dammed its lowering the CO2, slowly, but its working [14:57:49] it can be done either from the descent stage side or ascent [14:58:05] so previous for staging to work you needed both ED systems to be on [14:58:08] but I think that is wrong [14:58:15] one system alone can cause staging [14:58:34] yeah I was pretty sure that was the case [14:58:39] redundancy and all [14:59:01] yeah [14:59:02] so [14:59:03] if (StagingBoltsPyros.Blown() && StagingNutsPyros.Blown() && CableCuttingPyros.Blown()) [14:59:05] becomes [14:59:11] if ((StagingBoltsPyros.Blown() || StagingNutsPyros.Blown()) && CableCuttingPyros.Blown() && eds.GetDeadface()) [14:59:41] as the staging condition [15:00:56] bolts and nuts pyros? [15:01:09] yes [15:01:55] bolts on one stage [15:02:01] being fired by one ED system [15:02:06] and nuts by the other one [15:02:11] in the other stage [15:02:19] but firing either of them destroys the connection [15:03:28] ah ok I see [15:03:48] cable cutting is the umbilical for water [15:03:55] and O2 or so [15:04:12] and eds.GetDeadface() for the electrical connection [15:04:30] but all of these have to be cut for the stages to be truly separate [15:05:29] right [15:06:45] what isn't done yet is to cut the electrical connection immediately, as we have no separate logic for that [15:06:59] so the case where the stages are still together, but the electrical connection is cut [15:07:08] which is a condition that exists for like 20 milliseconds [15:07:39] ah no, 100 [15:09:34] well kind of [15:09:47] at 0 ms the circuit interrupters are started to be fired [15:09:54] at 50 ms the bolts and nuts [15:09:58] and 100 ms the umiblical [15:10:46] aside from GSE there there is no condition where only one of these things are done, so I guess we can get away with only having one kind of staging logic, where all of these are cut vs. not [15:13:31] yeah that seems reasonable [15:15:16] although I guess what I could do is replace the "lem->stage < 2" checks with "eds.GetDeadface()" [15:15:22] but not right now [15:37:27] I keep forgetting [15:37:47] engine arm to APS doesn't do anything for auto battery transfer to ascent [15:37:56] has to be abort stage for arming the APS [15:42:09] the cb? [15:43:25] that, too, but actually pressing abort stage button [15:43:42] only then is the auto power transfer done [15:43:50] otherwise you get a very dark LM [15:45:33] haha [15:45:51] or be smart and manually active the ascent batteries [15:45:57] like most procedures demand [16:07:15] *all procedures I believe :) [16:18:45] ok so in old scenarios, where the EPS defaults to LV taps on the descent batteries, and ascent batteries off, it just about holds the required voltage [16:18:52] in the before PDI scenario for example [16:19:13] I have to put the ascent batteries on the bus, then switch LV taps off, HV on [16:19:24] one battery with LV per bus isn't enough [16:20:16] I guess I will have to edit all scenarios after LM activation [16:22:05] I can't make it backwards compatible [16:22:24] previously there was a variable called "input" in each ECA channel. 0 = off, 1 = LV, 2 = HV [16:22:42] but now it's separate relays for LV and HV, on or off [16:32:06] I think these kinds of changes are worth it [16:32:14] I also had to do a little more to get my O2 hose working [16:32:41] oh, what? [16:33:01] Just a little tank between the suit compressor and the suit [16:33:11] but yeah, I'm quite happy how this EPS update is turning out. And once it's done I'll start with the LM to CM power [16:33:17] that way the suit and the o2 hose get pressurized flow [16:33:32] the behavior doesnt prevent CO2 cabin buildup [16:33:38] but it mitigats it significantly [16:33:43] mitigates* [16:34:52] but because of the changes, it also isnt too backwards compatible, and therefore I would like to work on it a bit more, including a PAMFD button, and push it with your changes [16:36:04] what isn't backwards compatible about your change? [16:36:23] suit tank [16:36:26] but we can merge our changes together in a branch, which will then PRed to the Orbiter2016 branch [16:37:19] you know, I take that back [16:37:29] it should be backwards compatible [16:37:48] at least no CTD [16:37:52] or power completely off [16:37:58] maybe wrong valve sizes or so [16:42:04] adding the tank in between though is good as it allows the conditioned gas to flow tot he LM rather than suit gas (which has heat/co2/water) [16:42:53] and I guess that's also more realistic [16:43:02] exactly the idea [16:44:23] another stepping stone towards a CSM ECS rework lol [16:46:54] making sure it doesnt break anything in the CSM now [16:54:26] hmm it messes with the suit compressor pressure more than I would like [17:04:17] I think I need to change the pointer for the dP gauge with this [17:05:25] the dP gauge? But not the one for the tunnel? [17:05:46] the suit compressor dP sorry [17:06:57] since there is a tank in between now, it should use that [17:07:03] simple fix [17:07:04] right [17:07:16] assuming it works..of course [17:22:17] hmm looks like that does more harm than good adding that tank, for some reason its not scrubbing CO2 now when on a fresh mission [17:22:22] Need to investigate further [17:55:29] morning! [18:34:23] hey Mike [18:38:38] what's up? [18:39:19] mostly done with the first phase of my LM EPS update. Just will have to edit a bunch of scenarios. And I should probably go through a full LM activation with EPS tests [18:39:32] sweet! [18:40:14] finally a relay by relay implementation for that [18:40:24] very very nice :D [18:40:25] there have been a bunch of things that didn't work quite like the real LM [18:44:52] rcflyinghokie, do you know some stuff about the xlunar bus tie CBs? [18:45:00] what do those actually do [18:58:58] yeah a little bit [19:05:03] basically it is what the CM power would interface with in order to power heaters and such [19:05:38] the x lunar ties connected them to the CDR and LMP 28V busses [19:06:40] hmm [19:07:39] because the new relays I added are related to it [19:08:14] the CBs aren't used right now [19:08:39] they need to essentially be their own bus bars to work properly [19:13:05] yeah I'm not understanding it yet. The CM is only able to put power on the CDR bus [19:13:11] why is there a LMP xlunar bus [19:13:25] I am almost positive when the CM power is enabled, the relays connect the xlunar busses to the 28V busses [19:34:02] CM power to both buses in the LM? [19:35:14] thats what I am trying to figure out [19:35:48] trying to chase the connections in the schematic [19:35:55] not how it works in NASSP at least [19:36:05] I am looking at LM 3 system handbook pdf 49 [19:36:40] same [19:38:08] could it be just for the current meter in the CM? [19:38:22] the connection from xlunar bus to the CM? [19:38:45] Hmm [19:39:21] or like a return line [19:41:05] Like a floating ground? [19:41:30] if it is just a return though, why the bus ties [19:44:27] figures 2.5-10 and 11 in the AOH Volume 1 are also interesting for this [19:45:28] The line in the AOH "CSM deactivates LM power and then supplies power to the LM critical equipment, using the LM translunar negative bus." [19:47:00] LM or CSM vol 1? [19:47:43] ah got it [19:48:48] yeah thats what I was looking at [19:48:54] especially 11 [19:49:11] I am trying to line up the simplified block tot he systems handbook schematic wrt those relays [19:56:11] csm 104 systems handbook also has some connections exlplained [19:56:14] explained* [19:56:43] pdf 68 "LM INTER" [19:57:03] or rather not explained but a short "to" phrase on all the connections [19:58:57] including a connection to each XL BUS and the CDR bus [20:03:41] but yeah looking at the simplified schematic it looks like the power itself is given to the CDR bus which is cross tied to the LMP bus [20:06:46] yeah, that's what I was thinking [20:07:06] and then back via the xlunar buses to the CM where the current is measured [20:07:09] something like that [20:09:30] yeah [20:09:44] so I guess the question is, why would you need the x lunar bus ties [20:16:33] yeah [20:17:04] just for grounding (LM should be able to do this itself?) or would it not work without the line back to the CM [20:17:11] the new relays I added are K3 and K4 [20:17:23] I think it needs the return line since its another vehicle [20:19:14] CDR and LM buses are normally connected to the xlunar buses [20:19:30] the vehicles are probably electrically insulated well enough from eachother that a physical floating ground was required [20:19:35] but if the CM powers the LM and those relays are on then the connection isn't there [20:19:48] and then the only connection is the xlunar bus tie CBs [20:21:39] doesnt the power for those relays come from the CM though? [20:21:50] yes [20:22:27] and that opens the normally existing connection between CDR/LM buses and xlunar buses [20:22:50] but that connection is parallel to the xlunar bus tie CBs [20:23:52] hmm [20:23:56] but those CBs are normally open [20:24:11] at least when the CM powers the LM [20:24:14] hmmm so maybe its to isolate the floating ground that is the -bus in the LM from the xlunar bus as a precaution? [20:24:16] so that doesn't make sense... [20:24:40] looks like the x lunar ties tie it to the negative bus and not the 28VDC busses? [20:25:04] in other words, generating a common ground for the LM on it's own power [20:25:21] right [20:25:23] negative buses [20:26:07] I am looking through the LM 7 AOH right now, the power interface diagram [20:26:46] fig 2.5-2 [20:27:32] so perhaps your ammeter theory was correct [20:27:52] it provides a floating ground isolated to CM power flowing [20:31:17] 2.5-1 shows this in the signal interface its an isolated return [20:35:00] so do K3 and K4 connect the negative bus to the xlunar bus? [20:36:33] I think they disconnect them, when they are powered [20:36:47] and they are powered when the CM powers the LM [20:37:27] oh ok that makes more sense [20:38:27] with the xlunar bus tie CBs open the connection between xlunar bus and negative bus is cut [20:38:30] does that make sense? [20:40:47] for a floating ground for the CM yes [20:40:55] it isolates the CM from the LM - bus [20:41:30] I would think the LM - bus would have a different potential and not give the appropriate current reading [20:45:30] so in the normal configuration for the CM to power the LM [20:45:38] what happens if you close the xlunar bux tie CBs? [20:46:12] good question [20:46:42] probably a ground loop [20:47:12] which would result in bad indications [20:49:19] the LM and CM I bet have different potentials [20:51:57] so now this all makes sense in my head haha [20:59:49] well I am only about 80% there haha [20:59:58] but I think we don't need to implement that immediately [21:00:05] the relays are there to be used [21:00:15] and this all works like it did before [21:03:25] I guess tomorrow I have to edit a bunch of scenarios. And I'll also make a branch then that we can merge together, so we have one big LM update that can break things [21:03:37] night! [22:41:54] n7275 so I get FC lamps on new launch scns :( [22:47:48] watching the flows come up then drop to zero [23:09:58] well that's not good [23:10:22] I definitely tested that. [23:12:37] seems once on internal power its all well [23:12:44] but on the pad not so much [23:13:10] but my small CSM ECS changes dont break anything anymore haha [23:13:31] I am hoping this is enough to mitigate the LM CO2 buildup in shirtsleeve ingress [23:22:04] any idea what's causing the fc lights? [23:25:46] let me look at it again to see what conditions might be causing them [23:26:03] I was focused on the suit compressor last time lol [23:26:19] and are they on when the scenario is loaded, or do the come on later? [23:27:45] so they are on when CW is powered up [23:28:12] I am fresh launching now [23:28:17] going to power CW right away [23:30:23] hmm [23:30:26] ok so no lights at first [23:30:43] only FC2 is on MNA right now [23:31:21] So it happens at 3h [23:31:24] -3h [23:32:10] strange [23:32:21] what would kick all 3 on at exactly -3h? [23:33:46] fire up a fresh launch scn (I am using 10) see what happens [23:35:29] Itll be a bit before I can, but I will. [11:47:07] well, I didn't manage to figure out the lights issue last night, but if I have some time this weekend im sure I can solve it [12:04:39] did you see it though? [12:06:23] yes [12:08:08] ok good not just me :) [12:49:21] hmm if I want to make 3 switches work under one class (OOP style) but 2 of them operate valves on a tank and the third operates a valve, what is the best approach? [12:52:19] Hello! [12:58:44] Welcome! [12:58:49] <---Folgers [12:58:56] aka Ryan haha [12:59:53] petriw the best to answer your question would be Niklas (indy91) or Thymo [13:00:06] Nik usually pops in around this time [13:04:33] Great, thanks! Been a while since I used IRC. Feeling a bit nostalgic, but it's slowly coming back. Should I just post it here in the open? [13:06:15] go for it [13:08:17] Roger, just gonna paste it in as :) I'm working on my own space flight simulator named Reentry - An Orbital Simulator project. It's intention is not to be as detailed as NASSP for Orbiter but more of a gamified/generic solution. [13:08:17] However, a lot of Reentry players are introduced to the Apollo CSM and LM for the first time. In the game I have a dedicated training program with a simplified flight manual, as well as up to 30 lessons on how to operate them. In addition, there is a campaign and scenarios that can be used to fly the CSM and the LM. [13:08:18] Many players learn about Orbiter and NASSP through Reentry. As mentioned, my game is not as realistic as NASSP for Orbiter, and being a huge and long-time NASSP player, I want players to discover it and get their knowledge further developed and tested in NASSP. [13:08:19] I'm working on a "learning tier" system, a learning path basically, in-game. Once you have completed some academy lessons, the next tier unlocks includes more things to learn. When you reach the Master-tier, I wish to include instructions and an on-boarding videos to NASSP so they can discover is as part of the training program I offer. [13:08:20] What do you feel about this, and is this something I'm allowed to do? [13:30:05] When Nik and Thymo show up they can digest it :) [13:43:36] hello, as Ryan said probably best to let Thymo and Nik answer as they've been with the project much longer and really have the final say. My own personal opinion is this: I think it is absolutely wonderful that you're interested in pointing people in the direction of NASSP and and promoting the project, it has a long history and is well deserving o [13:43:37] f some more spot-light time. From your perspective, I would make sure that you read the licenses of NASSP, Orbiter, and Orbiter Sound. NASSP is GPL 2, the others are proprietary. [13:47:31] and welcome to our IRC channel, btw :) [13:49:02] Yeah the only hesitancy I have is the fact reentry is a paid product and NASSP is not, so I do not know how that all works in the grand scheme [13:49:26] But I love the idea [14:10:23] Hi petriw, great initiative! I know about Reentry and I've seen a couple of videos about it. I admire what you're doing to make such an important and interesting piece of history accessible to a broader audience. You have my full support to put some words about NASSP into your game. License wise there shouldn't be a problem depending on what you want to do. [14:10:24] If you're talking reading and/or video material you should be 100% in the clear since that is not a derivative work of NASSP and would fall under fair use. It would become a problem if you directly include any material from the NASSP repo (including NASSP specific documentation therein) directly into your game files as those do fall under the GPL. From the way you put it, it doesn't sound like that's what you're planning to do. [14:32:31] Hey Thymo, C++ question for you: hmm if I want to make 3 switches work under one class (OOP style) but 2 of them operate valves on a tank and the third operates a valve, what is the best approach? [14:33:17] I have the 3 suit flow switches in the CM (off, cabin flow, suit full flow) but since I ran out of valves on a tank, one valve is by itself and the other two are on the tank [14:37:39] Do you need a different implementation for each of the 3 switches (CDR,CMP,LMP)? Or do you need 3 switches that switch a different valve depending on the position? [14:39:09] hey [14:39:33] hey Nik [14:39:35] Thank you for the repsone, and for the welcome! :) Yeah, this is just in the design process, but the intension is to basically have a UI where I explain NASSP, and a link to either my own instruction video, or setup instructions on the forum. And then probably make a few "getting started" videos players can follow. [14:39:38] Hey [14:40:13] Thymo, so I wanted to have it so I didnt need a class for each, but 2 of the 3 use valves on a tank and the third uses a valve on its own [14:40:48] I have started something but it wont do what I would like it to do, I could be missing something simple [14:41:51] if all three used the valves on the tank, or independent valves it would work as I have it [14:41:56] petriw: Sounds great. Also do let us know if you need anything from us. :) [14:44:49] rcflyinghokie: Sound like you need a class that implements the switching for the vales on the tank and then create a separate class that overrides the switching logic to use the separate valve instead. [14:44:59] Here's a good example: https://www.programiz.com/cpp-programming/function-overriding [14:45:24] indy91: Any idea what language level NASSP is on? Are we using C++11 yet? [14:45:52] Yes, I will. As I design the system and start coding on it, I can send them your way and we can make sure that NASSP is as best represented as it can, and that the places I refer players to are the best ones, etc. [14:46:19] good question. I don't think so. At least I have personally avoided adding stuff using C++11 only features [14:46:39] Thymo if you take a look at my latest push on my LMECS branch you can see what I started https://github.com/rcflyinghokie/NASSP/tree/LMECS [14:47:02] indy91 you might be able to help as well [14:48:05] indy91: PMed you what petriw said earlier since you weren't on yet. [14:48:19] holy mother of chat log [14:48:35] I probably should get the web logs back up. :p [14:48:54] haha busy morning :) [14:49:10] It's been on my infinite list of things to do for quite some time now [14:50:33] petriw, welcome from me as well :) [14:50:45] haven't had the chance to try Reentry, but seen a bunch of it [14:53:04] nice MOCR screens you recently added [14:56:51] rcflyinghokie: So those valves on the tank are on SuitManifoldTank and the standalone valve is SuitFlowValve? And both those members are used in all 3 instances of that valve? [14:57:41] yes, the standalone valve is because there weren't enough valves free on the tank [14:57:54] what are you trying to do, Ryan? [14:58:28] I am trying to make the suit valves functional in the CM [14:58:42] Right now, not connected to anything but the CM O2 hose [14:59:24] Trying to make 3 valves/switches use the same class, but 2 of the valves are on a tank, the third is a standalone valve [14:59:49] Yes, I will. As I design the system and start coding on it, I can send them your way and we can make sure that NASSP is as best represented as it can, and that the places I refer players to are the best ones, etc. --> petriw: Sounds like a plan. Keep us posted. :) [15:01:12] Its more to be used in the future with CSM ECS improvements, but right now I can use it to open and close the CM O2 hose so I am just doing all 3 [15:03:55] Thanks indy91 :) Ok, sounds good, will do Thymo. [15:05:21] petriw, what did you find as a source for the MOCR screens? The best I could find were pics from the restored Apollo MOCR and the stock footage for a documentary from 1970. [15:06:43] I know the two display formats from this tweet from that video footage: https://twitter.com/PlayReentry/status/1393450303614296065 [15:15:45] if you feel like sharing that sort of stuff. Reentry and NASSP could probably learn a few things from each other. [15:19:42] rcflyinghokie, what do you need the pointer to the tank for? [15:20:05] you just want access to the three valves, right? [15:20:11] 2 of them on the tank [15:20:13] 1 standalone [15:21:26] you could give the new class three valve pointers [15:21:41] you can access them with SUITCIRCUITMANIFOLD:OUT for example [15:21:56] in the GetPointerByString call [15:57:39] morning! [16:00:29] Yes, happy to share anything I can. I have been working with a guy named Paolo on this entire ting, who is the engineer behind the 3D model. He has spent many years researching and recreating the room, and countless hours with me to get things right. I could redirect questions to him or bring him in here if he wants. [16:00:35] indy91 oh nice I didnt know I could do that [16:01:17] I can also get a proper screenshot from each of my monitors (most are based on real things, others are my own as no reference exists, or because of "gamification needs") [16:10:29] Hey guys! [16:11:30] Just doing O2 stratification test on Apollo 7, GET 24:10:00. I found an issue on the VC [16:11:40] (CM VC) [16:12:08] CRYO O2 Press is either off scale, or not updating. On the 2D panel it shows OK [16:12:32] I´ll post it later on the forum [16:16:03] indy91 that worked :) [16:16:15] hey, welcome to the channel petriw! [16:16:40] TurryBoeing: good catch [16:17:47] However, does the stratification test take a long time? I started it at 24:10, I am now on 24:41:30 and I didn´t notice a decrease on my O2 press [16:18:14] Is that normal? my O2 Heaters are off, my O2 fans are OFF [16:20:53] as I recall, doing the stratification test with only 1 person and having it not conflict with the rendezvous, is a challenge [16:21:05] big time crunch [16:21:25] So it takes long [16:21:45] I believe the pressure didnt drop very much anyways during the testing [16:22:41] ah they did a bit for O2 but not H2 [16:23:08] I dont think the modeling of cryogenics is quite detailed enough to allow proper stratification readings in NASSP currently [16:23:55] Aha [16:28:16] the chemistry of that needs a lot of love in code lol [16:30:58] Well, I will terminate the stratification test at 25:30 then, before the fun begins :) [16:31:32] O2 heaters & fans to Auto, correct? [16:31:46] (to terminate the test) [16:32:01] indy91 looks like the O2 hose is working as advertised, can probably use some tweaking as we go but initial results look good [16:32:27] TurryBoeing, Not sure about 7, but probably heaters to auto and fans off [16:32:52] they may have used auto on the fans for 7 I need to look it up, but later missions they usually kept fans off [16:37:13] rcflyinghokie Looks better Heaters auto, fans off, as I have the H2 now... [16:37:21] I´ll take that one [16:37:27] Thanks, Houston [16:44:09] sorry, was afk for a while [16:45:43] no worries [16:46:01] I need to play with pressure and slow a bit but its current state works [16:46:08] *flow not slow [16:46:20] also need connect disconnect logic [16:50:26] TurryBoeing, I think the VC gauge needle have a few minor bugs in general. I've seen offscale or missing needles a few times. Probably something with the limit on the range of each gauge. I'm sure this will get refined over time, VC is still fairly new [16:53:36] indy91Understand [16:53:51] indy91 I Understand * [16:57:08] petriw, yeah I am definitely interested in the display formats. Is that also Paolo's work or just the 3D model for the MOCR? I've implemented a few displays myself, within the limits of Orbiter MFDs. Real: https://i.imgur.com/THJBg90.png NASSP: https://i.imgur.com/gEmw7um.png [18:39:01] rcflyinghokie, fun fact, the CM to LM power connection doesn't work after LM staging. [18:39:19] whoa, interesting [18:39:45] the relays switching the power on are only energized when the LV relays in the descent ECAs are off [18:39:53] they fixed that for Apollo 14 and later [18:40:06] there, after staging, that circuit is bypassed [18:40:46] not sure if that also would have affected LM to CM power, probably [18:42:26] on Apollo 14 only they had a special circuit breaker for the bypass [18:42:51] EMER CM PWR [18:44:17] but later it seems to be automatic [18:44:42] "contact pins in electrical circuit interrupter actuated upon stagin" [18:44:45] staging* [19:41:02] ah good find! [19:41:23] man another reason 13 would have been screwed if they decided to lose the descent stage for any reason :P [19:42:47] I need to look into it a bit more though actually, just thinking about it I dont think those relays in the LM were necessary for LM to CM power [19:43:30] and the xlunar ties were in for that as well so the floating ground was shared between the -bus and xlunar bus in the LM [19:44:30] as long as the connection could be made between the switch in the CM and the CDR 28V bus with a return path to the LM -bus, power would flow [19:46:18] not at a schematic right now, but which circuit was bypassed after staging? the one that connected the CM and LM busses? [19:50:19] for those relays K3 and K4 to be on it required the LV relays in all descent ECAs to be off [19:50:49] so there is a wire going to the descent stage, through the ECAs and back [19:51:27] you can see it good in AOH Volume I figure 2.5-11, old and newer version [19:51:54] it bypasses the wiring to the descent stage [19:58:33] ahh [19:58:41] yep [19:59:22] which is why the ascent bats were put on the line for 13 [20:00:05] to allow the des bats to be turned off [20:01:22] I think I can fairly easily implement the bypass [20:01:27] the Apollo 15-17 version [20:01:33] not the 14 one with the CB [20:01:41] was the cb only in LM-8? [20:01:45] I think so [20:01:49] it's not on Apollo 15 [20:01:57] or 13 [20:02:01] :P [20:02:09] Apollo 14 mission report says it got added then [20:02:22] yeah its on the LM-8 handbook as well of course [20:02:36] which page of the handbook? [20:02:46] stand by getting to my computer [20:02:50] "A circuit breaker was added to the lunar module to bypass the command module/lunar module bus connect relay contacts for transferring power between vehicles after lunw ascent and docking. The command module/lunar module bus connect relay control circuit is interrupted at lunar module staging." [20:03:27] thewonderidiot, the panel overview in the LM-8 Systems Handbook [20:03:35] thewonderidiot, you can find it on pdf 58 for starters, its also added to the cb panel overview [20:03:48] EMER CM PWR [20:03:52] and 5.1 electrical overview, F9 [20:04:23] the LM-8 Systems Handbook sadly misses the detailed DC power schematic [20:05:12] hmmm interesting [20:06:08] the flown DC power schematic from Apollo 15 has the automatic version [20:06:24] that closes a contact in the circuit interrupter and then the wiring to the descent module is bypassed [20:06:42] thewonderidiot, it was tacked onto the bottom right of panel 11 [20:06:57] back in a bit [20:07:19] Apollo 15 had a CB there as well [20:07:30] but it's PROPUL: DES He REG/VENT [20:07:58] the references page still lists LDW 390-54000 [20:08:07] so I wonder if they got lazy and didn't update that or something [20:08:26] https://readux.ecds.emory.edu/books/readux:scprn/pages/?page=2 [20:08:57] the Grumman elementary schematics also has both versions [20:09:04] well [20:09:06] 2/3 I guess [20:09:10] maybe it even has the 14 one [20:09:14] have to search for it [20:09:56] old version NTRIS ID ending on 891, page 376 [20:09:58] NTRS* [20:10:14] Apollo 15 and later: NTRS 889, page 291 [20:11:48] ohhh [20:11:57] what's the drawing number on those pages? [20:12:02] LDW267-xxxxx? [20:14:23] LDW267-57004 [20:14:37] and [20:14:44] LDW267-60004 as far as I can see [20:14:49] for the Apollo 15+ version [20:14:58] cool yeah that tracks [20:15:00] but both are "EPS Prelaunch & CM Control" [20:15:43] the CB list there has EMER CM PWR [20:15:47] thanks! [20:15:48] revision C of that page [20:17:10] unfortunately we don't have anything from NARA for that [20:20:26] the only weird thing is that the Apollo 15 mission report doesn't directly mention the change [20:20:39] removal of the CB and the solution with the circuit interrupter [20:20:49] otherwise I think it's fairly clear which mission had what [20:21:16] Apollo 13 at least had no EMER CM PWR CB [20:22:43] I wonder what LM-9 has... [21:21:31] night! [13:33:08] good morning [15:45:45] hello [16:14:12] hey [16:19:20] morning! [16:31:11] what's up? [16:33:33] still waking up haha [16:33:44] going to scan this Apollo Electrical Installation manual in a bit [16:35:39] what are you up to? [16:36:16] I added that the CM to LM power connection is mission specific [16:36:33] the circuit bypass so that it works after staging, for Apollo 15+ [16:37:13] and I'm currently checking what sort of connection that circuit has to the descent stage [16:37:23] it doesn't seem to be the electrical circuit interrupter [16:37:32] the symbol for that is missing in the Systems Handbook [16:37:54] what I might do in the future is to change some of the checks if the descent stage is still there [16:38:04] stage == 2 means ascent stage [16:38:19] so lots of checks in the code are "if (stage < 2") [16:38:55] but we do have code for the actual circuit interrupters and the umbilical cutting [16:39:07] so maybe I'll rather make it check on those [16:39:51] eventually the two stages could be separate vessels in Orbiter [16:40:10] so there would be no stage variable [16:41:01] yeah makes sense [16:41:34] mainly for future proofing, the connections are cut 50 milliseconds before staging [16:41:54] so not really much time where the electrical connection is cut [16:41:58] but the stages are still together [16:47:25] I feel like the Systems Handbook is misleading me though [16:47:58] at the ascent/descent interface it has symbols with a D in it and with A1 or A2 in it [16:48:21] A1 and A2 are the circuit interrupters, on the ascent stage side [16:49:30] and sometimes the part on the ascent stage is missing [16:52:50] ah ok, it isn't needed for all wires [16:53:05] the circuit interrupters remove the electrical connection before the cables are cut [16:53:30] but return signals don't need a second electrical interrupter [16:53:49] just need to be cut as the other wire, going into the descent stage, is also interrupting the power [16:53:56] already* [20:14:11] extremely in the weeds, but I'm very excited about pdf page 15 :) [20:16:23] the chapter title pages are great [20:17:54] did we not know the drawing number system before? [20:18:57] not from NAA! [20:19:13] we knew the Grumman and MIT drawing numbering but NAA's has been a mystery to me [20:58:26] night! [22:35:40] Man I almost forgot how much I did NOT miss working on concurrency problems. [00:18:47] oh man, do I hear you offering to help me fix my systems-SDK multithreading experiment? [00:24:17] what are you working on? [00:26:19] I need to simulate a supermarket in C for an Operating Systems course I'm taking. Carts, scanners for self-checkout, cashiers, etc. are all semaphores. [00:26:55] I've done similar stuff a couple years ago but that was all in Java. Same concept applies, it just takes some figuring out. [00:27:44] Thinking about how to nicely print stuff to the console from each thread without them writing at the same time. [00:27:52] Probably more locking. [01:00:36] Sounds like fun [01:01:00] It's been a very long time since I've touched C [11:40:24] nick n7275 [21:03:33] Pretty quiet day today [21:10:20] afternoon! [21:10:23] yeah not a lot going on [21:10:52] I'm looking at LEDs and failing miserably at understanding the various brightness units [21:10:59] and don't even know how bright I want this little board to be in the first place [21:11:06] so I think I might just have to build one and see [21:12:43] There's a ton of different units for light. Usually it's best to just try some and see what looks best. [21:13:47] yeah. I feel like I'm going to end up with several iterations on this PCB [21:14:07] not sure if one LED is going to be enough for even lighting, for example [21:14:38] You could add some unpopulated pads and add them as needed [21:17:59] hmm, but how many, and how to arrange them [21:18:10] decisions, decisions [21:31:36] This might be a stupid idea but depending on how many different arrangements you want you could add little strips that snap off with different layouts that you then solder on top of the PCB so you can sort of swap them out. [21:32:16] No idea if that would even work well or be easy to solder but might be worth it if you want to try a bunch of configurations [21:36:29] Like this: https://electronics.stackexchange.com/questions/35625/soldering-pcbs-directly-together [21:38:42] ah, I don't have the vertical clearance for that, and am only working in a ~12mm by 12mm space [21:38:54] this is just going to be like, one or two 0603 LEDs [21:39:01] and ideally just one arrangment [21:41:01] this is essentially an LED replacement for the tiny electroluminescent panel inside the DSKY buttons [21:41:42] Oh yeah, that'll be tight. [22:18:27] hah alright so [22:19:29] I found a tiny PCB that I designed forever ago and haphazardly soldered an 0603 LED (green, since I don't have white), a resistor, and some wires to it [22:22:14] Haha. how's the birghtness? [22:22:47] https://i.imgur.com/owuLEMV.png [22:22:50] I'd say it works pretty well :D [22:23:42] yeah just the one LED should be fine [22:23:44] Looks great. I'd pick that [22:25:38] man I am so happy with how these keycaps turned out [22:27:02] Sure looks nice. You have the button mechanism working also or is it just the keycap? [22:27:20] the button mechanism is _almost_ there [22:27:47] the only thing that's missing is the leaf spring that actually presses the button on the microswitch [22:28:13] so you can press it, and it should feel very accurate to the original in terms of travel and force [22:28:22] it just doesn't actuate the switch quite yet [22:28:37] I'm still working out the perfect thickness of spring steel to use to form the leaf spring [22:28:52] Sweet. What's that gonna be like? Linear or more clicky? [22:29:04] it's linear [22:29:39] just a compression spring in there with stops for the vertical travel [22:30:08] having pressed buttons on a few real DSKYs, I can tell you that they are also linear -- I never really felt the action of the leaf spring [22:38:03] hey guys [22:38:27] yo [22:41:45] Hey [22:43:13] mike, I remember seeing a screenshot from you of some vim highlighting that you were using for the punched cards for pyul, was that yours? [22:43:48] yep! [22:45:05] https://gist.github.com/thewonderidiot/f8ca3456ca6282c317eb7f4e041cb904 [22:46:45] in conjunction with this to set up the columns and tab spacing: https://gist.github.com/thewonderidiot/c34902df8a5c4b602f7949c0dab384e2 [22:47:17] and then I have this macro saved for @n: [22:47:28] 0lv7|yjv7|p0l|7|l [22:47:38] (where that weird character is ctrl-A) [22:47:55] oh awesome [22:48:18] that yanks the punch card number on the current line, moves down to the next line, increments it by one, and pastes the result into the correct columns [22:48:48] that's how I do initial punchcard number assignment when I'm translating the yaYUL formatted code into punchcards [23:01:47] well thank you! I was considering writing my own vim file for punched cards, and then I remembered yours. [23:02:21] sure thing! :D [23:02:29] what are you working on? [23:05:21] I've taken a recent interest in some old ibm stuff, 7090/7094 and ibsys. I have the simH version running fortran IV jobs, but i want to see what else i can do with it [23:05:46] nice! [23:07:38] writing a NASSP telemetry processor (from tape, not real time) might be fun, and would certainly give it a workout [23:08:00] oh man yeah that would be awesome [23:13:54] Do we have the source of the AGC sim they used back in the day? You could add to the challenge and let that simulator generate telemetry for you and decode that. :p [23:14:09] not Block II [23:14:31] we have a (partial?) sim for Block I in the Yul listing [23:16:08] I have not ported that to pyul yet though lol [23:27:21] I'll have to look into that.