UBUCIKO
UBUHLE NEMPILO
UBUCIKO BEZANDLA
AMASIKO NOMLANDO
EZOKUZIJABULISA
IMVELO
UKUDLA NEZIPHUZO
REVERSE ENGINEERING
IZAYENSI
EZEMIDLALO
UBUCHWEPHESHE
IZINTO EZIGQOKWAYO
T1 and Time-Division Multiplexing
Martin

Yenziwe ngu-

Martin

30. uNcwaba 2026NO
23
0
0
0
0

T1 and Time-Division Multiplexing

Bell had a boring and expensive problem in the 1950s. Trunk cables between city exchanges were full, and the only remedy was digging up streets. Each pair carried one conversation, and a conversation used four kilohertz of a pair that could physically carry far more. The T1 carrier of 1962 was the answer, and it is the moment the telephone network became digital — not for quality, not for computers, but to avoid digging. Sample each voice channel eight thousand times a second, which is twice the four kilohertz the network already promised. Quantise each sample to eight bits, using a logarithmic companding law so that eight bits sound like thirteen on speech. Interleave twenty-four channels, add one framing bit so the far end can tell where a frame begins, and send 193 bits eight thousand times a second. That is 1.544 megabits per second, and it is not a round number anybody chose — it is 8000 × 193. The decisive property is not capacity, it is REGENERATION. An analogue multiplex accumulates the noise of every mile it crosses. A digital one puts a repeater every eighteen hundred metres that decides whether it saw a one or a zero and emits a clean new pulse. Noise stops accumulating. That single change is what let a signal cross a continent as cleanly as a city, and it is why every number in this blueprint still governs the network underneath a modern phone call. MODELLED, WITH A BENCH VERSION. Nobody builds a T1 span on a desk. What you can build is the principle at a hundred-thousandth of the rate: four slow channels interleaved onto one wire with a framing marker, and a receiver that has to find the frame before any channel makes sense.
Ophakathi
3 hours

Imiyalelo

1

Multiplex four channels onto one wire

Wire four potentiometers to four ADC inputs on one microcontroller — those are your four subscribers. Wire its serial output to a second board. The transmitter loops forever: send a framing byte, then one sample from each of the four channels, then repeat. Twenty times a second is plenty to watch. The receiver has one job that is harder than it looks: FIND THE FRAME. It sees a stream of bytes with no markers other than the framing pattern itself, and until it locks on, every channel is reading somebody else's potentiometer. Have it search for the framing byte, confirm it recurs at the right interval, and only then start decoding. Then unplug and replug the link while it runs. Watch the channels scramble and re-lock. That is frame synchronisation, and it is what T1's single bit in 193 exists to provide.

Izinto zokwakha zalesi sinyathelo:

10K Ohm Linear Potentiometer (5-Pack)10K Ohm Linear Potentiometer (5-Pack)1 ucezu
Resistor KitResistor Kit1 ucezu

Amathuluzi adingekayo:

ESP32 Development BoardESP32 Development Board
Breadboard - ClassicBreadboard - Classic
Jumper Wire SetJumper Wire Set
Digital OscilloscopeDigital Oscilloscope
2

Build the multiplexer and find the frame

Flash ROLE_TX on one board and ROLE_RX on the other. The transmitter sends a framing byte then one sample from each of four potentiometers, twenty times a second. The receiver's job is the interesting one. It joins the stream mid-frame and has no idea which byte is which, so it hunts for the framing byte and — crucially — refuses to trust it until it has recurred at exactly the frame period three times. Seeing 0x7E once proves nothing, because data can look like anything. Unplug and replug the link while it runs. Watch it print LOST LOCK, hunt, and re-lock, with the channels scrambled in between. That is what T1's one bit in 193 is buying.
tdm_four_channel.inocpp
// Four channels onto one wire, and the receiver has to FIND THE FRAME.
//
// This is T1 at a hundred-thousandth of the rate. The transmitter sends, forever:
//     [0x7E framing byte][ch0][ch1][ch2][ch3]
// and the receiver has no idea where in that sequence it joined. Until it locks onto the
// framing byte, every channel is showing somebody else's potentiometer -- which is
// exactly why T1 spends one bit in every 193 on saying "the frame starts here".
//
// Set ROLE to TX or RX and flash one of each.

#define ROLE_TX 1          // 1 on the transmitter, 0 on the receiver

const uint8_t FRAME = 0x7E;
const int N_CH = 4;
const int PIN_ADC[N_CH] = {34, 35, 32, 33};
const int PIN_TX = 17, PIN_RX = 16;

HardwareSerial Link(1);

void setup() {
  Serial.begin(115200);
  delay(300);
  Link.begin(9600, SERIAL_8N1, PIN_RX, PIN_TX);
  analogReadResolution(12);
#if ROLE_TX
  Serial.println("# TDM transmitter: [0x7E][ch0][ch1][ch2][ch3]");
#else
  Serial.println("# TDM receiver: hunting for frame alignment");
  Serial.println("locked,ch0,ch1,ch2,ch3");
#endif
}

#if ROLE_TX
void loop() {
  Link.write(FRAME);
  for (int c = 0; c < N_CH; c++) {
    uint8_t v = analogRead(PIN_ADC[c]) >> 4;      // 12 bits -> 8
    if (v == FRAME) v = FRAME - 1;                // never counterfeit the framing byte
    Link.write(v);
  }
  delay(50);                                       // 20 frames per second
}
#else
// Frame hunting. Seeing 0x7E ONCE proves nothing -- data can look like anything. A real
// receiver requires the candidate to recur at exactly the frame period several times
// before it declares lock, and drops lock if it stops. That is the whole of frame sync.
int  candidate = -1, confirms = 0;
bool locked = false;
uint8_t buf[1 + N_CH];
int fill = 0;

void loop() {
  while (Link.available()) {
    uint8_t b = Link.read();

    if (!locked) {
      if (b == FRAME) {
        if (candidate == fill) { if (++confirms >= 3) { locked = true; fill = 0; continue; } }
        else                   { candidate = fill; confirms = 1; }
      }
      if (++fill > N_CH) fill = 0;
      continue;
    }

    buf[fill++] = b;
    if (fill == 1 + N_CH) {
      fill = 0;
      if (buf[0] != FRAME) {                       // lost alignment: start hunting again
        locked = false; candidate = -1; confirms = 0;
        Serial.println("0,-,-,-,-      # LOST LOCK");
      } else {
        Serial.printf("1,%u,%u,%u,%u\n", buf[1], buf[2], buf[3], buf[4]);
      }
    }
  }
}
#endif

Izinto zokwakha zalesi sinyathelo:

10K Ohm Linear Potentiometer (5-Pack)10K Ohm Linear Potentiometer (5-Pack)1 ucezu
Resistor KitResistor Kit1 ucezu

Amathuluzi adingekayo:

ESP32 Development BoardESP32 Development Board
Breadboard - ClassicBreadboard - Classic
Jumper Wire SetJumper Wire Set
Digital OscilloscopeDigital Oscilloscope
3

Hear what companding does

Record a few seconds of speech at 8 kHz on the computer. Then process it three ways and listen to each: uniform 8-bit quantisation, uniform 13-bit, and 8-bit through the µ-law curve from the notebook. Uniform 8-bit is audibly gritty, and the grit is WORST in the quiet passages — which is exactly backwards from what you want, because quiet passages are where the ear is paying attention. The companded version at the same 8 bits sounds close to the 13-bit one. That comparison is the argument for 64 kbit/s. Uniform coding of the same quality would need thirteen bits a sample and 104 kbit/s, and Bell would have fitted fifteen channels on the span instead of twenty-four.

Amathuluzi adingekayo:

Desktop ComputerDesktop Computer
Electret MicrophoneElectret Microphone
Speaker (Lab)Speaker (Lab)
4

The frame, the companding law, and the comparison

Ilayisha incwadi ye-Jupyter…

Amathuluzi adingekayo:

Desktop ComputerDesktop Computer
5

Compendium: the hierarchy built on one number

BIT-ROBBING, AND WHY IT MATTERED LATER. T1 originally carried signalling — on-hook, off-hook, dialled digits — by stealing the least significant bit of every channel in every sixth frame. Inaudible on speech, which was the point. Catastrophic for data, because a channel that quietly loses one bit in forty-eight is not a 64 kbit/s pipe. That is why a data DS0 was sold as 56 kbit/s for years, and it is a clean example of a compromise made for one traffic type becoming a defect for another. THE SIBLING, MEASURED, against quadruplex telegraphy. Edison, 1874: four channels, divided by current direction and amplitude, analogue, and limited by how many orthogonal axes a wire has. T1, 1962: twenty-four channels divided by time, digital, limited by how fast you can switch — and regenerated at every repeater so noise never accumulates. Both put more conversations on one pair. One is bounded by physics you cannot change, the other by electronics that got faster every year, which is why one is a curiosity and the other is still under your phone call. WHAT IT PROMISES THE LAYER ABOVE. A fixed 64 kbit/s, always there, whether you speak or not. That guarantee is exactly what the next blueprint attacks: a terminal session uses under five percent of its channel, and a network that reserves capacity for silence is a network paying for silence.

Izinto

2

Amathuluzi Adingekayo

7

CC0 Isizinda Somphakathi

Le blueprint ikhishwe ngaphansi kwe-CC0. Ukhululekile ukukopisha, ukuguqula, ukusabalalisa, nokusebenzisa ngaphandle kwemvume.

Sekela uMenzi ngokuthenga imikhiqizo nge-Blueprint yabo IKhomishane Yomenzi kumiswe ngabathengisi, noma dala inguqulo entsha yale Blueprint bese uyifaka njengoxhumaniso ku-Blueprint yakho ukuze wabelane ngemali engenayo.

Ingxoxo

(0)

Ngena ukuze ujoyine ingxoxo

Kulayishwa amazwana...