The MagSafe One-Wire Circuit
Explained
One-Wire Circuit Topology
Apple's MagSafe one-wire charging architecture appears deceptively simple: a single communication line carries both timing and load data between the magnetic connector and the power converter IC on the logic board. This contrasts sharply with earlier dual-rail designs that required separate sense and feedback paths.
The one-wire protocol operates as an open-drain logic bus. When idle, the line sits at approximately 3.3V via pull-up resistor. A MagSafe brick or attached device pulls this rail low to signal state changes. The timing of these low pulses encodes specific power delivery instructions: cable gauge detection, maximum wattage negotiation, and thermal throttle response.
On the logic board side, a specialized charging control IC (typically a TPS65982B or equivalent USB Power Delivery controller integrated with MagSafe-specific firmware) monitors this single wire and translates incoming pulses into PWM control signals for downstream buck converters. The entire charging topology depends on accurate timing edges and proper pull-up voltage reference.
Connector Detection & Handshake
MagSafe detection begins the moment the magnetic connector makes physical contact. The brick firmware initiates a handshake sequence by asserting specific pulse trains on the one-wire line. The logic board's charging IC must recognize these patterns within a narrow window—typically 50–200 ms—or the system will not negotiate power delivery.
The handshake includes three critical exchanges:
- Identity pulse: The brick sends a rapid 5–10 kHz square wave burst. The logic board measures frequency and pulse width to identify cable gauge (USB-C 3A, 5A, or custom high-current variants).
- Capability negotiation: The board responds with its own frequency-modulated pattern indicating maximum input wattage (30W, 45W, 67W, 96W, etc.). Multi-bit encoding is used; clock frequency encodes voltage tier, duty cycle encodes current limit.
- Acknowledgment lock: Once both sides agree on power parameters, the brick applies steady DC bias to the one-wire line and waits for sustained low-impedance confirmation from the board. Failure to achieve this state within ~300 ms triggers a timeout and the charging session aborts.
Common handshake failures occur when the logic board's pull-up resistor is damaged, open, or incorrectly valued. Typical pull-up resistance is in the range of 10–50 kΩ to 3.3V. If measured at TP_MAGSAFE_1WIRE (typically on the main power distribution block), the voltage should rise to 3.2–3.3V within 10 ms of soft power-on.
Load-Side Control & Regulation
Once the handshake completes, the one-wire line transitions to load-side control mode. The charging IC continuously modulates the wire's impedance to regulate charging voltage and current drawn from the power supply. This is achieved through a simple load-switch circuit: the charging IC drives a MOSFET gate pin tied to the one-wire line through a series resistor (typically 100–470Ω).
When the IC needs to signal "reduce current," it briefly pulls the one-wire line low by switching its load FET on. The duration and frequency of these pulls encode the desired adjustment. Most modern MagSafe implementations use a proprietary pulse-width modulation (PWM) scheme:
- ~10 kHz clock: One-wire toggles at a fixed 10 kHz base frequency during active charging.
- Duty cycle = load percentage: 20% duty (2 µs low, 8 µs high per 10 µs cycle) requests 20% of negotiated maximum current. 100% duty requests full power.
- Zero-current state: Sustained high (>500 ms no pulls) = charging paused or trickle mode.
The brick's power supply senses these modulations via its own sense circuitry and adjusts its output voltage and current accordingly. If the one-wire line is stuck high or stuck low, the brick defaults to its minimum safe current (0.5–1.0A at 20V) to prevent damage.
| One-Wire State | Expected Voltage | Typical Frequency | Interpretation |
|---|---|---|---|
| Idle / detached | N/A or floating | — | No brick connected |
| Handshake phase | 3.0–3.3V baseline | 5–15 kHz pulses | Negotiating power tier |
| Active charging (20%) | 2.0–3.2V oscillating | 10 kHz PWM | 20% duty cycle |
| Active charging (100%) | 0.0–0.5V sustained | 10 kHz PWM | 100% duty cycle (pulled low) |
| Stuck low | <0.1V persistent | — | Short-circuit or FET failure |
| Stuck high | >3.2V persistent | — | Open circuit, pull-up missing |
Repair Diagnostics & Troubleshooting
When a machine fails to charge despite a working USB-C brick and cable, the one-wire circuit is often the culprit. Begin by measuring the one-wire test point with a DC voltmeter while the brick is attached but power is off:
- Stuck low (<0.5V): The charging IC's load FET or pull-down path is shorted. Check for liquid damage, burnt components, or excessive parasitic capacitance. Scope the line at 1V/div, 10 µs/div. If you see a continuous square wave at 10 kHz, the IC is alive but cannot control the line—likely a dead FET inside the IC or broken bond wire in its output stage.
- Stuck high (>3.0V, no modulation): The pull-up resistor is open or the IC's communication pin is tri-stated (dead). Check continuity of the pull-up from
VCORE_3V3to the one-wire rail. Typical value: 22 kΩ to 47 kΩ. If the resistor is intact, the charging IC is likely non-responsive—test its supply rails and reset line. - Correct voltage but no handshake within 2 seconds: The charging IC firmware may be corrupted or the IC itself is defective. Connect a high-speed USB oscilloscope probe (minimum 100 MHz bandwidth) to the one-wire test point. Trigger on the rising edge and capture at least 20 ms of data. A healthy handshake should show rapid pulse-train bursts every 50–100 ms for the first ~300 ms after brick insertion.
On the brick side, similar diagnostics apply. If the brick shows no activity (no LED, no modulation), check its internal one-wire pull-up resistor and the firmware state machine. Many bricks default to 20V / 0.5A output if the handshake times out, which is insufficient for modern MacBooks.
For machines with partial charging (e.g., 30W instead of 96W), the handshake is likely completing but the negotiation is failing. This often indicates a damaged sense resistor on the power output rail or a faulty current-feedback amplifier. The IC receives incorrect voltage telemetry and downgrades the negotiated power tier to protect the supply.
Component-level repairs are possible: TPS65982B (or equivalent) firmware can sometimes be reflashed via JTAG if the bus is accessible. Pull-up resistor replacement is a standard microsoldering task (0402 package, 22–47 kΩ, 1% tolerance recommended). If the entire charging IC is defective, only full replacement with matching firmware load solves the issue permanently.
Advanced Scope Capture Methodology
To fully understand a faulty one-wire circuit, always capture protocol traffic with a 100+ MHz digital storage oscilloscope or logic analyzer. Set probe attenuation to 1:1 (not 10:1) to maintain sensitivity at 3.3V logic levels. Use a 10–50 ns/div horizontal timebase during handshake and 5–10 µs/div during steady-state charging.
Capture at minimum two sequences: (1) initial detection and handshake, (2) steady-state charging after 2 seconds. Export raw CSV data and inspect pulse timing with a frequency counter or FFT tool. The handshake burst should show harmonic content at 5, 10, and 15 kHz; the steady-state should be a pure 10 kHz square wave with modulated duty cycle.
If the one-wire line is present but the system does not charge, cross-reference the captured protocol against your specific MacBook model's published schematic. Most and logic boards have identical one-wire implementations, making cross-reference comparison highly valuable for diagnosis.
TP_MAGSAFE_SENSE, TP_MGSF_1W, or simply D+_SENSE on Apple schematics. If your board lacks clear TP silkscreen, follow the 22 kΩ pull-up resistor to ground; the junction is your scope probe point.
Get notified when new technical articles are published — no spam, unsubscribe anytime.