by Andy Weir
Bruce pushed his way forward. “Still another few seconds on the clock,” he said.
The time passed in silence.
“Getting something,” Tim said. “Yup. It’s the panoramic.”
A general loosening of tension coruscated through the room as the image slowly came through, one vertical stripe at a time.
“Martian surface…” Venkat said as the lines displayed. “More surface…”
“Edge of the Hab!” Bruce said, pointing to the screen.
“Hab,” Venkat smiled. “More Hab now… more Hab… is that a message? That’s a message!”
The vertical stripes revealed a handwritten note, suspended at the camera’s height by a thin metal rod.
“We got a note from Mark!” Venkat announced to the room.
Applause filled the room, then quickly died down. “What’s it say?” someone asked.
Venkat leaned closer to the screen. “It says …‘I’ll write questions here – Are you receiving?’”
“Ok…?” said Bruce.
“That’s what it says,” Venkat shrugged.
“Another note,” said Tim, pointing to the screen as the slow march of data revealed itself.
Venkat leaned in again. “This one says ‘Point here for yes’.”
“All right, I see what he’s going for,” said Bruce.
“There’s the third note,” said Tim.
“‘Point here for no,’” Venkat read. “‘Will check often for answer’”
Venkat folded his arms. “All right. We have communication with Mark. Tim, point the camera at ‘Yes’. Then, start taking pictures at 10 minute intervals until he puts another question up.”
LOG ENTRY: SOL 97 (2)
“Yes!” They said “Yes!”
I haven’t been this excited about a “yes” since prom night!
Ok, calm down.
I have limited paper to work with. These cards were intended to label batches of samples. I have about 50 cards. I can use both sides, and if it comes down to it, I can re-use them by scratching out the old question.
The Sharpie I’m using will last much longer than the cards, so ink isn’t a problem. But I have to do all my writing in the Hab. I don’t know what kind of hallucinogenic crap that ink is made of, but I’m pretty sure it would boil off in 1/90th of an atmosphere.
I’m using old parts of the antenna array to hold the cards up. There’s a certain irony in that.
We’ll need to talk faster than yes/no questions every half-hour. The camera can rotate 360 degrees, and I have plenty of antenna parts. Time to make an alphabet. But I can’t just use the letters A through Z. With my Question Card, that would be 27 cards around the lander. Each one would only get 13 degrees of arc. Even if JPL points the camera perfectly, there’s a good chance I won’t know which letter they meant.
So I’ll have to use ASCII. That’s how computers manage characters. Each character has a numerical code between 0 and 255. Values between 0 and 255 can be expressed as 2 hexadecimal digits. By giving me pairs of hex digits, they can send any character they like, including numbers, punctuation, etc.
How do I know which values go with which characters? Because Johanssen’s laptop is a wealth of information. I knew she’d have an ASCII table in there somewhere. All computer geeks do.
So I’ll make cards for 0 through 9, and A through F. That makes 16 cards to place around the camera, plus the Question Card. 17 cards means over 21 degrees each. Much easier to deal with.
Time to get to work!
Spell with ASCII. Numbers 0-F at 21 degree increments. Will watch camera starting 11:00 my time. When message done, return to this position. Wait 20 minutes after completion to take picture (So I can write and post reply). Repeat process at top of every hour.
S…T…A…T…U…S
No physical problems. All Hab components functional. Eating 3/4 rations. Successfully growing crops in Hab with cultivated soil. Note: Situation not Ares 3 crew’s fault. Bad luck.
H…O…W…A…L…I…V…E
Impaled by antenna fragment. Knocked out by decompression. Landed face down, blood sealed hole. Woke up after crew left. Bio-monitor computer destroyed by puncture. Crew had reason to think me dead. Not their fault.
C…R…O…P…S…?
Long story. Extreme Botany. Have 126 m2 farmland growing potatoes. Will extend food supply, but not enough to last until Ares 4 landing. Modified rover for long distance travel, plan to drive to Ares 4.
W…E…S…A…W…-…S…A…T…L…I…T…E
Government watching me with satellites? Need tinfoil hat! Also need faster way to communicate. Speak&Spell taking all damn day. Any ideas?
B…R…I…N…G…S…J…R…N…R…O…U…T
Sojourner rover brought out, placed 1 meter due north of Lander. If you can contact it, I can draw hex numbers on the wheels and you can send me six bytes at a time.
S…J…R…N…R…N…O…T…R…S…P…N…D
Damn. Any other ideas? Need faster communication.
W…O…R…K…I…N…G…O…N…I…T
Earth is about to set. Resume 08:00 my time tomorrow morning. Tell family I’m fine. Give crew my best. Tell Commander Lewis disco sucks.
“I was up all night,” said Venkat. “Forgive me if I’m a little punchy. Who are you again?”
“Jack Trevor,” said the thin, pale man before Venkat. “I work in software engineering.”
“What can I do for you?”
“We have an idea for communication.”
“I’m all ears.”
“We’ve been looking through the old Pathfinder software. We got duplicate computers up and running for testing. Same computers they used to find a problem that almost killed the original mission. Real interesting story, actually, turns out there was a priority inversion in Sojourner’s thread management and-”
“Focus, Jack,” interrupted Venkat.
“Right. Well, the thing is, Pathfinder has an OS update process. So we can change the software to anything we want.”
“Ok, how does this help us?”
“Pathfinder has two communication systems. One to talk to us, the other to talk to Sojourner. We can change the second system to broadcast on the Ares-3 rover frequency. And we can have it pretend to be the beacon signal from the Hab.”
“You can get Pathfinder talking to Mark’s rover?”
“It’s the only option. The Hab’s radio is dead. Thing is, all the rover does is triangulate the signal to fix its location. It doesn’t send data back to the Hab. It just has a voice channel for the astronauts to talk to each other.”
“So,” Venkat said, “You can get Pathfinder talking to the rover, but you can’t get the rover talking back.”
“Right. What we want is for our text to show up on the rover screen, and whatever Watney types to be sent back to us. That requires a change to the rover’s software.”
“And we can’t do that,” Venkat concluded. “Because we can’t talk to the rover.”
“Not directly,” Jack said. “But we can send data to Watney, and have him enter it in to the rover.”
“How much data are we talking about?”
“I have guys working on the rover software right now. The patch file will be 20 Meg, minimum. We can send one byte to Watney every 4 seconds or so with the ‘Speak&Spell.’ It’d take three years of constant broadcasting to get that patch across. So that’s no good.”
“But you’re talking to me, so you have a solution, right?” Venkat probed.
“Of course!” Jack beamed. “Software engineers are sneaky bastards when it comes to data management.”
“Enlighten me,” said Venkat, patiently.
“Here’s the clever part,” Jack said, conspiratorially. “The rover currently parses the signal into bytes, then identifies the specific sequence the Hab sends. That way, natural radio waves won’t throw off the homing. If the bytes aren’t right, the rover ignores them.”
“Ok, so what?”
/> “It means there’s a spot in the codebase where it’s got the parsed bytes. We can insert a tiny bit of code, just 20 instructions, to write the parsed bytes to a log file before checking their validity.”
“This sounds promising…” Venkat said.
“It is!” Jack said excitedly. “First, we update Pathfinder with our replacement OS. Then, we tell Watney exactly how to hack the rover software to add those 20 instructions. Then we broadcast the rover’s patch to Pathfinder, which re-broadcasts it to the rover. The rover logs the bytes to a file. Finally, Watney launches the file as an executable and it patches the rover software!”
Venkat furrowed his brow, taking in far more information than his sleep-deprived mind wanted to accept.
“Um,” Jack said. “You’re not cheering or dancing.”
“So we just need to send Watney those 20 instructions?” Venkat asked.
“That, and how to edit the files. And where to insert the instructions in the files.”
“Just like that?”
“Just like that!”
Venkat was silent for a moment. “Jack. I’m going to buy your whole team autographed Star Trek memorabilia.”
“I prefer Star Wars.”
“Hello?”
“I need a picture of Watney.”
“Hi, Annie. Nice to hear from you, too. How are things back in Houston?”
“Cut the shit, Venkat. I need a picture.”
“It’s not that simple,” Venkat explained.
“You’re talking to him with a fucking camera. How hard can it be?”
“We spell out our message, wait 20 minutes and then take a picture. Watney’s back in the Hab by then.”
“So tell him to be around when you take the next picture,” Annie demanded.
“We can only send one message per hour, and only when Acidalia Planitia is facing Earth,” Venkat said. “We’re not going to waste a message just to tell him to pose for a photo. Besides, he’ll be in his EVA suit. You won’t even be able to see his face.”
“I need something, Venkat,” Annie said. “You’ve been in contact for 24 hours and the media is going ape shit. They want an image for the story. It’ll be on every news site in the world.”
“You have the pictures of his notes. Make do with that.”
“Not enough,” Annie said. “The press is crawling down my throat for this. And up my ass. Both directions, Venkat! They’re gonna meet in the middle!”
“It’ll have to wait a few days. We’re going to try and link Pathfinder to the rover computer-“
“A few days!?” Annie gasped. “This is all anyone cares about right now. In the world. You see what I’m getting at? This is the biggest story since Apollo 13. Give me a fucking picture!”
Venkat sighed. “I’ll try to get it tomorrow.”
“Great!” She said. “Looking forward to it.”
LOG ENTRY: SOL 98
I have to be watching the camera when it spells shit out. It’s half a byte at a time. So I watch a pair of numbers, then look them up on an ASCII cheat-sheet I made. That’s one letter.
I don’t want to forget any letters, so I scrape them in to the dirt with a rod. The process of looking up a letter and scraping it in the dirt takes a couple of seconds. Sometimes when I look back at the camera, I’ve missed a number. I can usually guess it from context, but other times I just miss out.
Today I got up hours earlier than I needed to. It was like Christmas morning! I could hardly wait for 08:00 to roll around. I had breakfast, did some unnecessary checks on Hab equipment, and read some Poirot. Finally the time came!
“CNHAKRVR2TLK2PTHFDRPRP4LONGMSG”
Yeah. Took me a minute. “Can hack rover to talk to Pathfinder. Prepare for long message.”
That took some mental gymnastics to work out. But it was great news! If we could get that set up, we’d only be limited by transmission time! I set up a note that said “Roger.”
Not sure what they meant by “long message” but I figured I better be ready. I went out 15 minutes before the top of the hour and smoothed out a big area of dirt. I found the longest antenna rod I had, so I could reach in to the smooth area without having to step on it.
Then I stood by. Waiting.
At exactly the top of the hour, the message came.
“LNCHhexiditONRVRCMP,OPENFILE-/usr/lib/habcomm.so-SCROLLTILIDXON LFTIS:2AAE5,OVRWRT141BYTSWTHDATAWE’LLSNDNXTMSG,STANDINVIE W4NXTPIC20MINFTERTHSDONE”
Jesus. Ok…
They want me to launch ‘hexedit’ on the rover’s computer, then open the file /usr/lib/habcomm.so, scroll until the index reading on the left of the screen is 2AAE5, then replace the bytes there with a 141 byte sequence NASA will send in the next message. Fair enough.
Also, for some reason, they want me to hang around for the next pic. Not sure why. You can’t see any part of me when I’m in the suit. Even the faceplate would reflect too much light. Still, it’s what they want.
I went back in and copied down the message for future reference. Then I wrote a short note and came back out. Usually I’d pin up the note and go back in. But this time I had to hang around for a photo op.
I gave the camera a thumb’s-up to go along with my note, which said “Ayyyyyy!”
Blame the ‘70’s TV.
“I ask for a picture and I get The Fonz?” Annie admonished.
“You got your picture, quit bitching,” Venkat said, cradling the phone on his shoulder. He paid more attention to the schematics in front of him than the conversation.
“Ayyyyyy!” Annie mocked. “Why would he do that?”
“Have you met Mark Watney?”
“Fine, fine,” Annie said. “But I want a pic of his face ASAP.”
“Can’t do that.”
“Why not?”
“Because if he takes off his helmet, he’ll die. Annie, I have to go, one of the JPL programmers is here and it’s urgent. Bye!”
“But-“ Annie said as he hung up.
Jack, in the doorway, said “It’s not urgent.”
“Yeah, I know,” Venkat said. “What can I do for you?”
“We were thinking,” Jack began, “This rover hack might get kind of detailed. We may have to do a bunch of back-and-forth communication with Watney.”
“That’s fine,” Venkat said. “Take your time, do it right.”
“We could get things done faster with a shorter transmission time,” Jack said.
Venkat gave him a puzzled look. “Do you have a plan for moving Earth and Mars closer together?”
“Earth doesn’t have to be involved,” Jack said. “Hermes is 73 million km from Mars right now. Only 4 light-minutes away. Beth Johanssen is a great programmer. She could talk Mark through it.”
“Out of the question,” Venkat said.
“She’s the mission Sysop,” Jack pressed on, “This is her exact area of expertise.”
“Can’t do it, Jack. The crew still doesn’t know.”
“What is with you? Why won’t you just tell them?”
“Watney’s not my only responsibility,” Venkat said. “I’ve got five other astronauts in deep space, who have to concentrate on their return trip. Nobody thinks about it, but statistically they’re in more danger than Watney right now. He’s on a planet. They’re in space.”
Jack raised his arms. “Fine, we’ll do it the slow way.”
LOG ENTRY: SOL 98 (2)
Ever transcribed 141 random bytes, one half of a byte at a time?
It’s boring. And it’s tricky when you don’t have a pen.
Earlier, I had just written letters in the sand. But this time, I needed a way to get the numbers on to something portable. My first plan was: Use a laptop!
Each crewman had their own laptop. So I have six at my disposal. Rather, I “had” six. I now have five. I thought a laptop would be fine outside. It’s just electronics, right? It’ll keep warm enough to operate in the short term, and it doesn’t need air for anything.
It died instan
tly. The screen went black before I was out of the airlock. Turns out the “L” in “LCD” stands for “Liquid.” I guess it either froze or boiled off. Maybe I’ll post a consumer review. “Brought product to surface of Mars. It stopped working. 0/10.”
So I used a camera. I’ve got lots of them, specially made for working on Mars. I wrote the bytes in the sand as they came in, took a picture, then transcribed them in the Hab.
It’s night now, so no more messages. Tomorrow, I’ll enter this in to the rover and the geeks at JPL can take it from there.
“Come on up here, Jack,” said Venkat. “You get to be the most Timward today.”
“Thanks,” said Jack, taking Venkat’s place next to Tim. “Heya, Tim!”
“Jack,” said Tim.
“How long will the patch take?” Venkat asked.