← All stories

The Calibrator


The control building at MeerKAT smelled like the coffee machine had given up. Thandiwe stood at the console with her coat still on, because the heating in the building ran on a timer that someone in Cape Town had set for weekday business hours and nobody had ever changed. It was Sunday, and the coffee machine had stopped at four in the afternoon, and it was now close to midnight.

The signal was still there.

It had been there when she arrived at six, and it had been there when Sipho arrived at eight with a bag of vetkoek and a look that said he had not slept. It sat at 1420.4057518 MHz, which was the hydrogen line, the one frequency every radio astronomer in the world agreed not to transmit on, the one frequency you could be sure was not a human talking. It repeated every seventy-three seconds. It had a Doppler drift of minus two point three hertz per second, and that drift was the problem, because it matched no pulsar in the ATNF catalog and no satellite in the Space-Track database and no aircraft beacon she could find, and it also, as Sipho had found rounding at two in the morning, matched the rotation period of the telescope’s own calibration source.

Sipho was at the second console, eating vetkoek and not looking at her.

“Run RFI excision again,” Thandiwe said.

“I ran it twice.”

“Run it a third time. Flag every channel that shows any broadband power and cut it. If the signal survives that, it is not a phone.”

Sipho turned his chair. “It is not a phone. Nobody has a phone that transmits at 1420 MHz in a twenty-kilometer exclusion zone. The RFI excision is not the test. The test is whether the signal is the calibrator.”

“The calibrator does not transmit at 1420.”

“The calibrator’s firmware rounds.”

“The rounding error is at 1420.39, not at 1420.4057518. That is a difference of sixteen kilohertz.”

Sipho wiped his fingers on his pants. “Sixteen kilohertz is nothing. The firmware rounds to the nearest ten kilohertz when it logs. You know that.”

“I know that the calibrator emits a tone at 1420.39 and that the tone is logged as 1420.4. I also know that our signal is at 1420.4057518, which is not the logged value, and that the calibrator’s tone does not repeat every seventy-three seconds. It repeats every seventy-two point nine seven, which is what the firmware rounds to seventy-three.”

Sipho looked at her for a long time. “So you are saying the signal is real.”

“I am saying the signal is not the calibrator.”

“That is not the same thing.”

Thandiwe sat down. She had been standing for two hours, and her back ached on Sunday nights, the particular ache of a woman who had spent eleven years in a control room waiting for something that was not noise. She was forty-seven. She had started on the project in 2015, when it was still called KAT-7 and the array had seven dishes and no budget for coffee. She had been the first person to see the first pulsar the array ever found, and she had cried, and Sipho had been there, and he had not cried, and he had said, “Good. Now we have to confirm it,” and she had hated him a little for that, and then she had loved him for it, and then they had been colleagues for eleven years and neither of those feelings had fully gone away.

“Run RFI excision,” she said. “I will do the scintillation check.”

Sipho turned back to his console. Thandiwe pulled up the intensity data. The signal was bright enough to measure, which was unusual. Most candidates were faint, buried in noise, the kind of thing you could only see after folding. This one sat above the noise floor by a factor of twelve, and it was narrow, less than a hertz wide, which was the signature of something coherent rather than thermal. Coherent emission meant a maser or a transmitter. It did not mean a transmitter that was intelligent. It meant a transmitter.

The scintillation check was the test that mattered. When a signal passed through the interstellar medium, the medium acted like a lens, and the lens made the signal flicker. The flicker was fast, seconds to minutes, and its timescale told you how compact the source was. A pulsar flickered. A quasar flickered. A transmitter on a planet flickered, because the planet moved. Everything flickered. The only things that did not flicker were things that were very large and very close, and the signal was not close, because its dispersion measure was two hundred and forty parsecs per cubic centimeter, which meant the signal had passed through enough free electrons to place it well beyond the solar system, somewhere in the direction of the Carina-Sagittarius arm.

Thandiwe folded the intensity data at the seventy-three-second period and measured the modulation index. The modulation index was the ratio of the standard deviation of the intensity to the mean intensity. For a point source seen through a turbulent medium, the modulation index approached one. For an extended source, it approached zero. The signal’s modulation index was zero point eight nine.

“Compact,” she said.

“Everything is compact until it isn’t,” Sipho said.

“Zero point eight nine is compact. That is not a plasma lens. A plasma lens would smear the source and drop the modulation index below zero point three.”

“A plasma lens in the local interstellar medium could produce the same dispersion measure if the electron density is high enough along that line of sight.”

“The electron density along that line of sight is not high enough. I checked the NE2001 model. The maximum DM from local structure is sixty. We are at two hundred and forty.”

“NE2001 is a model.”

“NE2001 is the model.”

Sipho ran RFI excision. The flagged channels came up on his screen, and he cut them one by one, the broadband spikes from the satellite constellation that the engineers were always complaining about, the narrow lines from the aircraft beacons, the harmonics from the power grid. He cut them all. The signal at 1420.4057518 MHz remained, sitting in a clean channel, unbothered.

“Still there,” he said.

“I know.”

They sat in silence for a while. The array tracked the patch of sky, and the data came in, and the coffee machine did not turn back on.


At four in the morning Thandiwe woke Sipho, who had fallen asleep in his chair with his head on the console and a line of drool on the keyboard. She had not slept. She had been running the scintillation analysis three different ways, using three different folding periods, and the modulation index had come out the same each time.

“Dawn re-observation,” she said. “We need a new hour. The signal has to survive a different sidereal time, because if it is RFI from a satellite, the satellite will have moved.”

Sipho wiped his mouth. “I know how re-observation works.”

“Then let’s do it.”

They repointed the array. The patch of sky was still above the horizon, barely, and they tracked it for another forty minutes, collecting fresh data at a different hour, which meant the Earth had rotated and the signal, if it was a satellite, would have drifted out of the beam. The signal did not drift out of the beam. It was still there at 1420.4057518 MHz, still repeating every seventy-three seconds, still drifting at minus two point three hertz per second.

Sipho stared at the plot.

“Still there,” Thandiwe said.

“I can see that.”

“The drift is the same. The period is the same. The frequency is the same. A satellite would have Doppler-shifted by now, because the satellite’s velocity relative to us has changed. The drift has not changed.”

Sipho rubbed his face. “A plasma lens could refocus.”

“A plasma lens does not refocus at the same frequency with the same drift for six hours. A plasma lens scintillates. The modulation index would vary. It has not varied. It is zero point eight nine and it has been zero point eight nine for six hours.”

Sipho stood up and walked to the window. The sky outside was starting to lighten, the Karoo turning from black to gray to the color of old paper. He stood there for a long time.

“Okay,” he said.

“Okay what?”

“Okay, it is not the calibrator. Okay, it is not a satellite. Okay, it is not a plasma lens. I am not saying it is not noise. I am saying I do not have a mechanism for noise that does this.”

Thandiwe felt something loosen in her chest, a knot she had been carrying for eleven years, and then she felt it tighten again, because the next step was the alert, and the alert was the thing Sipho had been afraid of all night.

“We need to issue the alert,” she said.

“No.”

“Sipho.”

“No. Not yet. The calibrator log. We check the calibrator log. If the rounding error appears at 1420 MHz in the log, then we have an explanation, and we do not issue an alert, and we do not become the people who cried wolf.”

“And if it does not appear?”

“Then we talk about it.”


The calibrator log was a text file, three hundred megabytes, generated every night by the firmware that controlled the calibration source. The calibration source was a noise diode, a small device that injected a known signal into the receiver so the engineers could measure the gain. The noise diode’s frequency was supposed to be 1420.39 MHz, logged to the nearest ten kilohertz, which meant the log should show 1420.4. Sipho had found at two in the morning that the firmware rounded differently depending on the time of day, because the rounding function used a floating-point representation that lost precision when the timestamp was large, and the timestamp was large because it was a Unix epoch value in milliseconds, and the millisecond value had grown large enough to make the mantissa round incorrectly. The rounding error was real. It was specific. It produced a drift of minus two point three hertz per second, which was exactly the drift of the signal.

Sipho opened the log file and searched for 1420.4. The search took four minutes, because the file was three hundred megabytes and the control building’s computer was not fast. The results came back in a list, and Sipho scrolled through them.

“There,” he said. “1420.4, logged at 03:14, 03:15, 03:16. The rounding error is there.”

“At what frequency does the calibrator actually emit?”

“1420.39.”

“And the log says 1420.4.”

“The log says 1420.4. The rounding error produces a logged frequency of 1420.4, which is close to 1420.4057518 but not the same.”

“How close?”

“Five point seven five one eight kilohertz.”

“Five point seven kilohertz is not sixteen. The rounding error produces a logged value of 1420.4, which is five point seven kilohertz from the signal. The calibrator emits at 1420.39, which is sixteen kilohertz from the signal. Neither number matches.”

Sipho closed the log file. “The rounding error could produce other values. The floating-point precision loss is not linear. It could produce 1420.4057518 under certain conditions.”

“What conditions?”

“I don’t know. I would have to model the firmware.”

“Model it.”

“It would take a week.”

“We do not have a week. The signal is there now. If it is a transient, it could be gone tomorrow.”

Sipho leaned back in his chair. “Thandiwe. If we issue an alert and it turns out to be the calibrator, we are finished. The MeerKAT reputation is the only asset the project has. We are not funded by the government. We are funded by the reputation. If the reputation goes, the funding goes, and the funding is what pays for the coffee machine.”

“The coffee machine does not work.”

“The coffee machine is a metaphor.”

Thandiwe almost laughed. She caught it, because laughing would have meant crying, and she did not want that in front of Sipho. She was right, and being right produced the same symptoms as being emotional, and she did not want him to confuse the two.

“Let me check the log at 1420.4057518 specifically,” she said. “If the rounding error ever produces that exact value, then we have our explanation.”

Sipho shrugged. “Go ahead.”

She searched the log. The search took another four minutes. The results came back empty.

“No match,” she said.

“Maybe the error only occurs at certain timestamps.”

“Maybe. But the log covers six months of data. If the error were going to produce that value, it would have produced it at least once in six months. It did not.”

Sipho did not say anything. He sat at his console and looked at the data, and Thandiwe sat at her console and looked at the data, and the array tracked the patch of sky, and the sun came up over the Karoo, and the control building remained cold.


At nine in the morning, while Sipho was in the bathroom, an email arrived. It was from a colleague named Yuki Tanaka, who worked at the Murchison Widefield Array in Western Australia. The subject line was “73-second transient in archival data, Carina-Sagittarius direction.” Thandiwe read the email three times.

Yuki had been processing archival data from 2019, looking for fast radio bursts, and had found a transient at 1420.4 MHz with a seventy-three-second period and a dispersion measure of two hundred and forty parsecs per cubic centimeter. The transient had appeared in a single observation and had not repeated in any subsequent observation of the same field. Yuki had flagged it as a possible RFI event and moved on. She had found it again last week while cleaning up her data archive, and she had remembered a conversation she had with Thandiwe at a conference in 2022, in which Thandiwe had said that the most interesting signals would be the ones that did not repeat, because non-repeating signals could not be confirmed and therefore could not be trusted, and that the only thing worse than a signal you could not confirm was a signal you could confirm but chose not to.

Yuki wanted to co-author.

Thandiwe stared at the email. The email was the thing she had been waiting for without knowing she was waiting for it. It was independent confirmation from a different telescope, a different country, a different data set, collected five years ago. It was not a re-observation of the same signal, because the signal had not repeated in 2019. It was a different event, with the same characteristics, in the same direction. Which meant either the signal was a recurring phenomenon that happened to be active now and had been active in 2019, or it was a different phenomenon with the same signature, which was unlikely, or it was RFI, which was unlikely because the Murchison array had different RFI and different firmware.

Sipho came back from the bathroom. “What?”

Thandiwe turned the screen toward him. “Read this.”

Sipho read it. He read it twice. He sat down.

“This changes things,” he said.

“It does.”

“This is not a re-observation. This is an archival match. It is independent data from a different telescope.”

“Yes.”

“And it is five years old.”

“Yes.”

“So the signal, if it is a signal, has been there for at least five years.”

“Or there have been two signals with the same characteristics in the same direction, which is a coincidence I do not believe in.”

Sipho leaned forward. “If we issue an alert now, with the archival match, the alert will be taken seriously. Without the archival match, the alert is a candidate. With the archival match, the alert is a result.”

“I know.”

“And if it turns out to be the calibrator, or RFI, or a plasma lens we have not thought of, then we have issued an alert that is a result, and the result is wrong, and the reputation is gone.”

“I know.”

Sipho stood up and walked to the window again. The Karoo was bright now, the sun high, the sky the blue that only existed in deserts and photographs. He stood there for a long time.

“What do you want to do?” he said.

“I want to issue the alert.”

“And I want to wait.”

“I know.”

“So what do we do?”

Thandiwe looked at the data on her screen. The signal was still there, still repeating, still drifting, still compact, still beyond the solar system by every measure they had. The archival match was sitting in her inbox. The calibrator log had not produced the signal’s frequency. The RFI excision had cut everything else. The scintillation check had passed. The re-observation had passed. Everything they had thrown at the signal, the signal had survived, and the cost of being wrong had grown with every test, and the cost of being right was now so large that neither of them could hold it alone.

“I am going to write the methods section,” she said.

“What?”

“The methods section of the paper. Not the alert. The paper that will accompany the alert. The alert is a claim. The paper is the evidence. If we write the paper first, then the alert is not a claim, it is a summary. And the methods section will include the calibrator error, in the limitations, because the calibrator error is real and we found it and we should not hide it.”

Sipho turned around. “You want to publish the calibrator error.”

“I want to publish the calibrator error as a limitation. Not as an explanation. As a limitation. We say: here is a known firmware rounding error that produces a similar drift at a similar frequency. We checked the calibrator log for six months. The error did not produce our signal’s frequency. We cannot rule out a novel manifestation of the error, but we can say that the error as currently understood does not explain the signal.”

“That is going to make people question the result.”

“That is the point. The result should be questioned. That is what peer review is for.”

Sipho sat down again. He looked at the email from Yuki. He looked at the data. He looked at Thandiwe.

“You are not going to issue the alert.”

“Not today.”

“When?”

“When the methods section is done. When the calibrator error is in the limitations. When Yuki has agreed to co-author. When the paper is ready to submit. Then the alert is not an alert. It is a preprint.”

Sipho closed his eyes. “That is going to take weeks.”

“Yes.”

“And the signal might be gone by then.”

“Then the signal is gone, and we publish what we have, and the archival match stands, and the result is still interesting.”

“And if the signal is still there?”

“Then we have more data, and the paper is stronger.”

Sipho opened his eyes. “You are not going to let me sleep, are you?”

“You can sleep. I will write.”

“I do not want to sleep. I want to argue with you about the plasma lens.”

“The plasma lens is not the issue. The plasma lens was never the issue. The issue is that you want to be the person who did not cry wolf, and I want to be the person who found something real.”

Sipho looked at her for a long time. Then he leaned back in his chair, and his eyes closed, and within two minutes he was asleep, his head tilting to the side, his mouth slightly open, the way it had been at four in the morning.

Thandiwe watched him for a moment. Then she turned to her console, opened a new document, and began to type.


She wrote the methods section in the order the tests had come. RFI excision first, because that was where you started, and because the flagged channels were a record and the record was evidence. She listed every channel that had been cut, with its frequency and its source, and she noted that the signal at 1420.4057518 MHz had survived all cuts. Then she wrote the scintillation analysis, with the modulation index and the folding period and the three different folding methods she had used, and she wrote the modulation index as zero point eight nine, and she wrote what that meant, which was that the source was compact, which was consistent with a transmitter or a pulsar and inconsistent with an extended source or a plasma lens.

Then she wrote the re-observation. She wrote the time, the hour, the sidereal time, the fact that the signal had not drifted out of the beam. She wrote the Doppler drift, minus two point three hertz per second, and she wrote that a satellite would have shifted and had not shifted. She wrote the archival match from Yuki’s email, with the date and the telescope and the dispersion measure, and she wrote that the archival match was not a re-observation but an independent detection, which meant either a recurring phenomenon or a coincidence, and that she did not believe in the coincidence.

Then she wrote the calibrator section. She wrote about the firmware rounding error, the floating-point precision loss, the Unix epoch timestamp, the fact that the error produced a drift of minus two point three hertz per second. She wrote that the calibrator log had been searched for six months of data and that the signal’s frequency had not appeared. She wrote that the rounding error could theoretically produce other values under conditions that had not been modeled, and that this was a limitation, and that the limitation should be addressed by future firmware analysis.

Then she wrote the author line. She typed her name, and then she typed Sipho’s name, and then she typed Yuki’s name, and then she left the cursor blinking after Yuki’s name, because she did not know if Yuki would agree.

She saved the document. She left it open on Sipho’s screen. She did not send the alert. She did not send the email to Yuki. She sat in her chair and watched the array track the patch of sky, and the signal came in, and the data accumulated, and the coffee machine did not turn on, and the heating did not turn on, and Sipho slept, and the cursor blinked.

When Sipho woke up, the sun was high and the control building was still cold, and he saw the document on his screen, and he read it from the top, and he read it to the bottom, and he saw the author line with the cursor blinking after Yuki’s name, and he looked at Thandiwe, who was asleep in her chair with her coat pulled around her shoulders, and he did not wake her. He sat down at his console, and he opened the firmware model, and he began to work.

← Previous
The Stone in the Shed
Next →
The Name on the Form