[18:17:55] NASSP Logging has been started by alexb_88 [18:17:57] animating the hatch today [18:44:04] looks like freenode had a bit of a hiccup [19:08:07] merged the PR from ggalfi [19:14:43] awesome [19:15:28] nice! [19:46:30] that's a lot of vibrations during launch [20:06:07] indy91, did you get [20:06:08] 7>c:\orbiter14\orbitersdk\samples\projectapollo\src_csm\saturnvc.cpp(1593): warning C4101: 'tmpoffs': unreferenced local variable [20:06:25] yes [20:06:32] how dare he add a build warning :D [20:07:34] but he also introduced another Apollo 13 quote so its all good :D [20:12:44] it is a lot of vibrations, but I think it lines up with what astronauts reported in reality [20:13:05] wouldn't want to try and flip any switches in the first few seconds after launch [20:13:09] but afterwards it's ok [20:21:39] yeah [21:58:35] night! [14:41:38] hey [14:46:54] hey Matt [14:56:16] I'm implementing the AGC equations for the RTCC reentry simulation [14:56:20] it's a lot of equations [15:10:13] yeah, I bet [15:11:58] I've never looked at our CM aerodynamic tables, but I imagine those are just arrays of cl, cm, and cd from one of the data books? [15:12:32] basically, yeah [15:12:42] it was a long time ago when I did some tweaks to them [15:15:04] my academic background is actually in aeronautical engineering, so I get excited about stuff like that. [15:26:06] same [15:26:17] the model for the CM is a bit simple, but does its job [15:26:29] the only problem right now is roll resistance [15:26:39] have to turn that down, because a rolling reentry doesn't work [15:26:46] the roll rate gets slowed down too much [15:29:41] would be a very easy change, but I never found any number on that [15:34:33] what file is that in? [15:37:39] CMCoeffFunc [15:37:43] in saturnmesh.cpp [15:37:50] is the aerodynamic coefficients [15:38:18] SetRotDrag is the function that does the resistance to rotation [15:39:14] there are also functions for the launch escape vehicle (CM+LET) [15:39:22] boy did I search long until I found those [15:39:29] or something usable at least [15:39:42] reminds me, we still don't animate the canard on the LET [15:59:26] stepped away for a sec. back now. [16:15:35] yeah, that a hard one to estimate [16:17:17] not a complicated shape, but flow conditions are rather extreme [16:19:23] morning! [16:22:47] hey mike [16:43:05] what's up? [16:48:54] hey [16:49:51] hey Alex [17:02:45] oh, not too much. [17:02:51] hey alex [17:09:20] indy91, vI added the AnimState2 to Saturn class [17:09:23] I* [17:09:30] the side hatch is animated with it [17:25:59] hey guys [17:26:15] by adding you mean added animations.h to the Saturn VS projects? [17:39:55] oh, my RTCC simulation of AGC entry guidance hit the landing target within a mile! [17:40:07] I thought I would have to do days of fixing things... [17:43:10] and I already saw something interesting. There was a change in the AGC, some parameters in the final phase table. Apollo 11 and before overshoot the target in my simulation [17:43:23] While with the parameters of Apollo 12 and later it's undershooting [17:44:56] indy91. to the projects [17:45:02] yes* [17:47:54] oh interesting [17:47:59] the other things is the rotaries that are on the hatches, I couldn't define their animations the normal way [17:48:36] instead, I put those animations directly in the class of the Side Hatch/Forward Hatch [17:49:03] the reason is that those animations have to be a child of the main animation (door animation) [17:49:40] so they really have to be defined together [17:50:36] and nice to hear about the RTCC sim accuracy! [17:51:24] having the animation in the class makes a lot of sense to me anyway [17:51:50] there were two changes, but only one really affects the final landing point [17:52:01] I'm sure we get similar behavior [17:52:19] I'm using the Apollo 15 CM aerodynamic model, could affect things as well [17:53:15] thewonderidiot, fun fact, to simulate the astronaut flying a constant G level during reentry manually they took some parts of the constant drag routine from the AGC and put it in the RTCC sim [17:53:37] hah that is fun :D [17:56:02] so this is going up for auction again next month: https://www.worthpoint.com/worthopedia/apollo-lm-acg-sundance-mit-manual-1840156163 [17:56:16] as are LM-4, CSM-108, and CSM-113 operations handbooks (all volume 1) [17:57:15] a J-mission Volume 1 would be nice to have [17:58:32] alright, I'll focus on that one :) [18:00:05] don't spend any money on my behalf, I'm just saying it would be nice to have a PDF of one :) [18:00:23] I've been wanting a CSM AOH copy anyways [18:00:57] 20160014402 Apollo Operations Handbook: Lunar Module 4 1968 [18:01:04] restricted NTRS [18:02:24] of course any documents with those numbers (and there are a bunch with 2016+) it's a bit pointless to search for an archived version from 2010-2011... [18:02:35] yeah [18:06:33] 19800078134 Apollo operations handbook. Block 2 spacecraft. Volume 1: Spacecraft description 1971 [18:06:54] there is no way we wouldn't be able to get this on the public NTRS [18:07:06] the AFJ is hosting the earlier version of the AOH from 1969 [18:07:36] oh nice [19:20:10] hatches: [19:20:11] https://www.dropbox.com/s/j916mdpfj82j18l/Screenshot%202021-03-26%2013.19.40.png?dl=0 [19:20:21] https://www.dropbox.com/s/pdulju9y5xn7ehd/Screenshot%202021-03-26%2013.18.57.png?dl=0 [19:26:01] those look great! [19:26:34] what are your plans for the open-hatch, docked state? [19:28:22] if you are docked and the hatch is open, it will show the drogue of the LM [19:28:57] and if the LM overhead hatch is open, then you will see the inside of the LM [19:29:14] if thats what you were asking? :D [19:29:50] its basically the same as in the 2D panel [19:30:54] okay, cool. [19:31:15] I have to update the interior of the external view LM mesh [19:31:43] that way you will see more detail from the viewpoint of the CSM looking through the tunnel into the LM [19:33:12] what I am thinking of doing is taking parts of the LM VC and adding that to the external view ascent stage mesh (no switches, just a few panels and details) [19:33:41] that will also make you see a bit more detail if looking into the LM from the external view through the windows [19:38:56] does orbiter have a switch to vessel function? I feel like it must. wonder if we could do that with a click spot [19:40:37] yeah I think AMSO does that [19:40:52] Im sure it can be done with a clickspot [19:41:17] yeah there is a function for it [19:43:19] also, I have been looking for a way to use a click-spot to switch to the 2D panel in a specific view, i.e. for accessing the 2D panel optics from the VC [19:44:00] but I dont know if its possible to switch between 2D/3D panels other then with F8 [19:49:56] hmm [19:50:07] I'm only seeing a function to get the current cockpit mode, but not to set it [19:51:14] yeah [20:29:41] know anything about this custom camera thing https://www.orbiter-forum.com/threads/d3d9client-development.16787/post-579330 [21:09:25] COAS https://www.dropbox.com/s/emxboyxyld4s4lt/Screenshot%202021-03-26%2015.09.13.png?dl=0 [21:22:50] awesome! [21:39:16] fancy [21:41:46] maybe I can even get the COAS switch to turn the reticle on/off [22:02:41] night! [00:42:36] https://www.dropbox.com/s/s27vfxwl8p9m29q/Screenshot%202021-03-26%2018.42.09.png?dl=0 [00:42:39] this is fun! [01:25:53] how are you doing this so quickly? this is amazing. [01:28:33] jsut loads of time really :D Im on call at work, but their not calling me haha [02:01:36] oh, so the forum thread I posted earlier. I'll have to look into it a bit more, but as I understand the d3d9 client api, there is a way to draw a "camera view" on a texture. I wonder if we could do that for the optics. [02:53:46] n7275, sounds interesting for sure [02:55:53] optics right now are probably the only thing I don't have a grasp on how to make for the VC [03:18:00] luckily we have all of the engineering drawings for the optics ;) [03:45:56] gcAPI.h has all the fun stuff in it [03:59:31] gcSetupCustomCamera() oh boy, what can I break with this... [04:32:47] just did a full TD&E from the VC with the new COAS :) [04:33:07] much more fun then it was in the 2D cockpit [04:33:53] don't forget the COAS power switch, it actually does something now! [04:35:21] will have to check that out asap [04:35:39] later tonight, ill push my latest [04:35:51] is it pollinated [04:35:58] *collimated [04:36:05] haha [04:36:17] oops [04:36:35] damn phone [04:36:41] its not projected as it should be unfortunately [04:39:02] the reticle mesh ideally would have been placed further out in front of the CM, and made so its only visible when looking through the glass part [04:39:20] I guess like an HUD or HGS system is [04:42:26] I couldn't get that to work unfortunately as I don't think Orbiter has a way to get the current view angle which I would need [04:45:01] i.e. oapiCameraAzimuth, but that only works in oustide view [04:47:23] hmm, yeah that's a tricky one. [04:47:52] as long as the view position is fixed though, that should be fine. [04:48:21] yeah [04:51:28] I could restrict the camera rotation range..but the downfall is you wont be able to do other stuff that panning around would allow you [04:52:41] and the COAS can be stowed, so that view can be used for other stuff...so I dont think Ill restrict the camera [04:54:42] this view sort of show how I did it: [04:54:43] https://www.dropbox.com/s/avoltsea10k5897/Screenshot%202021-03-26%2022.54.16.png?dl=0 [04:55:26] I wouldn't say its properly collimated, but if you're looking at it centered then the effect is the same I think [05:09:22] ahh, nice. [07:40:34] n7275, latest state pushed [07:40:40] night! [13:38:52] good morning [13:40:20] hey [13:44:34] I think I'm sufficiently confident that my PR won't break anything at this point. if theres anything else you think should be cleaned up, let me know. [13:48:49] ok, I'll take a look [13:55:25] one last discussion of this whole loadResistance/power_load thing [13:55:49] is the fuel cell code the best place to decide how much of a power draw each system does with voltage? [13:55:55] I'm pretty sure our batteries don't do that [13:56:30] so with load sharing and the batteries being the ones powering the CSM the amount of energy required for the same power load is different [13:56:34] hey [13:56:38] hey Alex [13:57:16] so I'm pretty sure we are violating some laws of physics [13:58:38] I would have a better feeling if we were still doing calculations based on the actual power draw [13:58:48] and then maybe do a change to all systems delivering the power at once [14:02:40] I'll have to give that some thought. [14:03:25] sure. Otherwise the PR is in a good state I think [14:03:40] I have more philosphical problems left with it than code problems :D [14:06:01] the batteries are a good point. [14:10:05] I think philosophically the change I'm making is. changing DrawPower( double watts), to DrawPower(double impedance_times_current_squared) [14:14:58] assuming that the impendance is a constant value [14:15:15] which is probably a better assumption than with the power load?! [14:19:17] yeah, assuming impedance is constant. two cases where this might not be true: tungsten filaments at wildly varying temperatures, and loads with inductive or capacitive loads, where we'd be changing the frequency substantially [14:24:57] sounds like a good assumption then, as we shouldn't have anything that varies as wildly as that [14:27:12] yeah, anything like that we'd need something like PSpice for, and definitely couldn't do in real time [15:28:21] I have basically the whole day tomorow free, so I'll take a hard look at the load sharing with the batteries. [15:30:46] sure [15:31:11] but for your PR, please don't make a big change to how our batteries work [15:31:23] if anything make that a separate PR later on [15:32:21] indy91, new COAS is done, I flew a few TD&E's yesterday with it [15:32:34] https://www.dropbox.com/s/s27vfxwl8p9m29q/Screenshot%202021-03-26%2018.42.09.png?dl=0 [15:33:08] looks awesome [15:33:24] and don't think you can get away with forgetting the COAS power switch now :D [18:43:52] in the VC, the ORDEAL altitude rotary does not need to paint the altitude anymore, since the rotary can display many more states of rotation [18:44:31] it just rotates smoothly around now [18:53:03] awesome [18:53:38] listening to RETRO at T-4 hours. I'm trying to find when he is calculating the Block Data 1 PAD that each mission launch with, even lunar ones [18:53:50] launched* [18:54:25] he just said he wants to do some weight and aerodynamic parameter updates, so I think that would come right after [18:54:34] the more numbers he says on the loop the better :D [18:56:13] the logistics behind that PAD have to be interesting [18:56:23] Houston calculates it after T-4 hours definitely [18:56:30] and it somehow ends up onboard [18:56:50] the examples we have are neatly handwritten, so probably not some astronaut doing it while suiting up :D [19:01:57] yeah [19:02:38] I would probably be refused at NASA just based on my handwriting [19:04:46] so I was thinking of making some keyboard commands for the ORDEAL slew switch [19:05:18] since we cannot really cheat in the VC the same way as the 2D panel and have both ORDEAL and FDAI visible at once [19:05:58] how did that work in reality [19:06:13] wasn't the ORDEAL stored somewhere for launch and then put somewhere else? [19:06:29] it is kind of possible in the CM to zoom all the way out and have part of the ORDEAL visible while looking at the FDAI, but thats really awkward [19:07:29] https://www.dropbox.com/s/fqhq21vp9wg80fs/Screenshot%202021-03-27%2013.06.42.png?dl=0] [19:07:40] I think thats the only place it goes [19:08:02] but in reality, its very easy to use the switch while looking forward at the FDAI [19:09:10] I guess that is where the ORDEAL is mounted [19:10:04] ah wait [19:10:09] there is a way I think [19:10:28] you can click the switch in a way to hold it up or down [19:10:46] then quickly turn the view to the FDAI [19:14:27] sounds awkward [19:14:36] no wait [19:14:45] sounds like an ordeal [19:15:16] a bit lol [19:23:11] "That's when Clint Burton [Apollo 10 EECOM] went ahead and had the waste tank [in the CSM] dumped to zero to find out what the zero point was" [19:26:38] I guess related to this [19:26:39] 007:31:47 McCandless: 10, this is Houston. Understand that. Would you be interested in showing a water dump? We're having some problems with the waste-water transducer and we're interested in dumping down to zero to verify the transducer. Over. [19:31:46] NARA has the programming manual for the Apollo Block Data Program, likely having all the calculations of it. A bit better than the user manual, but out of reach for now I guess [20:08:26] indy91, you're right about the batteries. something weird is going on. [20:11:19] they're not sharing load, they're fighting each other. [20:11:48] hmm [20:11:54] load sharing is based on voltage [20:12:00] is the voltage instable? [20:12:06] and it shifts load back and forth? [20:15:38] I think so. will take a fair amount of debug strings to figure out for sure [20:16:21] the fuel cells do not have diodes on their output, but the batteries do [20:18:45] if the batteries were an ideal voltage source, that didn't drop in voltage with increasing current, then that would result in reverse current through the fuel cells [20:19:24] but they're not, thankfully. [20:29:19] all the work you put in for the FC voltages and the batteries are screwing it up, qute annoying haha [20:32:29] indy91, so im down to the last thing to animate in the VC, the altimeter [20:32:48] which I am wondering where to place the animation [20:32:56] hmm [20:33:09] the function for it is RedrawPanel_Alt in staurnpanel.cpp [20:33:24] that should probably be moved to its own class, including the 2D panel [20:33:28] 2D panel redraw [20:33:44] right [20:33:56] any idea where that class would go? [20:34:03] satswitches [20:34:23] all the meters are there, too [20:34:33] if you have to add it to the Saturn class and we can move it later [20:35:24] haven't found the Block Data calculation, but RETRO set up some init parameters for the RTCC deorbit calculations [20:35:34] including that LVLH attitude [20:35:47] 0° roll, -48.5° pitch, 180° yaw [20:36:37] -48.5 is very close to what I had to put the 31.7° on the horizon, for 150NM altitude [20:37:20] I get the feeling that the nominal deorbit solutions might come from the RTCC, but the Block Data (as the name says) comes from the Block Data Program [20:38:55] I guess it would be derived from SaturnRoundMeter [20:39:52] I mean, you don't have to derive it from anything at first [20:40:11] basically just a class that only has RedrawPanel_Alt as a function [20:40:17] and then add VC stuff to it [20:40:40] ah, right [20:41:12] hmm [20:41:17] why is there RedrawPanel_Alt and RedrawPanel_Alt2 [20:42:29] if only stuff like #define ALTIMETER_X_CENTER differs then you could make two instances of the class, with those defines as Init parameters [20:42:47] classic programming challenge [20:49:35] ah because the docking window version is bigger [20:50:51] hmm [20:51:07] but it wouldn't be right to have that as two instances of the class [20:51:11] as it's only one altimeter [20:51:19] I can just add the 2 function to 1 class and call each separately from the respective AID [20:52:06] sure [21:00:12] so public: nothing? [21:00:57] for the class I made "Altimeter" [21:01:40] or should that be SaturnAltimeter [21:01:57] what do you mean public nothing? [21:02:50] class Altimeter [21:02:57] without the : public after [21:03:20] oh, yeah, it's not a derived class (at least right now), so it does't need that [21:03:54] I guess I need to give it a pointer to saturn [21:03:59] yeah [21:08:47] DrawNeedle in saturnpanel.cpp also needs to be accessed [21:09:13] does anything else need that? [21:09:21] maybe you can just move it into the class [21:09:46] yeah I think its only the altimeter [21:10:27] yep [21:28:43] ok I will test the class and make sure I didnt break the 2D panel version lol [21:29:00] then I will add an animation function to it [21:33:46] damn CDT [21:33:50] CTD* [21:35:50] ah I forgot to pass the saturn pointer in the init function [21:38:55] classic mistake, I've done it many times [21:45:49] afternoon! [21:48:49] hey [21:49:29] wait, it's afternoon here too. what sorcery is this [21:50:14] hahaha [21:51:39] hey Mike [21:53:11] rrauction space auction preview is up, and I was exactly wrong -- all three of those AOHs are volume 2 [21:53:25] hmm [21:53:32] don't need that as much :D [21:54:12] if you want to sink some money I have a NARA document with many pages to be scanned haha [21:54:28] hehehe [22:32:07] still listening to MOCR audio, I like how they refer to the switch position for the FDAI that powers both FDAIs (1/2) as "one half" [22:32:18] that means 1 AND 2 not one half :D [22:34:10] that's a very odd way to refer to it [22:34:17] lol [22:34:34] well it's the prelaunch checklist they go through with the LCC personell [22:34:41] they probably don't know better [22:35:00] it is unambiguous what they mean :P [22:35:45] hmm [22:35:58] doesn't the switch say "Both" instead of "1/2"? [22:36:08] ah no [22:36:13] they mean the FDAI select switch [22:36:17] that one says 1/2 [22:36:32] still means 1 and 2 of course [22:49:05] night! [12:05:25] good morning [12:11:24] hey [12:21:42] I have the whole day and virtually unlimited coffee. Let's see if I can solve this battery thing [12:26:13] haha [12:26:50] So the main issue is unstable voltage and load being shifted back and forth between FCs and batteries? [12:44:00] yes [12:45:09] What's odd is that the fuel cells don't do this do each other, even if there's 3 of them on the same bus, and they're at very diferent temperatures [12:45:15] have you tried the version where the power load is constant instead of the load resistance? [12:52:47] haven't yet, still thinking of the best way to do that and still keep a model that outputs voltage, as a function of temperature and current. and still maintain conservation of charge with the fc chemistry [12:53:23] hmm [12:54:45] may have something [12:54:49] one sec [12:57:09] if (batPower.Voltage() > fcPower.Voltage() + .7) // diode bias [12:57:10] busPower.WireToBus(2, &batPower); [12:57:11] else if (batPower.Voltage() < fcPower.Voltage()) [12:57:12] busPower.WireToBus(2, NULL); [12:59:17] with the battery bus tie on, voltage is oscilating between the on/off state of our diodes [13:11:34] https://download.datasheets.com/pdfs/2014/8/7/0/50/21/252/njs_/manual/16521n3288r-1n3297r.pdf [13:21:02] what is the normal behavior for the load sharing? I think I remember the CSM Data Book having a bunch of graphs [13:28:47] it does, looking now [13:36:38] https://drive.google.com/file/d/1QmohDcDj2l34MpGwcyZMWzRUukkPO3zK/view?usp=sharing [13:41:07] hey Ryan [13:54:09] so indy91, two things, I think our entry batteries need our CM batteries might need a few parameters adjusted a little, and the diodes need a soft-voltage drop rather than on/off [13:54:19] morning [14:12:28] hey Ryan [14:12:40] wow, I butchered that last sentence... [14:12:58] doesn't sound too big of a change, and the batteries can use some adjustments anyway [14:14:32] the last time they were modified was 2006 [14:24:13] I'm still wondering what leads to the bad behavior [14:24:30] fuel cell has all of the power load [14:24:39] you switch the batteries on the bus [14:24:46] battery voltage is higher [14:26:21] DCBusController has a NWayPowerMerge [14:26:32] which splits up the power load based on voltage [14:27:06] the battery now has some of the power load, meaning the power load for the fuel cells is lower [14:27:14] fuel cell voltage increases [14:27:28] enough to not have the batteries being used at all [14:27:38] is that how it works? [14:29:36] this probably happens because the fuel cell voltage is now a bit lower than before in general [14:30:00] not much, but that + 0.7 V as the diode bias was probably adjusted for the old behavior [14:30:19] it's the 0.7V that's causing the issue [14:30:33] so the power load being kept constant in the fuel cell code (instead of the load reistance) probably won't help much with the behavior [14:30:49] nope [14:30:58] it's just voltages being closer now [14:31:22] did it even use the batteries with the old behavior? [14:31:44] I'll have to check, I'd imagine it did [14:32:21] wouldn't that mean the FC voltage was lower before? Maybe I didn't see that right [14:32:58] yes, it was fixed at 28.8V [14:33:19] ah right [14:33:19] and the batteries are 37.5-ohmic losses [14:33:25] larger gap [14:44:17] well, diodes are not particularly dificult to model [14:47:27] rcflyinghokie, I'll trade you a diode class for an accumulator class. [14:47:34] haha [15:30:59] well I have mostly stabilized the glycol pressures [15:31:18] but the accumulator just isnt doing what I want when i add it in [15:33:58] ...and I shouldn't count my chickens before they hatch, with this diode thing. [15:34:19] I have been experimenting with volume changing code but I cannot get it to work, I think its just my weak C++ [15:35:15] trying to use while loops [15:37:03] but sadly I cant get orbiter to launch with my attempts lol [15:42:46] did you try making it really big to see if it's a timestep issue? [15:43:49] I mean orbiter wont launch at all [15:55:21] oooooh. that's not good. [15:58:25] hey [16:02:17] afternoon [16:04:36] hey alex [16:15:00] ugh dilemma [16:15:36] smaller valves help stabilize the LM glycol..however now the pressure doesnt drop very fast when I turn a pump off and I cannot get auto transfer to work :( [16:39:10] very much open to ideas lol [16:42:55] doesn't sound like an easy task to stabilize that ECS! [16:45:02] its not [16:46:20] I have it stable right now with pumps on or pumps off [16:46:34] but the problem is the pressure decays so slowly due to small valves [16:46:39] morning! [16:48:14] hey Mike [16:48:29] rcflyinghokie, I see [16:49:04] yeah haha [17:06:17] rcflyinghokie, so you're adding a constant 0.001*dt per timestep to the volume? [17:08:40] what if you make that 0.001 a function of (5.6-target_pressure) [17:10:22] and then say if(5.6-target_pressure>max_dVdP){dV = max_dVdP) [17:10:31] *} [17:11:29] not quite following [17:17:39] but before I go further I need to work this glycol loop more [17:36:06] takes a minute 45 for the dP light to come on [17:37:04] could that be due to the "stabilizing" code? [18:04:31] indy91, "Implement reentry numerical integrator" Is that something that can be used already by the RTCC MFD? [18:52:07] not yet [18:52:29] but it's the method that will generate the numbers for the Entry PADs that are still missing [18:52:46] blackout begin/end, better EMS initialization [18:53:22] and it's used for deorbit and return-to-Earth calculations [18:53:29] and displays [18:55:21] the Gemini reentry simulation calculates the blackout times at fixed heights, probably have to use something smarter for Apollo, probably isn't the same for lunar vs. Earth orbit entry [18:56:18] indy91 can you explain that LM ECS "stabilizing" code? [18:57:27] hmm? [18:57:29] what is that? [18:57:45] Alex said you put something in to stabilize the ECS? [18:58:05] looks like in the glycol pump controller [18:58:10] uhh [18:58:16] autotransfer counter? [18:58:19] I only know the stuff early in LEM::SystemsInternalTimestep [18:58:30] at the top of* [18:58:43] Oh is this not new then? [18:58:44] //To make this more stable with time acceleration and panel changes [18:59:08] hmm [18:59:19] lm_ecs.cpp line 1192 [18:59:34] that might even be older than running the system timestep multiple times per simulation timestep [18:59:36] let me check [19:00:16] https://github.com/orbiternassp/NASSP/commit/16aa849c0c142ebdd805497492c9ad3bc8a95beb#diff-fb1953d8151a2ff011acef81cd8935e625985adb57224b33cf7866359e2e82d6 [19:01:22] so what is that doing exactly [19:03:19] oh that was a commit from Alex [19:03:31] https://github.com/orbiternassp/NASSP/commit/748f533a4704a57b3a92cde5218256b9fa11e85e#diff-14c908ec5d7aeb045ddf43064037158ba2ba62982c93a90b1c582d0cb6b5ffde [19:03:56] the counter came a day later, weird [19:04:42] well what it does is prevent pressure fluctuations to cause the auto transfer [19:04:45] well I have the pressures in a pretty good state right now [19:05:23] before that commit, if the pressure was low for just one timestep, the auto transfer would happen [19:06:03] so that commit made it so the condition for the auto transfer has to exist for 20 timesteps before it would actually transfer [19:09:00] if the pressure was stable and doesn't randomly drop then it wouldn't be needed [19:09:17] it drops a little but like +/- 1psi right now [19:09:19] at 30x [19:10:22] I guess even with the code change to stabilize the whole systems timestep (including the ECS) that auto transfer relay still tended to transfer [19:11:05] and that's probably what Alex talked about, not the glycol auto transfer specifically [19:11:07] yeah I think I have that issue resolved [19:13:03] the problem now is it currently takes 24 seconds for the pressure to drop enough for the dP sensor to trigger [19:13:17] I am slowly increasing valve sizes [19:13:43] hmm, right [19:13:51] but I doubt that counter plays much of a role in that [19:13:59] no it shouldnt [19:14:00] 20 steps is a very short time [19:14:11] yeah this is all about flow [19:14:25] the change is almost 2 years old, but did we ever tell you what we did to stabilize the whole LM ECS? [19:14:35] nope [19:15:30] it runs the whole systems timestep function multiple times in one timestep [19:15:36] so that it runs with smaller step sizes [19:15:50] even at lower framerates or especially time acceleration [19:15:58] the behavior is like this [19:16:29] up to a step length of 0.02 seconds everything is normal, the SystemsInternalTimestep is just run once per timestep [19:16:37] that would be 50fps at 1x [19:16:55] from then on it limits the step length to 0.02 seconds [19:17:19] so if the timestep is as long as 0.04 seconds it just runs the function twice, with step length 0.02 seconds [19:17:41] at high time acceleration that would lead to a lot more calculations that have to be done at once [19:18:16] ah ok I think that is a good thing to keep regardless [19:18:26] so at 0.4 second timesteps it's allowed to have longer steps again [19:18:35] so that it doesn't all come crashing down [19:20:04] yeah, it's our bad fix to make an unstable system more stable [19:20:10] just making the step length small [19:22:30] well so far things are looking a lot better [19:23:29] ok down to 18 seconds [20:14:20] In the Saturn, we use ShiftCentreOfMass() [20:15:24] indy91, one thing that would help if we could change it to ShiftCG() is the switch click-spots are automatically adjusted [20:15:30] no so with the latter [20:16:44] I think we did that with the LM [20:19:26] right now, my ork-around for that is to recall RegisterActiveAreas at each staging [20:19:31] work* [20:26:59] I mean, I guess that is not too bad anyway [20:31:21] ShiftCG() seems better [20:31:38] at some point the CSM will have a shifting CG [20:32:53] yeah [20:33:13] Im just weary of making that change to help the VC, but break everything else :D [20:34:06] ShiftCG() does more things like shift the meshes as well I think [20:34:41] in the end ShiftCG will need less manual shifting by us [20:34:43] so it would have to be placed before the call like SetReentryStage etc [20:34:56] right [20:35:03] I can take a look in the next few days [20:35:30] sure [20:36:06] my CM VC mesh is finished for now, I am just fixing the views and it should be ready to PR [20:36:55] awesome [20:52:03] night! [21:00:37] AlexB_88 that's great! can't wait to try it [21:01:01] should have the final push tonight or tomorrow [21:01:10] just trying to sort out views [21:01:30] Im sure you noticed the clickspots sometimes dont work after initial load [21:01:47] and you just cycle views and it works again [21:01:56] trying to figure that one out... [21:07:24] I thought I was just bad at clicking [21:07:46] it just happens if you load from a scenario already in the VC [21:08:18] you just have to cycle views and its ok...but its annoying [21:21:19] things are looking a lot better in the glycol loop [21:26:06] glad to hear [21:29:39] SetView() in saturn is an offset mess, making my brain hurt lol [21:31:57] there's a bunch of things that seem like they would almost be easier to reimpliment from nothing, than they would be to fix [21:37:26] ViewOffsetx, VCCameraOffset, VCMeshOffset, it never ends! [21:37:30] oh oh and CurrentViewOffset [21:40:48] I really want to go through and finish off all of the Doxygen comments and just see what kind of mess it outputs, lol [21:44:09] in other news, I think I managed to impliment a diode class [21:48:38] ah nice [22:13:42] if (diode faces this way) {current goes the same way} else {current doesnt flow} [22:13:44] :P [22:14:00] if only, right? [22:18:07] I was mostly intrested in simulating the voltage drop accross them, but in the only thing stopping them from letting current flow at the saturation current in reverse, is our power merge classes [22:20:27] and that relationship is a function of temperature (fixed for now for everyone's sanity) [23:08:13] what sanity :P [23:18:30] indeed :) [09:07:08] .tell indy91, CMVC PR sent [12:42:41] hey Ryan [12:44:27] morning [14:25:02] hey Niklas [14:30:34] hey! [14:36:39] so I got a diode class implimented yesterday [14:38:47] I'm not super happy with the way the powermerge/3way/nway classes work at the moment [14:41:00] the way it splits the power load based on voltage? [14:42:12] yeah [14:44:26] if I make a nwaypowermerge instance and connect two sources to it, one 5v and one 10v it will draw 2/3 from the 10v and 1/3 from the 5v [14:44:39] right [14:45:17] hmm [14:45:35] so that diode, does that even physically exist? [14:46:48] the diodes on the batteries, yes. they're between the battery buses and the CM main buses [14:47:34] ah yes [14:48:07] but is it realistic that if the battery voltage isn't at least 0.7V higher, that the battery doesn't have any of the power load? [14:48:16] if you try the case above with the right resistance values there are cases where you can draw all of the power from the 10V source, and nothing from the 5V [14:53:15] I think the way to go is to make a simple fix, maybe letting the batteries always take a share of the load [14:53:20] get the PR merged [14:53:36] and then you can start new projects to improve the power merger classes [14:56:39] n7275 do you have anything generating heat from the batteries by chance? [14:57:15] yeah, what I have right now works. just at the moment the batteries will be loaded about 30% more than they should during sps burns [14:57:57] rcflyinghokey, no changes to the battery class [14:59:14] ah ok [14:59:52] I am putting all the cold rail/plates in the LM, so eventually they will need to [15:26:24] oh cool [15:27:24] my diodes class also has temperature dependent behavior. at the moment it's just set in the constructor. [15:43:55] @indy91, good plan. I'll check through my latest commit tonight, push it, and if you're happy with it we can merge it. [15:44:31] I guess only the case where fuel cells and batteries share the load was the remaining issue [15:48:42] if that voltage oscillation isn't too excessive I'm fine with it. I guess you plan on working on this general topic some more anyway, so it's not like something will be nearly broken for a long time [15:54:36] I'm sorry if I appear pedantic, but if the CSM EPS gets broken then NASSP is broken, so much depends on it [15:57:04] no no, not at all. it's probably the most foundational part. it needs to work. [15:58:07] I mean, you are not going to break the batteries. So you can always do an Apollo 13 and power down the CSM :D [16:00:57] I suppose. we have some RTE documents now right? non-o2 tank explosion electrical failure would be a good candidate for that [16:02:21] oh, we can do the exact Apollo 13 targeting already [16:02:32] also thanks to FIDO and RETRO audio [16:03:12] the first LM maneuver happened before entering the lunar sphere of influence [16:03:21] so the RTE processor can't even calculate that [16:03:34] that was the flyby mode of the midcourse processor [16:03:59] not fully optimized I believe but with some flyby height constraint. I wrote it down somewhere [16:04:38] the second burn just after pericynthion was the RTE processor, speeding up to the mid pacific target line [16:04:53] and then just entry corridor control [16:09:28] ahh, okay [16:10:56] ok I'm not sure where I wrote it down, but the audio is still there, so I can always go back to see what the final calculation for the first LM maneuver was [16:13:24] when the Apollo 13 MCC gets implemented you can be sure that there is an option to fly that profile [16:14:47] awesome! [16:15:39] you were flying 12 recently, was that with the goal of putting together mcc support for it, or just rtcc testing? [16:15:57] also fuel cell testing [16:16:36] but I found so much to fix that I kind of forgot about continuing to fly that mission... [16:16:52] especially didn't like the TLI [16:17:04] but no, I'm not adding MCC support for further missions right now [16:17:44] have to use the RTCC MFD sfor now [16:17:45] for* [16:21:39] maybe when things have settled down with RTCC development. Too many things are in an intermediate state right now, have to work on that [16:22:45] yeah having 7-11 fully supported is probably good for 8.0 [16:23:06] right now I am trying to come up with a better and more reliable deorbit targeting for 7 and 9 [16:23:30] have some good testing scenarios from Ryan for that [16:24:56] Uh oh [16:25:09] Oh, a compliment, carry on :P [16:25:28] your trajectory was so bad that it was good again. Happy? :D [16:25:43] Yes! I'd like to thank the MCC for the targeting [16:27:02] that -30NM perigee solution is definitely going to go away [16:29:46] slight change in topic, where is the code that handles disconnecting the des batteries and glycol loop portion? [16:31:09] LEM::CheckDescentStageSystems() [16:31:13] in lemsystems [16:31:23] thanks [16:32:44] ah so it doesnt "remove" them per se [16:33:11] yeah, I guess [16:47:01] ok cool until we have batteries generating heat I dont have to mess with this [16:47:22] good morning [16:56:27] hey Alex [17:18:21] so, the VC still has the issue where if you load into the a scenario already in the VC, the clickspots dont work [17:18:29] you just cycle views and they work [17:18:56] the weird thing is, it only happens in scenarios after CMS/LV scenarios [17:19:16] CSM/LV separation* [17:20:46] I think the issue is somehow, when a scenario is loaded in the VC, and clbkLoadVC calls RegisterActiveAreas(), it somehow applies the wrong offset [17:21:06] at least initially [17:25:21] hmm [17:25:36] I guess somethig is loaded with the 2D panel [17:25:49] what about the no cockpit view [17:26:00] what happens if you start with that and switch to the VC? [17:28:02] yeah it works then [17:28:19] but I think it also fixed simply by doing CTRL-arrows in the VC [17:28:25] just switch swats [17:32:56] that is "ofs" in Saturn::RegisterActiveAreas? [17:35:11] yeah [17:40:31] I let it write something to the Orbiter log [17:40:32] 000003.337: 0.000000 0.000000 2.100000 [17:40:47] first number is just the Orbiter log time [17:40:50] the others are ofs [17:40:55] when I switch from 2D panel to VC [17:41:52] hmm [17:42:00] 000000.000: 0.000000 0.000000 2.100000 [17:42:02] same thing [17:42:21] when I load a scenario with the VC [17:42:26] switches not working of course [17:47:52] oh [17:48:01] the pitch ASCP rotary [17:48:23] not working for some reason, and only after CSM/LV separation [17:48:38] works fine before, and after SM separation [17:48:56] I wonder if its related [17:55:22] thumbwheel* [18:00:56] only pitch??? [18:03:01] yeah [18:07:04] I checked a bunch of mesh shifting related functions, but I am not seeing a difference between switching to vs. loading from the VC [18:07:49] trying the before CSM/LV sep case now [18:09:29] the FDAIs are quite quick right now in the VC switching between IMU and GDC attitude :D [18:11:12] if you don't mind I will try to make the code of the 2D vs. VC code for the FDAI have more commonality [18:11:33] together with the change to flip the polarity of the attitude rate... [18:12:02] sure [18:12:24] yeah, the smoothing is still missing when switching FDAI modes [18:13:26] btw let me know what you think of the view positions I added [18:13:29] and lean definitions [18:13:54] I tried to make it so that everything is easier to access [18:14:21] will play around with it [18:14:28] but you have to use the leaning to reach certain panels [18:15:34] i.e. the LEB LEFT/RIGHT views (accessed with CTRL-DOWN from left/right/seats), you need to use the lean functions to reach upper parts of the panel [18:17:03] I have the leaning defined for every view except the docking views I think [18:24:19] I think I'll have to get used to navigating in the CM :D [18:24:58] the texture on the hatch is pretty weak, don't think we can use the window markings on the window to fly reentries right now [18:25:31] pretty sure we have a better one for the 2D panel. Can we use that? [18:25:39] yeah the hatch texture will be on the list to revise [18:25:43] But I guess the whole VC needs some updates with geometry and textures [18:30:47] I see why you didn't integrate the FDAI animation code in the FDAI class. It needs a bunch of changes for all its code to apply to both 2D and 3D [18:32:12] the issue with the 2D hatch bmp, is that it doesnt cover the entire hatch [19:05:55] afternoon! [19:11:07] hey Mike [19:12:37] what's up? [19:17:27] CM VC is now part of the main branch [19:19:11] oh sweet :D [19:19:51] well, it already was partially before, but now the rest of it is :D [19:23:37] hehehe [19:36:16] hey Mike [19:38:20] yo [19:39:34] I finished the first round of scanning/image processing for the Apollo 12 Delco book last night [19:39:53] there's a few pages I need to reshoot and I want to play around with undistortion in gimp on some of them.... but it's almost ready [19:40:27] overall I'm pretty happy with the overhead scanner [19:41:34] nice! [19:41:39] hey Mike, sounds great [19:42:09] did I see you had started on the Surveyor drawings as well? [19:46:28] no, I still don't quite know what to do about those [19:46:53] Steven was just modeling it in KSP, and had a specific question about ACS thruster positioning -- which happens to be one of the drawings I have [19:48:27] it actually has a really interesting configuration that I wasn't aware of [19:50:40] 6 overall thrusters, arranged in three pairs, with each pair oriented directly opposite each other. each pair is positioned right next to one of the three footpads. on legs 2 and 3, the thrusters are perpendicular to the footpad, while on leg 1 they're parallel to it (and the spacecraft plane) [19:50:56] basically the bare minimum setup haha [19:51:54] yeah sounds like it [19:53:22] each of the two CM RCS systems also only has 6 thrusters [19:58:36] are the two systems fully redundant? [19:59:04] yeah [20:01:03] I prefer how it behaves with only one system active during reentry [20:01:29] Entry DAP likes to oversteer with both systems on [20:03:21] I'm guessing the Surveyor probes didn't have much in the way of redundancy [20:04:46] they had other Surveyor probes as redundancy :D [20:07:12] hahaha, I suppose that's true. [20:17:01] at least in the CM the procedures tend to call for using one ring or the other [20:17:15] I agree completely both rings is too much [20:17:57] indy91, ah the clickspots issue at scenario loading happens in the MCC VC as well [20:18:13] and it doesn't in the LM VC [20:18:26] so I guess we just have to see what we're doing right in the LM [20:23:31] AlexB_88, wow really? And there isn't even mesh offsets in the MCC for the clickspots... [20:23:43] yeah [20:23:50] so scratch that then [20:23:57] which click spots is that [20:24:01] the MFD buttons? [20:24:06] yeah [20:27:36] I think we should focus on the MCC VC then because it's much simpler [20:28:06] agreed [20:28:28] just looking at it now, and comparing to the LM, which is not affected [20:30:32] int vcidx = AddMesh(hMCCVC, &_V(0, 0, 0)); [20:30:38] this is definitely bad code [20:33:15] question is just if that's the cause [20:33:39] it's not [20:33:44] well I think the clcikspots are independent of the mesh per say [20:35:33] but what do you mean by bad code? [20:37:05] &_V(0, 0, 0) [20:37:15] that's the address of that VECTOR3 [20:37:39] that vector only exists in that function and then the memory of it is freed [20:38:18] right [20:38:22] and you are giving the AddMesh the address of it [20:38:34] it's a zero vector anyway [20:38:39] so it should be globally defined? [20:38:40] I think AddMesh defaults to zero [20:38:47] so you can just leave it out [20:38:52] AddMesh(hMCCVC); [20:38:55] ah ok [20:40:20] in other cases that could be more problematic [20:40:26] for animations I think [20:40:44] if you would give it the address of an only locally defined variable [20:41:27] and then Orbiter continually accesses that address to determine the animation state [20:41:41] would give random behavior, as anything could then in that memory [20:46:15] that's the fun of working with a relatively low level language like C++ [20:47:17] yeah [20:47:49] what I find weird is the LM has the exact same structure, clbkLoadVC which calls RegisterActiveAreas [20:48:17] which has all the AID register calls [20:48:47] well, in the case of MCC VC, its directly in the clbkLoadVC, at the top, but same thing [20:49:55] the MCC vessel is so simple we will surely figure it out through it [20:50:13] right [20:50:58] but knowing myself, sometimes the simplest thing is the hardest to see, lol [20:51:48] ok I know we have been down this road before...but radiators and the values I can assign in the config... [20:52:17] volume isol and mass? [20:53:23] we should probably compare how the loading order is between the MCC and LM [20:53:31] and then in the math for it, it has size and rad [20:54:35] trying to use them as cold plates/rails [20:54:47] AlexB_88, yeah, basically trying to confirm that in the MCC [20:55:20] rcflyinghokie, I can help with that a bit later [20:55:27] thanks [20:56:14] I have stabilized pretty well the glycol loops and have replaced all that "primary" or "secondary" heat that we used with heating one radiator and letting both loops touch it [20:56:42] I also, just as a quick experiment, changed the CSM to use glycol in the radiators instead of water, seems to run fine [20:57:00] so the secondary glycol loop won't have the temperature of the sun anymore when it's not used? [20:57:18] haha yes thats one of the effects of doing it this way [20:59:32] my ECS branch is up to date with all the changes [21:00:12] AlexB_88, tried moving LoadVC(); to post creation, no effect [21:01:00] i any event, I dont think the clcikspots have any association with the mesh itself [21:01:02] in* [21:02:42] loading the mesh is all that LoadVC() does [21:03:28] right [21:03:41] so it should be all camera position and clickspot position [21:04:42] commenting out SetCameraOffset, also didn't do anything [21:06:52] hmm I dont think camera positions change the clickspots, it should be just the calls to "oapiVCRegisterArea" and "oapiVCSetAreaClickmode_Spherical" etc for each IAD [21:07:00] AID* [21:07:50] well the camera position will have an influence on how Orbiter calculates where you clicked I think [21:08:17] just trying different things [21:11:43] right [21:18:57] hmm, can't figure it out right now. Will try a bit more tomorrow. [21:22:00] rcflyinghokie, radiators [21:22:06] sscanf(line," %lf %lf %lf", &volume, &isol, &mass); [21:22:17] as you said, the second line in the config is volume, isol, mass [21:22:18] yeah [21:22:33] but in the math, we dont have volume at all and we have rad [21:22:38] the volume is used as i_size in the radiator constructor [21:22:52] and then as size in double Q = rad * size * 5.67e-8 * dt * pow(Temp - 3.0, 4); [21:23:09] yeah thats what I am mulling over right now [21:23:23] isol is used as "rad" [21:23:28] indy91, no worries [21:23:48] and don't forget, the radiators are also thermic objects [21:23:53] cant seem to find anything on my end either [21:24:04] question is, if I remove almost all of its abilities to radiate, will the heat exchanger still work with it [21:24:22] or are they separate [21:24:28] so basically isol = 0.0 [21:24:38] that would terminate radiating to space? [21:24:43] hmm [21:25:27] only the radiation in h_Radiator::refresh [21:25:43] but there is still Thermal_engine::Radiative that applies to radiators [21:26:13] where it depends if the radiator is pointing at or away from the sun [21:26:30] but it has this separate thermic call [21:26:31] runner->thermic(Q * runner->Area * dt * runner->isolation); [21:26:44] and radiators set [21:26:45] new_one->isolation = 1.0; [21:26:45] new_one->Area = (1.0 / 4.0 * volume); [21:27:51] and it has this separate calculation [21:27:57] float q = (float) 5.67e-8;//Stefan-Boltzmann [21:28:01] Q3 = (float) (q * pow(runner->Temp - 3.0, 4)); [21:28:05] Q -= Q3; [21:29:39] hmm [21:29:50] so how to best make these vessels to heat up [21:30:14] I want to radiate a little to space but the majority I want the cooling loop to handle [21:32:39] I don't think any of those parameters matter for how much a heat exchanger is giving in heat to the connected thermic objects [21:32:45] which I guess are some radiators [21:32:52] or one radiator [21:33:11] ok so if I set that isolation way down it should reject practically all heat to the glycol loop [21:33:18] instead of space [21:33:48] both isol and volume I guess [21:34:06] volume is your only control for the calculation in Thermal_engine::Radiative I think [21:34:49] which is... not ideal [21:34:57] no its not lol [21:35:20] I wonder what would happen if you set new_one->isolation = isol; [21:35:28] in H_system::Create_h_Radiator [21:35:49] it would definitely change the whole behavior a lot, so it's a bit scary haha [21:36:34] yeah I am trying to avoid as much breaking as possible :P [21:40:24] well good luck with that [21:40:29] good night! [22:39:04] this glycol loop is looking promising [22:39:21] I havent quite figured out the cabin yet [22:40:09] the issue seems to be (same reason you dont get a significant CO2 measurement either) is that the cabin air is not flowing back through the suit loop as it should [22:40:23] and therefore is not properly being conditioned [22:46:12] iirc the CO2 gauge in the LV VC is not properly scaled yet, so it wont have a very accurate indication right now [22:46:19] LM VC* [22:46:44] the 2D panel one is fine though [22:51:11] haha I just mean because the sensor is in the suit circuit, as soon as you transfer crew to cabin, the scrubbers clean the suit circuit to like zero, yet CO2 builds in the cabin because its not circulating properly [23:20:42] man, these half hour build times are starting to get annoying [23:30:57] half hour build times? [23:41:42] as in, recompiling all of NASSP takes upwards of 30 minutes for me [00:04:45] oh wow it takes like a minute here [00:04:56] But I did slap in a 5900x recently [00:12:36] n7275, you running a 486? :D [00:20:01] first gen dual core xeon [00:20:27] 100MHz ram.... [00:21:07] oh wow [00:21:33] hows the VC performance? [00:22:03] 80ish GPS, with d3d9 settings maxed o ur [00:22:09] *out [00:22:26] *fps [00:22:57] not bad [00:24:02] I've got a new system in the works, but it is nice to be able to test stuff like eps on a worst-case performance system. csm main panel is 15fps maybe 20 on a good day [00:24:10] 2d that is [00:24:22] wow that's a huge difference [00:24:51] so counterintuitive (to me at least) that a full 3d interactive thing would be so much more performance than a 2d bitmap :P [00:25:11] yeah [00:27:34] I think back in the day, before the D3D9 client, it was much harder to get good VC performance in Orbiter [00:28:07] some times I forget just how old dx7 really is [00:28:12] like they were trying to make switches out of 3 or for vertices lol [00:28:27] 3 or 4* [00:28:51] we're coming up on two decades old for D3D9 lol [00:28:57] next year :P [00:29:17] D3D7 is only 3 years older than that [00:29:47] which makes it a pre-21st century graphics api [00:32:23] and hot off the press for the first version of orbiter [00:56:10] ah [00:57:38] .tell indy91, I changed the loading of the MCC VC mesh from the LoadVC() function to ovcInit, and now it clickspots work when loading the scenario from the VC [01:13:28] AlexB_88, why does that work? [01:15:48] Im not quite sure to be honest haha, but thats how all the other vessels load their meshes [01:17:02] at least it might explain why the issue was in MCC VC [01:17:17] but for Saturn its a bit more complicated [01:18:23] the issue, (loading a scenario already in the VC & clickspots don't work), only happens when in the CSM stage, so fater LV separation [01:18:35] so after* [01:18:52] everything about the saturn class is complicated [01:19:20] hmm that's even more strange. [01:19:39] yeah, so I need to figure out what happens different with the CSM stage [12:24:32] good morning guys [12:26:08] morning [12:48:58] I failed hard at Apollo 7 P34 last night, lol [12:49:15] I need to go back to rendezvous school [12:50:07] lol [13:14:34] yeah from what I'm seeing in the flow charts I must have taken a wrong turn somewhere. [13:26:30] not a good thing in space [14:25:58] no, typically not. 98% certain I accidentally set some flag, and ended P34 early. [14:50:50] good afternoon [15:02:07] hey [15:49:58] good morning [15:51:02] hey Alex [15:53:07] I see you fixed the clickspot issue for the MCC VC [15:53:14] does that also apply to the CM? [15:54:44] the CM already loads its meshes the same way actually [15:55:07] and I was wrong, clickspots work in some cases for the CM [15:55:32] if you load a scenario from the VC, before CSM/LV sep, they work [15:55:53] very weird [15:56:17] oh yeah, you said that before [15:57:02] I thought the clickspots were independent from the mesh? [15:57:06] I guess something different happens when in calls SetCSMStage [15:57:20] I thought so too but I guess not [16:36:31] I've been reading the RTCC stuff about deorbit calculations for days now and I'm still quite confused about a bunch of things [16:39:56] one of the prelaunch block Data for Apollo 11 has a landing point of 33.4°N and 148°W [16:40:34] there is a recovery ship stationed at 25.5°N 148°W [16:41:22] and I found the calculation by the RETRO for this deorbit [16:41:33] has the same landing point coordinates [16:41:48] and entry profile lift vector up until 0.2g, then roll right 90° [16:42:01] which makes sense. The landing point is north of the ship [16:42:21] so might as well steer as close to it as possible [16:42:49] I'm fairly sure that landing point is on the ground track [16:42:54] if anything even slightly north of it [16:42:55] morning! [16:42:59] hey Mike [16:43:24] I wonder what they even iterate on for this though [16:44:06] deorbit ignition time. But if there is no active steering during reentry you definitely can't achieve the latitude [16:44:36] so would the iteration try to minimize the miss distance to that landing point why changing the deorbit TIG? [16:44:40] by* [16:45:10] and then you are using the CMC for reentry anyway, that landing point is still useful for it? [16:45:14] when* [16:45:41] that all isn't very well explained in any of the RTCC documents... [16:49:25] I think I can at least find more of these calculations when I go back earlier in the RETRO loop [16:54:47] "and entry profile lift vector up until 0.2g, then roll right 90°" Is that the backup procedure? [16:56:05] https://history.nasa.gov/afj/ap11fj/a11acc/a11-acc-24-e1-11.jpg [16:56:59] I guess if you were to use the Block Data, with window marking on the horizon and all, you would probably fly this and not guided [16:57:32] the block data only has EMS counter DV anyway, can't use the CMC for the deorbit burn [16:58:07] I had a better understanding of this if they weren't specifcying a latitude [16:58:28] I would have* [16:59:05] then you could simply converge on a longitude, just like our current deorbit targeting [16:59:13] which I think they could do, but it's a bit confusing [16:59:44] right [17:08:31] also confusing is the maneuver code they input [17:09:02] in the MED for the automatically calculated deorbits it says [17:09:05] M = Manual [17:09:14] 1 = without separation maneuver [17:09:18] 2 = with separation maneuver [17:09:21] B = Ballistic [17:09:24] G = G-Level [17:09:38] and then if you manually specify a maneuver you have these codes [17:09:46] M1, M2, M1B, M2B, M1G, M2G, M1GB, M2GB [17:10:47] B might be lift vector up to 0.05g, then ballistic [17:12:06] it could be combinations of the entry profiles, but I really don't get M1 and M2 then [17:12:15] maybe lift vector up all the way to splashdown? [17:22:57] and I think I have a FDAI commit ready by tomorrow [17:23:33] had to make a bunch of changes, but now the FDAI movement is the same in 2D and VC [17:24:23] AlexB_88, did you always have smooth FDAI scrolling enabled? [17:24:28] for the 2D panel [17:25:25] yes [17:26:03] when you switched between the FDAI selection modes (1/2, 1 and 2), did that move the FDAI really quickly, too? [17:26:22] like currently in the VC [17:27:24] let me check [17:27:58] thanks. I could check myself, but then I have to create a branch, do a commit, back to Orbiter2016 branch, all that good stuff :D [17:28:01] no, it is a smooth motion [17:28:21] when switching the FDAI select switch in the 2D panel [17:28:33] hmm [17:28:34] in the VC, its instant [17:29:13] yeah [17:29:35] how quick is it? [17:29:50] roughly, degrees per second [17:30:01] fun fact, time acceleration doesn't slow it down [17:30:48] it should be a lot faster than non-smooth if I understand the code correctly [17:32:14] limited to a change of 0.05 radians [17:32:15] maybe about 70 degrees per second [17:32:17] quite fast [17:32:25] I come up with 170°/s [17:32:28] at 60 fps [17:32:37] could that still be the case? [17:33:15] yeah, I think that makes sense [17:34:22] it went from 160 to 0 in pitch in what I thought was closer to 2 seconds, but I think its more like 1 second [17:34:55] yes [17:35:04] now that I reference with the timer :D [17:35:14] ok [17:35:25] so, I usually use the not-smooth option [17:35:29] smooth kills my performance [17:36:02] it limits the paint function to run at max. every 0.1 seconds [17:36:21] so that makes it move the FDAI with at most 28°/s [17:36:37] right [17:36:39] that is what I am used to. The way I changed it is that it actually takes the step length into account [17:37:06] so at 0.1x it will be slower, which was not the case for the smooth option I think [17:37:12] but I can limit it to any value we want [17:37:17] I can set it higher [17:37:49] not sure if we have a real number for this [17:37:54] hmm, what effect does that do? [17:38:31] it's just a speed limit for the FDAI, that just applies the same way for all cases [17:38:48] so if the FDAI tries to move at more than 28°/s it will be limited to that speed [17:38:49] ah ok [17:38:52] otherwise it's the same as before [17:38:55] smooth, non-smooth [17:39:08] and basically works like smooth in the VC as well [17:39:44] right [17:39:47] the FDAI probably gets driven by a signal of the difference between current and desired attitude display [17:39:58] so there might not be a specific speed limit how fast it can rotate [17:47:56] indy91, theres a PR I made from last night [17:48:13] yeah I saw. I wanted to try something first [17:48:41] SSU uses oapiLoadMeshGlobal in the constructor of the vessel [17:48:54] for the VC mesh [17:50:16] maybe that works, but clbkSetClassCaps doesn't [17:50:27] hmm, no [17:53:51] hmm [17:53:57] the mesh handle is global [17:59:28] so, when loading the scenario in the SIVB stage and earlier, it works fine [18:00:06] I dont understand it because the way the stages are loaded, its has the same structure of calls as SetCSMStage? [18:07:51] oh, it doesnt seem to happen in Apollo 7 [18:09:11] differen in SaturIB vs. V class I guess [18:09:14] difference* [18:10:36] ah, and when I separate the CSM from the LV in Apollo 7 VC, it also doesnt screw up the clickspots [18:11:02] if you try that from the SV SIVB, the clickspots are lost when you hit the sep button [18:11:09] and its fixed by cycling views [18:12:36] could it be a Orbiter or DX9 client bug rather than NASSP? [18:12:51] that still doesn't explain why it only happens in certain cases of course [18:13:40] its just the CSM stage in the Saturn 5 class [18:13:45] where it doesnt work [18:15:59] and the MCC [18:16:24] right [18:16:34] but the PR I made seems to fix the MCC [18:16:39] your fix works, but I feel like it shouldn't even be necessary [18:16:51] and it doesn't help us understanding why it's necessary [18:16:59] true [18:18:04] but it is how all other vessels loads meshes anyways, I think I initially placed the mesh loading in an arbitrary location when making the MCC VC so I PR'd the change since I thought it should at least align with the other vessel's way [18:19:32] yeah [18:19:34] I merged it [18:30:27] maybe worth making a forum post about it? [18:30:35] As it's a quite weird issue [18:31:16] yes [18:31:32] I am in a debugging process right now though, trying different things [18:31:50] I might have a lead, Ill keep on it [18:32:01] but if that all fails then yes Ill make a post [18:35:26] did this problem exist in the initial cmvc merge? [18:38:44] wondering if it's related to the hatch ctd, probevis/missing SIM bay panel issue. [18:40:21] its been an issue since the initial VC merge I think, yes [18:40:40] no I doubt its that, I completely changed the code for that [18:41:30] probe used to us the DEVMESHHANDLE and that was problematic since the CM does a lot of mesh deleting and relaoding [18:42:00] so I simply removed that and used the visibility flags to handle the probe [18:43:49] So, the issue here I think is a combination of things: 1. The ordering of CSM stage loading in Saturn 5 class is causing issues, this is not a problem in Saturn1B class [18:45:09] 2. We use ShiftCentreOfMass() when staging, if we change to SHiftCG() this will also move the clikspots, not the latter [18:46:40] you might notice that the clickspots work when staging the S1C/SII, but right now that is only because of a hacky call in SetStage: RegisterActiveAreas(); [18:47:01] that should have not be there [18:47:29] ShiftCG should take care of changing the clickspots and no need to call RegisterActiveAreas() again [18:58:05] https://drive.google.com/file/d/1xu3aRlmd74YiS3uIRuRBKIVtA5I_XGR1/view?usp=sharing [19:04:45] awesome, thanks Mike! [19:05:02] let me know what you think [19:06:38] some of the pages are weirdly skewed [19:06:43] only a bit [19:07:03] yeah, that's unfortunately the nature of using an overhead scanner to image curved pages [19:07:12] the correction isn't always perfect, and I haven't found a way to totally fix it [19:07:17] right [19:08:18] well it's not so important that all the proportions are right [19:08:31] high quality scan and readable text is more important [19:10:13] yeah that was my thought [19:10:31] now that I have the flow down I'll spend a bit more time on the next one trying to correct the skew [19:17:46] aha! [19:17:53] its scenarios that have the LM [19:18:10] if I load a scenario, in the VC with the CSM only, it doesnt happen [19:18:28] so thats why Apollo 7/8 scenarios are notaffected [19:18:45] maybe something in the connector is screwing things? [19:21:40] thewonderidiot, thanks! [19:22:11] uh oh. tell me it isnt the VHF or RRT connectors [19:23:17] thewonderidiot, I'm making whole new documents folder just for these. thank you. [19:23:30] :D [19:24:43] AlexB_88 does the order LM and csm are loaded in the scenario change anything? [19:25:19] let me try [19:26:37] you mean putting the LM above the CSM in the scenario file? [19:27:56] I doubt it's the connector classes [19:28:10] might be something the LM does globally that affects other vessels [19:29:24] AlexB_88, haven't locally merged your PR yet. And I can confirm, even in the MCC vessel it works without the LM [19:29:43] ah [19:30:11] I would have blamed the old LEMSaturn class, but luckily that doesn't exist anymore [19:32:59] but I have no idea how this works sadly. No clue how the LM could cause that [19:33:26] at least we have narrowed it down a bit [19:33:31] that is very strange [19:36:28] so are the clickspots gone upon load, or just displaced ? [19:36:50] probably displaced [19:38:10] indy91, is there still any global variables shared between LEM and Saturn class? [19:39:28] he reason I ask is I remember at the beginning of the CM cockpit development, sometimes it would try to read a variable in the LM, and that was because I had everything defined at the top of saturn.h and LEM.h [19:40:06] and then of course you changed it with your new system and that fixed it, but I wonder if theres anything else? [19:40:56] but was that shared between LEM and Saturn? [19:41:42] not really sure what you mean with trying to read a variable in the LM. Do you have an example? [19:42:38] well I would use a variable in Saturn that had a counter-part of the same name in LEM (a switch position variable I think), then when I referenced it in saturnvc.cpp it would try to access the LEM one [19:43:06] back when all the VC constants were still in the headers [19:43:07] and caused a CTD? [19:43:25] no, it would'nt even build [19:43:30] oh ok [19:43:31] hmm [19:43:52] I have a theory [19:44:15] The AIDs of the LM when it is created are interfering with the CM ones [19:45:49] but how, I don't know, just a theory [19:46:31] where are those defined? [19:47:03] both vessels have a RegisterActiveAreas() function [19:47:16] both called from the top of clbkLoadVC [19:47:26] oh defined [19:47:35] in resource.h [19:47:47] and lmresource.h [19:48:01] all the AIDs are defined there [19:48:43] hmm [19:48:48] but how can one affect the other? [19:50:01] theres a lot that have the same name in both vessels [19:50:03] like AID_VC_SWITCH_P1_01 [19:50:05] MCC aids are defined in mccvc.cpp [19:50:19] ah right [19:50:31] maybe I could try the same with the Saturn and LM [19:50:55] and names like AID_MFD_L_BUTTONS are unique to the MCC vessel I believe [19:51:23] but those headers should not be accessed by anything else anyway?? [19:52:09] I don't think it's the aids [19:52:30] when I click on the MFD buttons it's not generating any mouse click event [19:52:44] not the wrong one [19:52:46] just nothing [19:54:24] right [19:54:58] maybe its using the wrong position for it though [19:54:59] but I'll try a few things with that [20:02:02] not only the LM is created at CSM sep [20:04:57] tried deleting the S-IVB, didn't help [20:05:49] tried deleting the LM, it helped [20:05:55] so yeah, definitely the LM [20:06:21] yeah [20:10:59] probably not the issue but, dockingprobe.cpp has some operator overloads to the MATRIX3 class [20:11:34] not that's part of the lem [20:12:45] but I wonder if it's some odd redefinition of mul in something that the LM includes [20:48:06] oh [20:48:13] MainPanelVC.ClearSwitches(); [20:48:40] if that is called again at LM creation, couldnt it clear the CM's as well? [20:50:10] hmm dont think so [21:02:08] night! [01:45:30] any luck? [03:06:36] n7275, I haven'treally narrowed it down further then the LM being the caused so far [04:30:32] probably not going to be an easy one [04:32:54] probably not [04:33:17] at least the only challenge from it now is the need to cycle views to fix it [04:33:52] but still annoying [04:56:27] hello! [04:56:30] Hi! [12:38:22] good morning [12:40:03] morning [13:52:29] hey [13:56:48] hey Matt [14:03:28] today is the day where I make the FDAI attitude rate needles confusing for everyone [14:07:22] awesome [14:08:13] I'm failing hilariously at apollo 7 tpf, I should merge the needle challenge for added fun :D [14:09:14] what's the problem? [14:11:48] I think I'm doing something wrong, with the marking, because tpf mcc2 is absurdly large, like 80fps [14:12:13] yeah that's a bit large :D [14:12:56] 3nmi flyby counts at station keeping right? [14:13:13] almost [14:14:16] all through P34, when I put the optics in cmc mode they track the sivb well, so state vector is good there [14:16:06] so the problems begin with P35 [14:16:40] I believe so. [14:17:12] you did the Verb 81? [14:17:22] yes [14:18:39] 80 ft/s is a lot. Did you have P41 running for TPI? :D [14:21:01] yes [14:21:32] Could the sextant point at the S-IVB in auto optics mode? [14:21:37] post TPI [14:25:25] when I do marks in p35, should it stay on F51 until you hit pro? [14:25:44] or go to 16 49 like in P34? [14:27:23] For Apollo 7 the CMC is configured so that every mark should give you a 16 49 [14:27:49] so I'm definitely doing something wrong [14:28:48] but you are getting the V51? That means please mark [14:29:21] yeah, I get the F51, it just wont process unless I hit pro [14:29:28] When you entered P35, did you maybe proceed too far? [14:29:48] you just enter P35, do the auto maneuver that P20 wants [14:30:04] and then V57 I guess [14:30:47] hmm [14:30:53] the first mark might not give a 16 49 [14:31:36] first one shouldn't, as I understand it [14:31:53] the procedure also calls for backup marks with the COAS [14:31:57] but the timeline is very tight [14:32:03] very [14:32:11] so there is probably a V54 for that in the checklist [14:33:56] hmm [14:34:04] Checklist MFD might just skip over that [14:34:25] because the timeline is too tight [14:34:31] for one person [14:34:56] And I believe the Apollo 7 software did calculations less accurately, but quicker [14:35:06] and we use the Apollo 8 software for 7 [14:35:46] yeah waiting for tig and dv calculations while the clock is ticking is painful sometimes [14:36:02] we even increase the P35 time from the PRO to TIG to 180 seconds [14:36:03] was the A7 software just using conic? [14:36:06] Apollo 7 had 90 seconds loaded [14:36:33] might be conic for the TPI to TPF trajectory yes [14:36:49] early Colossus does 2 precision offsets, hardcoded [14:36:56] which takes a bunch of time [14:37:03] and it's overkill for lunar orbit rendezvous [14:37:20] so they added the number of precision offset calculations as an input to P34 for Apollo 11 [14:37:30] ahh okay [14:37:32] and they set it to 0 [14:37:41] so for Apollo 11 it's conic calculations [14:37:50] Apollo 10 timeline is also a bit challenging [14:38:21] I have vague memory of all sorts of Apollo 7 rendezvous issues, but it's been a long time :D [14:39:59] if you have a post P34, pre P35 scenario I can take a look of course [14:40:32] before I really understood P34 I had something similar I think [14:40:50] on the final pass through P34, so when you do PRO instead of V32, marks are also inhibited [14:41:05] might be that you can get the V51 display [14:41:07] can't remember [14:41:12] but it won't take any marks [14:41:16] P35 works the same [14:41:27] of course you never really do a recycle in P35 [14:45:11] I'm not home at the moment. might be able to send you it in a few hours or so. not super critical, just personal curiosity [14:45:44] no problem [14:45:49] I'll have to make a few edits to it as well, as I'm doing this in my branch [14:50:40] yours is going to be a bit confused by this "diode" class... [14:50:50] haha [15:25:40] morning! [15:26:21] hey [15:27:03] couldn't decide how fast our FDAIs should be able to move, G&D Data Book helps out again [15:27:08] G&C* [15:27:35] "The three servo loops that drive the attitude sphere have a minimum slew speed of 45 degrees per second, a maximum lag of 1 degree at an input rate of 10 degrees per second, and a static accuracy of ± 0.5 degree at zero-degree inputs and ±1 degree at other points on the sphere." [15:28:55] the attitude rate needles can show up to 50°/s in the CSM, so I rounded that up to 50 to make it consistent [15:31:17] :D [15:31:23] that G&C data book is so good [15:38:22] just a bit of testing left. And the commit will include the reversed polarity for the attitude rate [15:45:19] and then I can dive into new RTCC deorbit targeting [15:45:47] so that rcflyinghokie doesn't have to set new records for deorbit to entry interface time [15:46:07] haha oh that was a fun race for sure [15:47:20] not that there is much time normally [15:47:40] deorbit to CM/SM sep 5 minutes [15:47:48] and then 14 minutes to EI [15:47:56] nominal Apollo 9 numbers [15:48:36] didn't I read something about 90 seconds from deorbit to CM/SM sep... probably some old Apollo 7 procedure [15:50:26] wow talk about no powerdown time [15:51:25] can't find it now where I read that [15:55:27] hey [15:56:31] morning [15:56:41] hey Alex [16:07:41] it's done [16:08:08] I've never hated a commit from myself so much ever before :D [16:08:24] https://github.com/orbiternassp/NASSP/commit/507518836d64d3ce89d0420cfc6d440e66ae6262 [16:08:32] hahaha [16:09:06] I'm sure I don't have to ask for testing the change, we look at the FDAIs enough so that it will happen automatically over time :D [16:12:21] great, ill test it now [16:16:31] I chose 50°/s as the maximum rate for the FDAI ball [16:16:40] LM G&C Data Book specifies a minimum of 45 [16:16:50] and 50 is consistent with the greatest attitude rate the rate needles can show [16:16:52] in the CSM [16:20:48] I guess the animations definitions stay in saturnvc.cpp [16:21:12] I think those are different between CSM and LM, right? [16:21:23] the animation function was completely identical [16:21:47] but if the definitions are also the same they can be moved to the FDAI class, too [16:22:20] only focused on making FDAI behave the same in CSM and LM and so that I don't have to change the polarity of the rates in too many places [16:23:50] I think the only difference is the rotation axis and the lack of the OFF flag for the LM [16:23:58] or CM sorry [16:27:26] ah nice and smooth! [16:29:10] indy91 https://drive.google.com/file/d/1Lc9vonsiIKCOOhaBo9_6bUGXhJVNFoyn/view?usp=sharing [16:29:44] I'm at least 80% certian that I edited that correctly [17:08:13] n7275, the auto optics is pointing quite far away from the S-IVB [17:08:21] but for me it works normally [17:08:27] I get the 16 49 after the second mark [17:08:30] well [17:08:42] there is the weird "phoney mark" first [17:09:44] which gets rejected [17:09:49] not sure we need to do it in Colossus [17:11:20] but I can get it to converge fairly quickly [17:11:24] a few marks [17:12:18] my MCC1 will be 3 minutes late because I tried a few things [17:13:20] there's a good chance I just did something in the wrong order. [17:13:46] 5 ft/s MCC-1 [17:13:54] good enough [17:14:11] yeah it can be quite confusing [17:14:17] some PRO or ENTR at the wrong time [17:14:35] maybe you started a P35 calculation with PRO? [17:15:01] probably [17:15:39] something to do with the update flag [17:16:19] the flow charts for P34 make sense to me, less so for P34 [17:22:01] so, after MCC1 the sextant is pointing fairly wrong again [17:22:08] I doubt it's the alignment [17:22:25] but it's probably that both CSM and S-IVB state vectors in the CMC are somewhat degraded [17:23:03] maybe too much residual chasing. Our PIPAs don't work 100% accurately and especially in the CSM if you chase residuals too much then that can probably make the state vector worse [17:23:11] I can check with the vector comparison display [17:23:19] 7 ft/s MCC2 [17:23:50] not going to burn it, has seen everything I need to I think [17:23:53] have* [17:24:55] oh nice, RTCC MFD CTD [17:25:42] but I know what I did [17:28:48] yeah. so definitely me [17:29:29] CSM state vector accuracy: -1276, +6729, +487 [17:29:33] that is all feet [17:29:39] radial, downrange, crossrange [17:30:17] S-IVB: -1164, +16781, +45 [17:41:38] the 10k feet downrange difference is probably why it wasn't pointing quite right before marking [17:41:56] and the 6k feet for the CSM is why MCC2 had 7 ft/s [17:42:17] if the CSM state vector is perfect then it's not too hard to get the S-IVB vector to converge, too [17:42:47] but if both are a bit off then orbital mechanics get confused [17:42:55] that being said, the numbers are not super high [17:43:09] and even Pete Conrad got myself a 10 ft/s MCC2 on Skylab he couldn't explain [17:43:16] so everything below 10 ft/s isn't bad [17:43:22] which your scenario can do [17:43:44] himself* [18:04:20] indy91, I haven't found anything in the LM to explain the clickspot weirdness unfortunately [18:04:46] but I have managed to fix the ASCP pitch wheel sometimes not working [18:05:05] that was a separate issue anyway I think [18:06:00] the way I got the offset for the clickspot in function to register the active areas, was by using GetMeshOffset [18:06:31] but it seems that was causing issues with the pitch thumbwheel [18:07:28] so I just changed it to set the offset manually by referencing the stage (there was already commented code for that) and that fixed it [18:07:34] probably safer that way anyway [18:08:03] its just that I have to manually set the offset for every stage for S5a and SIB at the top of RegisterActiveAreas [18:08:09] S5* [18:09:16] Also, I removed the call to RegisterActiveAreas in SetStage [18:09:19] that is bad [18:11:20] its basically re-registering the AIDs at staging, so the clcikspots dont get lost, but thats not the normal way that is done, there shouldn't be a call to do the whole registering again, it is usually taken care of by the the CG change calls [18:12:33] in our case we use SetCentreOfMass, which only changes the Centre Of Mass, but nothing else so thats why I had put the bogus call to RegisterActiveAreas from SetStage in the 1st place, but I think that is unsafe [18:13:22] hmm [18:13:24] the downside now is that you have to cycle view at each staging until we propelry figure it out, which probably means chaging all the ShiftCentreOfMass calls to ShiftCG [18:13:30] I guess ShiftCG will do some good things for us [18:16:03] yeah, that's what we did in the LM a while back [18:17:51] oh btw, I got a CTD at CSM/SIVB separation on an Apollo 8 scenario (after insertion I think) [18:17:57] https://www.dropbox.com/s/w5nu18uwnzn5syo/Screenshot%202021-03-31%2000.27.05.png?dl=0 [18:18:07] at 1st I thought it might of been something I did [18:18:29] but its referencing something about propellant mass [18:18:46] weird [18:18:51] is that an old scenario? [18:19:35] yeah I think [18:19:59] the Apollo 8 insertion scenario [18:20:54] the S-IVB APS propellant gets created by ph_aps1 [18:20:59] AddRCS_S4B* [18:21:52] which gets created at S-II/S-IVB staging [18:22:04] or if the scenario is loaded with the stage state S-IVB [18:23:02] I replaced the Apollo 8 insertion scenario [18:23:16] only 3 months old [18:23:37] can you reproduce it by loading that scenario and do CSM/LV sep? [18:24:27] hmm, I can't [18:27:07] maybe reproducable by doing some specific steps? [18:27:33] it's likely doing a CTD because the propellant resources aren't defined [18:27:39] but it's also not set to null [18:27:46] which happens when they get deleted [18:34:45] https://www.dropbox.com/s/5b2vt7kfngnw55m/Apollo%208%20CTD.scn?dl=0 [18:34:53] indy91, try that one [18:35:10] ok [18:35:28] btw in the Apollo 8 insertion scenario, the PYRO seq CBs were out for some reason [18:35:46] haha [18:35:50] because Apollo 8 did that [18:35:53] it's in the checklist [18:35:56] ah lol [18:36:05] shows how long I haven't flown it :D [18:36:14] CSM/LV sep switch? [18:36:16] or with the THC [18:36:25] unlikely that it makes a difference [18:36:26] oh I used CSM/LV switch [18:36:28] ok [18:36:39] but thats right Apollo 8 did that too [18:36:43] with the THC [18:37:01] got the CTD [18:37:05] ph_aps1 and ph_aps2 are NULL [18:38:04] oh weird [18:38:10] STAGE 20 [18:38:16] #define LAUNCH_STAGE_SIVB 20 ///< SIVB burn during launch. [18:38:22] #define STAGE_ORBIT_SIVB 21 ///< SIVB in orbit. [18:39:10] what scenario is this lol [18:39:15] it's a bit suborbital [18:40:16] oh, and I'm already seeing a flaw with my FDAI update [18:40:32] if you spin the vehicle up, go to outside view and come back the FDAI needs to catch up [18:41:11] ah right, in that save I did a premature shutdown [18:41:23] with the SII stage switch I think [18:41:30] at TB5+10 seconds it switches to orbit state [18:41:39] this scenario is after cutoff, but before that [18:41:44] so probably can only happen there [18:41:57] we should get rid of the S-IVB launch vs. orbit states anyway [18:42:12] but I think your issue can only happen if you save/reload before TB5+10 [18:42:21] right [18:42:35] then it doesn't create the APS propellant upon loading [18:42:39] which is a bug [18:42:48] and then tries to access the propellant mass [18:42:49] and CTD [18:43:52] if (StageState >= 4) { [18:43:53] AddRCS_S4B(); [18:43:53] } [18:44:00] for LAUNCH_STAGE_SIVB [18:44:09] what even doe StageState for the S-IVB... [18:44:44] nothing [18:44:54] only gets used by the CM during reentry [18:44:56] barely [18:44:59] so I'll remove that [18:45:05] which should fix the CTD at least [18:45:52] must just be some really old code [18:47:56] ah yes, found it in our oldest NASSP version on Git [18:48:11] StageState was used to sequence through stage events [18:48:12] indy91, I sent a PR [18:48:20] just minor fixes [18:48:48] ok [18:50:50] at every staging, you know have to cycle the seat position in the VC [18:50:53] now* [18:51:11] so like CTRL-arrows [18:51:28] or else switches don't work [18:51:29] this will be the case until we get a proper call to shift the CG [18:51:31] yes [18:51:36] just the clcikspots [18:51:42] the animations are fine [18:51:44] ok [18:52:29] when you switch seats and back, it does clbkLoadVc again [18:52:43] right [18:52:48] which has the correct call to RegisterActiveAreas() [18:56:09] alright, Jordan has just sent me his latest LM work, and it appears the ECS panels are in a quite complete state :) [18:56:41] which means I will start animating them now [18:56:57] :D [19:07:45] great [19:15:48] So I think I have the LM ECS stabilized [19:17:16] Among changes in the plumbing, I changed the cabin tank to be less isolated as well as adding a passive heat exchanger between the cabin and the glycol loop to emulate heat transfer within the cabin [19:17:28] I have also added all the cold plate/rails [19:17:36] good idea with the heat exchanger [19:18:45] the heat exchanger adds a little stability [19:19:04] so its not all just radiating into space during TLC [19:19:17] does it help with cabin overheating? [19:19:27] caused by the astronauts [19:19:38] I still need to test a longer mission but running for 3 hours crew in cabin AND all the heat from lights etc added back, the temp stabilized around 80 [19:19:49] survivable [19:19:54] I still need more heat in the glycol loop though [19:20:11] the suit heater works properly for a while [19:20:24] but then the glycol temp cools down [19:20:58] Probably needs a little more refinement, but its looking very very promising [19:21:55] awesome [19:22:16] I want to fly a mission with it next to make sure there are no surprises as it is a big PR [19:24:26] you have a bunch to choose from [19:31:38] I havent done a landing in a while [19:32:39] Should I use a MCC mission or try using RTCC for 12....hmmmm [19:33:30] if you do 12, I think theres some textures you can download [19:33:58] I just did some TLI cutoff fixes and used 12 for testing [19:34:08] with the fixes all the targeting works very well [19:34:18] Apollo 12 and 14 used to cause a bit of trouble [19:34:27] because of very high pericynthion altitude after TLI [19:34:53] and by "just" I mean a few weeks ago haha [19:35:22] Might need some hand holding on the RTCC as it currently is [19:35:26] but I can do 12 [19:35:28] sure [19:36:06] I think you can get away without using the "advanced" features like MPT [19:36:13] yeah [19:36:49] well I certainly am open [19:37:02] all the constants should be already set [19:37:06] AlexB_88 which textures [19:37:36] I think ggalfi made some [19:37:44] they looked quite good [19:37:51] let me try and find the link again [19:39:44] 4throck also made some I think [19:47:47] ah, here it is: http://absimp.org/orbitersim/apollolandingsites.html [19:53:29] did you do the d3d9 hack as well? [19:57:50] I haven't tried that yet [20:06:45] ok I am going to give 12 a whirl with my ECS...which by the way I have changed the CSM to use glycol instead of water in it's loops [20:07:25] Did a 3 hour test with that (launch to LEO) with no ill effects [20:14:17] sadly the accumulator didnt play a part in all of the stability haha [20:14:31] to be continued [20:16:23] for giggles I also changed "Earth" to be 21%O2 and 79%N2 [20:16:38] just want to see what it does and how purging might work [21:09:26] night! [21:21:57] so if I start the cabin at 21% O2 79%N2, 1 hour into the flight it settles to 65%O2 35%N2 [21:22:11] Without any changes other than "earth" tank composition [21:23:00] That is very promising for a potential cabin purge...first purging the cabin to 60/40 before liftoff with GSE and then implementing waste stowage venting [21:24:54] not how do I use the new RTCC MFD to target TLI/ get a TLI pad [21:24:57] now* [21:31:02] ah found it [22:25:56] so the sep attitude is off for 12 :( [23:10:41] after LM press CSM O2 at 89% N2 at 11% [23:10:55] So I think it wont take much to get the purging right [14:28:34] hey [14:30:54] morning [14:31:56] so I am attempting to add heat generation to batteries [14:32:48] I may be over my head but I am trying to add it to I guess e_object so it can be used in other systems as well? [14:33:58] hmm [14:34:07] e_object is a very basic class [14:34:15] I don't think it's a good idea to add it to that [14:34:19] hmm ok [14:34:27] nearly everything is an e_object [14:34:30] switches, meters [14:34:38] I just need a simple P=RI^2 [14:36:30] so how should it work. I guess you want to generate heat for some thermal object? [14:36:51] yeah [14:37:20] batteries in this case [14:39:59] Battery::UpdateFlow [14:40:08] power_load gets reset there [14:40:11] thats where I am [14:40:18] so it would probably have to go just before that [14:40:55] Yeah thats what I have been trying, I just cant seem to use "Amperes" [14:41:31] hmm, why not? [14:41:45] expression must have integral or unscoped enum type [14:41:56] thats where I have been stuck [14:42:07] what's the line of code where you want to use it? [14:42:35] ohh wait [14:42:40] it didnt like the squared [14:42:48] I changed to Amperes * Amperes and it worked [14:43:24] batheat = (internal_resistance * (Amperes * Amperes)); [14:43:35] switching too much between programming languages? :D [14:43:53] haha actually yes [14:44:01] I've been trying a bunch of things for deorbit calculation in MATLAB, which currently leads to be not doing the brackets for an if [14:44:08] if a == b [14:44:11] ahh [14:44:12] C++ doesn't like [14:44:51] ok so now I have battery heat computed...where is an appropriate place to apply that heat to a radiator [14:45:17] maybe the battery class should have a pointer to it [14:45:26] optional probably [14:46:16] Pointer to what? The specific radiator? [14:46:33] yeah, a thermal object [14:47:28] I think it already does [14:47:35] virtual therm_obj* GetThermalInterface(){return (therm_obj*)this;}; [14:48:09] oh right [14:48:13] class Battery:public e_object,public therm_obj [14:48:20] Battery is itself a therm_obj [14:50:00] not sure that helps us haha [14:50:39] because you want to move the heat to a different thermal object [14:50:41] not itself [14:51:24] yeah [14:52:50] as a thermal object can it be cooled with a heat exchanger? [14:52:52] the best way is probably to specify a therm_object (like a radiator) in the systems config [14:53:01] hmm [14:53:13] Yeah they are ready to go in the cfg [14:53:56] DESBAT1HEAT LM-DESBAT1-ECA-Plate #Needs Implementation [14:53:59] etc [14:54:43] heatloads heat exchangers and radiators (plates) are all ready [14:56:24] morning [14:56:39] good morning :) [14:59:53] indy91 could I just add the thermal pointer in LEM:SystemsInit() [14:59:57] Battery1 = (Battery *) Panelsdk.GetPointerByString("ELECTRIC:DSC_BATTERY_A"), Panelsdk.GetPointerByString("HYDRAULIC:DESBAT1HEAT"); [15:03:17] hey Alex [15:03:34] not sure what that is supposed to do [15:04:35] do you want to use the battery as its own thermal object, too? [15:04:40] having its own temperature etc. [15:07:11] That would actually be more useful in the future wouldnt it? [15:07:33] hooking it to telemetry as well [15:07:59] I think if it can act as its own thermal object that can measure temperature and exchange heat would be the best way to go [15:08:38] I guess it already is a thermal object, but none of the relevant parameters are configured yet [15:09:29] isolation, area, mass [15:10:07] that would go to E_system::Create_Battery [15:16:56] so just add them? [15:22:05] well you can just set values to them in that function, but then it's the same for every battery [15:22:40] yeah I need to be able to set in the config [15:25:08] I guess we can probably add new stuff to the line in the config without any backwards compatibility problems [15:26:32] I would think so [15:26:42] I just dont know what all needs to be added to this though [15:27:19] everything that a radiator has? [15:27:26] yeah [15:27:46] well [15:28:02] yeah I am just at a loss where to start [15:28:07] hmm [15:28:24] I guess if its acting like a radiator, it would need everything it has [15:28:39] I guess right now battery isn't treated as a thermal object, because it doesn't have this [15:28:40] P_thermal->AddThermalObject(new_one); [15:30:15] other than that it's P_thermal->AddThermalObject(new_one); [15:30:17] uhh [15:30:20] isolation, area, mass [15:30:51] guess a vector as well? [15:31:28] right [15:31:31] wow it's a lot [15:31:39] yeah [15:32:18] see it would be nice to do this because then you could even get your telemetry for individual battery temps [15:32:57] yeah [15:37:56] I am confused how to transpose that stuff [15:38:36] current battery code is on my ECS branch with the heat calculation but thats where I stopped haha [15:39:47] we could put the new stuff for the systems config in a new, option line [15:39:51] optional* [15:40:17] ah no [15:40:50] won't work [15:41:02] guess we have to do a quite long one liner [15:44:03] it still wouldn't work exactly like a radiator [15:44:24] as it doesn't so the thermic(-Q) from the radiator refresh function [15:44:36] but it does the stuff in them_obj [15:44:42] depending on direction of the sun etc [15:45:49] most of which can be bypassed if we set the position to zero [15:45:53] maybe that is the right way [15:45:58] at first [15:46:52] then it just needs isolation and area [15:46:58] and maybe an initial temperature [15:47:23] it would radiate that heat into nothing though [15:47:28] not to a heat exchanger or so [15:53:49] AlexB_88, the FDAI issue is annoying. No easy way to solve it [15:55:03] hmm, is the animation not updated when outside the VC? [15:55:42] not updated in general when in the external view [15:56:09] so if you start an attitude rate, go to the outside view and then switch back the FDAI has to catch up to the current IMU position [15:56:29] right [15:56:50] it's because the target attitude for the FDAI is only updated when actually being drawn or animated [15:57:28] the old fix for that doesn't work anymore [15:59:23] I'm making it so the target attitude gets always updated [15:59:44] or at least the function for it is called, doesn't go through of course if the FDAI has no power [15:59:47] btw [15:59:52] the no att flag in the LM [16:00:02] on the 2D panel, there isn't actually any logic for it [16:00:24] I think that is simply a lack of drawing the FDAI that makes the flag visible :D [16:03:28] ah, or not [16:03:29] if (LM_FDAI && (!IsPowered() || no_att != 0)) [16:03:30] oapiBlt(surf, hFDAIOff, 31, 100, 0, 0, 13, 30, SURF_PREDEF_CK); [16:04:00] no_att is always 0 though, so it's only when unpowered. Must be a remnant of when we used that in the CSM [16:10:51] indy91, the battery needs to be able to radiate into space a little and into a heat exchanger somehow to transfer heat to the glycol loop [16:39:23] ok I think I have a fix for the FDAIs, a bit ugly, but ok for now [16:39:47] could use more work, the paint function for 2D panel still does some things that the VC doesn't do [16:44:09] rcflyinghokie, I don't really know enough about heat exchangers and all to implement the change for the battery in the best way [16:44:33] Fair rnough [16:44:36] enough [16:44:40] does a heat exchanger connect two therm_obj? [16:44:43] yes [16:52:18] so the battery doesn't need to do anything actively then. It just puts heat into itself and the rest would be done by a heat exchanger. Meaning the battery class doesn't need a pointer to anything. [16:52:56] morning! [16:53:01] It just needs to compute the heat load and generate that heat into a thermal object (itself ideally) [16:53:16] yeah, then it call simply call thermic [16:53:19] hey Mike [16:53:31] and I have some changes to E_system::Create_Battery [16:53:42] the line with double power, operating_voltage, resistance [16:53:48] double power, operating_voltage, resistance, isolation, Area, mass, temp = 0; [16:54:06] the sscanf [16:54:07] sscanf(line+9,"%s %lf %lf %lf %s %lf <%lf %lf %lf> %lf %lf %lf",name, &power, &operating_voltage, &resistance, source, &temp, &pos.x, &pos.y, &pos.z, &isolation, &Area, &mass); [16:54:22] and at the end of the function [16:54:23] if (temp > 0) [16:54:24] { [16:54:24] new_b->isolation = isolation; [16:54:25] new_b->mass = mass; [16:54:26] new_b->Area = Area; [16:54:27] new_b->pos = pos; [16:54:27] P_thermal->AddThermalObject(new_b); [16:54:29] } [16:55:50] temp is 0 by default. If it does read the initial temperature from the config then it knows that it should be "activate" as a therm_obj [16:55:57] the code following if (temp > 0) [16:56:19] that way we don't need to change the batteries for the CSM at all [16:58:32] ahh I gotcha [17:00:37] hmm doesnt like the positions [17:00:55] oh right [17:01:02] vector3 pos; [17:01:12] added that too [17:02:51] that did it [17:03:06] I will test it in a little when I can [17:03:40] yeah, no idea how this will behave [17:04:11] but that should be the coding part. Now it's all about choosing the right numbers [17:04:37] back to deorbiting... [18:12:34] indy91, at the rate I'm going through Apollo 7, you should definitely have the deorbit calculations sorted out by the time I need them [18:14:02] unlikely. I'll also use that calculation for all the Block Data PADs and those really have to work or the MCC is in trouble. So once I am done I will first fly Apollo 9 probably for testing. [18:15:53] the targeting right now is ok in most cases, so you will be fine [18:25:11] at least I'm up to the part that is applicable to systems tests now [18:26:21] battery charger still works with the new diodes [18:29:16] so that's good [18:30:14] so the battery heat computation works, but I need to return the temperature of the battery now [18:31:41] Hmm I think I know why its returning the dreaded NaN... [18:31:52] cya! [18:36:39] hmmmm maybe not [19:08:55] if temperature is NaN, something else must be too. [19:10:42] is heat capacity nonzero? [19:11:40] heat capacity of what? [19:13:14] oh [19:13:48] I guess I didn't write an important line [19:13:59] new_b->SetTemp(temp); [19:14:16] it's probably missing the temperature initialization [19:14:32] together with the other "new_b->" in the if (temp > 0) [19:14:45] radiator has that [19:16:29] that would probably do it [19:21:07] Yeah I have added those [19:21:50] I added it in the temp>0 section at least [19:22:12] Where should the other instance of it go? [19:27:16] it works every other load lol [19:29:02] no other instance, I meant in the temp>0 [19:29:22] yeah thats been in there [19:29:51] ok, so you added that, I had forgotten about it [19:29:54] yes [19:30:29] also the get component section [19:32:17] My LMECS branch is up to date with my current changes [19:43:35] looks all good to me [19:43:46] what do you use in the config? [19:43:55] oh, I can look myself lol [19:44:27] still NaN ing :( [19:44:46] DSC_BATTERY_A 43200000 37.2 0.23 NOPOWER 277.594 <0.0 0.0 0.0> 1.0 0.0000001 40000 [19:45:36] I'll switch to your branch [19:52:05] I'm seeing temperature 0 [19:52:10] which isn't any better really haha [19:54:09] I get 0 every other try [19:54:13] and nan the others [19:54:26] new_b->c is what I was talking about. or is some constructor setting that? [19:54:33] if I remove the temp=0, I get the temp every other time [19:56:20] n7275, good question, what is even setting that [19:56:33] aha [19:56:33] c = 0.15; [19:56:35] in radiator [19:57:02] that needs to be done for the battery as well, or all energy calculations are random [19:58:49] still get 0 temperature with that [20:03:52] remove the temp = 0 and see [20:05:18] that works for me [20:05:35] now the question is how to take that battery heat and apply it [20:06:27] what " temp = 0"? [20:07:44] under Create Battery in esysparse [20:08:03] I don't have that [20:09:23] you should? [20:09:53] line 157 [20:10:31] then temp is undefined [20:11:08] then the set temp needs to be outside of the if statement [20:11:28] I don't really follow [20:11:37] double temp = 0; [20:11:38] temp is 0 [20:11:48] so if I remove that 0, I get the temp I put in the cfg [20:11:52] in the sscanf line the temperature is read from the system config [20:12:17] so why is it returning the value if thats left undefined [20:13:51] must be something weird with memory [20:14:02] if you don't set temp to 0 then the if (temp > 0) is pointles [20:14:23] all other batteries will randomly also become thermal object with undefined parameters [20:14:46] I let it write something to the Orbiter log [20:14:48] sprintf(source, "%s %lf %lf %lf %lf", name, new_b->isolation, new_b->mass, new_b->Area, new_b->Temp); [20:14:54] results in [20:14:54] DSC_BATTERY_A 0.000000 40000.000000 0.250000 277.594000 [20:15:02] so at least for one timestep it has the right temperature [20:15:08] what happens then I don't know yet [20:15:13] haha [20:15:24] but double temp = 0; has to be done or you get random/bad results [20:15:32] yeah understood [20:15:54] what about things like volume isolation and mass?? [20:15:56] the thermal class has a debugging feature which doesn't seem to work on the battery, weirdly [20:16:31] well, my assumption was that if you do add an initial temperature to the config, then the other parameters are also in the config [20:16:50] could maybe use some error checking, too, but should be fine if the config is right [20:17:56] I dont see why the config would be wrong currently [20:18:10] should be right [20:18:21] confirmed that with the debugging line [20:22:08] seems to be staying stable [20:22:59] found the issue [20:23:02] it's the loading function [20:23:20] right now batteries have a line like this in the scenario [20:23:21] DSC_BATTERY_A 43136855.4220 [20:23:40] name and power, correct [20:23:44] sscanf(line, " %s %lf %lf", name, &power, &temp); [20:23:51] did you add that? [20:23:54] yes [20:24:00] it has no temp [20:24:05] double temp; [20:24:11] and temp has no initial value [20:24:19] ah I see [20:24:25] so it doesn't load anything from the scenario and then does SetTemp(temp); [20:24:51] one way could be to also do a double temp = 0; there [20:24:58] and then check if temp > 0 [20:25:06] and only then do the SetTemp(temp); [20:25:18] that way old scenarios loads the temperature from the config [20:25:28] Ah I see [20:26:13] like this? [20:26:14] double temp = 0; [20:26:15] sscanf(line, " %s %lf %lf", name, &power, &temp); [20:26:16] if (temp > 0) [20:26:16] { [20:26:17] SetTemp(temp); [20:26:18] } [20:26:21] yeah [20:26:29] Visual Studio is so useless [20:26:31] Fehler LNK1104 Datei ".\Release\PanelSDK\PanelSDK.lib" kann nicht ge÷ffnet werden [20:26:40] Oh i get those too! [20:26:49] and panelsdk errors [20:26:50] I'm pretty sure it used to be able to do ö [20:27:03] the word is geöffnet not ge%ffnet :D [20:27:08] lol [20:27:16] somehow it unlearned how to write that [20:27:22] microsoft for ya [20:27:28] I only got them once I switched to your branch [20:27:50] I get them on the main branch as well randomly [20:27:57] A clean and rebuild usually resolves it [20:28:04] hmm right [20:28:15] you probably do more PanelSDK changes than me [20:28:50] yeah haha [20:29:02] Ok so after a few load the temp is working I think [20:29:31] still have to see that it actually does the thermal calculations [20:29:43] I added the battery as the object to debug and it showed nothing [20:29:57] I have a debug line printing temp and heat power [20:30:10] I changed the isolation and the temp slowly decreases [20:30:28] now I need to figure out how to add the heat back into it [20:30:47] ah ok [20:30:51] so the FCell class is both an e_object and a thermal object, so all the things that get initialized for FCell should apply here [20:30:56] so it's working, I must have set this up incorrectly [20:31:03] the debugging line [20:31:07] let me push my current state [20:32:07] n7275, does FCell do much with the fact that it's a therm_obj? [20:35:24] it calls thermic(heat) but that's about it [20:36:18] the rest is handled when panelsdk runs through the linked list of thermal objects and calls radiative() on them [20:38:01] oh, and in my branch I use the temperature property to calculate voltage [20:38:03] rcflyinghokie, did you add the "c = 0.15;" somewhere? [20:38:41] yes [20:39:28] where? I'm not seeing it [20:41:20] hang on having issues with git [20:42:31] esystems [20:42:40] under battery, line 571 [20:43:32] I fetched from your repo too quickly :D [20:43:41] now I see it [20:44:33] so now I need to add the heat I calculated back into the battery [20:46:00] are Temp and temp getting mixed up, or am I getting mixed up here? [20:46:32] I think the capital temp is the thermic one and lowercase is the local [20:46:59] temp is just for loading from config/scenario [20:47:36] yep its me [20:47:41] maybe a different variable name should be used in Battery::Load I guess [20:47:52] this is why I'm not a compiler [20:48:12] who needs compilers anyway [20:50:35] rcflyinghokie, I'm convinced yet that it's working as a thermic object [20:50:47] temperature doesn't chang, even when I set something as the position [20:52:09] I don't think Thermal_engine::Radiative is run for the battery [20:52:15] my temp changes [20:52:18] its decreasing [20:52:56] what did you put in the config for that? [20:53:24] I think with position as all zeros it doesn't work, right? [20:53:36] DSC_BATTERY_A 43200000 37.2 0.23 NOPOWER 277.594 <0.0 0.0 0.0> 1.0 0.0001 40000 [20:53:43] just goes down slow [20:53:55] ok... maybe I just need a clean rebuild [20:54:46] DSC_BATTERY_A 43200000 37.2 0.23 NOPOWER 277.594 <0.0 0.0 0.0> 1.0 0.1 10000 [20:54:50] that drops even faster [20:55:00] so its certainly dropping [20:55:05] i'll be back shortly [20:59:51] static temperature [21:01:07] can't explain it [21:01:27] I'll test when I get home in a bit. [21:02:47] are you both testing on the same scenario? [21:03:16] probably not [21:03:32] but I can't even confirm that the battery is even run as a thermal object [21:03:43] that should be the case in any scenario [21:07:32] hmm, yes. [21:08:29] you could put a debug string in radiative where name == someBattery [21:09:29] like [21:09:30] if (ObjToDebug && runner == ObjToDebug) [21:09:35] that is already there :D [21:09:38] and doesn't work [21:11:52] my solution is to leave this branch behind, it's just confusing me :D [21:20:21] I mean, if(!strcmp(name,"batteryname"){sprintf(oapiDebugString(),"hey this function got called");} [21:22:05] I'll play with it tonight and see if I can uncover anything [21:22:12] well in the therm_obj class it doesn't have a name [21:22:26] didn't help debugging it [21:23:05] darn. [21:23:40] hopefully I have some better ideas when I'm in front of a computer... [21:23:43] as long as it works when it gets merged into the Orbiter2016 branch I am happy [21:24:23] sounds good. Probably just something on my side, if it works for Ryan. [21:25:29] night! [21:25:34] night! [21:26:24] so yeah my temperature is decreasing with respect to my isolation..isnt that indicative of it being computed as a thermic object? [21:58:09] hmm maybe there is something missing, I cant seem to call thermic within the Battery class [22:09:04] Oh I think I got it [22:10:13] oh, how? [22:10:53] I didn't even have a chance to fetch, pull and build [22:17:40] thermic(batheat * dt); //1 joule = 1 watt * dt [22:17:43] that worked [22:18:39] now I need to be able to connect it to a heat exchanger [22:19:53] why wouldn't it let you call thermic before? [22:20:40] ... [22:20:46] forgot a ; [22:23:39] but I cant seem to use the battery as a thermic object [22:23:47] haha, been there. [22:25:11] wont let me connect it to a HX as its currently written [22:27:56] rebuilding now with your branch [22:30:37] oh its not current [22:31:15] give me one moment [22:46:27] hmm getting CTD now and I dont know why [22:54:25] I cant figure out what I changed to make this happen [22:59:58] I will push my current state if you can take a look n7275 [23:15:46] sure [23:16:06] sorry, making a soup and it pulled me away for a bit [23:16:23] haha no rush at all I got frustrated and stepped away :P [23:31:00] 619: SRC->DrawPower(batheat * dt); //Power loss to heat [23:31:06] what's this line doing? [23:34:48] causing an access violation aparently [23:35:05] you dont want that line there [23:35:41] hang on, orbiter has frozen my computer... [23:55:26] okay back [00:03:05] just sent you a pull request for a fix that appears to work, or at least fix the CTD