Where Copper Stays and Where It Goes
The photoresist on a PCB works by the simplest possible rule: where the mask is opaque, copper survives; where it’s transparent, acid eats through. A binary decision at each point. Yes or no. Stay or go.
Bitwise AND does exactly the same thing.
copper_layer = 0b11111111 # solid copper, 8 traces
mask_pattern = 0b10100101 # our design: some traces, some gaps
after_etch = copper_layer & mask_pattern
puts "Copper remaining: %08b" % after_etch
# => Copper remaining: 10100101
Where the mask has a 1, copper stays. Where it has a 0, copper dissolves. The & operator performs an etch across all eight bits simultaneously.
#include <stdio.h>
int main(void) {
unsigned char copper = 0xFF;
unsigned char mask = 0xA5; // binary: 10100101
unsigned char result = copper & mask;
printf("Before: %02X\nMask: %02X\nAfter: %02X\n",
copper, mask, result);
return 0;
}
Before: FF
Mask: A5
After: A5
The parallel between electrochemical etching and bitwise masking isn’t metaphorical — it’s structural. Early chip fabrication used literal photomasks, and the Boolean operations we perform on registers mirror the physical process that created those registers in the first place. The operation x & MASK preserves bits where MASK is 1 and clears bits where MASK is 0, exactly as ferric chloride preserves copper under resist and dissolves copper that’s exposed.
This symmetry runs deeper than you might expect. OR operations (|) deposit: anywhere the mask has a 1, the result gets a 1, like electroplating copper onto a bare substrate. XOR (^) toggles: where the mask is set, the existing state inverts, which is how certain electron-beam lithography techniques work — exposed regions flip from soluble to insoluble or vice versa.
The 35-micron copper layer on FR4 is thin enough that timing matters terribly — overetch by thirty seconds and traces become islands, underetch and bridges short adjacent pads. The digital version is more forgiving. 0xFF & 0xA5 gives the same answer whether you’re patient or hasty. But watching actual copper dissolve into blue solution, seeing the mask pattern emerge as the ferric chloride does its work — that makes the abstraction feel earned rather than given.