Apollo Comms Part 32: Breaking the Updata Link Code

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
greeting earthlings if you follow the channel you know that we are resurrecting the Apollo communication system with original spacecraft and NASA ground equipment in the last episode we admired and hooked up our udl box short for up data link it should allow us to receive digital commands sent from the ground decode them and send them to the appropriate system in the spacecraft we got it to receive some bets but they did not look quite like what they were supposed to be okay so we have bets genuine bets EXC uh can we check we got the right ones uh I think the polarity is inverted no I think we have 00 1 0 first the nrow one this would mean that it's switch to the different sub bit encoding after only two bits and I'm expecting to see three bits I mean we should never get that many ones in a row so something's definitely messed up H something appears to be wrong we are going to try to figure out T in this episode okay okay so we're receiving something but but our vehicle select output's not going ACC so yeah oh you check that yes okay all right so let's let's fix that first so every message starts with a three bit pattern which defines the vehicle address that the message is targeted to assuming I am sending the proper address for The Command Module which should be four our udl should immediately decode that the message is addressed to itself and activate the vehicle select output but Mike just checked it and unfortunately udl does not even think it is addressed there are so many things that could be wrong first off the bits are not transmitted as is but are instead encoded as a pattern of five subbits a five bit pattern is used for the ones and another one for the zeros if we had the wrong subit pattern that could prevent add dras the coding on top of that the subbits are further encoded on an audio carrier using face shift keying or psk sadly part of the psk encoding circuit was missing from our undocumented updata transmitter so we had to take a stab at reimplementing the missing parts in episode 18 I could certainly have done this wrong anyhow we know for sure that we have an issue very early on within the first 15 subbits naturally we first suspected our reimplementation of the updata transmitter missing circuits okay we think we might have found a problem uh this is the signal we are getting from the encoder the data box and that's the psk signal and we should get something like that and it's not quite the same and uh can you you think you found the the issue yeah yeah I made a little JavaScript simulation so I can try different experiments and I think the problem is a phase shift so I can put in some some sub bits some ones and zeros and what we what we want to get out um looks like this so it looks like the N side drawing and you'll notice that the Peaks and the bottoms are all in a nice line if we make a little phase shift between the two signals um now you can see we get some Distortion and we we lose our Baseline here it's shifted up for the zero bits which is just what we see on the soloscope we had noticed that our transmitted psk signal in red here was closed but not quite what it was supposed to be a subtle mistiming of the face shift location could certainly cause that and you can actually see that the yellow 1 khz is a little bit out of step with the blue 2 khz it's slight but might be enough to screw us up I suspected right away one of the resonant filters that I had implemented the the face shift is not happening at the right place it should happen right in the middle I think so it's a fairly small phe shift of 35 degrees but it's enough to mess up the signal and match what we see on the soloscope so I think my problem was on this card over here which is not an original NASA card I had replaced the stuff that was missing by my own stuff and I went back to what I had done I was tuned uh to 977 Herz so I'm 20 2.5 Hertz off which doesn't sound like much in a very high Q resonance circuit like we have here the slightest DET tuning will cause a notable phase shift I was just 22.5 Hertz off but that was enough to pH shift the th000 HZ reference signal and so I had to retune the 1 khz filter so it's Center so it it it's pred a few more capacitors and but now I think it's centered at 1,000 HZ and turn it on and I send some data here's my data get this little bigger yeah you can see it so now my my 1 KZ is correctly tuned and I the zero Crossing corresponds with the the face shift and I have something that's a lot closer I looks exactly like what I should get over here so hopefully that will fix it 13 this is Houston we hear you okay so we have that and I don't have the mation going yet okay you got something we we stopped getting a bunch of okay so that's good zero okay so that's one command I can't remember what it is 4 six can you see these are sub bits okay okay we are making slow progress the next step is to compare the sub bits we sent with the sub bets we received if the match will'll have at least gotten the PS modulation correct okay I now have a long cable running all the way from over there back to here so we can compare what we send with what we receive and so far the result is pretty darn good I would say and the signal is distorted because of the long co-ops cable and it looks like we're decoding our signal okay so I would call that partial Victory we are sending modulating psk getting it all the way through the microwave link getting it back down and it's getting us the same thing if we did a little bit better setup we would see a square wave but so far I would say it completely matches but you are not decoding am I on the wrong shape you might be you might be sending the wrong Preamble um I am sending 4 6 0 1 0 0 so what we're looking for is whether it triggers a recognition right right don't you get it so I think we need to manually decode it and figure out what what we got all right we're one step closer we can send sub bits across the link and recover them exactly unfortunately our udl receiver still didn't seem to decode the address Preamble we need to call in master Ken to rescue us and see if he can decode it manually so what is it supposed to be so it's 46 then 070 and I can't remember what the command was supposed to be no so so 4607 should be 11011 at the beginning but so looks like like it's not right from the beginning no that's not so it's an encoding problem well well the data receiving doesn't make any sense uh the encoding could have been changed because wasn't that box modified for program yes it's also a one box yes so we might not have the right encoding so what have you guys figured out so so I'm looking at the schematic I reverse engineered a few years ago for the subit generation way back when in episodes 9 and 14 when we still didn't exactly know what our mysterious updata transmission box full of mysterious Motorola circuits actually did Ken spent several months reverse engineering its Tangles of wires and came up with the schematics of the Beast and um what I'm noticing is that what I thought are the subbits for the vehicle address are basically what we're seeing on the scope and don't match the documentation so the box is acting correctly as it's as it's hard as it's implemented but it's not a it's incompatible it's not a block to whatever app thing anymore right so there's a contradiction here between what we see um what the circuit does and what the documentation says it should be doing and and Mike dug into it secret papers and found the answer this is the functional integrated system schematics for spacecraft 8 so if we look uh right at the beginning of this diagram there is our updata link confidence test Set uh with 2 a17 which we have as a sticker on the front of that box so if that wasn't the Box you know it is the right kind of box for the test but this is all block one right so that box was built for Block one and we have a block two upd link you we also checked out we have schematics for a udl yeah we have schematics for a udl it doesn't explicitly state in this document if it is a block one udl or a block two udl but it does give dimensions for the udl at the beginning of the document and those Dimensions don't match block two so presumably this is for Block one uh the logic in the top left here this logic here is doing the decoding of sub subbits and if we map out this logic it agrees with the sub bits we're seeing from the test set so it seems like probably that this is a block one versus block two it's a block one coding on the transmitter and the block two decoding on the receiver it might not be too unexpected for the sub bits to change here um we've we've used this document as a reference a few times the proceedings of the the sban technical conference it shows the subbits and the subbits shown in this diagram match neither the block one or any other documentation we have oh really so this this is a third set of sub bits yeah okay so the theory is that um we have the wrong submit and coding on our transmitter yeah but we can change that we just need to open up the box pull out some modules cut some traces connect some wires and we should be good to go and but before we do that um we are going to test it because and and I I I made a special box for that with my HP equipment I made an HP udl and then we can try the pattern and be sure that's the problem yeah before we make any modifications right so here is my HP version of the udl I have this source that has two oscillators has the one and 2 KZ and I can modulate the 2 KZ with BPS and I modulate it with a stream that comes out of the serial generator I can do any beted pattern I want so let's do 111 0 0 0 111 I have to load it and T there you go 111 1 0111 and I can try different sub bit encoding so I going to go one 1 lood there you go and then I can I can make it as long as I want can enter manually a full message and see if it's getting decoded okay so I think I have program the correct bit sequence for Block two where transmitting it do you get anything on the receive sign rece uh we see the data coming in but we don't get a pulse that would indicate that it interprets the vehicle code so it doesn't recognize that Preamble the vehicle code oh we have a fail we might have polarity inversions and all that good stuff did I do the bit in the right sequence cuz I have 1 1 011 that's here so I have a one and then I have zero which is 0 0 1 0 00 1 0 0 and another 0000 1 0 0 but is is it little Indian or big Indian who which comes first I should we try should we try to reverse I can we should try inverting it first so I can get 0 0 1 0 0 and then here I Inver this one one so I flip my bits and and I'll just send it to you no didn't do a thing yeah I can see the the bits are in there in the reverse order but we're not getting a pulse on channel two okay so then we might be reverse on the data itself which I can do here so if I get here I'll change the order of my bed did that do anything over there it did flip it over but you have so I'm I'm I'm flipped over now but so at least my emulator is working you're receiving the data right yeah so now we have to find what the right message is uh is there a subit air pin or something that we can get it confirms it has received something or is it time for lunch much time oh no the old thing is resisting US changing the coding to match the documentation or at least one of them and trying all different bit orders and polarity permutations is not working either we then decided to try a different approach to discover the proper code why not send it some pseudo random noise which my HP generator can do and see if we can trigger it by accident and now it has noise and you can see the noise here too okay oh it's not Noise Okay and now we see it triggering on the vehicle address when the noise gets it right yeah so there Rand noise that's triggering it this this is sort of scary just we would I agree uh and then you just think on that and we're going to try to reverse engineer which we see what bits triggered it exactly and to our surprise it worked kind of sort of it actually worked way too well we could trigger it way too often as you can see in the green Trace worse the trigger patterns were not reproducible this got us into further head scratching and sent us yet in another Direction so I can I can s it some s random stuff and it actually it does trigger the recognition address four whatever we wire it to address but the pattern before it is not consistent and we were puzzled until we discovered that we probably had one wire not connected properly right yeah we were looking for the reset condition right yeah so we're trying to understand what happens when bad sub bits are detected uh you know how does that reset the sub bit detection how does that reset the bit detection right of your vehicle code and all of that this is a shift register that is the current sub bits so there's four registers and then the inputs to the first bit are also used so that's your five subbits as groups of five subbits are translated into bits those bits are put into this uh register decoder the first three bits of this are used both for vehicle detection and system detection so what what we're looking at is these first three bits being one Z 0 will trigger the address for wire which is what we have up on the SC that's the green Trace that's our green Trace so the udl is programmable by wire to pick what your vehicle code is going to be so there is a pin for each of the eight different possible vehicle addresses 0 through 7 so we have a a loop back on our harness that's the little white wire uh this wire down here that we have this before so the the idea behind that is you you pick off which of the seven or which of the eight different vehicle addresses you want to be and run it into the V pin which will set the vehicle flipflop uhhuh so if we look at the pin out for the connector we have external control a0 through A7 and then external control V so we figured out you know if we want to set our our address to four we wire up A4 to V and leave the rest of them disconnected that was that was where we got and that's what we we did and we thought we thought it was good and we went to lunch y so while we were puzzling out you know how does this error detection work Eric noticed that there are inputs to the first three bits of the bit register a prime and a double Prime once St that all to one a prime sets them all to one a double Prime sets them all to zero which is very bizarre yeah it was very weird and we didn't understand why that would be and also didn't immediately know where a prime and able Prime were connected to uh but looking over here these two little uh A7 Gates here these two these two gates detect all of both of the possible types of errors with your sub bit detector either you detect you detected a bit when you shouldn't have or you didn't detect a bit when you should have so those go out to a little wire and tracing that down there's a little connection hidden down here that says a to a prime or able Prime and power connector right here okay um and sure enough those pins do appear as external control signals here external control a a prime and a double Prime so the reset wire is external it's externally programmed and the reason you have to do that is that vehicle codes 0 and 7 are both valid so if you have programmed yourself to be vehicle zero but you have the error detector wired up to reset the first three bits of the bit register to zero every time you get an error it's going to select the right vehicle which is not what you wanted to do so they made it this also externally programmable so so that if you are vehicle zero you change that so that it sets the first three bits instead of unsetting them and if you're vehicle seven you need to change it so that it unsets them instead of setting them two different reset conditions right for vehicle 4 it's going to be better to reset the bits because if it if we set all the bits then it would only take two zeros for us to detect a valid vehicle cuz it would shift that default one up two places whereas if we make our default zero then we have to get all three bits correct before yeah oh oh yeah it depends on which o so it kind of depends on the most significant bit as well of your vehicle code we okay so we have to do another Wire yeah that a pin is the sub bit error detector so we're going to be able to see when it picks up sub bit errors now which we couldn't before Eric thought about that one why don't we choose vehicle zero then we can try all the codes it's three times the same bit right so we try all the five subbits that exist then we can try all combinations just 32 combinations and see which one will trigger it and then we know what it is for a zero yeah V is on pin 49 uh and I I put silver circles on all the multiples of 10 so okay and so this one's probably 49 and then that would be 50 mhm so that's our our error detect okay and then a Prime is right next to it so1 yeah here we go you think we we're going to see an error signal I hope so me too okay so you're seeing my bets um should I send all zeros what what we think is the all zeros pattern for zeros to there you go is that what you see errors errors um all ones so now we've made further progress we can try what I think are the correct block two subit codes and see if the udl thinks they are subit pattern errors shown as negative pulses in the purple Trace at the bottom no good no um I'm trying the other code for zeros no other code for on no while trying the codes from the documentation still did not work so we are just going to brute foret and try the 32 possible five bit codes in succession okay well let me flip the bits I'll count okay we start at 0000 0 all right okay 1 0 0 two three um where we getting something three yeah it's giving us a valid vehicle code now uhhuh and it's wait that's not that's oh see that uh and that's I am sending 1 one and three Z wait a minute that does sound familiar 1 1 0 Z yes that's a vehicle address and that corresponds with a one from what we decoded looking at what the schematic I think this was yeah okay let me let me try the the opposite of that and and see if you can can give you a a one 0 0 one one one we should get fewer ER get something we're getting no valid address but we're getting no errors yeah that that so these is our ones and our zeros but I might be inverted I think we might be looking at inverted subit output here I think that's what's going on okay so now you have you have vehicle address yes so we have a valid vehicle address wo wow this is great progress so so this is what I'm seeing coming out of the update Link Box well it sends right it sounds the right sing the right code so wellow so the documentation is wrong the box is correct correct well and then we had this the wiring for discovering the address was well we left out the reset address thing yes that was that was the yeah nobody told us to put it in right so am I inverted or not there my recommendation is to switch over to the non-inverted output on this generator and then invert your five bits and then that should match up up with the code for zero and match up with getting a zero out here there you go you get Zer add selected yes this looks good over here we're getting this see that little pulse there shows that our vehicle's being selected so I'm sure you will be thrilled to know that we have finally found the sub bit coding of the Apollo up data link and the first 30 subbits are encoded uh using 1 1 0 0 0 for ones and 0 0111 for zeros and then the rest of the message which can be pretty long use a different sub big code which is 01011 141 and one1 0 0 for zeros so putting all this into practice this is how I coded my uh messages for abort one and clear aboard uh which are 60 sub bit long and you're probably not thrilled but we are thrilled that was a lot of work and now we can probably remote control the spacecraft once we get the uh udl box going the real Apollo one moments later I think I finally managed to send OK command to the spacecraft I wrote it all down and this should be a a message to turn a relay on and so I have to change this from five sub bits that did a one to five sub bit that did a zero oh what an achievement so that that is the abort relay I just sent an abort to the spaceship and I'm going to turn it off don't worry no problem everything's fine there you go easy wow that that took us like 3 months of work actually more than that because we started we we opened the udl in June did we yeah wow eight months of work woo [Music]
Info
Channel: CuriousMarc
Views: 14,697
Rating: undefined out of 5
Keywords: CuriousMarc, Vintage Tech, Retro Computing, Restoration, Electronic Repairs, Apollo, NASA, Unified S-Band, Radio, Space, Transponder, Communications, Moon Landing, Apollo Control Panel, Collins, Motorola, Samtec, DesignCon
Id: tBy1j9cTYKc
Channel Id: undefined
Length: 29min 29sec (1769 seconds)
Published: Fri Jul 12 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.