Tuesday, September 8, 2015

Apollo 6 and the wiring fuckup

About two years ago I had the pleasure of visiting the Johnson Space Center and managed to sneak into the Saturn V exhibit when nobody was around.  Now I mean that literally, the exhibit was completely empty.

After spending some time looking at the massive F-1 engines (scale is so difficult to convey, but imagine a tanker big rig, and the width of the engine bell is wider than that.)  The first stage is so massive it defies modern thinking.  We still haven't built something so large since.  It's a marvel sitting on it's side.  One can literally only imagine how it looked for it's all-up testing and launching.  It is a massive monstrosity.  It was also designed in the 60s and had incredibly tight tolerances.

Every system manager was asked to "make it lighter."  Fueled and on the pad, the vehicle weighed almost 3 thousand metric tons.  All of that mass to lift 120 tons to orbit.  Less than 4% seems like such a minuscule amount when it comes down to it.  But in 1960 slide rules and gray-matter brought men to the stars.  The Apollo program was no exception.

After having snuck into the Saturn V exhibit (it wasn't locked, and it was a Sunday afternoon) I found myself standing in front of the second stage, looking into the interstage.  It was massive, and amazing.  At each tier of the rocket, it shrank slightly and the second stage was still seemingly massive.  Inside the interstage were huge copper connectors, oxidized from exposure to the Houston weather for decades.

Connected with small dollops of solder were individual wires.  The wires are unwrapped (you can see them today) and ran along the most economical route in the interstage to their corresponding terminal.  But there are hundreds of them.  One familiar with electrical engineering can see, and easily understand how Apollo 6 happened.  The hundreds of wires individually ran would each require a human connect and isolate each terminal.

The massive undertaking would have to be repeated at every interconnection and then again at every component that needed to be telemetered, or controlled.  Thousands of terminals would need to be connected correctly and one simple mislabeling or miswiring would easily have accounted for Apollo 6's unfortunate Engine.  From teh wiki "Unfortunately, the command signals for engine three were partially cross-wired with engine two, so that the shutdown of engine two caused a liquid oxygen valve for engine three to close, resulting in a shutdown of that engine as well." 

It's easy to see why this was the assumption.  It would have been easy, even under immense scrutiny, to mistakenly wire one engine as another.  



I stood in front of the open interstage in awe, the massive effort, the hundreds of thousands of man hours, and all even then a simple human fuckup nearly caused a flight failure.
Overall, outside the aerospace community most people don't realize that Apollo 6 was an almost complete fuckup.  It didn't have a Hollywood Apollo 13 rendition, or even a discovery channel review of near misses.  It didn't rate like the shuttle repair of the Hubble, or like the moon landings. 

Nobody remembers the near misses that still succeed, as misses.  They're successes.  Engineers will still suffer over the failure, make the system better overall, and attempt to prevent the same thing from happening again.  Which is exactly what engineers do, but we should recognize this as what it was.   A near hit that superb engineering had nonetheless designed around the entirely improbable, but nonetheless very realized, eventuality.

Gazing at this massive racetrack of individualy isolated 20mm wires I still revel in amazement at the complexity of the design.  Next time I'm there I'll see if I can get a picture inside the interstage, it's remarkably unremarkable, but I still think worth documenting for historical purposes.





Sunday, August 30, 2015

Current Projects


This is really just a list of projects I'm planning on doing.  Each item warrants a post of it's own.

  1. Electronics
    1. Hand Wired Neutrino Keyboard
    2. Defcon 23 - DCDarknet Badge
    3. RFID Cloner (from the Hardware hacking village)
    4. Custom handheld keyboard (Maybe a chording layout?)
  2. Software
    1. (Nexus 6) Android in Memory PIN brute forcer
    2. Zoneminder RasPi setup
    3. Sniffer/MHN homebrew setup (Docker instead of vagrant maybe?)

Saturday, August 29, 2015

New Keyboard

I'm working on putting together a Neutrino from Ortholinear keyboards.  It's essentially a kit that contains an aluminum plate and an aluminum and acrylic case (a bunch of flat pieces really.)  I have built an atomic keyboard before (a kit that's a grid layout and is entirely hand wired.)

It would seem it's a large quantity of work for what is essentially an "imperfect" keyboard by typical standards.  I actually found I really liked the layout when I used it exclusively.  It had the benefit of more vertical movements and less diagonal transition movements with my hands while typing.

Unfortunately it's just off enough (and I don't have multiple Atomic keyboard) so whenever I would go from work to home I would have a period of adjustment.  It drove me nuts.  I loved the layout, and have great keycaps on the keyswitches, but it's just not worth the period of relearning every single day.

Also, when going from a fixed keyboard, such as a laptop, back to the ortholinear it would take the same amount of adjustment.  I'm really talking about 30 seconds or so, but it's enough that the mental adjustment was frustrating.

The Neutrino, by contrast, is normally a hand wired standard offset keyboard.  Assembled it would, presumably, have no real adjustment time since it would be the same offset as any other qwerty keyboard one uses daily.  This seemed like the perfect design for me.  I have built several keyboards, and they all aren't quite the layout I want.  The Neutrino is nearly exactly the layout I would design if I was doing it from the start.  I started out and bought a kit (top and bottom plates plus a middle divider made from acrylic.)



The work I did on the atomic keyboard gave me experience when it comes to how keyboards really work.  I decided I was going to try and make my life easier.

For some idea of what it takes, a member of the mechanicalkeyboards subreddit livestreamed soldering a planck keyboard (which is ~20% less complicated than an Atomic.)  It took him more than 6 hours to complete from start to finish.

Since the process of hand wiring a keyboard is so incredibly time intensive, I had decided I was going to try and make the process easier.   Having also built a phantom, and an infinity v60 keyboard I knew how beneficial using a PCB was to creating a keyboard from scratch.

It is so much easier to solder points to a PCB (through hole points) than it is to solder individual wires and diodes to each other by hand.  With a little research I found the "enabler" pcbs.  They are small printed circuit boards that allow for through hole mounting of switches, diodes and leds to.  The caveat being, instead of an integrated circuit board where all switches go into one large board, they are individual PCBs that you have to crosswire between each other.


The image to the right has a few of the PCBs by themselves, and a row of switches soldered to a Neutrino.  At first glance it definitely looks like it will allow an intrepid keyboard creator the ability to make a much cleaner keyboard design.   But that's at first glance.

To give some more clarity let me break down the process for a hand wired board:

Step 1: Insert switches into plate
Step 2: Solder a Diode to one side of the key switch
Step 3: Solder the end of the diode to the next diode (off of the next switch.)
Step 4: Solder the other terminal on the switch to a wire that is connecting vertically to the switch above & below it.
--

Per switch, you are basically only soldering three times.  For a keyboard composed of roughly 70 keys, you are soldering 210 times.  It actually goes pretty quickly and you can make it look relatively decent after a little practice.






You can see in the image above, the grid layout sort of forms itself with a bit of practice.  While still rudimentary, it can be somewhat orderly.

Unfortunately, the enabler requires 6 solder points per keyswitch (up to 9 if you're using LEDs,)  I hadn't realized this before I started building the keyboard and so I didn't have solid core wire and appropriate gear to strip and solder so many cables.

I will continue to make it work, but at this point the enabler seems like a giant time sink, and I'm seriously regretting not just wiring the keyboard by hand.

Sunday, August 23, 2015

Fun with Gate Codes and iPhone block feature

The management company at the apartment complex I live in refuses to give out a bypass code for the door. That means delivery people are basically fucked (have to call, or wait for someone to come through the gate.)

They do let you have an "interactive" gate access of sorts by calling your phone and then you press 9 to open the gate. Knowing a little about telephony I figured I could give them a SIP DID that I had somewhere and setup something on Asterix. I did them one better however.


Since I recently switched to an iPhone I have the "block" feature easily accessible. I figured I would use it to make the process a great jimmy rig. I setup my greeting to have the unlock DTMF as the first notes it plays and then blocked the source number for the gate.


Low and behold, one ring later I have an automatic gate code so I can get back in when I'm jogging or delivery folks can drop packages off without a code.