HACKER ALMANACFI-041
STOCKROOM OPS CENTER
HA-001

PINOUT

Chip pinout reference and debug pad finder. The page you reach for after cracking open the case.

PIN 1 TQFP-32
Fig. 1 · Package, leadframe convention

Package Reference

Common microcontroller packages
TypePin CountPitchSolderable by hand?
DIP / PDIP8–402.54 mmYes, through-hole
SOIC8–281.27 mmYes, with care
TSSOP8–480.65 mmPracticed hand, flux
TQFP / LQFP32–1440.50–0.80 mmDrag-solder, flux
QFN / DFN16–640.40–0.65 mmHot air or stencil
BGA64+0.40–1.00 mmReflow only
WLCSP4–100+0.35–0.50 mmReflow, X-ray verify

Debug Pad Survey

When you crack a board open, you are usually looking for one of two interfaces: JTAG (full debug) or SWD (Cortex-M two-wire). UART is the consolation prize and often the most useful for first reconnaissance: most embedded Linux devices spit a U-Boot banner out before they boot.

InterfacePinsTypical ClueCheap Tool
UARTTX, RX, GND, VCC4-pad row near a logo silkscreenUSB-TTL (CP2102, FT232)
JTAGTCK, TMS, TDI, TDO, TRST10 or 20 pin header, unpopulatedFT2232H, J-Link clone
SWDSWCLK, SWDIO, GND, VCC4 pads near an ARM Cortex MCUST-Link V2 clone
SPI flashCS, CLK, MOSI, MISO, VCC, GNDEight-pin SOIC near MCUCH341A programmer + SOIC-8 clip
I2C (EEPROM)SDA, SCL, VCC, GNDSmall SO-8, pullups visibleBus Pirate or USB-to-I2C
Field tip Before you solder, probe with a multimeter set to continuity. Ground is always continuous to the can shield. VCC is the rail that reads ~3.3 V under load. TX idles high. RX has a weak pullup. CLK lines sit at either rail until the bus moves.

Pin 1 Identification

The bevel, the dimple, or the silkscreen dot. On QFN/BGA packages with no obvious mark, the pin-1 corner has a tiny laser-etched circle. Under loupe it is unmistakable. On bare boards, look for a square pad among round ones, or the corner with a tented via.

HA-002

PROTOCOL

Embedded bus decoder reference. Timing diagrams, idle states, and where it goes wrong.

SPI MODE 0 CS SCK MOSI MISO CPOL=0 CPHA=0
Fig. 1 · SPI Mode 0 timing

Bus Comparison

BusWiresTopologySpeedIdle State
UARTTX, RX, (GND)Point to point300 – 4 M baudHigh
SPICLK, MOSI, MISO, CS1 master, N slavesto 50 MHz+CS high
I2CSDA, SCLMulti-master100 / 400 / 1000 kHzBoth high (pulled)
1-WireDQ, (GND)Parasitic, multi-drop16.3 kbps stdHigh (pulled)
CANCAN-H, CAN-LMulti-master, diffto 1 Mbps (CAN-FD 8)Recessive (both ≈2.5V)
RS-485A, B, (GND)Multi-drop diffto 10 MbpsPer protocol

SPI Modes

ModeCPOLCPHASample edge
000Rising
101Falling
210Falling
311Rising

I2C 7-bit Address Map

Reserved address blocks bite hardest when scanning a bus. 0x00–0x07 and 0x78–0x7F are reserved. Common collisions: 0x3C/0x3D (SSD1306 OLED), 0x68 (DS3231, MPU6050, several others), 0x50–0x57 (EEPROM 24LC series).

Where it goes wrong SPI: wrong mode, see clean clock but all-zero data. I2C: missing pullups, see flatlined SDA. UART: baud-rate mismatch produces consistent garbage, while wrong voltage levels produce framing errors. CAN: terminator missing at one end, no acks. Always check terminator placement before suspecting software.
HA-003

HEXSCOPE

Hex inspector with magic-byte atlas. Drop a file or paste hex and see what it might be.

Inspector

FILE INSPECTOR · drop a file or paste hexno input
Awaiting input. Drop a file or paste a hex sequence above.

Magic Byte Atlas

Common file signatures (first bytes)
TypeHexASCIIOffset
PNG89 50 4E 47 0D 0A 1A 0A.PNG....0
JPEG / JFIFFF D8 FFÿØÿ0
GIF87a / 89a47 49 46 38 (37/39) 61GIF87a / GIF89a0
PDF25 50 44 46 2D%PDF-0
ZIP / JAR / DOCX / XLSX / PPTX / EPUB50 4B 03 04PK..0
GZIP1F 8B..0
7-Zip37 7A BC AF 27 1C7z....0
RAR (v4)52 61 72 21 1A 07 00Rar!...0
ELF (Linux exec)7F 45 4C 46.ELF0
Mach-O 64CF FA ED FE....0
PE / MZ (Win exe)4D 5AMZ0
Java classCA FE BA BE....0
SQLite 353 51 4C 69 74 65 20 66SQLite f0
WAV / RIFF52 49 46 46 ?? ?? ?? ?? 57 41 56 45RIFF...WAVE0
MP3 (ID3)49 44 33ID30
FLAC66 4C 61 43fLaC0
ISO 966043 44 30 30 31CD00132769
BitLocker2D 46 56 45 2D 46 53 2D-FVE-FS-3
TAR (ustar)75 73 74 61 72ustar257

Entropy Heuristics

Shannon entropy in bits per byte: text averages 4.0 to 5.5, compiled code about 5.5 to 6.5, compressed or encrypted data approaches 8.0. A pure-8.0 result over a long file means either AES, /dev/urandom, or already-compressed data. A region that suddenly jumps from 5 to 8 inside an otherwise-structured file is your steg or your secret.

HA-004

CHIPSPOTTER

Decode chip markings: manufacturer, family, date code, country.

ATMEGA328P -PU 1947 PH Top mark, 28-PDIP
Fig. 1 · Anatomy of a top mark

Reading the Marks

A chip top mark is layered: family (line 1), variant (line 2), date code and assembly (line 3), sometimes a fab logo or country (line 4). The variant suffix encodes package, speed grade, and temperature range. -PU on AVR means PDIP, unleaded.

House Mark Reference

Logo HintManufacturerNotable Lines
Slanted "A" in circleAtmel (now Microchip)AVR, ATmega, ATtiny
"MICROCHIP" wordmarkMicrochip TechnologyPIC, dsPIC, SAM
"ST" / butterflySTMicroelectronicsSTM32, STM8
"TI" diamondTexas InstrumentsMSP430, CC2640, TMS
SnowflakeNXP / Freescale heritageKinetis, LPC, i.MX
"E" with arrowEspressifESP32, ESP8266
"INFINEON" wordmarkInfineon (Siemens heritage)XMC, AURIX, TLE
Three-leaf cloverRenesasRA, RX, RL78
"NORDIC" with NNordic SemiconductornRF24, nRF52, nRF91

Date Code Decoder

Most modern parts use YYWW: 2348 = 2023, week 48 (late November). Older Atmel parts use YYWW too. Some Japanese makers use YWW. Two- or three-letter assembly codes follow: PH (Philippines), MY (Malaysia), TH (Thailand), CN (China), TW (Taiwan), JP (Japan).

Counterfeit tells Blacktopping shows under acetone or a fingernail. Pin-1 dots misaligned with leadframe. Date codes that predate the part's introduction. Font that does not match the manufacturer's house mark. Inconsistent depth between line 1 and line 3 (the laser fluence was changed between passes).
HA-005

FIRMWARE

Extraction interfaces and the language of bootloaders. From SOIC clip to U-Boot prompt.

SPI NOR Flash (W25Q, MX25, GD25)

Standard 8-pin SOIC pinout, looking at top
PinNameFunction
1/CSChip select, active low
2DO (MISO)Data out from flash
3/WPWrite protect, tie to VCC to enable writes via reg
4GNDGround
5DI (MOSI)Data in to flash
6CLKSerial clock
7/HOLDPause, tie to VCC normally
8VCC3.3 V typical

In-circuit reads are a coin flip. The host MCU may fight the bus. Holding the MCU in reset (or simply pulling its power while leaving the flash powered through the clip) usually works. A CH341A programmer and a Pomona SOIC-8 clip will recover most consumer-router firmware in under a minute.

JTAG Header Conventions

HeaderPinsNotes
ARM 20-pin2x10, 2.54 mmMost common on Cortex devboards
ARM 10-pin (Cortex)2x5, 1.27 mmSWD/JTAG, smaller footprint
MIPS EJTAG2x7, 2.54 mmRouters, set-top boxes
Xilinx 14-pin2x7, 2.0 mmFPGA bring-up
Tag-Connect6 or 10 padNo header, pogo footprint only

U-Boot Banner Anatomy

When you find UART on a consumer router or IoT device, you usually get U-Boot. The banner looks something like:

U-Boot 1.1.4 (Mar 12 2019 - 11:24:18)
Board: AR9344 (Honey Bee) U-boot
DRAM:  64 MB
Flash: 16 MB
Hit any key to stop autoboot:  3

Three seconds is the standard window. Past it, the kernel loads and you lose interactive access until next boot. Useful U-Boot commands: printenv, setenv bootargs, md.b 0x80000000 200 (memory dump byte), tftpboot, bootm.

Filesystem identification After extraction, run binwalk -e. Common embedded filesystems: SquashFS (most consumer routers), UBIFS (modern flash), JFFS2 (older NOR), CramFS (legacy). A flat ELF blob without a filesystem is firmware for a bare-metal MCU, not Linux.
HA-006

HETERODYNE

Spectrum atlas. What lives where, from VLF submarine traffic to ka-band satellite.

Band Atlas

BandRangeWavelengthWhat you find there
ELF3 – 30 Hz100,000 – 10,000 kmSubmarine comms (US Navy historic)
SLF / ULF30 – 3000 Hz10,000 – 100 kmMine comms, geophysics
VLF3 – 30 kHz100 – 10 kmNavy MSK, sferics, time sigs
LF30 – 300 kHz10 – 1 kmWWVB, DCF77, beacons, LORAN heritage
MF300 kHz – 3 MHz1 km – 100 mAM broadcast, NDB, marine 2 MHz
HF3 – 30 MHz100 – 10 mShortwave broadcast, ham, number stations, FT8
VHF30 – 300 MHz10 – 1 mFM bcast, air, marine, 2 m ham, public safety
UHF300 MHz – 3 GHz1 m – 10 cmTV, cellular, GPS, ISM, Wi-Fi 2.4
SHF3 – 30 GHz10 – 1 cmWi-Fi 5/6, sat downlinks, radar
EHF30 – 300 GHz10 – 1 mmBackhaul, automotive radar, 5G mmW

Notable Fixed Frequencies

FrequencyStation / UseMode
60 kHzWWVB (Fort Collins, time)BPSK
77.5 kHzDCF77 (Germany, time)AM/PM
2.5, 5, 10, 15, 20 MHzWWV / WWVH (NIST time)AM voice + tone
3.330 / 7.850 / 14.670 MHzCHU (Canada time)USB voice
4.625 MHzUVB-76 / "The Buzzer"USB buzzer
14.230 MHzSSTV callingUSB
121.500 MHzAviation emergencyAM
122.775 MHzAir-to-air (US)AM
156.800 MHzMarine Channel 16 (distress)FM
162.400 – 162.550 MHzNOAA Weather RadioFM, 7 channels
243.000 MHzMilitary aero emergencyAM
406.025 MHzELT / EPIRB beaconsBurst
462 / 467 MHzFRS / GMRSFM
868 / 915 MHzISM (LoRa, Z-Wave region)Varies
1090 MHzADS-B (aircraft)PPM
1227.6 / 1575.42 MHzGPS L2 / L1BPSK
2400 – 2483.5 MHzWi-Fi 2.4, Bluetooth, ISMDSSS/OFDM
Listening kit RTL-SDR v3 (24 MHz to 1.7 GHz, $35) is the entry point. Airspy HF+ for serious HF. SDRplay RSPdx for wide coverage and lower noise. KiwiSDR online lets you tune real receivers around the world from a browser when you cannot get on the air yourself.
HA-007

NUMBERS

Shortwave number stations: the eeriest signals on HF. Catalog of voices in the noise.

What They Are

Shortwave stations that broadcast formatted strings of numbers, letters, or musical notes, presumed to be one-time-pad messages to clandestine field operators. They appeared during World War II, proliferated through the Cold War, and a surprising number still operate today. None have ever been officially acknowledged by their host governments. Their existence is established; their content is not.

Active and Historic Stations

ENIGMA 2000 group designators
IDNicknameLanguageAttributedStatus
E03Lincolnshire PoacherEnglish (female)UK SISOff air, 2008
E03aCherry RipeEnglish (female)UK SISOff air, 2009
E07 / E07aEnglish ManEnglish (male)Russian SVRActive
E11ObliqueEnglish (female)Eastern EuropeanActive
E25The EgyptianEnglish (female)EgyptActive
S06 / S06sRussian LadyRussian (female)Russian SVRActive
V02 / V02aAtenciónSpanish (female)Cuban DGIActive
V13New StarChinese (female)PRC / ROC disputedIntermittent
M01 / M03Morse VariantsCWVariousActive
XPA / XPA2PolytoneMFSK dataRussian SVRActive
HM01Hybrid ModeSpanish + RDFT dataCuban DGIActive
UVB-76The BuzzerBuzzer + occasional voiceRussian militaryActive, 4625 kHz

Why They Persist

One-way voice link (OWVL) has properties no digital channel can match: the receiver is a $30 shortwave radio with no installation footprint, the listener cannot be identified by traffic analysis, and a one-time pad is information-theoretically unbreakable. The Cuban Five (arrested 1998) decrypted messages from V02 Atención using a software OTP, providing the FBI with the strongest public confirmation that these stations carry real traffic.

The Conet Project Four-CD compilation released in 1997 by Irdial-Discs, drawn from years of ENIGMA group recordings. The definitive primary source for what these signals actually sound like. Wilco's Yankee Hotel Foxtrot samples it; the resulting lawsuit was settled.
HA-008

SQUITTER

ADS-B and AIS message anatomy. Decoding the airspace and the sea lanes.

ADS-B Mode S Extended Squitter

Every cooperative aircraft above the size threshold transmits position, velocity, and identity on 1090 MHz, twice per second, unencrypted. A $30 RTL-SDR and an antenna pick them up to about 250 nm in the open. The protocol is Manchester-coded PPM at 1 Mbps.

112-bit Extended Squitter frame
BitsFieldNotes
1–5Downlink Format (DF)17 or 18 indicates ES
6–8Capability (CA)Transponder level
9–32ICAO 24-bit addressPermanent aircraft ID
33–88ME (message)Type code determines content
89–112Parity (CRC)CRC-24, polynomial 0x1FFF409

Type codes 1–4 carry identification (call sign), 5–8 surface position, 9–18 airborne position (with altitude), 19 velocity, 20–22 fine airborne position. Position is encoded in CPR (compact position report) format and requires pairing an even and odd frame to decode globally.

AIS (Marine, 161.975 / 162.025 MHz)

TypeClassWhat it carries
1, 2, 3Class APosition, course, speed
4Base stationTime and position of shore station
5Class AStatic and voyage data (name, destination, draft)
14SafetyBroadcast safety-related text
18Class BPosition from smaller vessels
21Aids to navBuoys and lighthouses

AIS uses GMSK at 9600 bps. Encoded payload uses a 6-bit ASCII variant. Decoders: aisdecoder, rtl_ais, OpenCPN for visualization.

HA-009

POCSAG

Paging protocols. Still surprisingly busy in 2026, especially in hospital and public-safety bands.

POCSAG Frame Structure

POCSAG (Post Office Code Standardization Advisory Group, 1982) is the lingua franca of one-way paging. Frames are FSK at 512, 1200, or 2400 baud. Each batch starts with a sync codeword, followed by eight pairs of address and message codewords.

ElementBitsNotes
Preamble576Alternating 1010...
Sync codeword320x7CD215D8
Address codeword32Bit 0 = 0, 18 address bits, 2 function bits, 10 BCH parity, 1 even parity
Message codeword32Bit 0 = 1, 20 data bits, 10 BCH parity, 1 even parity

FLEX (Motorola, 1993)

Successor to POCSAG. Higher capacity (1600, 3200, 6400 bps), four-level FSK above 1600, better error correction. Most modern paging systems in North America are FLEX. Decode with multimon-ng -a FLEX or PDW on Windows.

Common Frequencies

Region / UseBandNotes
US commercial paging929 – 932 MHzMost retail pagers
US hospital / on-site152 – 158 MHz, 454 MHzWatch for VHF business band
UK138 – 139.5 MHzBT Cellnet legacy
EU on-site (POCSAG)466 MHzRestaurant pagers, hospital
Amateur DAPNET439.9875 MHzHamnet decentralized pager net
Legal note Receiving paging traffic in the United States falls under the Electronic Communications Privacy Act. Listening with intent to monitor third-party messages is different from receiving the signal for technical study. Know the local rules where you operate.
HA-010

WARDRIVE

802.11 channel atlas and security era reference, from WEP through WPA3.

2.4 GHz Channel Allocation

ChannelCenter (MHz)Non-overlapping?Region
12412Yes (US/EU/JP)All
62437Yes (US/EU/JP)All
112462Yes (US)US, CA
132472Overlaps 11EU, JP
142484YesJP only, DSSS-only

Use 1, 6, 11 in the US for non-overlap with 20 MHz channels. 40 MHz channels on 2.4 GHz are a courtesy violation; deploy them on 5 GHz instead.

5 GHz UNII Bands (US FCC)

BandRange (MHz)Notes
UNII-15150 – 5250Indoor + outdoor since 2014
UNII-2A5250 – 5350DFS required (radar avoidance)
UNII-2C5470 – 5725DFS required
UNII-35725 – 5850Higher power, no DFS

Security Generation Reference

StandardYearCipherStatus
Open1997NoneUse only with VPN above
WEP1997RC4, 40 / 104-bitBroken (Fluhrer-Mantin-Shamir, 2001)
WPA (TKIP)2003RC4 + MICDeprecated, Beck-Tews 2008
WPA2 (CCMP)2004AES-128 CCMPKRACK in 2017 patched; PSK offline-crackable
WPA3-SAE2018AES-128, forward secrecyDragonblood mitigations applied; current
WPA3-Enterprise 1922018AES-256-GCMPUsed in regulated environments
WPS Wi-Fi Protected Setup PIN is a 7-digit number plus check digit. The protocol leaks the validity of the first and second halves separately, reducing the search from 10^7 to 10^4 + 10^3 = 11,000 attempts (Viehböck, 2011). Disable WPS on any router you can. Many consumer routers ignore the disable setting.
HA-011

TRUNKLINE

A century of the PSTN, from Strowger's grudge to ESS. Heritage page; the holes have been patched.

Switching Generations

EraSwitchMechanismYears
1stStrowger / Step-by-StepElectromechanical, dial pulses drive rotary selectors1892 – 1980s
2ndPanel, then Crossbar (No. 1, 4, 5)Common control, switching matrix1920s – 1970s
3rdESS No. 1 (1ESS)Stored Program Control with hard-wired reed matrix1965 – 2000s
4th5ESS, DMS-100Digital matrix, TDM voice1982 – present (declining)
5thSoftswitch / IMSSIP/VoIP, packet voice2000 – present

Almon Brown Strowger, a Kansas City undertaker, invented the step-by-step switch in 1891 after deciding the local operator (the wife of a competing undertaker) was diverting his calls. Hold a grudge long enough and it becomes an industry.

In-Band Signaling Heritage

ToneFrequencyPurpose
Single Frequency (SF)2600 HzTrunk seizure on Bell long-distance circuits
MF (R1)2-of-6 in 700-1700 HzInter-office routing
R2Forward + backward groupsInternational standard outside North America
SS7 (out-of-band)Common-channel signalingDeployed in US from 1980; ended in-band exploits

Color Boxes (Heritage Reference)

The boxes are historical artifacts. None work on a modern PSTN; all of in-band signaling moved to out-of-band SS7 by the late 1980s. Read this as you would read about lock pickers in the era of Yale's original lever lock.

BoxFunctionStatus
BlueGenerated 2600 Hz to seize trunks, then MF tones to dialDead. SS7 killed it ~1985.
RedSimulated coin-deposit tones at pay phonesDead. Modern coin lines verify electronically.
BlackHeld the line off-hook to give callers free callsDead with digital switches.
SilverAdded the four DTMF tones above the standard 12 (A, B, C, D)Mostly dead; A/B/C/D survive in some military / amateur trunked systems.
BeigeLineman's handset, alligator clips on the loopStill works on POTS where it survives.
The cap'n John Draper noticed in 1971 that the toy whistle in a Cap'n Crunch cereal box produced exactly 2600 Hz, enabling free long-distance calls. Esquire ran "Secrets of the Little Blue Box" by Ron Rosenbaum the same year, and the phreaker subculture entered public consciousness. Steve Wozniak built blue boxes before he built Apple. The history is worth more than the technique ever was.
HA-012

DIALTONE

DTMF generator and Bell System call-progress tone reference.

DTMF Workbench

DUAL-TONE MULTI-FREQUENCY GENERATORready

DTMF Frequency Matrix

1209 Hz1336 Hz1477 Hz1633 Hz
697 Hz123A
770 Hz456B
852 Hz789C
941 Hz*0#D

The A/B/C/D column was reserved for military AUTOVON precedence (Flash Override, Flash, Immediate, Priority). Civilian phones omitted it. Surviving in amateur trunking and some legacy mil-spec gear.

Call Progress Tones (North America)

ToneFrequenciesCadence
Dial tone350 + 440 HzContinuous
Busy480 + 620 Hz0.5 s on / 0.5 s off
Ringback440 + 480 Hz2 s on / 4 s off
Reorder (fast busy)480 + 620 Hz0.25 s on / 0.25 s off
Off-hook warning1400 + 2060 + 2450 + 2600 Hz0.1 s on/off, loud
HA-013

HANDSHAKE

Modem standards from 300 baud teletype to V.92. The most evocative noise of late twentieth century computing.

Standards Timeline

StandardYearSpeedModulation
Bell 1031962300 bpsFSK
Bell 212A / V.2219801200 bpsPSK
V.22bis19842400 bpsQAM
V.3219849600 bpsQAM, TCM
V.32bis199114.4 kbpsTCM
V.34199428.8 → 33.6 kbpsTCM, line probing
V.90199856k down / 33.6 upPCM downstream
V.92200056k / 48kPCM both directions, modem-on-hold

Anatomy of a Connection

Two V.34 modems negotiate in five phases over about 25 seconds, which is exactly why the "noise" is so distinctive. Each phase has a sonic signature you can learn to recognize.

  1. Phase 1, network interaction. DTMF dialing, then ringing, then the answering modem's 2100 Hz answer tone (the long beep).
  2. Phase 2, probing. Calling modem sends V.8 menu; both pick the highest mutually supported standard. The brief silence and then descending dual-tone burst.
  3. Phase 3, line probing. Both modems sweep tones across the audio band so each can measure frequency response and noise. The signature "warbling".
  4. Phase 4, training. A pseudo-random sequence trains echo cancellers and equalizers. The "hiss".
  5. Phase 5, rate negotiation and data. Final agreement on bit rate, switch to scrambled data, CONNECT message to DTE.

Hayes AT Command Reference

CommandEffect
ATZReset to profile
ATDT5551212Dial 5551212 using tones
ATDP5551212Dial using pulse
ATHHang up
ATAAnswer immediately
+++Escape to command mode (no Enter)
ATOReturn to data mode
ATS0=2Auto-answer after 2 rings
ATM0Speaker off (silence the noise)
Why it sounds the way it does You hear the handshake because early modems left the speaker active so a human could tell whether the line was ringing, busy, or actually negotiating. ATM0 silenced it. After successful training, the data itself is scrambled and sounds like white noise; the speaker was usually muted at that point so you would not have to listen to it for the next forty minutes.
HA-014

SUBNET

CIDR calculator and the network reference card you wish you had memorized.

CIDR Calculator

IPv4 CIDR

Prefix Length Reference

CIDRMaskHostsCommon Use
/8255.0.0.016,777,214Legacy "class A"; 10.0.0.0/8 RFC1918
/12255.240.0.01,048,574172.16.0.0/12 RFC1918
/16255.255.0.065,534192.168.0.0/16 RFC1918
/22255.255.252.01,022Small campus
/24255.255.255.0254Default home LAN
/27255.255.255.22430Office floor
/30255.255.255.2522Point-to-point link
/31255.255.255.2542 (RFC 3021)P2P, no broadcast
/32255.255.255.2551Single host route

Well-Known Ports

PortServiceNotes
20/21FTP data/ctrlPlaintext; FTPS adds TLS
22SSHBanner reveals server in version string
23TelnetPlaintext, IoT and routers still expose
25SMTPSTARTTLS for opportunistic encryption
53DNSUDP for queries, TCP for AXFR/large
67/68DHCPServer/client
69TFTPNo auth; embedded device firmware
80HTTPPlaintext web
88KerberosAD authentication
110POP3Pre-IMAP mail retrieval
123NTPUDP; check for monlist reflection
137-139NetBIOSWindows legacy
143IMAPMail retrieval, leaves on server
161/162SNMP / Trapv1/v2 community strings; v3 has auth
389LDAP636 = LDAPS
443HTTPSTLS + HTTP/2 + HTTP/3 (QUIC on UDP)
445SMBModern Windows file sharing
514SyslogUDP plaintext historically
587SMTP submissionAuthenticated client send
636LDAPSLDAP over TLS
993IMAPSIMAP over TLS
995POP3SPOP3 over TLS
1433MSSQLMicrosoft SQL Server
1812RADIUSNetwork auth
2049NFSUnix file sharing
3306MySQLAlso MariaDB
3389RDPWindows remote desktop
5060/5061SIPVoIP, TLS variant
5432PostgreSQL
6379RedisNo auth by default historically
6667IRC6697 = IRC over TLS
8080/8443HTTP/HTTPS altProxies, dev servers
9200ElasticsearchOften exposed without auth
27017MongoDBSame caveat

DNS Record Types

TypeCarries
AIPv4 address
AAAAIPv6 address
CNAMEAlias to another name
MXMail server (priority + name)
TXTFree-form; SPF, DKIM, verification
NSAuthoritative nameserver
SOAZone authority and refresh policy
PTRReverse name (in-addr.arpa)
SRVService location (port + host)
CAAPermitted CAs for the domain
DNSKEY / DS / RRSIGDNSSEC chain
HA-015

PACKET

Layer-by-layer packet anatomy. The matryoshka of every web request.

Encapsulation

An HTTPS request lives at the center of nested headers. Each layer prepends its own metadata. Reading a packet capture is reading from outside in.

Layers in a typical HTTPS GET
LayerProtocolHeader sizeKey fields
L1Physicaln/aVoltage, optical, radio
L2Ethernet II14 BDst MAC, Src MAC, EtherType
L3IPv420 BVersion, TTL, Proto, Src/Dst IP
L4TCP20 BSrc/Dst port, Seq, Ack, Flags, Window
L5/6TLS 1.3varRecord type, length, encrypted payload
L7HTTP/2 or 3varMethod, path, headers, body

TCP Flag Cheat

FlagMeaningIn a normal flow
SYNSynchronizeOpen handshake
SYN-ACKSync + ackServer replies
ACKAcknowledgeOn every segment after handshake
FINFinishGraceful close
RSTResetRefused / aborted; firewall response often
PSHPushDon't buffer; deliver up
URGUrgentRare; check the urgent pointer field

HTTP Status Bestiary

RangeMeaningUseful members
1xxInformational101 Switching Protocols (WebSocket / HTTP/2 upgrade)
2xxSuccess200, 201 Created, 204 No Content, 206 Partial Content
3xxRedirect301 Permanent, 302 Found, 304 Not Modified, 307/308 method-preserving
4xxClient error400, 401 Unauth, 403 Forbidden, 404, 405 Method, 418 I'm a teapot, 429 Too Many
5xxServer error500, 502 Bad Gateway, 503 Unavailable, 504 Gateway Timeout
HA-016

IRC

Internet Relay Chat protocol reference and a brief history of the great schisms.

Protocol Anatomy

IRC is line-oriented, plain ASCII, port 6667 (or 6697 for TLS). Every message ends in CRLF. The protocol is RFC 1459 (1993) with extensions in 2810-2813 (2000). Modern servers add capabilities via the IRCv3 spec set.

NICK acid_burn
USER acid 0 * :Kate Libby
JOIN #gibson
PRIVMSG #gibson :hack the planet
:server.example 332 acid_burn #gibson :Hack the planet
:[email protected] PRIVMSG #gibson :anyone home?

Common Commands

CommandEffect
/nick nameChange nickname
/join #chanJoin channel
/part #chanLeave channel
/msg nick textPrivate message
/me actionCTCP ACTION emote
/whois nickGet user info
/mode #chan +o nickOp someone
/mode #chan +b maskBan by mask
/topic #chan ...Set channel topic
/notice nick textNotice (no auto-reply)
/ctcp nick VERSIONClient probe
/dcc send fileDirect client-to-client file transfer

The Networks

NetworkBornCharacter
EFnet1990Original IRC. No NickServ; no services. Wild west.
Undernet1992First split from EFnet. X services bot.
IRCnet1996Second great split; Europe-leaning.
DALnet1994Brought NickServ, ChanServ; user-friendly.
QuakeNet1997Gaming, esports clans.
Freenode1998FOSS communities until the 2021 collapse.
Libera.Chat2021Successor to Freenode; staff exodus.
OFTC2001Debian and adjacent projects.
Bot lineage eggdrop (1993) is still maintained. Before NickServ, eggdrops held channels open across netsplits. TCL scripts on eggdrop ran trivia bots, mp3 fserves, and most channel automation through the 1990s. The pattern of "channel ops as a guild" comes directly from this era.
HA-017

TUMBLER

Pin tumbler anatomy, master key mathematics, and the locksport vocabulary. Knowledge-side of RAMPART.

SPRINGS SHEAR LINE PIN TUMBLER, 5 PIN
Fig. 1 · Pin tumbler cross section

Mechanism Types

TypeCommon UsePick Difficulty
Pin tumbler (standard)House, padlock, deadboltBeginner to intermediate
Pin tumbler (security pins)Higher-grade locksIntermediate (spool, serrated, T-pin)
WaferCar door, cabinet, file cabinetBeginner; jiggler keys often work
Disc detainerAbloy, ABUS PlusAdvanced; special tools (Forsberg pick)
LeverUK deadlocks, safe deposit boxesIntermediate; curtain picks
TubularVending, bike locks (old)Beginner with a tubular pick
MagneticEVVA MCS, some Mul-T-LockResistant to mechanical picks
DimpleMul-T-Lock, EVVA, KabaIntermediate; needs flag picks

Master Key Mathematics

A standard pin tumbler with master keying has two shear lines per pin: one for the change key, one for the master. With n pins and k depths, a worst-case unmastered system has kn possible keys. Adding master pins introduces additional valid shear points, multiplying the effective key space and creating "ghost keys" that work but were never issued. The Blaze attack (Matt Blaze, 2003) shows a customer with one change key can systematically discover the master, one pin at a time, using a small batch of cut blanks. Worth reading regardless of which side of the door you live on.

Vocabulary

TermMeaning
PickTool that manipulates pins individually
Tension wrenchApplies rotational torque to the plug
Single pin picking (SPP)Setting pins one at a time
RakingBouncing pins; faster but probabilistic
BumpingStriking a special bump key to bounce pins to shear line
DecodingReading bitting from a lock without destroying it
ImpressioningCutting a working key by feel, no picking
SPP setPin held at the shear line by torque
False setPlug rotates slightly but won't open; security pin engaged
Counter-rotationReleasing torque to back off a false set
Locksport ethics TOOOL (The Open Organisation Of Lockpickers) and the locksport community converged on three rules in the early 2000s: only pick locks you own, or have explicit permission to pick; never pick a lock in use; never use the skill against another person's property. The community polices itself, and these rules are not optional.
HA-018

KEYWAY

Keyway profiles and bitting code reference. The Linnaean taxonomy of cut metal.

Major US Residential Keyways

ManufacturerKeyway CodePinsNotes
SchlageC, CE, E, EF, F, FG5–6SC1 is the everyday blank; restricted keyways for commercial
KwiksetKW1, KW105–6SmartKey resets via a learn-key procedure (different mechanism)
WeiserWR3, WR55–6Now part of Kwikset/Spectrum
YaleY1, Y11, Y12, Y135–6Old commercial
SargentLA, LB, LC, RA5–6–7Heavy commercial
BestA, B, C, D, E, F, G6–7Interchangeable core (SFIC, LFIC)
MedecoM35–6Angled pins (twisting bottom pins)
Mul-T-LockClassic, MT5+5–7Telescopic pins, Y-shaped blade

Bitting Code Convention

A bitting code is the depth of each cut, expressed bow-to-tip. Schlage uses depths 0 through 9 (0 is shallow, 9 is deep). Kwikset uses 1 through 7. A Schlage SC1 key with bitting 12345 reads tip-side-up: pin 1 at depth 1 nearest the bow, pin 5 at depth 5 at the tip.

BrandDepthsMACS
Schlage0–9 (.015" steps)7
Kwikset1–7 (.023" steps)4
Sargent1–107
Best A0–97

MACS, Maximum Adjacent Cut Specification, limits how steep the cut between two adjacent pins can be. Exceeding it produces a key that cannot be cut on a code machine without breaking the bit.

Restricted profiles Schlage Primus, Medeco Bi-Level, ASSA Twin, EVVA MCS, BiLock, and similar are patent-protected restricted profiles. Blanks are controlled, often requiring a card and signature. The restriction is legal/commercial, not technical, but the patent gives the manufacturer civil remedies against blank duplication.
HA-019

DUMPSTER

Trashint, shred standards, and the social engineering primer. Read it from the defender's side.

DIN 66399 Shred Classes

The German standard supersedes the older DIN 32757. Three protection classes (P-1 to P-7 for paper, more letters for film, optical, hard drive, electronic). For paper, P-1 is the cheapest office strip cut; P-7 is what intelligence agencies use.

ClassParticle areaStrip width (if strip)Use
P-1≤ 2000 mm²≤ 12 mmGeneral office
P-2≤ 800 mm²≤ 6 mmInternal docs
P-3≤ 320 mm²≤ 2 mmSensitive personal data
P-4≤ 160 mm²n/aCross-cut; HR, finance
P-5≤ 30 mm²n/aConfidential business
P-6≤ 10 mm²n/aClassified
P-7≤ 5 mm²n/aTop secret; effectively pulp

NSA/CSS Specification 02-01 governs US federal classified destruction; NSA EPL lists approved devices. For magnetic media the relevant document is NSA/CSS Storage Device Sanitization Manual.

What People Throw Out

From a defender's perspective, the high-value trash categories are: pre-shred staging bins (the unlocked rolling cart waiting for the shredder), printer waste (test prints, misprints), shipping cartons with addresses and routing numbers, mailed solicitations (full name, address, sometimes preapproved credit instruments), and old hardware with intact storage media. The countermeasure for each is procedural, not technical: lock the rolling carts, shred all printer waste, deface cartons before disposal, opt out where possible, sanitize media before discard.

Social Engineering Pretext Catalog

Common pretexts, defender's reference
PretextVectorDefense
TailgatingPhysical, badge accessMantrap, badge enforcement, "no piggy-back" culture
Vendor / contractorOn-site visit, uniformVerified vendor list, escort policy, badge with photo
Help desk callbackPhone, posing as ITOut-of-band verification, no remote-control on cold calls
Executive impersonationEmail, urgent wire transferTwo-person rule for wires, callback to known number
Lost / forgotten badgeFront desk, sympathy playTemporary-badge log, manager confirmation
USB dropPhysical, parking lotDisable autorun, USB allowlist policy, training
Phishing (clone)Email linkDMARC enforce, FIDO2, link rewrite, header checks
SmishingSMS linkDon't trust SMS for auth at all
Frame this as defense Every item above describes a thing attackers try and defenders counter. The same playbook is published in NIST 800-53, CISA guidance, and every blue-team handbook. Knowing the techniques is the prerequisite to designing the procedures that defeat them.
HA-020

PALIMPSEST

Steganography reference. Finding text under text. Where ciphers hide that they exist at all.

Steganography Category Atlas

FamilyMethodDetection
LSB imageReplace least-significant bits of pixel channels with payload bitsChi-squared, RS analysis; visual on flat regions
DCT (JPEG)Modify DCT coefficients (jsteg, F5, OutGuess)Statistical attacks (Fridrich); blockiness
Audio LSBWAV PCM low bitsHigh-frequency anomalies; phase analysis
Echo hidingImperceptible echoes encoding bits in delayCepstral analysis
MetadataEXIF, XMP, ID3, PDF info dict, OLE propertiesexiftool, mat2 dump
Appended payloadFile concat after EOF marker (PNG IEND, PDF %%EOF)Tail of file analysis; binwalk
PolyglotFile valid as two formats simultaneously (GIFAR, etc.)Magic-byte at multiple offsets, multiparse
Network covertTiming, header field abuse (DSCP, IPID), DNS tunnelingFlow analysis, entropy on subdomain labels
LinguisticSynonym swap, acrostic, null cipher, whitespaceStyle models; Bacon cipher inspection
Filesystem slackData in cluster slack space or alternate data streams (NTFS ADS)FTK / sleuthkit slack scan; dir /R

Where to Look First

  1. Run exiftool on the file. Eighty percent of "hidden" data is in metadata.
  2. Run binwalk. Embedded files (ZIPs inside PNGs, etc.) jump out.
  3. Open in a hex editor. Look at the file tail past the format's terminator.
  4. For images, view bit planes separately. The LSB plane of a clean image looks like static; an LSB-stego'd image has structure visible to the eye in flat areas.
  5. For PNGs, compare the IDAT chunk's expected vs actual decompressed size.
  6. For PDFs, dump objects with qpdf --qdf. Hidden streams, JS, or embedded files surface.
  7. For audio, open in Audacity. Spectrogram view reveals payloads encoded in high frequencies (a common CTF trick).

Tooling

ToolFor
exiftoolRead/write/strip metadata in 100+ formats
binwalk -eFind and carve embedded files
steghideSymmetric stego in JPEG, BMP, WAV, AU
stegsolveBit-plane inspection (Java GUI)
zstegPNG/BMP LSB and other tricks
foremost / scalpelFile carving by signature
mat2Metadata anonymization toolkit (the Tails project)
AudacitySpectrogram view for hidden audio data
The 2010 Russian sleepers Ten illegals arrested in the US in 2010 used a custom steg system, embedding instructions in seemingly innocuous JPEGs posted to public sites. The FBI's complaint describes recovery via forensic imaging of laptops. Modern operational stego is rarely the LSB-in-an-image trope; it is usually network timing, oblique transport, or commodity covert channels (Twitter handles, EXIF GPS, Telegram channels).
HA-021

AUTOPSY

Disk forensics, file carving, and memory analysis. What a dead machine still has to say.

The Order of Operations

  1. Capture before you touch. Hash the source. Image with dd, dc3dd, or a write-blocker plus ewfacquire. Verify the image hash matches.
  2. Memory first if the box is live. Memory dies when power dies; disk waits. Use LiME on Linux, WinPmem on Windows, osxpmem on macOS (where still supported).
  3. Triage the timeline. mactime or plaso against the filesystem metadata. Sort by time. The story is in the order.
  4. Carve the unallocated. Deleted files often survive intact in slack until a new allocation overwrites them. photorec, scalpel, foremost.
  5. Reconstruct the user. Browser history, shellbags, jumplists, prefetch, ~/.bash_history, recent docs. The OS keeps more diaries than the user knows.

Filesystem Artifact Atlas

FilesystemSurvives DeletionForensic Goldmine
NTFS$MFT entries marked unused but retained; $LogFile and $UsnJrnl record changes$MFT, $LogFile, $UsnJrnl, $Recycle.Bin, alternate data streams
FAT32 / exFATDirectory entry first byte set to 0xE5; cluster chain in FAT may persistSlack space, root directory entries
ext4Inodes zeroed on most deletes but journal may have copiesjournal ($journal), extended attributes, lost+found
APFSCopy-on-write keeps snapshots until purged; encrypted by default on macOSSnapshots, fsroot trees, Spotlight index, Time Machine local snaps
HFS+Catalog file entries retained until reused; Spotlight index in .Spotlight-V100Catalog file, Spotlight, .Trashes

Memory Forensics Vocabulary

TermWhat It Means
Process listingpslist walks the doubly-linked list of EPROCESS structs. psscan finds unlinked (hidden) ones via pool tag scanning.
DKOMDirect Kernel Object Manipulation. Unlinking yourself from pslist to evade a live tool. psscan catches you anyway.
Pool tagFour-byte ASCII tag prefixing kernel allocations. Lets scanners find structs by pattern even when lists are tampered.
VAD treeVirtual Address Descriptor tree. Per-process map of mapped regions. Reveals injected DLLs, hollowed processes.
HollowingSpawn a benign process suspended, unmap its image, write malicious image at the same base, resume. Looks normal in pslist, anomalous in VAD.
Reflective loadMap a DLL into your own process without going through LoadLibrary. No entry in the loader's module list. ldrmodules catches the discrepancy.

Tooling

ToolRole
The Sleuth Kit (TSK)Command-line filesystem analysis. fls, icat, mactime. Foundation under Autopsy.
AutopsyGUI for TSK plus timeline, keyword search, hash sets, plugin modules.
Volatility 3Memory analysis framework. Symbol-based, supports Windows / Linux / Mac dumps.
RekallVolatility's cousin, now mostly archived but still useful for older targets.
plaso / log2timelineSuper-timeline generation. Eats artifacts of every kind, emits one CSV ordered by time.
bulk_extractorStream-based feature extractor (emails, URLs, credit cards, exif) across an entire image without filesystem awareness.
KAPETargeted live-system collection. Pulls registry hives, event logs, prefetch in minutes.
The first cut Working forensics is mostly waiting and reading. The image takes hours. Carving takes hours. Then you sit with the timeline and read it the way you would read a diary. The exciting tools are the boring ones, because they are the ones that hold up in court.
HA-022

HASHMARK

Hash identification and the family tree of cryptographic digests.

Hash Identifier

IDENTIFY · COMPUTE awaiting input

Hash Family Reference

FamilyOutputStatusNotes
MD5128 bit / 32 hexBroken (collisions)Wang 2004. Still used for non-security integrity checks. 5d41402a... = "hello".
SHA-1160 bit / 40 hexBroken (SHAttered, 2017)Git still uses it but is migrating to SHA-256.
SHA-2 family224 / 256 / 384 / 512 bitStandardNIST FIPS 180-4. Workhorse of modern integrity.
SHA-3 family224 / 256 / 384 / 512 bitStandardKeccak. Different construction than SHA-2 (sponge). NIST FIPS 202.
BLAKE2 / BLAKE3VariableModern alternativeFaster than SHA-2 in software. BLAKE3 is parallel by design.
RIPEMD-160160 bit / 40 hexLegacyUsed in Bitcoin addresses (after SHA-256).
CRC3232 bit / 8 hexNot a hash, an error checkTrivially forgeable. Never for security.
NTLM128 bit / 32 hexBrokenWindows password hash. Unsalted MD4 of UTF-16LE password. Rainbow tables annihilate it.
LM128 bit / 32 hexProfoundly brokenWindows pre-Vista. Splits password into two 7-char halves, uppercases. Cracked in seconds.

Password Hashes (KDFs)

A password hash is not a hash. It is a slow hash with a salt, designed to make brute force unaffordable. Cost parameters are part of the output.

KDFPrefixCost KnobsYear
bcrypt$2a$, $2b$, $2y$Work factor (log2 rounds)1999
scrypt$7$N (CPU), r (block), p (parallelism)2009
PBKDF2$pbkdf2-sha256$ (varies)Iteration count2000 (RFC 2898)
Argon2id$argon2id$Memory, time, parallelism2015 (PHC winner). Current recommendation.

The Length Tell

Length alone narrows the candidate set fast. 32 hex chars is almost always MD5, MD4, or NTLM. 40 is SHA-1 or RIPEMD-160. 64 is SHA-256, SHA3-256, or BLAKE2s. 128 is SHA-512 or SHA3-512. Anything starting with $ is a KDF and tells you which one.

Hashing is not encryption Hashes are one-way and have no key. You cannot "decrypt" an MD5. You can find a string that hashes to the same value, either through dictionary, brute force, or (for broken hashes like MD5) constructed collision. Conflating these is the most common vocabulary error in security writing.
HA-023

ROTORS

A working Enigma machine. The mechanical cipher that drew a generation of cryptographers to Bletchley.

Enigma Simulator

ENIGMA I (WEHRMACHT)ready
Output appears here.

Rotor Wirings (Enigma I)

RotorWiringNotch
IEKMFLGDQVZNTOWYHXUSPAIBRCJQ (next rotor steps when R passes Q→R)
IIAJDKSIRUXBLHWTMCQGZNPYFVOEE
IIIBDFHJLCPRTXVZNYEIWGAKMUSQOV
IVESOVPZJAYQUIRHXLNFTGKDCMWBJ
VVZBRGITYUPSDNHLXAWMJQOFECKZ
Reflector BYRUHQSLDPXNGOKMIEBFZCWVJATfixed
Reflector CFVPJIAOYEDRZXWGCTKUQSBNMHLfixed

How the Machine Sees a Keypress

  1. Right rotor steps. (And sometimes middle, sometimes left, via the double-stepping anomaly.)
  2. Current enters the plugboard. If the key is paired (e.g. A↔M), substitute.
  3. Through the right rotor (forward wiring), offset by its current position and ring setting.
  4. Through the middle rotor.
  5. Through the left rotor.
  6. Into the reflector. The signal reverses direction.
  7. Back through left, middle, right (reverse wiring).
  8. Back through the plugboard.
  9. Lamp lights.

A letter never enciphers to itself. This property was the leverage Bletchley used.

Operational Mistakes That Sank It

  • Cribs. Standardized headers (weather reports always opened with WETTERBERICHT) gave known plaintext. With a known plaintext segment, the Bombe could test rotor positions.
  • Doubled message keys. The 1930s German practice of sending the message key twice at the start. Polish cryptanalysts (Rejewski, Różycki, Zygalski) exploited this pre-war.
  • Operator habit. Reused indicators, predictable rotor choices, sloppy plugboard. The Kriegsmarine was disciplined; the Luftwaffe was not.
  • The reflector property. The "never to itself" rule eliminated possible alignments instantly. A free 1-in-26 advantage on every position tested.
The four-rotor M4 The Kriegsmarine's M4, introduced February 1942, added a fourth rotor (Beta or Gamma) and dedicated thin reflectors. It blacked out Allied Atlantic intelligence for ten months until HMS Petard captured U-559's codebooks in October 1942. This simulator models the three-rotor Wehrmacht Enigma I, not the M4.
HA-024

PADWORK

One-time pads. The only cryptosystem with a proof of unconditional security. Also the easiest to misuse.

Pad Generator

ONE-TIME PADready
Press GENERATE to draw from crypto.getRandomValues().

The Vernam Cipher

Gilbert Vernam, AT&T, 1917. Originally a teleprinter loop: punched-tape key XORed with punched-tape message. Joseph Mauborgne added the "use it once, then destroy" rule. Claude Shannon proved in 1949 that this construction achieves perfect secrecy: the ciphertext gives an adversary with unlimited compute zero information about the plaintext beyond its length.

The catch is the four requirements.

The Four Rules. All Four. Always.

RuleFailure Mode
Key is truly randomPRNG output is not random. Pad from a stream cipher is not an OTP, it is a stream cipher. The proof does not apply.
Key is at least as long as the messageRepeating any portion of the key turns the OTP into a Vigenère. See HA-025.
Key is used exactly onceTwo messages with the same key XOR to plaintext-XOR-plaintext. Crib-dragging reveals both. See VENONA below.
Key is kept secretKey compromise compromises everything enciphered with it, retroactively. No forward secrecy.

Operational Ceremony

  1. Generate the pad on an air-gapped machine with a hardware RNG. Print two copies. Destroy the digital original (DBAN, then physical destruction of the drive).
  2. Number every page. Number every group.
  3. Sender and recipient hold one copy each. Physical custody only. Never transmitted, ever.
  4. Each page is used for exactly one message. After use, burn the page.
  5. Indicator at the top of each transmission tells the recipient which page and group to start from.

Where OTPs Are Actually Used

  • Diplomatic traffic. Numbers stations (HA-007) broadcast OTP-enciphered messages to deployed agents. The pad lives with the agent.
  • Hotline. The Moscow-Washington direct teletype link, established after the Cuban Missile Crisis, used OTPs through the 1980s.
  • High-value strategic. Anywhere the threat model includes future quantum adversaries and the medium can carry the bandwidth (which is rarely).
VENONA Between 1942 and 1948 Soviet trade and diplomatic offices reused OTP key material, partly due to wartime production pressure. The NSA project VENONA, declassified 1995, exploited the duplications to read thousands of messages over four decades of work. The lesson is not that OTPs failed. The lesson is that one operational shortcut, repeated key, was enough to dismantle the proof.
HA-025

KASISKI

Classical cryptanalysis. Frequency counts, Kasiski examination, and the breaking of the Vigenère cipher.

Vigenère & Kasiski Analyzer

CIPHERTEXT ANALYSISawaiting input

Index of Coincidence Reference

Language / SourceIC ≈
English plaintext0.0667
French plaintext0.0778
German plaintext0.0762
Italian plaintext0.0738
Random (uniform) text0.0385 (1/26)
Monoalphabetic substitutionSame as the underlying language (preserved)
Vigenère with long keyApproaches 0.0385 as key length grows

English Letter Frequencies (% in typical text)

LetterFreqLetterFreqLetterFreq
E12.70T9.06A8.17
O7.51I6.97N6.75
S6.33H6.09R5.99
D4.25L4.03C2.78
U2.76M2.41W2.36
F2.23G2.02Y1.97

Kasiski Examination (1863)

Friedrich Kasiski's method, published in Die Geheimschriften und die Dechiffrir-Kunst: find repeated trigrams or longer sequences in the ciphertext. The distances between repetitions are usually multiples of the key length (when the same plaintext fragment aligns with the same key fragment by coincidence). Take the GCDs of those distances. The most common factor is your key length.

Once you know the key length, split the ciphertext into that many cosets. Each coset is a Caesar shift. Solve each by frequency analysis, lining up the cipher's frequency profile against English. The key falls out letter by letter.

Friedman Test (1922)

William Friedman, working for the US Army Signal Intelligence Service, formalized the Index of Coincidence into a key-length estimate: L ≈ 0.027·N / ((N-1)·IC - 0.038·N + 0.065). Less reliable than Kasiski on short texts but useful as a cross-check.

"Le chiffre indéchiffrable" Vigenère's cipher, published in 1586 (and actually due to Bellaso, 1553), held the reputation of the unbreakable cipher for three hundred years. Babbage broke it privately in the 1850s and never published. Kasiski published in 1863 and got the credit. There is a lesson here about the difference between knowing a thing and saying it.
HA-026

TRACKER

Module music formats. The demoscene's notation system, born on the Amiga in 1987.

Pattern, Channel, Row

A tracker file is a list of patterns. A pattern is a grid: rows down, channels across. Each cell holds at most a note, an instrument number, a volume, and an effect command. The player walks the rows at a tempo and pumps samples out of each channel. The result is music written as a spreadsheet.

Format Lineage

FormatExtYearChannelsNotes
Ultimate Soundtracker.mod19874Karsten Obarski on Amiga. Founded a genre.
ProTracker.mod19904Amiga standard. The .mod files that infested every BBS.
ScreamTracker 3.s3m199432Future Crew, PC. AdLib and Sound Blaster support.
FastTracker II.xm199432+Triton, PC. Multi-sample instruments, envelopes. Beloved.
Impulse Tracker.it199564Jeffrey Lim, PC. NNAs (new-note actions), resonant filters. The technical peak.
OpenMPTmulti1997→variesModern open-source tracker that opens nearly everything.
Renoise.xrns2002→500The commercial heir. VST hosting, modern audio routing.

Effect Command Atlas (Protracker / common subset)

CmdEffectParam
0Arpeggioxy = semitones above base
1Portamento upspeed
2Portamento downspeed
3Tone portamentospeed to slide to last note
4Vibratoxy = rate, depth
9Sample offsetstart sample at offset xx00
AVolume slidexy = up, down
BPosition jumporder index
CSet volume0-64
DPattern breakrow in next pattern
FSet speed/tempo≤32 ticks, ≥32 BPM

The Demoscene Connection

Trackers and demos grew up together. A demo group needed code, art, and music. The musician used a tracker; the coder bolted its replayer into the demo binary. The Amiga sound chip (Paula) had 4 hardware DMA channels at 8-bit, and the entire scene worked within that envelope. Later PC trackers added channels and resolution but the cultural shape carried over: small files, sample-based, music that fits in 4KB intros if it has to.

Where the Files Live Now

  • The Mod Archive (modarchive.org), 175,000+ modules, browseable by format and group.
  • Scene.org, the demoscene archive, hosts party releases and individual artist directories.
  • AMP (Amiga Music Preservation), focused on Amiga-era authors.
Why it still matters Tracker music is a notation system optimized for sample-and-pattern thinking. It maps cleanly onto the way an embedded sound system works: small buffers, fixed channels, predictable cost. Game soundtracks on resource-constrained hardware (handhelds, demoscene compos, indie chip games) still use trackers because the format is the budget.
HA-027

BLOCKCRAFT

ANSI art. CP437 in 16 colors, drawn one quarter-block at a time. The visual language of the BBS scene.

The Quarter-Block Trick

Code page 437 contains four glyphs that subdivide a character cell into halves: (upper half), (lower half), (full), (left half), (right half). With foreground and background each able to take any of 16 colors, two adjacent halves of a cell can be drawn as independently-colored quarters. The "blocky" ANSI aesthetic is artists working in this two-color-per-cell, half-character resolution.

CP437 High Half (the box-draw region)

RangeContents
0x80-0x9FAccented Latin (Ç ü é â ä à å ç ê ë è ï î ì Ä Å É æ Æ ô ö ò û ù ÿ Ö Ü ¢ £ ¥ ₧ ƒ)
0xA0-0xAFMore accents + Spanish punctuation (á í ó ú ñ Ñ ª º ¿ ⌐ ¬ ½ ¼ ¡ « »)
0xB0-0xB3Shade blocks ░ ▒ ▓ │
0xB4-0xDFBox-drawing characters (single, double, and mixed line junctions)
0xDC-0xDF▄ █ ▌ ▐ ▀ ← THE QUARTER-BLOCKS
0xE0-0xEFGreek lowercase (α β γ π σ τ Φ Θ Ω δ ∞ φ ε ∩)
0xF0-0xFEMath (≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° · ∙ √ ⁿ ²) and ■

ANSI Color Codes

Escape sequence ESC[ (i.e. \x1b[) followed by parameters and a final letter. For color, the final letter is m.

CodeEffectCodeEffect
0Reset40-47BG dark
1Bold (often bright FG)30FG black
5Blink (sometimes bright BG)31FG red
30-37FG dark32FG green
90-97FG bright (later extension)33FG yellow / brown
100-107BG bright (later extension)34FG blue

Art Group Heritage

GroupEraKnown For
ACiD Productions1990→The dominant ANSI/art group of the BBS era. Founded by RaD Man.
iCE Advertisements1991→ACiD's chief rival. Many shared members over time.
Fire1993→Late-BBS / early-scene group, strong typographic work.
Mistigris1994→Canadian collective, still active. Curated retro packs.
blocktronics2008→Modern ANSI revival. Annual packs continue the lineage.

Tools

  • PabloDraw. The de-facto modern ANSI editor. Cross-platform, supports collaboration.
  • Moebius. Newer (Electron) editor with a kinder UI for newcomers.
  • TheDraw. The classic DOS editor most BBS ANSIs were drawn in.
  • ACiDView / ANSILove. Renderers. ANSILove is the canonical PNG converter for archival display.

The Pack as a Format

An "art pack" is a monthly ZIP from a group containing every member's work for that period, with a file_id.diz, group news, and member roster. The structure persists: blocktronics still releases packs the same way ACiD did in 1991. The largest archive of packs is sixteencolors.net, with thousands going back to the late 1980s.

Why this is worth preserving ANSI art is the only major visual tradition built entirely around a character grid and a 16-color palette. The constraints are severe and the work inside them is sometimes extraordinary. It is also the visual record of the BBS scene, which means losing the art means losing the look of an entire computing era.
HA-028

ASSEMBLER

8-bit instruction set reference. The CPUs that built the home-computer generation.

The Two Lineages

Two architectures, both introduced in 1975-1976, sit under most of the consumer 8-bit era. The MOS 6502 (Apple II, Commodore PET / VIC-20 / 64, Atari 8-bit and 2600, BBC Micro, Nintendo NES) was cheap and elegant: three registers, well-thought-out addressing modes. The Zilog Z80 (TRS-80, ZX Spectrum, Amstrad CPC, MSX, Game Boy variant) was more capacious: more registers, more instructions, a shadow register set. The 6502 had ruthless simplicity; the Z80 had inventory.

MOS 6502 Register File

RegWidthRole
A8Accumulator. All arithmetic passes through it.
X, Y8 eachIndex registers. Used for addressing modes and counted loops.
PC16Program counter.
SP8Stack pointer. Always points into page 1 ($0100-$01FF).
P8Processor status flags: N V - B D I Z C.

6502 Addressing Modes

ModeSyntaxMeaning
ImmediateLDA #$42Operand is the value itself
Zero pageLDA $42One-byte address into $0000-$00FF
Zero page,XLDA $42,X$42 + X, wrapping in zero page
AbsoluteLDA $1234Two-byte address
Absolute,X / Absolute,YLDA $1234,X$1234 + X (16-bit add)
(Indirect,X)LDA ($42,X)Read pointer from $42+X (zp), use as address
(Indirect),YLDA ($42),YRead pointer from $42 (zp), then add Y. The workhorse.
RelativeBEQ labelBranches: signed 8-bit offset from PC

6502 Instruction Categories (56 official opcodes)

GroupMnemonics
Load / storeLDA LDX LDY STA STX STY
ArithmeticADC SBC (with carry). No native multiply or divide.
LogicalAND ORA EOR BIT
Shift / rotateASL LSR ROL ROR
CompareCMP CPX CPY
BranchBCC BCS BEQ BNE BMI BPL BVC BVS
TransferTAX TXA TAY TYA TSX TXS
StackPHA PLA PHP PLP
FlagCLC SEC CLD SED CLI SEI CLV
ControlJMP JSR RTS RTI BRK NOP

Zilog Z80 Register File

RegWidthRole
A, F8 eachAccumulator and flags. Together as AF.
B, C / D, E / H, L8 eachGeneral purpose. Pair as BC, DE, HL for 16-bit ops.
HL16Default address pointer. Many ops are HL-relative.
IX, IY16 eachIndex registers with signed 8-bit displacement.
SP16Stack pointer.
PC16Program counter.
I, R8 eachInterrupt vector page; memory refresh counter.
AF', BC', DE', HL'shadow setSwapped in by EXX and EX AF,AF'. Fast interrupt context save.

Z80 Notable Instructions

MnemonicWhat It Does
LDIRBlock copy: HL→DE, BC times. One instruction, whole memcpy.
CPIRBlock compare with HL, decrement BC until found or zero. memchr-equivalent.
DJNZ dispDecrement B, jump if nonzero. The classic 8-bit counted loop.
EX (SP),HLSwap HL with the top of stack. Cute and occasionally beautiful.
OUT (n),A / IN A,(n)I/O port access. Z80 has a separate I/O address space (the 6502 does not).
HALTStop until interrupt. Used as the idle loop on many machines.

Status Flag Conventions

Flag6502Z80
ZeroZZ
CarryCC
Sign / NegativeNS
OverflowVP/V (parity OR overflow depending on op)
Half-carry (BCD aid)(via D flag)H
Subtract directionn/aN (set by SUB, reset by ADD; aids DAA)
Why learn these now Modern CPUs hide their complexity behind cache, pipelines, microcode, and speculation. An 8-bit CPU is a teaching tool: 56 opcodes, three registers, one bus, no surprises. You can hold the entire machine in your head. That is rare, and it is the right place to start if you want to understand what the abstractions above are abstracting.
HA-029

BBS

Bulletin board systems. The network before the Internet, one phone line at a time.

The Shape of a BBS

A BBS was a personal computer with a modem on a dedicated phone line, running software that answered the phone, asked for a username, and presented a menu. Message bases. File areas. Door games. One user at a time, almost always. Sysop in the kitchen, board in the basement, family complaints when someone called during dinner.

The Software

PackagePlatformEraNotes
CBBSS-100, CP/M1978The first. Ward Christensen and Randy Suess in Chicago, during the Great Blizzard of 1978.
WWIVDOS1984→Wayne Bell's package. Hugely popular with hobbyists; the WWIVnet message network was its own world.
PCBoardDOS1983→Commercial. Multi-line, polished, the choice for paid boards. PPL scripting language.
RemoteAccessDOS1989→QuickBBS-derived. Fidonet-friendly, fast.
RenegadeDOS1991→Telegard-derived. Heavy in the ANSI-art and warez scenes.
SynchronetDOS / Win / Linux1992→Still actively developed. Telnet-accessible boards run on Synchronet today.
MysticDOS / Win / Linux1995→Modern revival favorite. Excellent ANSI / theming.

File-Transfer Protocols

ProtocolYearNotes
XMODEM1977Ward Christensen. 128-byte blocks, checksum, stop-and-wait. The first.
XMODEM-CRC1981CRC-16 instead of checksum. More reliable on noisy lines.
YMODEM1985Chuck Forsberg. 1K blocks, filename in initial block, batch transfer.
ZMODEM1986Forsberg again. Streaming, crash recovery (resume!), variable block sizes. The good one.
Kermit1981Columbia University. Designed for hostile environments (7-bit, EBCDIC, slow). Astonishingly portable.
Bi-Modem / HS/Link1990sBidirectional. Upload and download simultaneously on a full-duplex modem.

FidoNet

Tom Jennings, 1984. A store-and-forward network using BBSes as nodes. Each system had an address like 1:135/20 (zone:net/node). Messages and files (echomail) propagated overnight via "zone mail hour," 0900-1000 UTC, when nodes were required to be available for inbound mail polls. By 1995 FidoNet had more than 35,000 nodes worldwide. The protocols (FTS-0001, FTS-0006) are still implemented in Synchronet and Mystic and the network still exists, smaller.

Door Games

A "door" was a program the BBS launched on behalf of the user. The BBS handed the door the serial port (via a FOSSIL driver or DOORWAY) and the door ran until the user logged off. The classics:

  • Tradewars 2002 (1986). Space trader, persistent universe, the door game.
  • Legend of the Red Dragon (1989). Fantasy RPG with one turn per day. Seth Robinson.
  • Usurper (1989). Rasmus Lindelöw. LORD's grim cousin.
  • BRE / Barren Realms Elite (1992). 4X strategy in turns.
  • Operation Overkill II (1990). Post-apoc shooter with great ANSI.

Vocabulary

TermMeaning
SysopSystem operator. Owner-administrator of the board.
CosysopTrusted user with elevated rights. Often the sysop's friend.
NUPNew User Password. Some boards required a password just to register, often shared by word of mouth.
RatioDownload credit, usually 3:1 or 5:1 (upload one MB, download three). Encouraged contribution.
QWK packetCompressed mail bundle for offline reading. Download once, read on your machine, upload replies.
ThroughputThe actual speed achieved, in cps, not the modem's nominal bps. Compression and protocol overhead made these differ.
Still running Hundreds of BBSes are still online via telnet. The Telnet BBS Guide (telnetbbsguide.com) lists active boards. Synchronet and Mystic users in 2026 are doing exactly what was being done in 1992, minus the modem, plus a hobbyist's appreciation for the form.
HA-030

PHRACK

Zines, papers, and the publication record of the hacker scene.

Phrack Magazine

Founded November 17, 1985 by Taran King and Knight Lightning on Metal Shop BBS, Phrack was the underground's journal of record. The format was a plain-text electronic magazine, distributed via BBS and email, structured as numbered articles in numbered issues. Most issues opened with a Prophile (an interview with a notable scene figure) and closed with the World News and Pirate's Cove. The technical content sat between.

Selected Issues, From the Long Index

IssueYearNotable
#1-71985-86The early run on Metal Shop. Telecom-heavy.
#241989The "E911 document" issue. Triggered Operation Sundevil and the Steve Jackson Games raid.
#491996Aleph One, "Smashing the Stack for Fun and Profit." The article that made stack smashing common literacy. The single most-cited Phrack piece.
#551999Solar Designer on non-executable stack patches and their early bypasses.
#56-572000-01Heap exploitation papers from MaXX, Anonymous, others. The "Vudo" series.
#592002Halvar Flake on structural comparison of executables (the seed of BinDiff).
#622004Skape, "Understanding Windows Shellcode."
#672010Ben Hawkes on JIT spraying. argp + karl on integer-array overflows.
#692016Revival issue after a six-year gap. argp's heap exploitation continuation.
#712024Most recent issue at time of writing. Continues the count.

2600: The Hacker Quarterly

Founded January 1984 by Emmanuel Goldstein (Eric Corley). Print magazine, still publishing, four issues a year. The title refers to the 2600 Hz tone Cap'n Crunch used to seize trunks (HA-011). 2600 hosts the annual HOPE conference at Hotel Pennsylvania (now elsewhere) in New York City. The magazine's letters section is its own institution.

Other Zines of Record

TitleYearsOrigin / Focus
Cult of the Dead Cow (cDc)1984→The longest-running. Drama, satire, occasional technical landmarks (Back Orifice, 1998).
LOD/H Technical Journal1987-1990Legion of Doom / Hackers. Four issues. Phone-system deep dives.
NIA (Network Information Access)1987-1990Telecom and Unix system internals.
Computer Underground Digest (CuD)1990-2000Academic / journalistic. Less technical, more sociological.
40Hex1991-1995Virus writing scene. Phalcon/Skism crew.
Hacktic1989-1994Dutch zine. Spawned XS4ALL ISP and HAL/CCC-adjacent culture.
Chaos Computer Club publications1981→Datenschleuder (the CCC's German-language quarterly). Annual congress (CCC) since 1984.
Uninformed2005-2008Skape / Skywing era. Technical, peer-reviewed-feeling. Ten issues.
POC||GTFO2013-2021"Proof of Concept or Get The F*** Out." Bible-format PDFs. Manul Laphroaig, Travis Goodspeed et al.

The ASCII Art Magazine Tradition

A zine in this lineage had a title block, a contents page, and articles numbered in plain text. Headers were drawn in CP437 box-draw or 7-bit ASCII art. Every issue had a "rant" article and a "scene news" article. Many had a "world news" digest of arrests, raids, and busts (HA-027's BLOCKCRAFT and the zine tradition share visual ancestry).

Where to Read Now

  • phrack.org. The complete Phrack archive, every issue, plain text and as PDFs for recent ones.
  • 2600.com. Current issue is print/digital; back issues sold individually.
  • archive.org. Computer Underground Digest is mirrored. Many smaller zines are preserved here.
  • textfiles.com. Jason Scott's archive. Decades of BBS-era text files, organized.
  • cdc.textfiles.com. The cDc archive.
Why these matter Hacker scene zines are the primary literature of the field for the period roughly 1984 through the mid-2000s. Academic security research did not catch up to what Phrack, Uninformed, and POC||GTFO were publishing until well after the fact. If you want to understand where a technique came from, the citation often ends at a Phrack issue number.
HA-031

SHELLCODER

The vocabulary of memory-corruption exploitation. Heritage and defense, not how-to.

Where the Field Begins

The Morris worm (November 2, 1988) exploited a stack overflow in BSD's fingerd. The technique was not new; the consequence was. Robert T. Morris Jr. became the first person convicted under the 1986 Computer Fraud and Abuse Act. The bug class became permanent industry vocabulary. Eight years later, in Phrack 49, Aleph One wrote "Smashing the Stack for Fun and Profit," which made the technique broadly comprehensible. Everything that followed is commentary on those two events.

Vocabulary Atlas (Read These Names, Then Read the Mitigations Below)

TermConcept
Stack overflowWriting past the end of a stack buffer until the saved return address is overwritten.
Heap overflowOverflowing a heap allocation into adjacent metadata or another chunk.
Use-after-freeHolding a pointer to memory after the allocator has reused it.
Double freeFreeing the same allocation twice. Corrupts allocator state.
Format stringAn attacker-controlled format argument to printf-family, allowing reads and writes via %n.
Integer overflowArithmetic that wraps a size calculation, producing a small allocation for a large copy.
Type confusionAn object accessed as the wrong type. Common in JIT compilers and OO runtimes.
Race / TOCTOUTime-of-check vs time-of-use. Validate, then a separate thread or process flips the resource.
NOP sledA run of no-op instructions that gives an inaccurate jump target some slack to land in.
EncoderA transformation that avoids forbidden bytes (e.g. NUL) and self-decodes at runtime.
Egg hunterTiny stage-1 payload that searches memory for a tag and jumps to a larger stage-2 payload.
ROP gadgetA short sequence of existing instructions ending in ret, reused as a building block.
JOP / COPJump-oriented, call-oriented variants of the same idea.
Heap sprayAllocating many copies of a payload to make a guess about its location likely to succeed.
Info leakA primitive that reveals an address (e.g. a vtable, a stack canary) to defeat ASLR or canaries.

The Defense Stack (What Actually Stops This)

MitigationYearWhat It Does
Stack canaries1997 (StackGuard)Random value written between locals and return address; checked at function exit.
Non-executable stack / heap (NX / DEP)2003-2004Writable pages are not executable; executable pages are not writable. Killed naive shellcode execution.
ASLR2003-2005Randomize base addresses of stack, heap, libraries, and (with PIE) the executable itself. Defeats fixed-address payloads.
PIE2003→Position-independent executable. ASLR for the main binary, not just shared libraries.
RELRO2004→Read-only GOT after relocations are resolved. Defeats GOT overwrite.
SafeSEH / SEHOP2003 / 2009Windows structured exception handler validation. Defeated several once-easy techniques.
CFI2014→ (clang); kCFI 2022Control-Flow Integrity. Indirect calls validated against expected target sets.
Shadow stackIntel CET 2020, ARM 2022Hardware-enforced return-address stack maintained in parallel. ROP becomes very hard.
BTI / IBTARM 2022 / Intel CET 2020Branch target identification. Indirect jumps must land on a special instruction.
MTEARM 2022→Memory tagging. Allocations get a tag; pointers carry it; mismatches fault. Catches UAF probabilistically.
Memory-safe languages1990s onward; Rust 2015; Go 2009The category eliminates entirely. The industry consensus as of the mid-2020s.

The Arms-Race Shape

Every mitigation above was introduced because the prior set was insufficient. Stack canaries were defeated by skipping them via direct write further up the stack. NX was defeated by ROP. ASLR was defeated by info leaks. Each step has raised the cost. Modern exploitation against fully-mitigated binaries is a research-level activity that often chains multiple bugs (an info leak plus a write primitive plus a control-flow target) into a single working payload. The cost has not stopped attackers, but it has pushed the price up by orders of magnitude.

Books You Should Read (Defensive Curriculum)

  • The Shellcoder's Handbook, Anley, Heasman, Lindner, Richarte. The standard educational text on the bug classes.
  • Hacking: The Art of Exploitation, Jon Erickson. Excellent walk through the foundations.
  • A Bug Hunter's Diary, Tobias Klein. Real bugs, with the chain of discovery preserved.
  • Practical Reverse Engineering, Dang, Gazet, Bachaalany. The companion volume on how to read other people's binaries.
The point of this page Understanding how memory corruption works is what makes the defenses above legible. A defender who cannot describe ROP cannot evaluate why their compiler enables shadow stacks. The catalog of names and mitigations here is the working vocabulary. The functional details belong in a book, in a course, or in a CTF, not in a single-page reference.
HA-032

ROOTKIT

Persistence categories, historical cases, and where defenders look. The geography of staying installed.

The Five Layers

A rootkit's category is defined by where it sits relative to the kernel and firmware. Each layer down is harder to install, harder to detect, and harder to remove.

LayerLives InRemoval
User-modeReplaces user binaries, injects DLLs / preloaded .so files, hijacks IAT/PLTReinstall affected packages; often visible to a kernel-aware scanner
Kernel-modeLoadable kernel module / driver. Hooks syscall table, IDT, IRP, or VFS layer.Boot from clean media, scan offline, reinstall OS if uncertain
BootkitMBR, VBR, UEFI Boot Manager. Runs before the OS does.Reflash firmware, recreate boot chain; Secure Boot is the prevention
Firmware (UEFI, BMC, peripheral)SPI flash on the motherboard, BMC's own flash, network card or drive firmwareSPI programmer with known-good image; sometimes board replacement
Hypervisor / SMMBelow the OS via VT-x or in System Management Mode (Ring -2)Largely theoretical for commodity targets; firmware re-flash if found

Persistence Mechanisms (Where the Hooks Go)

OSCommon Footholds
WindowsRegistry Run keys, Services, Scheduled Tasks, WMI event subscriptions, COM hijacking, AppInit_DLLs, image file execution options (debugger), DLL search-order hijacks, drivers (legacy .sys + service)
macOSLaunchAgents / LaunchDaemons (~/Library/LaunchAgents, /Library/LaunchDaemons), login items, kernel extensions (deprecated) and System Extensions, DYLD_INSERT_LIBRARIES (limited by hardened runtime)
Linuxsystemd units (user and system), init.d / rc.local, cron, bashrc / profile, LD_PRELOAD, kernel modules, eBPF programs (uprobes / kprobes)

Historical Cases You Should Recognize

NameYearLesson
Sony BMG XCP2005Commercial DRM that installed a user-mode rootkit on Windows. Mark Russinovich (Sysinternals) discovered it via RootkitRevealer. Class-action settlements followed.
Stuxnet2010Windows kernel driver signed with stolen Realtek / JMicron certificates. Targeted Siemens PLCs at Natanz. Demonstrated nation-state quality and the implications.
Mebromi2011BIOS-level malware infecting Award BIOS. One of the first publicly documented mainstream firmware rootkits.
LoJax2018UEFI rootkit attributed to Sednit/APT28. Used a vulnerable legitimate driver to write to SPI flash. ESET wrote the canonical analysis.
MosaicRegressor2020UEFI implant disclosed by Kaspersky. Built on leaked Hacking Team material.
BlackLotus2023First publicly-known UEFI bootkit that bypassed Secure Boot on fully-patched Windows 11. CVE-2022-21894 (Baton Drop).

Detection: Where Defenders Look

  1. Cross-view scanning. Ask the system the same question two ways. Compare a process list from the API with a list reconstructed from kernel structures (psscan, VAD walk). Discrepancies are the find.
  2. Boot integrity. TPM-backed measured boot. The TPM records hashes of each stage; an unexpected hash means an unexpected component. Tools: tpm2_pcrread, Windows Device Health Attestation.
  3. Firmware integrity. Read SPI flash with a hardware programmer (CH341A, etc.), compare to vendor-released images. Intel's CHIPSEC framework automates much of this.
  4. EDR telemetry. Modern endpoint products watch for unusual driver loads, unsigned modules, kernel callback registrations, and abnormal cross-process activity. The high-value signals are the rare events.
  5. Offline scanning. Boot from a known-good live image (e.g. a forensic distro), mount the suspect disk read-only, scan from outside. A rootkit cannot lie about a filesystem it is not running on.
  6. Network behavior. Beacons. DNS to unusual TLDs. C2 traffic patterns. Sometimes the only ground truth is what packets leave the network interface, observed from outside the host.

Tooling, Defender-Side

ToolUse
Sysinternals (Autoruns, Process Explorer, Sysmon)Windows host inspection. Autoruns enumerates virtually every persistence location.
Volatility 3Memory analysis, including malfind, ldrmodules, ssdt, callbacks.
chkrootkit / rkhunterLinux signature-based scanners. Useful as a coarse first pass.
CHIPSEC (Intel)Firmware / hardware security configuration audit and SPI image analysis.
UEFIToolParse and inspect UEFI firmware images.
Velociraptor / GRRFleet-scale endpoint hunting. Run queries across hosts.
osquerySQL interface to host state. SELECT * FROM kernel_extensions WHERE signed = 0;
What this section is for A defender who can name the layer, the persistence mechanism, and the historical case has the working vocabulary to read an incident report. That is the point. The catalog of categories is the map; the historical cases are the landmarks; the tools are how you walk the territory. The constructive work of removal belongs in operational runbooks, not in a reference page.
HA-033

TRACE

PCB anatomy. Stackup, ampacity, impedance, vias, fanout. The board the chip lives on.

4-LAYER CROSS SECTION L1 PREPREG L2 GND CORE (FR-4) L3 PWR PREPREG L4 THRU BLIND BURIED
Fig. 1 · Layer stack, via types

Trace Width Calculator (IPC-2221)

IPC-2221 AMPACITYready

Layer Stackup Reference

LayersTypical UseNotes
2Hobby, simple controllers, breakoutsOne side for routing, one for fills; GND fill on solder side
4Most prosumer designs, MCU + RFSig / GND / PWR / Sig. The textbook default.
6Mixed signal, dense BGA escapeSig / GND / Sig / Sig / PWR / Sig (or many variations)
8 – 12SoCs, telecom, server boardsMultiple GND planes for impedance control
16+HPC, networking ASICsSequential lamination, blind/buried vias common

Via Types

TypeSpansCost / Use
Through-holeAll layersCheapest. Default unless rules say otherwise.
BlindOuter to inner onlySequential lam; BGA escape
BuriedInner to inner onlySequential lam; routing density
Micro-via (μvia)L1↔L2 only, laser drilledHDI. 0.10 mm typical drill.
Stacked μviaL1↔L2↔L3 etc.Risk of cracking; IPC-2226 reliability rules
Filled and cappedAny, plated overVia-in-pad for fine-pitch BGA

Impedance Reference (FR-4, εr ≈ 4.3)

Microstrip and stripline approximations
TopologyZ (Ω)WidthDielectric height
Microstrip50~6 mil~3.5 mil to nearest plane
Microstrip50~12 mil~6.5 mil
Stripline50~5 mil~10 mil (centered)
Differential μstrip100 (diff)~7 mil each~3.5 mil; ~7 mil edge-to-edge gap
Differential μstrip90 (USB)~7 mil each~4.0 mil; ~7 mil gap

Verify against your fab's stackup calculator. Variation in glass weave, prepreg vs core dielectric constant, and copper roughness moves the answer by 5 to 15 percent.

BGA Escape Patterns

Below 0.80 mm pitch, escape gets interesting. At 0.65 mm with 4-mil/4-mil rules you can dogbone two rows. Below that, you need either via-in-pad with filled-and-capped microvias, or HDI with stacked μvias. The 0.40 mm pitch BGA (and CSP) generally requires HDI; everyone learns this once.

The annular ring rule For mechanical (through-hole) drills, the copper ring around the hole must be at least 4 mil after drill registration tolerance. For micro-vias, it's down to 2 mil typical. Designs that look fine in CAD fail at manufacture when the drill walks. Always check the fab's DRC, not just your own.
HA-034

PASSIVES

Resistor, capacitor, and inductor identification. Color bands, SMD codes, E-series values, package sizes.

Resistor Color Code Decoder

COLOR BANDSpick bands or enter a value

SMD Resistor Code Decoder

SMD CODE3-digit, 4-digit, EIA-96

Resistor Color Reference

ColorDigitMultiplierToleranceTCR (ppm/°C)
Black0×1n/an/a
Brown1×10±1%100
Red2×100±2%50
Orange3×1kn/a15
Yellow4×10kn/a25
Green5×100k±0.5%20
Blue6×1M±0.25%10
Violet7×10M±0.1%5
Gray8×100M±0.05%1
White9×1Gn/an/a
Goldn/a×0.1±5%n/a
Silvern/a×0.01±10%n/a

SMD Code Conventions

FormatExampleReading
3-digit47247 × 10² = 4.7 kΩ (±5% typical)
3-digit with R4R7R is the decimal point. 4.7 Ω
4-digit (precision)4702470 × 10² = 47.0 kΩ (±1% typical)
4-digit with R47R047.0 Ω
EIA-9601ATwo digits look up E96 value, letter is multiplier

E-Series Values (per Decade)

SeriesToleranceValues per Decade
E6±20%6 (10, 15, 22, 33, 47, 68)
E12±10%12 (adds 12, 18, 27, 39, 56, 82)
E24±5%24 (adds 11, 13, 16, 20, 24, 30, 36, 43, 51, 62, 75, 91)
E48±2%48 (precision)
E96±1%96 (most common precision)
E192±0.5%192 (ultra-precision)

SMD Package Sizes

ImperialMetricL × W (mm)Typical Use
0100504020.4 × 0.2Wearables, dense HDI
020106030.6 × 0.3Smartphones
040210051.0 × 0.5Modern default for production
060316081.6 × 0.8Hand-solderable; prototype default
080520122.0 × 1.25Power, hobbyist friendly
120632163.2 × 1.6Higher power, larger caps
121032253.2 × 2.5Bulk capacitors
201050255.0 × 2.5Current sense, power
251264326.4 × 3.23 W resistors

Capacitor Markings

Ceramic SMD (no markings, mostly): consult the BOM. 0402 and 0603 ceramics are too small for legible marking. Color is meaningless. Use a capacitance meter or trust the reel.

Ceramic through-hole (disc, monolithic): three-digit code in pF. 104 = 10 × 10⁴ pF = 100 nF. Letter suffix is tolerance (K = ±10%, M = ±20%, J = ±5%).

Electrolytic: capacitance and voltage printed directly. Negative lead marked (stripe on the can). Polarity matters; backwards installation will fail loudly.

Tantalum SMD: case letters (A/B/C/D/E/X) indicate physical size. Voltage rating coded as a letter (e.g. A = 10 V, C = 16 V, D = 20 V). Polarity marked by a stripe on the positive end (opposite convention from electrolytic; a known pitfall).

The 4k7 convention European parts and schematics often write 4k7 instead of 4.7k, putting the multiplier where the decimal would be. Mil-spec and most modern Asian design houses do the same. Works in handwriting, looks intentional, sidesteps the comma-vs-period locale issue. Both forms read in this widget.
HA-035

PROBES

Oscilloscope and logic analyzer reference. What the probe is doing to the signal, and how to keep your measurements honest.

PROBE GROUND TIP SPRING ~5 nH TIP CLIP ~150 nH GROUND LOOP INDUCTANCE
Fig. 1 · Spring vs alligator clip

Bandwidth, Sample Rate, Rise Time

These three numbers describe an oscilloscope's reach. They relate, but are not interchangeable.

QuantityFormulaPractical Rule
Rise time from BWtᵣ ≈ 0.35 / BW1 GHz scope → ~350 ps rise (Gaussian)
Required BWBW ≥ 5 × f_clockTo see edges, not just fundamentals
Sample ratefs ≥ 2.5 × BWNyquist plus margin; aim for 4×+ for clean reconstruction
Memory depthsamples = fs × timeLong captures at high fs eat memory fast
Combined rise timetᵣ_sys = √(tᵣ_sig² + tᵣ_probe² + tᵣ_scope²)Scope and probe both contribute

Probe Types

TypeInput CBWNotes
Passive 1× (DC)40 – 100 pFlow (10 – 35 MHz)Loads heavily. Useful only for low-frequency, high-amplitude signals.
Passive 10×~12 – 18 pF100 – 500 MHzThe default. Adjust compensation each time you swap probes/scopes.
Active FET~1 pFto several GHzExpensive; needs power. Use when probe loading matters.
Differentiallowto GHzRequired for floating measurements (Vds, USB diff pairs)
Current proben/a (current)DC – 100s MHzHall-effect + transformer. Clamp around a wire.
High-voltage~3 pFto ~50 MHz1000× or more. Mind the safety rating.

Trigger Modes

TypeWhat It Catches
EdgeRising, falling, or either. The default.
Pulse widthPulses narrower or wider than a threshold. Glitch hunting.
RuntPulse that crosses one threshold but not the other. Marginal logic.
TimeoutSignal that stays at a level too long. Stuck bus.
Pattern / stateMulti-channel boolean combination at a specific clock edge.
Protocol (SPI/I2C/UART/CAN)Decoded-content match: I2C address, CAN ID, UART byte.
Setup / holdData changing inside the setup/hold window relative to a clock.

Logic Analyzer Reference

ToolChannelsSample RateNotes
Saleae Logic 8 / Pro8 / 16100 / 500 MS/sLogic software, many protocol decoders
DSLogic Plus / U3Pro1616to 1 GS/sOpen hardware lineage, sigrok-compatible
HP/Agilent 1670 series96+500 MS/sUsed market; serious channel counts for buses
sigrok / PulseViewn/an/aOpen-source decoder framework. Supports most hardware above.

Where People Go Wrong

  1. The ground clip. The long alligator clip lead adds ~100 nH plus. At fast edges that lead rings, and what you see is the probe-and-clip resonance, not the signal. Use the ground spring. Hold the probe tip and spring against the via pair simultaneously.
  2. Probe loading. A 12 pF probe across a 1 kΩ source has a corner frequency around 13 MHz. Above that, you are measuring an attenuated and phase-shifted version of the signal. Active probes change the answer entirely.
  3. Insufficient BW. Rise time is dominated by the slowest element in the chain. A 100 MHz scope cannot honestly show a 500 MHz signal. The math says it; the screen will lie.
  4. Aliasing. Single-shot at undersample is straightforward aliasing. Repetitive equivalent-time sampling (analog scopes) can fake high BW on repeating signals; do not trust it on transients.
  5. Wrong impedance. 50 Ω signal into a 1 MΩ scope input reflects off the open. Use the scope's 50 Ω input mode, or a feed-through terminator at the BNC.
The 10× attenuation tax A 10× probe attenuates the signal by 10, so the scope's vertical resolution at the probe tip drops by 10×. A 12-bit scope behaves like a 9-bit scope through a 10× probe. For low-amplitude signals (noise floor measurements, ripple), reach for 1× or an active probe and accept the bandwidth hit, rather than 10× into a high-vertical-range scope.
HA-036

GLITCHING

Fault injection. Make the CPU skip an instruction by upsetting its environment. Heritage, vocabulary, defense.

The Core Idea

A microprocessor operates inside an envelope of voltage, temperature, clock period, and electromagnetic conditions. Push briefly outside that envelope at the right moment and the processor may compute the wrong result, often deterministically: it skips an instruction, mis-loads a register, fails to take a branch. If the affected instruction is a security check, the consequence is a bypass. Glitching is the disciplined exploration of when, how, and how briefly to step outside the envelope.

Glitch Categories

TypeMethodTooling
Voltage (Vcc glitch)Brown the power rail for tens to hundreds of nsCrowbar transistor, voltage glitcher boards, ChipWhisperer-Lite/Pro
Clock glitchInsert a too-fast or too-narrow edge into the clockFPGA glitch generator; ChipWhisperer for synchronous targets
EM (electromagnetic)Pulse a small coil over the die surfaceRiscure EM-FI, ChipShouter, hand-wound coils + capacitor bank
Optical (laser)Decap, focus laser through silicon backside onto specific transistorsRiscure Laser Station, academic lab setups
Body biasing (FBBI)Pulse the substrate voltage relative to logic supplySpecialized; uncommon outside academia
TemperatureCool or heat to push timing marginsSpray cans, hot air, Peltier. Coarse but cheap.
Clock removal / holdStop or stretch the clock during a security operationGeneric glitch hardware

Parameters You Tune

  • Trigger offset. Time from a reference event (reset deassertion, GPIO toggle, UART byte) to the glitch. Often the dominant search dimension; sweep it.
  • Glitch width. How long the upset lasts. Picoseconds matter for clock glitching; nanoseconds for voltage; microseconds for EM coil discharge.
  • Glitch amplitude. How far below Vcc you pull, how strong the EM pulse is, how hot the laser.
  • Repetition / multiplicity. A double glitch is a different attack from a single. Some targets harden against one but not the other.

Historical Successes (Defender's Heritage)

TargetYearTypeLesson
Xbox 360 (reset glitch hack)2011Reset / timing glitchGliGli's reset pulse during the hypervisor signature check; led to Free60 / RGH modchips.
Trezor One (rdpgadget)2017Voltage glitchSTM32 RDP level-2 to level-1 downgrade via Vcc glitch on power-up. Trezor issued firmware mitigations.
Nintendo Switch (fusée gelée + Tegra glitch chain)2018USB stack + later FIInitial RCE was a USB bug; later research used glitch on the boot ROM hash check.
Ledger Nano S (voltage glitch on STM32F042)2018VoltageKraken Security Labs and others demonstrated bypass of secure-boot checks on hardware wallets.
iPhone checkm8 (no-FI, but timing/race)2019RaceUSB DFU race condition; not a glitch but in the same family of micro-timing attacks.
Tesla MCU2 (volt glitch)2020VoltageResearchers extracted RSA keys via Vcc glitch on the Tegra during boot.

Defense in Depth

  • Double checks. The same security comparison performed twice, with different code paths, makes single-glitch bypass harder. Pair with a delay between checks.
  • Glitch detectors. Voltage and clock monitors that latch a fault flag when a transient is detected. Mandatory on modern smart cards.
  • Random delays. Insert pseudorandom NOPs around sensitive operations so the trigger offset becomes a moving target.
  • Sensitive variable redundancy. Store a flag and its complement. Verify both. Catches single-bit flips.
  • Lifetime fuses / RDP escalation. Modern STM32 (RDP level 2) and some other MCUs make readout protection one-way; downgrade requires die-level work.
  • Physical mesh / passive shield. Top-metal mesh on the die that, when disturbed, triggers tamper. Used on high-security SE/SC chips.
  • Move secrets to a Secure Element. Hardware wallets that delegate to a real SE (CC EAL5+ or similar) raise the cost meaningfully. Pure MCU-based designs are softer.

The ChipWhisperer Ecosystem

Colin O'Flynn's open-source platform (NewAE Technology) democratized glitching and side-channel research in the 2010s. The Lite/Pro/Husky boards, the chipwhisperer Python package, and the published courseware (NSA-2024-funded curriculum, university adoptions, Black Hat trainings) are the canonical learning path. The associated GitHub repo includes signed-off lab exercises that walk through real bypasses on real targets, conducted on the researcher's own hardware. Worth a winter to work through.

What this section is for Glitching is taught openly in academic and industry curricula because the only durable defense is for the chip vendors to design with it in mind. A defender who understands what an attacker is sweeping for is the prerequisite for adding countermeasures to a new design. The catalog of categories, parameters, and historical attacks is the working vocabulary. The operational specifics belong in the ChipWhisperer courseware and the academic literature, in front of hardware the reader owns.
HA-037

SIDECHANNEL

Side-channel analysis. Power, timing, EM, cache. Secrets that leak through the body of the machine.

The Premise

A cryptosystem proved secure on paper may still leak its secrets through the physical implementation. Power consumption depends on the data being processed. Execution time depends on the branches taken. Electromagnetic emanations carry the same data signature as the bits flowing across the bus. The mathematical proof assumes a black box; the implementation is not a black box, and a patient attacker can read what leaks through its walls.

Channel Atlas

ChannelWhat LeaksMeasurement
PowerHamming weight or Hamming distance of internal valuesShunt resistor in supply line, oscilloscope
TimingBranch direction, loop iteration count, cache hitsWall clock or high-resolution counter
EM (near-field)Same as power, often with better local resolutionH-field probe over the chip die
EM (far-field, TEMPEST)Display contents, keyboard timing, CPU activityReceiver and antenna at distance; spectrum analyzer
CacheAddress patterns through shared microarchitecturePrime+Probe, Flush+Reload measurements via timing
AcousticCoil whine, keyboard clicks, machine room ambientMicrophone + DSP
PhotonIndividual transistor switching eventsPicosecond imaging circuit analysis (PICA); decapped die required

Power Analysis Techniques

NameApproachRequired Traces
SPA (Simple Power Analysis)Identify operations visually from a single trace1 to a few
DPA (Differential Power Analysis)Partition traces by guessed intermediate, look for statistical differencethousands
CPA (Correlation Power Analysis)Correlate trace samples against a Hamming-weight model of a guessed valuehundreds to thousands; more efficient than DPA
Template AttackBuild profiled models on a clone device, match against target1 (after a heavy profiling phase)
Deep-learning SCATrain a neural net on profiling traces; classify targetProfiling: 100k+; Attack: very few

Historical Lineage

YearWorkSignificance
1985van Eck phreakingWim van Eck demonstrates reconstructing CRT contents from EM emissions. Brings TEMPEST into public literature.
1996Kocher, "Timing Attacks on RSA, DH, DSS"The founding paper of the modern field. Shows secret-dependent runtime in standard implementations.
1999Kocher, Jaffe, Jun, "DPA"Power-trace statistical recovery against DES smart cards. Forces industry-wide redesign.
2002Brumley & Boneh, remote timing attackOpenSSL RSA private key recovery over LAN. Proves the channel works at network distance.
2004Bernstein, AES cache attackCache-based key recovery on a server, exploiting timing of table lookups.
2014Genkin, Shamir, Tromer, acoustic RSA4096-bit RSA key extraction from acoustic emanations of a laptop's voltage regulator.
2018Spectre / MeltdownSpeculative execution leaks data across security domains via cache. Whole-industry microarchitectural rework.
2019 - 2022Hertzbleed, Pacman, Augury, DownfallThe aftershocks: frequency-throttling leaks, pointer-auth bypass, prefetcher leaks, AVX gather leaks.

Defenses

  • Constant-time code. No data-dependent branches, no data-dependent table indexing. The standard countermeasure for timing attacks; harder than it sounds (compilers re-introduce branches).
  • Masking. XOR every intermediate value with fresh randomness; do the crypto on shares; combine at the end. Defeats first-order DPA. Higher-order masking defeats higher-order analysis at proportional cost.
  • Hiding. Randomize execution order, insert dummy operations, randomize the clock. Reduces SNR rather than eliminating leakage.
  • Blinding. Multiply RSA exponent by random factor before operation; divide out after. Bernstein-style remote timing defenses.
  • Cache partitioning / flushing. Intel CAT, ARM MPAM. Limits cross-domain cache reuse. Mitigation against Prime+Probe family.
  • Physical shielding. Faraday enclosures for TEMPEST. Smart-card top-metal mesh as both glitch and EM shield.
  • Microarchitecture redesign. The Spectre family forced a decade of speculation-safe primitives. Indirect branch restricted speculation, IBPB, eIBRS, retpolines. The cost is real and ongoing.
TEMPEST The US program (later joined by UK and NATO under different names) studying compromising emanations dates to the 1950s. The original target was teletype electromagnetic radiation that allowed eavesdropping at a distance. The current public unclassified guidance is in NSTISSAM TEMPEST/1-92 (declassified portions) and CNSSAM TEMPEST/01-13. The cryptographic side-channel field that bloomed in the 1990s and 2000s effectively translated TEMPEST's hardware-spectrum thinking into the algorithm-implementation domain.
HA-038

CONNECTOR

Debug header pinout atlas. JTAG, SWD, MIPI, Xilinx, EJTAG, Tag-Connect, FTDI. Every plug you have ever encountered, drawn.

ARM 10-PIN CORTEX 2×5 · 1.27 mm pitch VTref1 2SWDIO GND3 4SWCLK GND5 6SWO KEY7 8TDI GND9 10nRST SWD + JTAG share this header. SWDIO≡TMS · SWCLK≡TCK · SWO≡TDO Pin 7 keyed (slot in shroud).
Fig. 1 · ARM Cortex 10-pin debug

ARM 20-Pin JTAG (legacy, 2×10, 2.54 mm)

The original ARM Multi-ICE header. Bulky, still common on older devkits and industrial gear.

PinNamePinName
1VTref2VSupply (or nc)
3nTRST4GND
5TDI6GND
7TMS / SWDIO8GND
9TCK / SWCLK10GND
11RTCK12GND
13TDO / SWO14GND
15nRESET16GND
17nc / DBGRQ18GND
19nc / DBGACK20GND

ARM Cortex 10-Pin (2×5, 1.27 mm)

The modern default on Cortex-M boards. Half the pins are GND for return-path quality at high SWD/JTAG speeds. Pin 7 is keyed.

ARM Cortex 20-Pin with Trace (MIPI-20, 2×10, 1.27 mm)

Adds the 4-bit parallel trace bus (TRACECLK + TRACEDATA[0:3]) plus reserved signals for ETM streaming. The first ten pins are identical to the Cortex 10-pin, so a 10-pin probe plugs into the same header without trace.

PinNamePinName
1VTref2SWDIO / TMS
3GND4SWCLK / TCK
5GND6SWO / TDO
7KEY (no pin)8TDI
9GND10nRESET
11GND12TRACECLK
13GND14TRACEDATA[0]
15GND16TRACEDATA[1]
17GND18TRACEDATA[2]
19GND20TRACEDATA[3]

MIPS EJTAG 14-Pin (2×7, 2.54 mm)

Lives on consumer routers, set-top boxes, and older MIPS-based embedded gear. Pulling EJTAG from an Atheros or Broadcom WiSoC is a standard router-hacking move.

PinNamePinName
1nTRST2GND
3TDI4GND
5TDO6GND
7TMS8GND
9TCK10GND
11nSRST12nc / KEY
13DINT14VIO

Xilinx 14-Pin JTAG (2×7, 2.0 mm)

Platform Cable / Platform USB. The same physical connector appears on most pre-Vivado FPGA devboards.

PinNamePinName
1VREF2TMS
3GND4TCK
5GND6TDO
7nc8TDI
9GND10nc
11GND12nc
13GND14nc

Altera USB Blaster 10-Pin (2×5, 2.54 mm)

Now Intel FPGA. Different from ARM 10-pin (this is at 2.54 mm pitch, ARM is 1.27 mm; not interchangeable).

PinNamePinName
1TCK2GND
3TDO4VCC
5TMS6nc
7nc8nc
9TDI10GND

TI 14-Pin (2×7, 2.54 mm), XDS / MSP-FET

Texas Instruments' debug header. Used on MSP430, C2000, and many TI devkits. Includes both JTAG and SBW (Spy-Bi-Wire) modes on MSP430.

PinNamePinName
1TMS / SBWTDIO2VCC
3TCK / SBWTCK4nc
5TDI / TCLK6nc
7TDO8TEST
9GND10nc
11nRST12nc
13nc14nc

Tag-Connect TC2030 / TC2050 (PCB footprint, no header)

A footprint, not a connector. Three larger holes accept retention legs that grip the PCB; six (TC2030) or ten (TC2050) smaller pads contact pogo pins. Saves the cost and board space of a physical header on production boards.

TC2030-IDC-NL (6-pin, no legs variant)
PinDefault Use (NL = no-leg, IDC = 6-pin SOIC-cable)
1VCC (Vref)
2TMS / SWDIO
3nRESET
4TCK / SWCLK
5GND
6TDO / SWO

TC2050-IDC-NL adds TDI, TRST, and two more GND/aux pins for full ARM 10-pin compatibility via the TC2050-ARM2010 adapter.

FTDI 6-Pin Serial (1×6, 2.54 mm)

SparkFun and Adafruit popularized this as the "TTL serial header." Watch the order; clones and variants exist.

PinStandard FTDICommon variant
1GNDDTR
2CTSRX
3VCCTX
4TXVCC
5RXCTS
6RTS / DTRGND

Always check the silkscreen. The pinout convention is not universal. A multimeter on the GND pad to the can shield is the fastest verification.

What VTref Is For

The Vref / VTref pin is the I/O voltage reference. The probe samples this pin and sets its output drivers to the same level. This is how a single SWD probe works on 1.8 V, 2.5 V, 3.0 V, 3.3 V, or 5 V targets. Wiring VTref to a regulated rail is correct; wiring it to ground or leaving it open will produce mysterious "target not found" errors.

The keying convention ARM 10-pin and 20-pin Cortex both omit pin 7 from the cable side, and the corresponding socket has a key (a plastic bump in the shroud) where pin 7 would be. The keying makes it physically impossible to plug the cable in backwards. Older 2×10 headers usually have no keying; the red stripe on a ribbon cable marks pin 1, which is your only guarantee.
HA-039

POWER

LDOs, switchers, bypass capacitor stacks, and the "follow the rails" methodology for reverse engineering a board.

LDO Power Dissipation

LDO HEADROOM & THERMALready

LDO vs Switcher

LDOBuck (step-down switcher)
EfficiencyVout/Vin (terrible when ratio is low)85 – 96% typical, near-flat across load
Quiet outputExcellent (no switching noise)Switching ripple at fsw (MHz)
PSRR at 1 kHz60 – 90 dB common40 – 60 dB typical
External partsTwo caps (in, out)Inductor + caps + sometimes diode/MOS
Cost (BOM)$0.10 – $1$0.50 – $5
Board areaSmall (SOT-23 to SOIC-8)Larger (needs inductor)
Where to useAnalog rails, RF VCO, ADC reference, low headroomDigital cores, motor pre-regs, anywhere ratio is unfavorable

LDO Selection Criteria

SpecWhat It MeansTypical
DropoutMinimum Vin − Vout for regulation50 – 500 mV; low-dropout is <300 mV at rated current
Iq (quiescent current)Current drawn even at no load1 μA (nano-power) to 5 mA (high-perf)
PSRRPower supply rejection ratio (dB)60 dB at 1 kHz is good; degrades above 100 kHz
NoiseOutput voltage noise integrated 10 Hz – 100 kHz10 – 100 μV RMS typical; <5 μV is "ultra-low noise"
Load regulationΔVout per ΔIload0.1 – 1% over full load range
Cap stabilityRequired output cap ESR windowModern LDOs are ceramic-stable; older parts need tantalum

Bypass Capacitor Stack

Real-world capacitors are not ideal. Each has an ESL (series inductance) that gives it a self-resonant frequency, above which it stops behaving as a capacitor. The standard answer is a stack of different values, each handling a different frequency band.

The "decade ladder" for a typical 3.3 V digital rail
CapTypeEffective bandRole
10 – 100 μFBulk (ceramic X5R / tantalum / polymer)DC – ~100 kHzBulk reservoir; supplies slow load transients
1 μFCeramic X7R 0603/0805~100 kHz – 2 MHzMid-frequency bridge
100 nFCeramic X7R 0402/0603~1 – 30 MHzThe classic "decoupling" cap; one per IC power pin
10 nFCeramic 0201/0402~10 – 100 MHzFor fast logic, BGAs, FPGAs
1 nFCeramic 0201~100 MHz – 1 GHz+Used selectively at very fast edge rates

Place caps adjacent to the IC power pin, with the shortest possible loop to ground. Loop area (not trace length) sets the parasitic inductance. Via-in-pad with stitching to a ground plane is the textbook layout.

Brown-Out and Reset Supervisors

ThresholdTypical Application
4.63 V / 4.38 V5 V rail (TL77xx)
2.93 V3.3 V rail (high)
2.63 V / 2.32 V3.3 V rail (typical)
1.67 V / 1.10 V1.8 V rail

The job of a supervisor is to hold the MCU in reset until Vcc is high enough for deterministic operation. Most modern MCUs have an integrated BOD/BOR; external supervisors are still useful for multi-rail boards (assert reset until both 1.2 V and 3.3 V are valid).

Power Sequencing

Multi-rail SoCs (FPGAs, application processors, RF chips) often require rails to come up in a specific order, sometimes with timing windows. Datasheets specify allowable inter-rail skew, monotonic ramp requirements, and which rail must rise first. Violating sequencing can latchup the chip or stress internal ESD structures. PMICs exist primarily to enforce sequencing across many rails from one shared control plane.

Follow the Rails (Reverse Engineering)

When you crack open an unfamiliar board, the power tree is usually the easiest map to draw first:

  1. Identify the input. DC jack, battery connector, USB power, or a buck-boost off a wall-wart. Read the rail voltage and current expectation.
  2. Spot the regulators. SOT-23-5 with a coil nearby is a buck. SOT-23-3/SOT-89 with no inductor is an LDO. PMICs are bigger QFN/BGA with many surrounding caps.
  3. Trace the output of each regulator. The bulk capacitor next to the regulator marks the rail; follow the largest copper region attached to it.
  4. Note which ICs sit on which rail by following the bulk cap to nearby chips' VCC pins. Rails to MCU, RAM, flash, RF, analog often differ.
  5. Confirm with a multimeter on a powered-up board: hover the probe over the bulk cap, read the rail voltage. Match against expected (1.8, 3.3, 5, 12 V, etc.).

By the time you have annotated the power tree, you know where the analog domain is, where the radio is, where the digital core is, and which chip is the master. The schematic almost draws itself from there.

The 1 μF myth "Just put a 100 nF cap on every power pin" worked when MCUs ran at 4 MHz. At a 1 GHz core clock with ~100 ps edges, the 100 nF cap is already past its self-resonance and behaves inductively. The textbook stack (bulk + 1 μF + 100 nF + 10 nF, with 0402 packages or smaller) is not paranoia; it is what modern silicon actually needs.
HA-040

DECAP

Silicon archaeology. Decapsulation methods, microscopy, and the lineage of die-shot photography.

Why Anyone Decaps

A modern IC's package hides everything interesting: the die, the bond wires, the pad ring, the layout, and ultimately the function. Decapsulation, removing the molding compound or lid while preserving the silicon, lets you photograph the chip, study its architecture, and in some cases reverse engineer its function. This is hobby archaeology for vintage parts (the Visual6502 project), commercial competitive analysis for modern parts (TechInsights), and the foundation of hardware reverse engineering in security research.

Method Atlas (Increasing Difficulty)

MethodWhat It DoesYield / Risk
Hot air decapHeat plastic package until the lid pops; pry, scrape with dental toolCoarse but no chemistry. Often damages bond wires. Works on SOIC and DIP.
Sanding / millingMechanical grinding from the top; sand thinner and thinner until die is exposedCheap, possible in a home shop. Slow. Easy to overshoot and grind into the die.
Ceramic / metal lid delidHeat to soften the seal, lift lid with a knifeExcellent for ceramic packages (vintage CPUs, RAM, EPROMs). Clean die exposure.
Nitric acid (fuming HNO₃)Dissolve epoxy package; rinseIndustry standard; gold/aluminum metallization survives. Hazardous chemistry.
Sulfuric acid (hot H₂SO₄)Same role, sometimes used after nitricSpecialized labs only. Extreme hazard.
Laser ablationFocused laser removes package material layer by layerUsed by commercial decap services (Riscure, TechInsights). Precise.
Plasma etch (O₂ / CF₄)Reactive plasma removes organicsClean, controlled, no liquid handling. Lab-grade equipment.
Backside thinningPolish the silicon back side from below (CMP, mechanical)For IR imaging or laser fault injection. Leaves the die alive and functional.
Safety Fuming nitric acid at ~90°C and concentrated sulfuric acid are profoundly hazardous. Inhalation, splash on skin, and contact with reactive metals all carry real injury risk. Reagent disposal requires neutralization protocols. This catalog covers the methods that exist; the hands-on work belongs in a fume hood, in safety glasses and acid-resistant gloves, with someone who has done it before next to you. The mechanical methods (hot air, milling, lid removal on ceramic) are accessible at home. The acid methods are not.

Microscopy

InstrumentResolutionWhat It Shows
Optical (visible)~1 μmTop metal layers, pad ring, bond wires, large features down to ~180 nm node
Optical with polarizer~1 μmContrast between metal/poly/silicon; reveals structures invisible in white light
Infrared (1064 nm through silicon)~1 μmFront-side features viewed through a thinned back side. Indispensable for laser FI.
SEM (scanning electron)~1 nmModern process nodes. Requires conductive coating or charge dissipation.
FIB (focused ion beam)~10 nmCross-section milling plus imaging. Reveals layer stack at any chosen spot.
X-ray (CT)1 – 10 μmNon-destructive. Sees through the package to bond wires, lead frame, voids in solder.

Delineation Etches

After decap, the die's metallization layers can be removed sequentially with selective etches, exposing the layers beneath. The full-stack reverse engineering workflow is decap → top-metal photo → strip M_top → photo M_top-1 → repeat, all the way down to diffusion and polysilicon.

EtchRemovesLeaves
Heated phosphoric acidAluminum metallizationTungsten plugs, oxide, lower metals
Hot KOH or buffered HFSilicon dioxide (inter-metal dielectric)Metal, polysilicon, diffusion
Hydrogen peroxide + ammoniaCopperSilicon, oxide, barrier metals
Nital (5% HNO₃ in ethanol)Light delineation; aluminum vs polySurface relief contrast

Die-Shot Lineage

Project / ResearcherContribution
Visual6502 (Greg James, Barry Silverman, Brian Silverman, 2009)Decapped a MOS 6502, traced every transistor, built a transistor-accurate simulator from photographs. The foundational modern die-shot project.
Ken Shirriff (righto.com)The most accessible writer in the field. Detailed analyses of 8086, ARM1, Z80, AMD2901, Sinclair Scientific. Reads like good archaeology.
John McMaster (siliconpr0n.org)Hosts a community archive of high-resolution die photographs. Maintains tooling for image stitching at gigapixel scale.
Pauli RautakorpiThe early-2010s Wikipedia source for many vintage IC die photographs. Quietly contributed an extraordinary library.
Christopher Tarnovsky (Flylogic, then BlackHat talks)Reverse engineering of secure microcontrollers and smart cards. Documented attacks on Infineon SLE 66 family in the late 2000s.
TechInsightsCommercial competitive analysis. Their annual deep-dives on Apple A-series, Snapdragon, and process-node firsts are industry references.

Image Stitching at Gigapixel Scale

A modern IC die at the resolution needed to identify individual transistors is too large to capture in one frame; the field of view of a 100× objective is ~150 μm, and a die can be 10 mm on a side. The standard workflow takes a grid of overlapping images on a motorized X-Y stage, then stitches them in software (Hugin, Fiji, custom Python). Focus stacking across the depth of the metallization layers is often required. The output is typically a multi-gigapixel image, browsable in tiled viewers like OpenSeadragon.

Tools at Hobbyist Scale

  • USB digital microscopes (Dino-Lite, Plugable, generic) for 50× – 250× optical, enough for vintage process nodes and pad/bond inspection.
  • Used metallurgical microscopes (Olympus BX, Nikon Optiphot) appear on the used market; pair with a CMOS camera adapter.
  • Mechanical lid removal on ceramic-packaged vintage parts is genuinely accessible. EPROMs (with their UV window), older Intel/Motorola CPUs in CERDIP, and military-grade RAM all open with patience and a hot plate.
  • Hot-air rework station for plastic-package decap. Heat to ~350°C, the lid often releases.
  • Polishing wheels and diamond paste for backside thinning of plastic-encapsulated parts that have already had their tops removed.
Why this is preserved The chips that built modern computing are increasingly inaccessible: process nodes are smaller than visible-light wavelengths, packaging is opaque to all but specialized imaging, and the firms making them treat layout as proprietary. The die-shot community is recording a generation of silicon while it can still be read. The 6502 and Z80 will be understandable in two hundred years. A 2026-vintage 3 nm SoC may not be.
HA-041

CRYSTAL

Quartz, MEMS, and the Pierce oscillator. The clock everything else is referenced to.

PIERCE OSCILLATOR Rf XTAL C1 C2 CLK CL = (C1·C2)/(C1+C2) + Cstray
Fig. 1 · Pierce, the textbook topology

Load Capacitance Calculator

PIERCE LOAD CAPSready

Oscillator Hierarchy

TypeStabilityPowerUse
XO (crystal oscillator)±20 to ±50 ppmLowMCU clocks, USB, Ethernet
TCXO (temp-compensated)±0.5 to ±5 ppmLowCellular modems, GPS, comms
VCXO (voltage-controlled)±20 to ±100 ppm (tunable)LowPLL references, jitter cleaners
OCXO (oven-controlled)±0.01 to ±0.1 ppmHigh (heater)Base stations, instrumentation
Atomic (Rb, Cs, CSAC)10⁻¹⁰ to 10⁻¹³HigherTiming references, satellites
MEMS (SiTime, etc.)±5 to ±100 ppmLowShock-tolerant, ultra-small

Common Crystal Frequencies

FrequencyWhy It Exists
32.768 kHz2¹⁵ Hz. RTC, low-power timekeeping. Wristwatches.
3.579545 MHzNTSC colorburst. Historical legacy in many MCUs.
4.000 MHzRound number; early PIC defaults
8.000 MHzAVR, MSP430, many MCU defaults
11.0592 MHzDivides to 115200, 57600, 38400, 19200, 9600 evenly. UART baud generator.
12.000 MHzUSB-friendly (PLL to 48 MHz)
14.7456 MHzBetter UART divider than 11.0592 for higher baud rates
16.000 MHzThe default for Arduino-class and STM32 reference designs
24.000 MHzHDMI / video reference; common in SoCs
25.000 MHzEthernet PHY reference standard (IEEE 802.3)
27.000 MHzVideo / display PLL reference

Pierce Layout Rules

  • Short, equal traces. Both crystal pins should connect to the MCU with matched, minimum-length traces. Cm under 5 mm is the target.
  • Ground guard. Surround the crystal and its caps with a ground pour. Skip any high-frequency or noisy signal near the crystal loop.
  • No vias in the loop. Each via adds parasitic inductance and shifts the load. Keep crystal + caps + MCU pins on the same layer if possible.
  • Stitch ground vias. The two crystal-cap ground returns should connect to the ground plane with adjacent vias, very close to the cap pads. The return loop must be small.
  • Drive level. A series Rd on the inverter output limits drive into the crystal. Required for AT-cut crystals at high frequency; AT-cuts can be damaged by overdrive.

Motional Parameters

A quartz crystal is electrically equivalent to a series RLC (R1, L1, C1, the motional arm) in parallel with a shunt capacitance C0 (the electrodes + package). The Q factor of the resonance, often 10,000 to 100,000 for AT-cut, is what makes the oscillator stable. Datasheets list these; the values matter for high-frequency third-overtone designs and PLLs locking to the crystal.

MEMS displacing quartz SiTime, Microchip MEMS, and similar vendors have displaced quartz in many applications since the early 2010s. MEMS oscillators survive shock and vibration that would kill a quartz crystal, start up faster, and ship as drop-in CMOS-compatible parts. For automotive, military, and industrial designs the case for MEMS over quartz is increasingly easy to make. Quartz still wins for the absolute lowest jitter and lowest noise.
HA-042

ANTENNA

PCB antennas, ground-plane requirements, and matching networks. Where copper becomes radiator.

PCB INVERTED-F 2.4 GHz · ~30 mm long GROUND PLANE no copper-pour cutouts under antenna FEED SHORT KEEP-OUT ZONE (no metal, no via)
Fig. 1 · Inverted-F, the small-device default

Wavelength Calculator

FREQUENCY ↔ WAVELENGTHready

Antenna Topology Atlas

TypeSizeWhere Used
Whip / monopoleλ/4 vertical above ground planeCellular, walkie-talkie, vehicular
Dipoleλ/2 end-to-end, fed at centerWi-Fi APs (the visible rubber duck)
Inverted-F (PIFA)Fits in λ/8 to λ/4 footprintThe default for Wi-Fi, BT, Zigbee on PCBs
Meandered traceSub-wavelength PCB traceSub-GHz ISM (433, 868, 915 MHz) where space is tight
Patch (microstrip)~λ/2 on dielectricGPS, satellite, point-to-point
Helical (axial mode)Several turns over a ground planeGPS, Iridium, satellite handhelds
Chip antenna0805 / 1206 SMDBLE wearables, IoT modules
Yagi-UdaMultiple λ/2 elementsLong-range, directional, fixed installations

Frequency Bands and λ

BandFrequencyFree-space λλ/4
LF beacon100 kHz3000 m750 m
AM broadcast1 MHz300 m75 m
HF 40m7 MHz42.9 m10.7 m
FM broadcast100 MHz3 m75 cm
VHF 2m146 MHz2.05 m51 cm
UHF 70cm435 MHz69 cm17 cm
ISM 433433.92 MHz69 cm17 cm
LoRa US / GMRS915 MHz32.8 cm8.2 cm
GPS L11575.42 MHz19.0 cm4.76 cm
Wi-Fi 2.42450 MHz12.2 cm3.06 cm
Wi-Fi 55500 MHz5.45 cm1.36 cm
Wi-Fi 6E / 76500 MHz4.61 cm1.15 cm
5G mmW28 GHz10.7 mm2.68 mm

Ground Plane Requirements

For a monopole or PIFA, the ground plane is half the antenna. Inadequate ground plane = detuned antenna, poor efficiency, distorted radiation pattern.

AntennaMinimum GND (rule of thumb)
PIFA / Inverted-Fλ/4 wide × λ/4 long, contiguous
Chip antennaPer vendor; typically 30 × 50 mm continuous at 2.4 GHz
PCB trace monopoleλ/4 below feed point, minimum
Patch antenna≥ λ on each side beyond the patch perimeter

Matching Networks

A real antenna is rarely 50 Ω resistive at the design frequency. A matching network transforms the antenna impedance to 50 Ω for the RF front end. Three topologies cover the common cases:

  • π network. Three components (shunt-series-shunt). Highest Q for narrowband match. Tunable in three dimensions.
  • L network. Two components (one shunt, one series). Lowest cost; works when the source and load are both above/below 50 Ω on the Smith chart.
  • T network. Three components (series-shunt-series). The dual of π; less common in antenna feeds.

Always lay out three "pi" footprints between the RF pin and the antenna, even if you intend a single-component or no-component match. The footprint costs nothing; the rework when you find you need a match costs a board respin.

Measurement

Return loss (S11) and VSWR are the practical metrics. Measured with a vector network analyzer (VNA), or a NanoVNA at hobbyist scale. Target S11 < -10 dB (VSWR < 2:1) at the operating frequency. Anything better than -15 dB is good engineering.

S11 (dB)VSWRPower reflected
-35.8550%
-63.0125%
-101.9210%
-151.433.2%
-201.221.0%
-301.070.1%
The hand and head effect A handheld device's antenna performance is measured in three states: free space, head only, head plus hand. The presence of a body (high water content, lossy at 2.45 GHz) detunes and absorbs. Real designs account for this with PIFA placements optimized for "hand grip" orientation, and with carrier-aggregation antennas that hand off between elements based on which is being held. Open-palm testing is genuinely part of the certification path.
HA-043

THERMAL

Heat management. Junction temperature, copper as heat spreader, TIMs, and the 10°C halving rule.

THERMAL VIA ARRAY QFN paddle to inner copper EXPOSED PAD ↓ cross section ↓ FR-4 Inner Cu Heat path: junction → pad → vias → spreader
Fig. 1 · Thermal via array under a QFN

The Thermal Equation

Junction temperature follows Ohm's law for heat:

Tⱼ = Tₐ + Pd × (θJC + θCS + θSA)

Tⱼ is junction temp, Tₐ is ambient, Pd is power dissipated. The three theta values are thermal resistances in °C/W from junction-to-case, case-to-sink, and sink-to-ambient respectively. When there is no heatsink, the simpler form is Tⱼ = Tₐ + Pd × θJA.

Typical θJA by Package

PackageθJA (°C/W)θJC (°C/W)
SOT-23-3200 – 350150 – 250
SOT-23-5200 – 250130 – 200
SOIC-8 (no PowerPAD)120 – 16035 – 50
SOIC-8 with PowerPAD40 – 603 – 6
SO-PowerPAD (HSOP)25 – 402 – 5
QFN-32 (5×5, EP)25 – 352 – 4
QFP-64 / LQFP-6450 – 8010 – 20
BGA-256+15 – 301 – 4
TO-220 (no heatsink)602 – 5
TO-220 (large heatsink)5 – 152 – 5
D2PAK (DDPAK)40 (no copper) · 25 (1 in² Cu)1 – 2

θJA is fictional in the sense that it depends on what the chip is mounted to. Manufacturers measure it on a specified JEDEC test board (JESD51-7 high-conductivity, typically four layers, with specified copper area). Your actual θJA on your actual board may be much higher or lower.

Copper Pour as Heat Spreader

For exposed-pad packages (QFN, DPAK, SOP-EP), the bottom-side or inner-layer copper area dominates θJA. The vendor will publish a curve showing θJA vs copper area. Common rules:

  • 4 to 9 vias under a QFN paddle. Standard density. 0.3 mm drill, 0.6 mm pad, 1 mm pitch. Plated or filled.
  • 1 in² of 1-oz copper roughly halves θJA for most exposed-pad packages versus pad alone.
  • Inner-layer copper pour connected through thermal vias does more than a bottom-layer pour of the same area (better convection-to-air on the bottom; better heat spreading on inner).
  • Diminishing returns past ~4 in². Conduction reaches its limit; further area buys little.

Thermal Interface Materials

TIMk (W/m·K)Bond LineUse
Air (no TIM)0.025n/aBaseline; worse than expected because of surface roughness
Thermal grease (silicone)0.7 – 325 – 100 μmReflow, CPUs, common heatsinks
Premium thermal paste5 – 1125 – 100 μmPerformance CPUs (Arctic MX-6, Thermal Grizzly, etc.)
Thermal pad (silicone)1 – 8200 – 2000 μmVoltage regulators, GPUs, VRAM
Phase-change pad3 – 10~50 μm after meltOEM laptops, sealed assemblies
Solder (eutectic)35 – 5050 – 200 μmBGA underfill, RF carriers
Liquid metal (Ga-In-Sn)30 – 75~10 μmEnthusiast CPU delidding; conductive, eats aluminum
Diamond TIM (research)1000+specialtySpecialty / future

Heatsink Sizing (Rough Cuts)

Power dissipatedFree convectionForced air (1-2 m/s)
< 1 WNone needed for most partsNone
1 – 3 WSmall extruded (TO-220 clip-on)Smaller still
3 – 10 WMedium extruded, fins parallel to airflowSmall extruded
10 – 50 WLarge extruded or skived finMedium extruded
> 50 WForced convection effectively requiredHeat pipe + fin stack

The 10°C Halving Rule

Electronics failure rates follow Arrhenius kinetics: a 10°C reduction in junction temperature roughly doubles the time to failure for many wear-out mechanisms (electromigration, dielectric breakdown, package fatigue). Running an MCU at 85°C instead of 95°C might extend its mean lifetime from ten to twenty years. The reverse is also true: a marginal design at 110°C will not last what a 100°C design will. Many "intermittent" field failures in cheap consumer hardware trace to thermal margin that was barely enough at room temperature.

Diagnosis Tools

  • Thermal camera (FLIR ONE, Seek, Hti-Xintai, etc.) hovers over a powered board and surfaces the hot spots immediately. A $250 USB-C unit will find a stuck linear regulator or a leaking decoupling cap faster than a multimeter.
  • IR thermometer (point-and-shoot, $30) is the next-cheapest tool. Less spatial detail; tells you which part is hot.
  • Thermocouple + meter on the can of a suspect part gives you absolute temperature in seconds.
  • Internal die temperature sensor, on most modern MCUs and SoCs, reports Tⱼ directly via a register. Often the most accurate reading available.
Datasheet θJA is a starting point, not an answer The number printed on page 4 of the datasheet was measured on a JEDEC test board with specific copper area, specific via density, specific ambient still air. Your real PCB is different. The honest approach is to use the datasheet θJA for an early-stage estimate, then measure the actual junction temperature on a prototype (via the internal sensor, a thermocouple, or a thermal camera) before committing to a design. Reliable hardware is the product of measurement, not estimation.
HA-044

EMC

Electromagnetic compatibility. CISPR limits, common-mode currents, ferrite beads, and why your USB port is an antenna.

The Two Halves of EMC

EMC is the dual problem of "what you emit" and "what you tolerate." Regulators care about both. A device that radiates too much keeps other devices from working; a device that fails when a neighbor radiates is not fit for purpose. Compliance testing exercises both directions.

Emissions Limits Overview

StandardScopeNotes
FCC Part 15 Subpart BUnintentional radiators (US)Class A (industrial), Class B (residential, stricter)
FCC Part 15 Subpart CIntentional radiators (US)Wi-Fi, Bluetooth, ISM transmitters
FCC Part 18ISM equipmentMicrowave ovens, RF welders, lighting ballasts
CISPR 22 / 32ITE / multimedia (international)The EU and most of the world. Class A / B parallel to FCC.
CISPR 11ISM equipmentThe EU analog to FCC Part 18
CISPR 14Household appliancesMotors, switching, appliance disturbances
CISPR 25AutomotiveStrict; in-vehicle radio is the victim
EN 55032 / EN 55035Multimedia emissions / immunityThe EU harmonized versions of CISPR 32 / 35
MIL-STD-461US military equipmentMost stringent in common use; many specific categories
DO-160Aerospace equipmentSection 21 (RF emissions); avionics environments

FCC Part 15 Class B Quasi-Peak Limits (Radiated, 3 m)

FrequencyLimit (dBμV/m)
30 – 88 MHz40
88 – 216 MHz43.5
216 – 960 MHz46
> 960 MHz54

Susceptibility Test Battery

TestStandardStimulus
ESDIEC 61000-4-2±8 kV contact, ±15 kV air discharge
EFT / BurstIEC 61000-4-41 – 4 kV pulses on power and signal lines
SurgeIEC 61000-4-5Up to ±4 kV combination wave (mains)
RS (Radiated Susceptibility)IEC 61000-4-31 – 10 V/m over 80 MHz – 6 GHz
CS (Conducted Susceptibility)IEC 61000-4-63 V or 10 V over 150 kHz – 80 MHz on lines
Power frequency magnetic fieldIEC 61000-4-830 – 100 A/m at 50/60 Hz
Voltage dips and interruptionsIEC 61000-4-11Brief mains drops

Where Emissions Come From

  1. Switching power supplies. The fundamental of fsw and its harmonics. The mitigation is input/output filtering plus careful loop area.
  2. Clock harmonics. A 25 MHz crystal generates emissions at 25, 50, 75, 100... MHz. Spread-spectrum clocks broaden the peaks; series termination softens edges.
  3. Common-mode currents on cables. A cable that looks like an antenna at some harmonic of an internal clock will radiate. Common-mode chokes (split ferrite, integrated bead arrays) damp this.
  4. Slot antennas. A poorly-stitched ground plane has slots; those slots radiate like antennas at frequencies whose wavelength matches the slot length. Stitch ground at via spacing < λ/20.
  5. Heatsinks. A large unbonded heatsink over an MCU acts as a monopole. Ground the heatsink, or accept the emissions tax.

Mitigation Toolkit

ComponentWhereHow
Ferrite beadPower rails entering noisy ICLossy inductor at HF; resistive above its peak Q. Pick based on Z at the worst harmonic.
Common-mode chokeUSB, Ethernet, HDMI linesHigh Z for common-mode, low Z for differential
TVS diodeESD-exposed pins (USB, audio jacks, etc.)Clamps fast transients before they reach the IC
Gas discharge tubeMains-exposed surge pathsCoarse but high-energy; pair with MOV and TVS
MOV (varistor)Mains inputSurge absorber; sacrificial
X / Y capacitorsAC mains line filteringX = line-to-line, Y = line-to-ground; safety-rated parts
Spread-spectrum clockBuilt into many MCUs / clock generatorsTrades peak emission level for spectrum width; the FCC measures peak.
Edge-rate controlFPGA drive strength, MCU GPIO slewSlow the edge to the slowest your timing budget allows
Shielding (cans, enclosures)Around RF-sensitive sectionsLast resort; expensive; impedes thermal

The USB Port Problem

A USB cable plugged into a device makes the cable shield part of the device's ground system, and the cable becomes a quarter-wave radiator at any clock harmonic that matches its length. A 1 m cable resonates near 75 MHz. Many designs fail FCC Part 15 the first time at exactly that frequency. Common fixes:

  • Common-mode choke on USB D+/D- (impedance up at 100 MHz, transparent at signal rates).
  • Properly bond the USB shield to chassis ground at the connector with a 360° clamp, not a pigtail.
  • Avoid running noisy clock-bearing traces near the USB connector or its return path.
  • Add a small bead or LCL filter on the device's internal ground reference to the USB shell.

Pre-Compliance Testing

A real FCC / CISPR chamber day costs four-figures-plus. Pre-compliance lets you find most problems before booking the chamber.

  • Near-field probes over the powered DUT, into a spectrum analyzer, will point you at the worst radiators.
  • LISN (line impedance stabilization network) in series with mains lets you measure conducted emissions on a benchtop spectrum analyzer.
  • ESD gun (handheld, $1500 used) lets you ESD-zap the DUT at every accessible point until you find the failure path.
  • TEM cell or open-area test bench for cheap radiated measurements; correlation to a real chamber is imperfect but useful for relative changes.
Henry Ott's rule Henry Ott, the elder statesman of EMC engineering, summarized 40 years of practice in one sentence: "Almost all EMC problems are caused by improper grounding." The corollary is that EMC is rarely a component problem; it is a topology problem. The ferrite beads and TVS diodes are second-order. The first-order question is always: where does the return current actually flow? Draw that loop. Make it small. Most of the rest follows.
HA-045

SOLDERING

Alloys, reflow profiles, hand technique, and the defect bestiary. The craft that holds the catalog together.

SAC305 REFLOW PROFILE TIME → TEMP 217 PREHEAT SOAK RAMP PEAK COOL TAL 245°C
Fig. 1 · Four zones of a SAC305 profile

Reflow Profile Designer

REFLOW PROFILEready

Solder Alloy Atlas

AlloyCompositionLiquidusNote
SAC305Sn96.5 / Ag3.0 / Cu0.5217°CThe lead-free workhorse; RoHS default
SAC405Sn95.5 / Ag4.0 / Cu0.5217°CSlightly better wetting; higher cost
SAC305 + BiSAC + 1-3% Bi210-215°CLower peak; better drop-shock
Sn63 / Pb37Eutectic Sn/Pb183°CAerospace, medical, military exemptions; easier to work
SnCu0.7Sn99.3 / Cu0.7227°CLow-cost wave solder; no silver
Bi58 / Sn42Bi58 / Sn42 eutectic138°CLow-temp paste; mixed-tech assemblies
SnAg3.5Sn96.5 / Ag3.5221°CSilver-only, common in older lead-free
InSnIn52 / Sn48118°CUltra-low temp; expensive; vacuum-sensitive applications

Hand Soldering: Tip Selection

GeometryBest For
Conical (B-series)Beginners' general use; through-hole; not ideal for SMT drag
Chisel (D-series)The workhorse. Use the flat for heat transfer, the edge for placement
Bevel / hoof (BC, BCM)SOIC, QFP drag soldering; holds a small bead
Knife (K)Drag soldering long pin rows
Mini-wave / "mini-pot"SMT touch-up; carries a meniscus that pulls bridges
Tweezer / mini-tweezerRemoving 0402-0805 chip parts

Hand Soldering Process

  1. Tin the tip. A bright shiny tinned tip transfers heat efficiently. A dry, blackened tip transfers almost nothing.
  2. Iron temperature. SAC305: 350-380°C set point. Sn63: 320-360°C. Hotter tip = faster work, but also faster pad lift and component damage. Lower for fine-pitch.
  3. Heat both parts. Touch tip to the pad and lead simultaneously for ~1 second before introducing solder. The solder flows toward heat.
  4. Add flux. Cored solder has flux in it, but for rework, paste-flux from a syringe is essential. No-clean flux is the default; water-soluble requires a wash step.
  5. Withdraw. Remove the solder first, then the iron, both within about a second. Look for a shiny concave fillet; convex blobs are too much solder.
  6. Inspect. Loupe or USB microscope. A cold joint looks grainy/matte; a good joint is bright and concave.

Defect Bestiary

DefectWhat It Looks LikeCause
Cold jointDull, grainy, sometimes crackedInsufficient heat; movement during cooling
BridgeSolder spanning adjacent padsToo much solder, insufficient flux, fine-pitch + thick stencil
TombstoneChip part stood on end like a tombstoneUneven pad heating; uneven paste; uneven pad wetting
Head-in-pillowBGA ball touches pad but does not fuseWarped board / package at reflow; insufficient flux activity
BGA voidBubble inside the joint (X-ray reveals)Outgassing flux; profile too fast; entrained moisture
DewettingSolder retracts from pad, exposing padContaminated pad; old/oxidized solder paste
Solder ballTiny sphere of solder adjacent to jointPaste smeared past pad; aggressive preheat
Pad liftPad torn off the laminateHeat too long or too high; abusive desolder
Tin whiskersFilamentary growth out of joint over yearsLead-free + compressive stress; rare but a real risk in long-life kit

Inspection

  • Loupe (10x to 20x) for hand work; cheap and immediate.
  • USB digital microscope (Dino-Lite, generic) at 50-200x; the modern standard for hobbyist QC.
  • AOI (Automated Optical Inspection) for production lines; flags solder shorts, missing parts, polarity errors.
  • X-ray for BGA and other hidden joints. Voids, head-in-pillow, opens. Requires a real machine (rental services exist).
  • Endoscope camera at 5 mm diameter, for under-board inspection without breakdown.
Lead-free is harder Sn63/Pb37 eutectic at 183°C is forgiving: a clear liquid-to-solid transition, low surface tension, excellent wetting. SAC305 at 217°C is harsher: narrow process window, higher surface tension, more pad and component stress, voiding sensitivity. RoHS exemptions exist for aerospace, medical, military, and certain telecommunications applications. If you work in one of those fields, leaded solder is often the right choice on engineering merits, not just nostalgia.
HA-046

STENCILS

Solder paste, stencil aperture design, and IPC-7525 area ratio. Where the joint volume is decided.

STENCIL APERTURE cross section · paste release SQUEEGEE PASTE STENCIL (T) T L PCB · pad AR = L·W ⁄ 2(L+W)·T IPC-7525: AR > 0.66 Paste releases when adhesion to pad > adhesion to wall
Fig. 1 · Aperture geometry, paste release

Area Ratio Calculator

IPC-7525 APERTUREready

Stencil Thickness Guide

ThicknessUse For
3 mil (75 μm)0.4 mm pitch BGA, μBGA, 0201 / 01005, ultra-fine pitch
4 mil (100 μm)0.5 mm pitch BGA, fine-pitch QFP, 0402 mixed with QFP
5 mil (125 μm)The default. 0603 / 0805 chips + QFP + standard BGA
6 mil (150 μm)Larger packages, through-hole reflow (pin-in-paste), 1206+
8 mil (200 μm)Pin-in-paste with deep holes; large connectors
Step stencil (4/6 mil)Mixed-tech boards; thin in fine-pitch area, thick elsewhere

Aperture Reduction Rules

PackageAperture Strategy
0201 / 010051:1 with pad, or 10% reduction; "home plate" or "Avia" pentagon for tombstone resistance
0402 / 06031:1; home-plate or anti-tombstone shape
QFP (0.5 mm pitch)1:1 length, 80-90% width to prevent bridging
QFP (0.4 mm pitch)80% length, 70-80% width; consider electroformed stencil
BGA (0.5 mm pitch)1:1 circular; some shops use ovaled or slot apertures
BGA (0.4 mm and finer)1:1 with reduced thickness (3 or 4 mil); aperture polish required
QFN paddleWindow-pane the paddle to 50-80% paste coverage; prevents float and voiding
Pin-in-pasteAperture enlarged 100-200% over hole diameter; thick stencil; only certain connectors qualify

Solder Paste Powder Sizes (IPC J-STD-005)

TypeParticle Size (μm)Use
Type 325 – 45The default; 0402 / 0.5 mm pitch and coarser
Type 420 – 38Fine-pitch; 0201 / 0.4 mm pitch
Type 515 – 25Ultra-fine; 01005 / 0.3 mm pitch BGA
Type 65 – 15μBGA, RF stencil-jet; experimental
Type 72 – 11Bleeding-edge; not in widespread use

Finer powder gives better fine-pitch release but oxidizes faster (more surface area per mass) and shortens shelf life. Type 3 is what you want for most hobbyist work.

Paste Chemistry Classes

ClassFlux residueCleaning
No-cleanInert, non-conductive (when fully reacted)Optional; usually left on production boards
Water-soluble (organic acid)Aggressive; conductive if leftMandatory water wash after reflow
Rosin (RMA)Mild; conductive over timeIPA or saponifier wash recommended
Low-residue / VOC-freeVery littleOptional

Storage and Handling

  • Refrigerator at 4-10°C unopened. Jars typically have a 6-month shelf life.
  • Warm to room temperature in the sealed jar for 2-4 hours before opening. Cold paste + ambient air = condensation = voids in the joint.
  • Stir before use, especially after long storage. Mechanical paste mixer is best; manual stir with a clean stick works.
  • Working life on the stencil is typically 4-8 hours. Beyond that, flux dries; re-mix or re-paste.
  • Discard expired or separated paste. Reflow problems trace back to paste age more often than to anything else.
Why area ratio matters Paste releases from an aperture when its adhesion to the pad exceeds its adhesion to the aperture walls. The ratio of pad-area to wall-area is the geometric proxy. Below AR = 0.5, paste mostly sticks in the aperture and you get insufficient joints. Above 0.66, release is reliable. Aspect ratio (W / T) above 1.5 is the parallel constraint for narrow apertures. Both must be satisfied. If either fails, reduce stencil thickness (lower T), redesign the aperture, or switch to a finer powder.
HA-047

SIMULATION

SPICE and the discipline of asking a circuit what it will do before building it.

The SPICE Family

Berkeley SPICE (1973) was the original. The descendants split into commercial (PSpice, HSPICE, Tina, Saber) and open (ngspice, Qucs-S, LTspice from Analog Devices though closed-source, Xyce from Sandia). Most still take the same netlist syntax with vendor extensions.

ToolOriginStatus
ngspiceOpen-source community fork of Berkeley SPICE3Active. KiCad's simulation engine.
LTspiceLinear Tech, now ADI; free as in beerExcellent for switching power supplies; closed source
Qucs-S / QucsOpen Quite Universal Circuit SimulatorGUI-first; can drive ngspice or Xyce as backend
XyceSandia National LabsParallel and large-circuit-capable; open source
PSpiceMicroSim, now CadenceCommercial; education edition free
HSPICE / FineSimSynopsysIndustry standard for IC design; expensive
SpectreCadenceThe other industry standard for IC; expensive
Tina-TITexas Instruments rebadge of TinaFree; nice for TI parts

Analysis Types

DirectiveWhat It Computes
.opOperating point: DC bias, all node voltages, all currents
.dcDC sweep: vary a source, plot the resulting curve
.acAC small-signal: frequency response, Bode plots, group delay
.tranTransient: time-domain, the heaviest analysis. Switching circuits, transients, ringing.
.tfTransfer function: small-signal input-to-output ratio plus input/output impedance
.noiseNoise analysis: input-referred noise, contributions per device
.fourFourier analysis: harmonic content of a transient waveform
.distoDistortion analysis: harmonic and intermodulation distortion
.pzPole-zero: small-signal frequency-domain decomposition
.step / .paramParameter sweep: re-run the analysis varying a parameter
.monte / .alterMonte Carlo: statistical sweep over tolerances

Netlist Vocabulary

Element prefixDevice
RResistor
CCapacitor (use ic= for initial voltage)
LInductor (use ic= for initial current)
V / IIndependent voltage / current source (DC, AC, PULSE, SIN, EXP, PWL, SFFM)
E / F / G / HControlled sources (VCVS, CCCS, VCCS, CCVS)
DDiode (references a .model)
QBJT
MMOSFET
JJFET
XSubcircuit instance (.subckt definition required)
KCoupled inductors (mutual inductance)
T / O / UTransmission line variants
BBehavioral source (LTspice; arbitrary V = f(...))

Where Convergence Goes Wrong

  1. Missing DC path. Floating capacitors with no resistive return to ground. Add a high-value (1 MΩ) resistor across them or to GND. SPICE solves DC first; if the solver can't find a unique DC solution, .tran will fail to start.
  2. Initial conditions. Capacitor or inductor with unknown initial state. Add ic= on the element or .ic v(node)=... globally.
  3. Discontinuous behavioral source. A B-source with a step function (heaviside) confuses the integrator. Smooth with tanh() or interpolate.
  4. Stiff models with bad timestep. SMPS at 1 MHz with a 1 ms simulation: 1000 cycles to compute. Set .tran with a sensible tstep; for some models add uic (use initial conditions, skip op-point).
  5. Vendor model issues. Free SPICE models often have bugs or assume a specific dialect. Read the .lib comments. Try a simpler equivalent first.

Model Libraries

  • Vendor SPICE models. TI, ADI, Maxim, ON Semiconductor, ROHM, Vishay, Linear Tech (now ADI), Microchip all publish models. ADI's LTspice ships with hundreds of their parts built in.
  • Generic models. Standard 1N4148, 2N3904, 2N2222, BC547 all have decent generic models that converge well.
  • BSIM models. The industry-standard MOSFET model family for IC design. BSIM3, BSIM4, BSIM-CMG. Foundries supply PDKs (process design kits) with thousands of parameters per device.
  • Verilog-A and SystemVerilog-A. For models too complex or too proprietary for SPICE syntax. Most commercial simulators accept these.
  • EM-augmented models. S-parameter blocks from a real measurement (Touchstone .s2p, .s4p files) plug into SPICE as black-box elements.

When to Simulate, When to Prototype

  • Simulate first: control loops (compensator design for SMPS), filter response, noise budgets, gain stage stability, anything with a stability margin you need to prove.
  • Simulate alongside prototyping: EMI prediction (correlation only), thermal transients, system-level signal integrity, RF matching networks (where the model and reality usually disagree by a measurable amount).
  • Skip simulation: simple digital glue, breadboards of well-understood blocks, hand-soldered debugging where you can probe directly.
  • Trust nothing 100%: SPICE results assume the model is correct, the parameters are right, the parasitics are accounted for, and convergence is real. All four are routinely false.
The "did the model lie?" check After every important simulation, ask yourself whether the unstated assumptions hold. The op-amp model has rails-to-rails output above what its actual silicon allows. The capacitor is ideal; the real part has ESR, ESL, and a self-resonant frequency. The inductor saturates above its rated current; the model doesn't. The MOSFET model is at 25°C and your design runs at 85°C. The model is a piecewise-linear approximation; your transient is exercising regions the model wasn't fit for. Simulation accelerates iteration; it does not replace measurement.
HA-048

SCHEMATIC

Drafting conventions, hierarchy, and the small disciplines that make a schematic readable two years from now.

Reading-Order Conventions

  • Signal flow left to right. Inputs at the left edge, outputs at the right. The reader's eye is trained.
  • Power up, ground down. VCC/+ supplies leave parts upward; GND leaves downward. Power flags at the top of each sheet, ground bars at the bottom.
  • One sheet, one function. Power supply on its own sheet. MCU and its bypass network on its own. Sensor front-end on its own. Hierarchical labels connect them.
  • Title block always populated. Project name, sheet name, sheet number ("Page 3 of 7"), revision, date, designer initials, file path. The reader from the future is grateful.
  • White space is information. Crowded schematics are unreadable. If a sheet feels tight, split it.

Naming Conventions

ObjectConventionExample
Refdes (reference designator)Letter prefix per part class, sequential numberR12, C3, U2, Q1, J4, D5, L7, X1 (crystal)
Net nameFunction or signal name, not a sequence numberMOSI, UART_TX, 3V3_ANALOG, BTN_RESET
Power netVoltage and domain+3V3, +5V_USB, VBAT, +12V_SW, GND, AGND, DGND
Active-low signalSlash prefix, hash prefix, or trailing N (be consistent)/RESET, #CS, RESET_N
Bus / vectorBrackets for rangeD[7..0], ADDR[15..0]
Differential pairP / N suffixUSB_DP, USB_DN, LVDS_TXA_P, LVDS_TXA_N
Test pointTP prefix, name reflects the net it tapsTP_3V3, TP_MOSI

Hierarchical Design

Hierarchical schematics carry their structure in the form of sub-sheets and hierarchical labels. A top sheet shows the block diagram (Power → MCU → Sensor Front-End → RF Module → IO); each block is a sub-sheet with its own page-local nets. Off-sheet connectors are explicit and few.

ConstructTool Equivalents
Sheet symbol (subcircuit on parent)KiCad hierarchical sheet, Eagle "module", Altium sheet symbol
Hierarchical label (sub → parent)KiCad hierarchical label, Altium port
Global label (flat across all sheets)KiCad global label, Altium net label with global scope
Off-page connectorKiCad off-page connector, Altium off-sheet connector
Net classesKiCad netclasses, Altium classes; rules attach (impedance, width, gap)

ERC: What It Actually Catches

CheckWhy It Matters
Unconnected pinA power, clock, or signal pin floating is almost never intentional
No driver / multiple driversTwo outputs into one net = magic smoke when the board powers up
Power input not connected to sourceThe bypass cap looks fine; the VCC pin is wired to nothing
Net with only one connectionNet never went anywhere; almost certainly a typo or missing wire
Conflicting pin typesOutput to output, power to signal, etc.
Hierarchical mismatchParent sheet expects pin "TX_DATA", sub provides "TXDATA"
Duplicate refdesTwo parts labeled R5 in the BOM; one will be assembled, one won't

Footprint Discipline

  • Every symbol has a footprint assigned. ERC catches missing; design rules check should too.
  • Footprints come from a controlled library, not from the chip vendor's CAD download unverified. Vendor footprints have land patterns; verify against IPC-7351 for your assembly process.
  • 3D models attached to footprints catch mechanical interference before fabrication. Especially valuable for connectors and shielding cans.
  • Polarity matters: diode cathode, electrolytic + terminal, BGA pin A1, connector pin 1. The footprint silkscreen and the schematic symbol must agree. The mismatch shows up as an unsolderable board, not a design error.

Tool Landscape

ToolLicenseNotes
KiCadOpen source (GPL)The hobbyist default; production-capable since v6. Sheet hierarchy, modern Python plugins.
Altium DesignerCommercialThe industry standard for high-end work. Best-in-class library and rule engine.
Cadence Allegro / OrCADCommercialTelecom, server, automotive. Heavy on flow integration.
Mentor / Siemens XpeditionCommercialAerospace, defense, large team designs
EagleNow Fusion 360 ElectronicsLong hobbyist favorite, now folded into Autodesk Fusion
DipTraceCommercial / free with limitsPleasant UI; common in small shops
Horizon EDAOpen sourceNewer; focus on connectivity-driven design
LibrePCBOpen sourceNewer; emphasizes library control and reusability
EasyEDAFree, web-based (JLCPCB)Tight integration with JLCPCB / LCSC sourcing
The future-reader test Print a schematic, hand it to someone who has never seen the project, and ask them what each block does. If they can describe the signal flow within thirty seconds, the schematic is readable. If they cannot, no amount of correctness in the netlist will save the next engineer (which may be you in two years) from rebuilding mental context from scratch. Drafting is communication, not just connectivity.
HA-049

FPGA

Field-programmable gate arrays. The fabric, the toolchains, the languages, the way a digital design becomes silicon you can re-configure.

What the Fabric Actually Is

An FPGA is a grid of look-up tables (LUTs), flip-flops (FFs), and interconnect, surrounded by dedicated blocks for memory (BRAM), arithmetic (DSP slices), and I/O (IOBs). Modern parts add hard CPUs (ARM Cortex-A or RISC-V), gigabit serial transceivers, PCIe blocks, Ethernet MACs, and high-bandwidth memory controllers. The LUT-and-FF lattice computes; the dedicated blocks accelerate.

ElementWhat It Is
LUT (4 or 6 input)Truth table of N inputs; implements any combinational function
FF (flip-flop)D-type with set/reset; the storage element
CLB / Slice / CLEVendor-specific grouping of LUTs + FFs + carry chain
BRAM (block RAM)Dedicated SRAM blocks (18 kbit or 36 kbit typical); dual-port capable
DSP sliceHardened multiplier-accumulator (18×25 or 27×18 + 48-bit accum typical)
IOBI/O buffer; configurable voltage standard, drive, slew, termination
SERDES / MGTMulti-gigabit transceiver; 10G/25G/56G PAM4 in modern parts
PLL / MMCMClock synthesis and phase alignment
Hard processorARM Cortex-A53 (Zynq Ultrascale+), Cortex-R5, RISC-V (Microchip PolarFire), etc.

Major Vendors and Families

VendorFamilyPosition
AMD (formerly Xilinx)Spartan, Artix, Kintex, Virtex, UltraScale+, VersalLargest market share; the industry default for high-performance
Intel (formerly Altera)MAX 10, Cyclone, Arria, Stratix, AgilexStrong in datacenter and 5G basebands; Intel acquired 2015
LatticeiCE40, MachXO, ECP5, CertusPro, AvantLow-cost, low-power; the hobbyist favorite (iCE40 / ECP5 have full open toolchain)
Microchip (formerly Actel / Microsemi)SmartFusion, IGLOO, PolarFireFlash-based (instant on, low-power); RISC-V hard core in PolarFire SoC
GowinGW1N, GW2A, GW5AChinese vendor; low cost; reasonable open-toolchain support via Apicula
AnlogicEG, EF, AL seriesChinese vendor; growing presence in domestic Chinese designs
QuickLogicEOS S3, EOSv4Embedded FPGA in ASIC; eFPGA IP; open-source flow (SymbiFlow lineage)
AchronixSpeedster7tDatacenter; high-end interconnect and ML accelerators

Toolchain Landscape

ToolVendorLicense
Vivado / VitisAMD/XilinxFree Webpack; paid editions for larger devices
Quartus PrimeIntelFree Lite, paid Standard and Pro
Radiant / Diamond / icecube2LatticeFree for most parts
Libero SoCMicrochipFree Silver edition
Gowin EDAGowinFree with registration
Yosys + nextpnrOpen source (Claire Wolf, David Shah, Symbioticon)Full open synth + P&R for iCE40 (Project IceStorm), ECP5 (Project Trellis), Gowin (Apicula), MachXO2 (Project Trellis-XO), Xilinx 7-series (Project X-Ray) and earlier
SymbiYosys / sbyOpen sourceFormal verification driver for Yosys
cocotbOpen source (Python)Verification framework; popular for hobbyist and small-team flows

HDLs

LanguageYearWhere Used
Verilog (IEEE 1364)1985, std 1995The default in industry; concise, C-like
VHDL (IEEE 1076)1987Aerospace, defense, EU industry; strict, Ada-derived
SystemVerilog (IEEE 1800)2005, refined 2017Verilog superset with verification features; modern industry standard
Chisel2012 (UC Berkeley)Scala embedded DSL; RISC-V Rocket / BOOM cores written in this
SpinalHDL2015Scala embedded DSL; better simulation; growing adoption
Amaranth (was nMigen)2018Python embedded; hobbyist favorite; pairs well with Yosys
Bluespec / BSV2003 (commercial), open 2020Rule-based; very high-level; growing open-source presence
HLS C / C++variousXilinx Vitis HLS, Intel HLS; trades fine control for productivity

The Design Flow

  1. Specification. Block diagram, interface description, performance targets, resource budget. Skipped at one's peril.
  2. RTL. Write Verilog / VHDL / Chisel / Amaranth describing the digital behavior.
  3. Simulation. Verify functional correctness on a testbench. Open-source tools: iverilog, Verilator, cocotb. Commercial: ModelSim/QuestaSim, VCS, Xcelium.
  4. Synthesis. Translate RTL into a netlist of LUTs and FFs for the target fabric. The synthesizer makes timing-vs-area tradeoffs.
  5. Place and route. Map the netlist onto specific LUT positions; route the interconnect. The hardest step computationally; iterative.
  6. Static timing analysis. Verify that all paths meet the clock frequency. Setup and hold checks against constraints.
  7. Bitstream generation. The binary file that programs the FPGA.
  8. Programming and on-target test. JTAG or SPI flash. The first time the design runs on real silicon, expect surprises.

The Common Gotchas

  • Inferred latches. An if without an else in a combinational block creates a latch in synthesis. Almost always a bug. Synthesis tools warn; do not ignore the warnings.
  • Clock domain crossings. Signals crossing between unrelated clocks need synchronizers (two FFs) or FIFOs. Skipping this produces non-reproducible metastability bugs.
  • Hold violations. Less common than setup, more painful when they appear. Often caused by clock skew on a fast path; can require manual placement constraints.
  • Reset strategy. Synchronous reset is the modern default. Asynchronous reset deassertion must be synchronized. Reset trees are themselves a design.
  • Resource over-budget. Designs that exceed LUTs, BRAM, or DSP slices on the target part. Easy to discover late. Plan with rough estimates early.
  • Toolchain quirks. Vivado's incremental flow caches stale results. Quartus has known bugs in specific releases. Yosys is excellent but newer; the open flow has fewer years of "wisdom" accumulated.
The open-toolchain breakthrough The Project IceStorm / Yosys / nextpnr stack, kicked off by Claire Wolf around 2015, was the first complete open-source FPGA toolchain. It targeted the Lattice iCE40, was rapidly expanded to ECP5, then to Gowin parts (Apicula), then to MachXO2 (Trellis-XO) and Xilinx 7-series (Project X-Ray). For the first time, an FPGA workflow could be entirely auditable, scriptable, and free. The hobbyist and academic communities adopted it heavily; commercial users are increasingly following. GATEWRIGHT (FI-026 in this catalog's companion Field Instruments collection) is a Verilog schematic editor sitting in this lineage.
HA-050

FILTERS

Passive, active, switched-capacitor, and digital. Shaping the spectrum on purpose.

SALLEN-KEY LOWPASS 2nd order, non-inverting Vin R1 R2 C2 + - C1 fc = 1 / (2π√(R1·R2·C1·C2)) Vout
Fig. 1 · Sallen-Key low-pass

Filter Calculator

CUTOFF / RESONANCEready

Topology Atlas

ClassWhere UsedNotes
RC (1st order)Bias filtering, anti-aliasing, simple roll-off-20 dB/decade. Trivial; almost always present somewhere on a board.
RL / LC (2nd order)Power supply, EMI input filters, RF tank circuits-40 dB/decade. Resonant peak if underdamped.
Sallen-KeyActive LP/HP up to ~1 MHzCheapest active topology; one op-amp
Multiple Feedback (MFB)BP, LP up to ~10 MHzLower component sensitivity than Sallen-Key, inverting
State-variable / BiquadAudio EQ, instrumentation, configurable filtersThree op-amps; LP, HP, BP all available simultaneously
Switched-capacitorAudio, telecom, instrumentationfc set by clock. LTC1068, MAX260 family. Anti-alias and reconstruction needed.
Crystal / SAW / BAWRF channel selectionQuartz, SAW, BAW filters. Very narrow, low loss in passband, high Q.
FIR (digital)DSP, audio, commsLinear phase possible; long impulse responses are expensive
IIR (digital)DSP, audio, control loopsCheap (few coefficients), nonlinear phase; biquad sections are the building block

Response Family Comparison

FamilyPassbandTransitionPhase
ButterworthMaximally flatModerateMildly non-linear
Chebyshev Type IRipple in passbandSteeper than Butterworth for same orderWorse than Butterworth
Chebyshev Type II / InverseMaximally flat passbandSteep, with ripple in stopbandWorse than Butterworth
Elliptic / CauerRipple in both passband and stopbandSteepest for given orderWorst phase response
Bessel / ThomsonGentleShallowMaximally flat group delay
GaussianGentleShallowPure Gaussian impulse; no overshoot

The tradeoff is universal: sharper amplitude response means worse phase / step response. Audio favors Bessel for crossovers (preserves transients). Anti-aliasing for ADCs often uses Butterworth (decent compromise). RF channel select uses Chebyshev or elliptic (selectivity wins). Communications protocols sometimes specify Gaussian to manage ISI.

Component Tolerance and Q

Filter accuracy is bounded by component tolerance. A 5% capacitor and 5% resistor stack to ~7% cutoff variation. For tight cutoffs use 1% resistors and C0G/NP0 ceramics or polypropylene. Active filter Q above ~10 amplifies tolerance dramatically; design around moderate Q values and accept the staggered-stages cost when sharpness is needed.

The DSP shift Below 100 kHz, doing the filter in code on an MCU's ADC stream is often cheaper, more flexible, and more accurate than building it in hardware. Above 10 MHz, RF physics still wins. The 100 kHz to 10 MHz range is the design judgment area where active analog, switched-capacitor, and direct-digital can all be the right answer depending on power budget, latency, and reconfigurability needs.
HA-051

BATTERIES

Chemistry, charging profile, BMS, and fuel gauging. Where the energy comes from when the cord is gone.

Capacity and C-Rate Calculator

CAPACITY · RUNTIME · C-RATEready

Chemistry Atlas

ChemistryNominal VSpecific Energy (Wh/kg)Notable Traits
Alkaline (primary)1.5~140Disposable; non-rechargeable; cheap and ubiquitous
NiCd1.2~45 – 80Tolerant of abuse; cadmium toxicity, banned for new consumer use in EU
NiMH1.2~60 – 120Hybrid cars, hobbyist replaceables (Eneloop); low self-discharge variants are excellent
Pb-acid (flooded)2.0 / cell~30 – 50Cars, UPS. Cheap per watt-hour. Heavy.
Pb-acid (AGM / Gel)2.0 / cell~30 – 50Sealed; deep-cycle variants for solar / RV
Li-ion LCO (LiCoO2)3.6 – 3.7~150 – 200Phones, laptops; the dominant chemistry until ~2015
Li-ion NMC (LiNiMnCoO2)3.6 – 3.7~150 – 220EVs, power tools; better safety than LCO, similar density
Li-ion NCA (LiNiCoAlO2)3.6 – 3.7~200 – 260Tesla cells; highest energy density mainstream
LFP / LiFePO43.2 – 3.3~90 – 160Best cycle life (3000+); safest Li chemistry; lower density. Solar storage default.
LTO (Li2TiO3)2.4~50 – 80Insane cycle life (20,000+); fast charge; low density; high cost
Li-Po (LiPo)3.7~150 – 200Same chemistry as LCO/NMC in polymer pouch; drones, RC, wearables
Primary CR2032 (Li-MnO2)3.0~270RTC backup, key fobs; non-rechargeable
Primary CR123A (Li-MnO2)3.0~270Camera, flashlight; long shelf life
SLA (sealed lead-acid)2.0 / cell~30 – 50UPS, alarm panels; trickle-friendly

Charge Profiles

ChemistryMethodTermination
Li-ion (LCO, NMC, NCA, LiPo)CC at 0.5C to 1C until 4.20 V, then CV at 4.20 VWhen current falls below ~0.05C
LFPCC at 0.5C to 1C until 3.65 V, then CV at 3.65 VWhen current falls below ~0.05C
NiMHCC at 0.1C – 0.5C; trickle at 0.05C-dV detection (voltage drops at full charge) or temperature
NiCdCC at 0.1C – 1C; trickle at 0.05C-dV more pronounced than NiMH
Pb-acidCC then CV at 2.30 V/cell (cyclic) or 2.25 V/cell (float)Trickle at float voltage indefinitely

BMS (Battery Management System) Functions

  • Cell balancing. Passive (bleed strongest cells through resistor) or active (shuttle charge). Required for multi-cell Li packs; cells drift apart over time.
  • Overvoltage protection. Cuts charging current when any cell exceeds the chemistry's max. Required for Li chemistries to prevent runaway.
  • Undervoltage protection. Disconnects load when cells fall below safe minimum. Li-ion below ~2.5V experiences copper dissolution.
  • Overcurrent / short circuit. Fast cutoff on excessive discharge current. Often via a series FET pair.
  • Temperature monitoring. Thermistors per pack region. Both charge and discharge have temperature windows (typically 0 to 45°C for charge, -20 to 60°C for discharge).
  • SoC and SoH estimation. State of Charge from coulomb counting, voltage modeling, or impedance tracking. State of Health from capacity fade and resistance growth.
  • Authentication. Many proprietary packs (laptop, drone) include crypto to refuse off-brand chargers or hosts.

Fuel Gauge Approaches

MethodAccuracyComplexity
Voltage lookup±10 – 20%Low. Single ADC reading. OK for LFP (flat curve makes it worse) and Pb (decent curve).
Coulomb counting±2 – 5% short termMedium. Sense resistor + integrator. Drifts without periodic recalibration.
Impedance tracking (TI's bq-series)±1 – 3%High. Combines coulomb counting with periodic impedance measurement.
Extended Kalman filter±1 – 2%Very high. Used in EVs; combines voltage, current, temperature, and a battery model.
Thermal runaway Lithium chemistries can enter thermal runaway when subjected to overcharge, internal short, mechanical damage, or excess heat. The reaction is exothermic and self-sustaining; once started, it cannot be stopped, only contained. Standard mitigations are cell-level fuses, PTC overcurrent devices, separator shutdown, vent design, and pack-level fire-resistant containment. For DIY work: never charge a damaged Li cell, never overcharge above max voltage, do not parallel cells of different ages or chemistries, and store charged Li packs in a fire-safe bag away from flammables.
HA-052

MOTORS

Brushed DC, BLDC, stepper, servo. Commutation methods and the driver chips that turn current into torque.

Stepper Step-Rate Calculator

STEPPER GEOMETRYready

Motor Type Atlas

TypeControlCostWhere Used
Brushed DCPWM voltage; no commutation needed (mechanical brushes)LowToys, fans, hobby drills, brushed RC
Brushless DC (BLDC)3-phase commutation (six-step trapezoidal or FOC sinusoidal)MediumQuadcopters, CPU fans, e-bikes, EVs, modern appliances
Stepper (2-phase bipolar)Step/dir or microstep; H-bridge per phaseMedium3D printers, CNC, slow precise positioning
Hobby servo (RC)50 Hz PWM, 1-2 ms pulse width = positionLowRC vehicles, robotics, pan-tilt
Industrial servoFOC + encoder feedback + controllerHighCNC, robot arms, packaging machinery
AC inductionVFD (variable frequency drive)Medium-highPumps, blowers, conveyors, lathes
Switched reluctanceSequenced winding excitationMediumIndustrial, EV (specialty), high-temp
Coreless / pancakeBrushed or BLDC with disk armatureHighOptical heads, ultra-low-inertia precision

BLDC Commutation

MethodSensor NeedsResult
Six-step (trapezoidal)3 Hall sensorsSimple driver; cogging/torque ripple; "good enough" for fans, e-bikes at speed
Sensorless six-stepBack-EMF zero-crossing detection on idle phaseNo Halls; starting from zero RPM is hard; needs minimum BEMF
FOC (Field-Oriented Control)Encoder, resolver, or sensorless observerSmooth torque, full-range, motor controller as a real-time DSP problem
Direct torque control (DTC)Same as FOCLess common; selects optimal voltage vector each PWM cycle

Driver IC Atlas

FamilyTypeNotes
L298, L293Brushed / stepper H-bridgeThe classic 80s/90s BJT bridges. Inefficient by modern standards.
TB6612FNGDual brushed H-bridge, MOSFETHobby robotics workhorse; 1.2 A continuous per channel
DRV8833 / DRV8871TI brushed H-bridgeModern small-motor driver, current-limit features
A4988 / DRV8825Stepper, microstep up to 1/16 or 1/32The Pololu / Arduino-class stepper standard
TMC2208 / TMC2209 / TMC5160Trinamic; up to 1/256 microstep, StealthChop, SpreadCycleSilent steppers for 3D printers; UART/SPI configurable
DRV8302 / DRV83233-phase BLDC gate driver (no FETs)Pair with external FETs for bigger BLDC; FOC-friendly
STSPIN32F03-phase + MCU integratedSingle-chip BLDC controller
SimpleFOC + B-G431B-ESCOpen-source FOC firmware + reference hardwareModern hobbyist FOC entry point
ODrive / VESCHigh-power FOC controllersOpen-source robotics / e-skateboards / robotic actuators

Feedback Devices

DeviceResolutionUse
Hall switches~60° (3 sensors)BLDC commutation; coarse position
Magnetic angle sensor (AS5048, AS5600, MA730)12-14 bit (~0.02° to 0.09°)Diametrical magnet on shaft; absolute single-turn
Optical encoder (incremental)200 – 10000 PPRQuadrature output A/B; with index for home reference
Optical encoder (absolute)10 – 20 bit single-turnGray code; SSI, BiSS, EnDat protocols
Resolver~12 bit equivalentRugged sin/cos; aerospace, automotive traction
Linear scale1 – 10 μmDirect linear position (CNC, lithography)

Common Gotchas

  • Stepper resonance. Mid-speed range (often 200-1000 PPS) where the rotor's natural frequency matches step rate; stalls. Microstepping mitigates; closed-loop steppers (with encoder) defeat entirely.
  • Back-EMF on sudden stop. A spinning motor is a generator; abrupt H-bridge open lets the kinetic energy spike onto the rail. Use a TVS or brake resistor; do not float the bridge mid-rotation.
  • PWM frequency vs motor inductance. Higher inductance wants higher PWM frequency to keep current ripple small. Audible whine in 1-20 kHz range; above ~20 kHz is silent but switching losses rise.
  • Microstep accuracy is not microstep position. A 1/256 microstep driver does not move 1/256 of a step; it interpolates current. Real position resolution may be 4-8x worse than the microstep count suggests, due to torque ripple and detent torque.
  • Sensorless BLDC at low speed. Below the minimum BEMF detection threshold (often 5-10% rated speed), sensorless commutation does not work. Open-loop "kick start" or sensored startup is required.
  • Brushless DC commutation alignment. If the controller doesn't know rotor position at startup, it can spin the wrong way or stall. Halls or initial position detection (high-frequency injection) solves this.
FOC is just rotating the reference frame Field-Oriented Control sounds exotic but reduces to a Park transform: convert the three phase currents to a rotor-aligned d-q coordinate system, regulate d-axis current (flux) and q-axis current (torque) with separate PI loops, transform back. The hard parts are getting accurate rotor position, sampling the phase currents synchronously with PWM, and tuning the loop. Once those work, BLDC behaves like a brushed DC motor with infinite life and electronic gearing. Open-source SimpleFOC and ODrive made the math accessible; the rest is plumbing.
HA-053

SENSORS

The categorical atlas. MEMS, optical, magnetic, capacitive, ultrasonic, thermal, gas, force. The world reduced to voltage.

NTC Thermistor Calculator

BETA EQUATION (NTC)ready

MEMS Inertial & Environmental

SensorCommon PartInterface
3-axis accelerometerLIS3DH, ADXL345, KX022I2C / SPI
3-axis gyroscopeL3GD20, ITG-3200I2C / SPI
6-DOF IMUMPU-6050, ICM-20689, BMI270I2C / SPI
9-DOF (IMU + magnetometer)MPU-9250, BNO055 (fused), LSM9DS1I2C / SPI
Barometric pressureBMP280 / BMP388, MS5611, LPS22I2C / SPI
MEMS microphoneSPH0645, INMP441, ICS-43434I2S
HumiditySHT3x, SHT4x, HTU21D, DHT22 (older)I2C (SHT) / 1-Wire (DHT)

Optical and ToF

TypeExamplesRange / Use
Ambient light (lux)BH1750, TSL2591, OPT3001Display backlight, smart lighting
RGB / colorTCS3472, AS7341Color matching, white balance, spectral classification
UV / IRVEML6075, LTR-390, MLX90640UV index, IR camera array (MLX is 32×24 thermal)
Photodiode / phototransistorSFH213, BPW34, OP598Custom optical front-end, IR receivers
Time-of-Flight (point)VL53L0X, VL53L1X, VL53L5CX (multi-zone)1.2 to 4 m range; mm precision
LiDAR (rotating)RPLIDAR, YDLIDAR, VelodyneRobotics, mapping
Camera (raw)OV2640, OV5640, IMX seriesMIPI CSI-2 or parallel; vision systems

Magnetic

TechnologyExamplesUse
Hall switch (latch)A1101, US5881Door/lid sensing, BLDC commutation
Hall linearSS49E, ACS712 (current)Position, current sensing
Magnetic angle (rotary)AS5048, AS5600, MA730, TLE5012Absolute shaft angle with diametric magnet
AMR / GMR / TMRHMC1043, TDK TMRHigher resolution than Hall; e-compass
3-axis magnetometerHMC5883L (legacy), LIS3MDL, MMC5983MACompass, magnetic field mapping
FluxgateBartington, specialtyEarth-field magnetometry; geophysics

Capacitive and Touch

TypeApproachExamples
Single capacitive buttonRC time, charge transfer, frequency shiftAtmel QT family, TI MSP CapTIvate, integrated MCU pins (STM32 TSC, NRF nRFCT)
Multi-touch capacitive gridMutual capacitance scanningFT5xxx, GT9xx, Cypress PSoC. ITO on glass for displays.
Proximity capacitiveSelf-capacitance changeHover detection, gesture
Liquid level capacitiveCo-axial or coplanar electrodes through dielectricNon-contact tank gauging

Temperature

TypeRangeNotes
NTC thermistor-40 to +125°CCheap, nonlinear; characterized by Beta or Steinhart-Hart coefficients
PTC thermistor0 to +160°CSelf-heating protection; sharp transition at Curie temp
RTD (Pt100, Pt1000)-200 to +850°CVery linear; expensive; needs 3- or 4-wire excitation for accuracy
Thermocouple (K, J, T, S, R, B, N, E)K: -200 to +1260°CWide range; needs cold-junction compensation; specialty amplifiers (MAX31855)
Silicon BJT / IC-55 to +150°CDS18B20, TMP117, MCP9808, on-die sensors in most MCUs
IR pyrometer / thermopileNon-contact, -70 to +380°C and upMLX90614, MLX90632 (medical-grade)

Gas, Air Quality, Particulate

MeasurandSensorPrinciple
CO2 (true NDIR)SCD30, SCD40, MH-Z19, K30Non-Dispersive Infrared; lab-grade in cheap packages now
"CO2 equivalent" (VOC-derived)SGP30, SGP40, CCS811, BME680/688Metal-oxide; cheap but cross-sensitive; do not use for HVAC control
O2SK-25 (galvanic), zirconia, fuel cellDiving, anesthesia, exhaust
VOCSGP30, BME680Aggregate indoor air quality proxy
COMQ-7, electrochemical (Figaro, SPEC)Safety alarms; electrochemical for accuracy
NO2, O3, SO2, H2SSPEC, Alphasense electrochemicalAir quality monitoring; expensive but accurate
Particulate (PM1, PM2.5, PM10)PMS5003, SPS30, SEN54Optical scattering; great for indoor AQI
Methane / LPG / propaneMQ-2, MQ-4, MQ-6Metal oxide; cheap; not selective

Force, Strain, Pressure

SensorUse
Strain gauge (foil resistor on Wheatstone bridge)Load cells, structural monitoring; HX711 reads the bridge for hobbyist work
Load cell (assembled strain bridge in steel)Scales, force measurement; 5-50 kg common, 100 kg+ industrial
Piezoresistive pressureTire pressure, manifold pressure, medical BP
Capacitive pressureBarometers; better stability than piezoresistive
Force-sensing resistor (FSR)Toy / wearable; cheap, low accuracy
PiezoelectricVibration, impact, shock; AC-coupled only (no DC)

Position, Distance, Ultrasonic

SensorRange / Resolution
HC-SR04 ultrasonic2 cm to 4 m, ±3 mm typical
MaxBotix ultrasonic20 cm to 7.5 m, weatherproof variants
Sharp IR distance (GP2Y0A)10 cm to 80 cm; analog output
Rotary potentiometerAbsolute angle; 270° typical; cheap
Linear potentiometer / slide pot10 mm to several inches
LVDT (linear variable differential transformer)μm precision linear; industrial
Capacitive proximity (long range)cm-scale; metal or human-body detection
The "calibration is the sensor" rule Raw sensor counts are not measurements. A barometric pressure IC reads atmospheric pressure to ±1 Pa precision but ±100 Pa absolute accuracy uncalibrated. A thermistor reads resistance to 0.1% but converts to temperature using a Steinhart-Hart fit whose coefficients are part-specific. A magnetometer in a phone is useless until it has been calibrated against the local magnetic environment. The sensor's spec sheet describes the silicon; the calibration describes the deployment. Most sensor-driven projects fail not because the sensor was wrong but because nobody calibrated it.
HA-054

RF

Mixers, amplifiers, oscillators. The practical RF design vocabulary and the unit conversions that come with it.

dB Converter and Link Budget

dBm · mW · LINK BUDGETready

The Building Blocks

BlockWhat It DoesTypical Spec
LNA (low-noise amplifier)Boost weak signal with minimum added noiseNF 0.5 – 3 dB, gain 10 – 25 dB
PA (power amplifier)Drive antenna at required output powerPout 10 – 30 dBm small, 30 – 50+ dBm large
Gain block / amplifierGeneric amplification at IF or RF stageCascadable, 50 Ω input/output
MixerMultiplies two signals; produces sum and difference frequenciesConversion loss 5 – 8 dB (passive), gain (active)
VCO (voltage-controlled oscillator)Variable-frequency sourceTuned by varactor; integrated into PLL
PLL synthesizerLocks VCO to a reference for stabilityADF4351, MAX2870, LMX2594, integrated in SoCs
Filter (BPF / LPF / HPF)Reject unwanted spectrumLC, ceramic, SAW, BAW, cavity, helical
RF switch (SPDT, SPNT)Route between paths (TX/RX, antenna diversity)PE, Skyworks, ADI; isolation 25 – 45 dB
Attenuator (fixed / step)Reduce signal level cleanly0.5 dB to 60+ dB; step attenuators in 0.5 or 1 dB steps
BalunConvert single-ended to differentialLumped, transformer, or stripline
Isolator / circulatorOne-way port for protection; three-port circulator routesFerrite-based; specific to band
Splitter / combinerDivide / sum power between pathsWilkinson, hybrid, lumped
Detector (envelope, log, RMS)Recover amplitude infoAD8302, LTC5587, generic diode

Receiver Architectures

ArchitectureStrengthWeakness
Crystal video / direct detectionTrivial; no LONo selectivity; only for strong wideband signals
TRF (tuned RF)Simple; one frequencyGain at RF is expensive; selectivity is hard
SuperheterodyneIndustry standard since 1918; selectivity at fixed IFImage frequency; complex
Dual conversionBetter image rejection; relaxed first IF filterTwo LOs, two mixers, more spurs
Direct conversion (zero-IF)No image; simple; integrated easilyDC offset, 1/f noise, IQ imbalance, LO leakage
Low-IFCompromise between zero-IF and superhetImage at 2 × IF
SDR (digital downconversion)Flexible; software-defined channel filteringADC dynamic range is the bottleneck

Vocabulary You Have to Speak

TermMeaning
dBmPower referenced to 1 mW. 0 dBm = 1 mW, +30 dBm = 1 W, -30 dBm = 1 μW.
dBWPower referenced to 1 W. dBW = dBm − 30.
dBiAntenna gain over an isotropic radiator (ideal sphere).
dBdAntenna gain over a dipole. dBd = dBi − 2.15.
dBcDecibels relative to the carrier. Spur and phase-noise specs.
dBμVVoltage referenced to 1 μV. 0 dBμV = -107 dBm into 50 Ω.
Noise Figure (NF)How much the device degrades SNR; in dB. NF of LNA dominates a cascade.
ENRExcess Noise Ratio; calibration spec for noise sources used in NF measurement.
1 dB compression (P1dB)Input power where the amplifier's gain has dropped 1 dB from small-signal.
IIP3 / OIP3Third-order intercept point; intermodulation distortion figure of merit.
SFDRSpurious-Free Dynamic Range; from noise floor to highest spur.
EVMError Vector Magnitude; modulation accuracy metric for digital signals.
ACPR / ACLRAdjacent Channel Power Ratio; how much you spill into neighbor channels.
VSWR / Return LossHow well-matched the port is (see HA-042 ANTENNA).

The Friis Equation

For a cascade of stages: total noise figure F = F1 + (F2-1)/G1 + (F3-1)/(G1·G2) + ... in linear terms. The first stage's noise figure dominates; the first stage's gain divides every subsequent stage's contribution. This is why the LNA is the first block in any receiver. Free-space path loss: FSPL_dB = 20·log(d) + 20·log(f) + 32.44 (d in km, f in MHz). The link budget widget uses this.

Common RF ICs

FunctionExamples
Sub-GHz transceiver (ISM)CC1101 (TI), Si4463 (Silicon Labs), RFM69 (HopeRF)
LoRa transceiverSX1262, SX1276 (Semtech); LR1110 with GNSS
Bluetooth LE SoCnRF52, ESP32, BlueNRG, Apollo4 Blue
Wi-Fi SoCESP32, BL602, RTL8720
2.4 GHz front-end (FEM)SKY66112, RFX2401, RTC6705
PLL synthesizerADF4351 (35 MHz – 4.4 GHz), MAX2870, LMX2594
MixerSBL-1 (passive), ADL5811, LT5560
SDR front-endRTL2832U+R820T (RTL-SDR), AD9361 (BladeRF, USRP B series), LMS7002 (LimeSDR)
VNA bridgeSi5351 + AD8302 (NanoVNA topology)

Test Equipment Reference

  • NanoVNA / LiteVNA / SAA-2. Sub-$100 vector network analyzers covering DC to 6 GHz. Antenna matching, filter characterization, cable testing.
  • tinySA / tinySA Ultra. Sub-$200 spectrum analyzers, up to 6 GHz. Visualize spurs, harmonics, and IMD products.
  • RTL-SDR. $35; 24 MHz to 1.7 GHz; the everyman spectrum monitor and signal capture device.
  • HackRF / LimeSDR / USRP. Higher-end SDRs with TX capability; for transmit testing, use only on bands you are licensed for.
  • Signal generator. Used market HP/Agilent 8648, 33xxx, Rigol DSG, SDR with TX. Required for receiver sensitivity and IMD testing.
  • Power meter. Boonton 4220 / 4500, Mini-Circuits PWR-8GHS, or a thermistor-based head with a real meter. Calibrated absolute power.
  • Noise figure meter. Specialty equipment (Keysight N8975A, Boonton 4225); also possible with noise source + spectrum analyzer using Y-factor method.
RF is plumbing for waves Most of RF design is not exotic. It is matching one impedance to another so waves flow without reflection, filtering out what you do not want, amplifying what you do, and shifting frequency between bands. The bewildering specs (NF, IIP3, ACPR) are different ways of asking "how much does this stage damage the signal?" Once you read the cascade as a plumbing diagram with each element's contribution accounted for, the math reduces to the Friis equation, the cascade equations for distortion, and the impedance match at every interface. Everything else is parts selection.
HA-055

COMMS

High-speed serial protocols. USB, PCIe, Ethernet, MIPI, and the SerDes mechanics underneath all of them.

SERDES STACK MAC · packet framing PCS · 8b/10b · 64b/66b · scramble PMA · serializer · CDR · equalize PMD · driver · termination · pad TX+ TX- RX+ RX- 100Ω diff pair to next device
Fig. 1 · MAC / PCS / PMA / PMD

Effective Throughput Calculator

RAW RATE → USABLE BANDWIDTHready

USB Generations

SpecYearSignalingEffective
USB 1.1 Low/Full Speed19981.5 / 12 Mbps NRZI~ same
USB 2.0 Hi-Speed2000480 Mbps NRZI~ 35 MB/s
USB 3.0 / 3.2 Gen 120085 GT/s 8b/10b~ 500 MB/s
USB 3.1 / 3.2 Gen 2201310 GT/s 128b/132b~ 1.21 GB/s
USB 3.2 Gen 2x220172× 10 GT/s~ 2.42 GB/s
USB4 v1 (Thunderbolt 3 lineage)201920 / 40 Gbps~ 5 GB/s
USB4 v2 / Thunderbolt 5202380 / 120 Gbps (asymmetric)~ 10 GB/s

PCIe Generations

GenYearGT/s per laneEncodingx1 useablex16 useable
1.020032.58b/10b250 MB/s4 GB/s
2.0200758b/10b500 MB/s8 GB/s
3.020108128b/130b~ 985 MB/s~ 15.75 GB/s
4.0201716128b/130b~ 1.97 GB/s~ 31.5 GB/s
5.0201932128b/130b~ 3.94 GB/s~ 63 GB/s
6.0202264 (PAM4)FLIT + FEC~ 7.5 GB/s~ 121 GB/s
7.02025128 (PAM4)FLIT + FEC~ 15 GB/s~ 242 GB/s

Ethernet Variants

SpeedVariantMedium / Reach
10 Mbps10BASE-TCat 3+, 100 m, Manchester encoded
100 Mbps100BASE-TXCat 5, 100 m, 4B/5B + MLT-3
1 Gbps1000BASE-TCat 5e+, 100 m, 4 pairs PAM-5
2.5 / 5 GbpsNBASE-TCat 5e/6, 100 m, brought to existing cable plants
10 Gbps10GBASE-TCat 6a+, 100 m; warmer than gigabit
10 Gbps10GBASE-SRMulti-mode fiber, 300 m
25/40/100 GbpsVarious SR/LR/ERDatacenter optics; 25G is the lane unit
100/400/800 GbpsPAM4 lanes4×25, 8×50, 8×100 PAM4 typical

MIPI (Mobile Industry Processor Interface)

SpecWhat It IsRate
D-PHYSource-synchronous, asymmetric (HS / LP modes); CSI-2 / DSI physical layer2.5 Gbps per lane (D-PHY 2.5)
C-PHY3-wire trio per "lane"; embedded clock; 16 symbols/7 bitsup to ~5.7 Gsym/s ≈ ~6.5 Gbps per trio
M-PHYSymmetric, embedded clock; used by UFS, SSIC, M-PCIeHS-G4: 11.6 Gbps; HS-G5 23.3 Gbps
CSI-2Camera Serial Interface; uses D-PHY or C-PHYup to ~109 Gbps on multi-lane C-PHY
DSI / DSI-2Display Serial Interface; D-PHY or C-PHYmatches PHY rates

SerDes Vocabulary

  • SerDes. Serializer/Deserializer. The IP block that turns a wide parallel bus into a high-rate serial stream and back.
  • PCS / PMA / PMD. Physical Coding Sublayer (line coding, scramble), Physical Medium Attachment (serializer, CDR, equalization), Physical Medium Dependent (driver, termination, package).
  • 8b/10b coding. Maps 8-bit data to 10-bit symbols. Adds 25% overhead. DC-balanced; bounded run length; comma symbols for alignment.
  • 64b/66b coding. 64-bit data + 2-bit sync header + scrambler. ~3% overhead.
  • 128b/130b coding. 128-bit data + 2-bit header. ~1.5% overhead. PCIe Gen3+ standard.
  • NRZ / PAM4. Non-Return-to-Zero is 2-level (1 bit/symbol). PAM4 is 4-level (2 bits/symbol). PAM4 doubles bandwidth at the cost of SNR (~9.5 dB SNR penalty).
  • CDR. Clock and Data Recovery. Extracts the clock from edges in the data stream.
  • Equalization. CTLE (continuous-time linear equalizer) at the receiver; FFE / DFE / pre-emphasis at the transmitter. Compensates the channel's frequency response.
  • Eye diagram. The persistent overlay of many bit cells. The "eye" opening indicates margin; mask templates set pass/fail.
Why MAC/PCS/PMA/PMD matters High-speed protocols are designed in layers. The MAC handles packets, the PCS handles bits, the PMA handles symbols, the PMD handles voltages. When something fails (a Wi-Fi link doesn't train up, a PCIe slot only runs Gen 2 instead of Gen 4), the symptom is at one layer and the cause is almost always at the next layer down. Eye diagrams expose the PMA/PMD; protocol analyzers expose the PCS/MAC. A field engineer who can talk fluently across those four layers has the working vocabulary of every modern bus.
HA-056

STORAGE

NAND vs NOR, the SD card family, eMMC and UFS, NVMe. How bits persist when the power goes away.

NAND CELL TYPES SLC 1 bit MLC 2 bit TLC 3 bit QLC 4 bit P/E cycles (endurance) SLC 50-100k · MLC 3-10k · TLC 1-3k · QLC ~500-1k More bits/cell = more states = less margin 3D stacking adds layers, not bits/cell
Fig. 1 · Bits per cell, voltage states

Flash Endurance Calculator

P/E CYCLES · WRITE LIFETIMEready

NAND vs NOR

NANDNOR
Density / costHigh density, low $/GBLower density, higher $/MB
ReadPage-oriented (~ μs to first page)Random byte-addressable (~ ns)
XIP (execute-in-place)No (needs buffering)Yes (CPU can fetch instructions directly)
Write / erasePage write, block erase (μs/ms)Word write, sector erase (slower than NAND)
Bit errorsCommon; ECC requiredRare; minimal ECC needed
Typical useSSDs, eMMC, UFS, SD cards, mass storageBootloader storage, firmware, IoT XIP
Common interfacesONFI, Toggle, eMMC, UFS, NVMeSPI (W25Q, MX25, GD25), Octal SPI (xSPI), Parallel

SD Card Family Tree

FormatCapacityFilesystemYear
SD≤ 2 GBFAT161999
SDHC4 – 32 GBFAT322006
SDXC64 GB – 2 TBexFAT2009
SDUC2 – 128 TBexFAT2018

SD Speed Classes

Class MarkMin Sequential WriteTypical Bus
Class 2 / 4 / 6 / 102 / 4 / 6 / 10 MB/sDefault Speed
UHS-I (U1)10 MB/sSDR50, DDR50, SDR104 (104 MB/s peak)
UHS-I (U3)30 MB/sSDR104
UHS-II30 MB/s (with U3)FD156 (156 MB/s) / HD312 (312 MB/s)
UHS-III30 MB/s+FD624 (624 MB/s)
SD ExpressvariesPCIe + NVMe over SD form factor; up to 4 GB/s in SD8.0
Video Speed V6/V10/V30/V60/V906 / 10 / 30 / 60 / 90 MB/sSustained sequential writes for 4K/8K video
Application A1 / A21500/4000 random read IOPSFor running OSes on Pi-class boards

eMMC vs UFS

SpeceMMC 5.1UFS 4.0
Year20152022
PhysicalParallel 8-bit DDR (HS400)M-PHY differential serial (HS-G5)
Peak read~ 400 MB/s~ 4200 MB/s
ArchitectureHalf-duplex, command-then-dataFull duplex, queued commands (NCQ-like)
Typical useLow/mid-tier phones, IoT, dashcamsModern flagship phones, automotive

NVMe and the Form Factors

  • NVMe is a protocol over PCIe. It superseded AHCI/SATA for SSDs by exposing many parallel queues (instead of one) and shorter command paths.
  • M.2 2280 (22 mm × 80 mm) is the dominant consumer SSD form factor.
  • U.2 / U.3 are SFF-8639 server connectors; same NVMe protocol, hot-pluggable, redundant-power, dual-port capable.
  • E1.S / E1.L / E3.S are the EDSFF "ruler" form factors taking over hyperscale datacenters; designed for higher capacity, cooler running, denser racks than M.2.
  • BGA NVMe (PCIe SSDs in a BGA package, e.g. 11.5 × 13 mm) used in phones, ultrabooks, mini PCs.

FTL: The Software That Makes Flash Look Like a Disk

NAND has small read pages, larger program pages, much larger erase blocks, finite cycle endurance, and bit errors that need ECC. None of this matches what an operating system expects from a disk. The Flash Translation Layer hides all of it. Key FTL responsibilities:

  • Wear leveling. Static (cold data moved to high-cycle blocks) and dynamic (writes spread across blocks). Without it, a 256 GB drive can wear out one block in a week.
  • Bad block management. Pages and blocks fail; FTL retires them and remaps logical addresses.
  • Garbage collection. Erase blocks contain mostly valid + some invalid pages. Periodically the FTL relocates the valid pages so the block can be erased and reused. This is the write amplification source.
  • ECC. Per-page ECC (LDPC, BCH). Raw bit errors at QLC retirement rate can exceed 10⁻³; ECC keeps the output rate below 10⁻¹⁵.
  • Power-loss protection. Capacitor backed in enterprise drives; metadata journaling and replay on cheaper consumer SSDs.
SLC mode caching on TLC/QLC Modern consumer SSDs reserve a fraction of TLC or QLC NAND and program it in SLC mode (1 bit per cell). Writes land in this fast SLC zone first, then trickle down to TLC/QLC during idle. This is why the same SSD can sustain 6 GB/s for the first 30 seconds of a write and drop to 200 MB/s after the SLC cache fills. Specification "peak write" assumes cache; "sustained write" tells you what happens after.
HA-057

DISPLAYS

LCD, OLED, e-ink. Interfaces from SPI to DSI to HDMI. Pixels into the room.

Display Bandwidth Calculator

PIXEL BANDWIDTH & LANE COUNTready
×
%

LCD Technology Variants

TypeStrengthsWeaknesses
TN (Twisted Nematic)Fastest response, cheapNarrow viewing angles; poor color
IPS (In-Plane Switching)Wide angles, accurate colorSlower; backlight bleed; more expensive
VA (Vertical Alignment)Best contrast; deep blacksSlower; ghosting; off-axis gamma shift
OCB / FFSFast IPS variantsNiche, mostly mobile
Reflective / transflectiveSunlight-readable; low powerDim indoors; mostly e-readers and watches

Backlight Reference

BacklightEra / Use
CCFL (cold cathode fluorescent)Pre-2010 laptops, monitors; requires inverter; legacy
Edge-lit white LEDThe mainstream LCD backlight since 2010
Direct-lit LEDTVs; local dimming variants improve contrast
Mini-LEDThousands of dimming zones; competes with OLED
Quantum dot (QLED, QD-OLED)Color enhancement layer; wider gamut

OLED Variants

TypeNotes
PMOLED (passive matrix)Small displays; SSD1306 OLED is this; limited size
AMOLED (active matrix)Phone and TV displays; TFT backplane drives each pixel
Flexible AMOLEDFoldables, curved phones; plastic substrate
White OLED + color filter (WOLED)LG TV approach; durability over per-color subpixel
QD-OLEDSamsung Display; blue OLED + quantum-dot RG conversion
MicroOLED (silicon backplane)VR/AR headsets; 3000+ ppi possible

Burn-in is real but mitigated. WOLED uses pixel-shifting and per-pixel current monitoring. AMOLED phones use aggressive screen-shift and brightness rebalancing. Static UI elements (status bars, navigation buttons) are the lifetime adversary.

E-Ink and Reflective Displays

GenerationYearFeatures
Vizplex~2007Original Kindle; black/white only
Pearl2010Higher contrast; Kindle 3
Carta2013Whiter white; current B/W standard
Triton / Spectra 62010 / 2024Multi-color via filters or new particles; muted gamut
Kaleido 32022Color filter array over B/W panel; better than triton
Sharp Memory LCD2010+Bistable reflective LCD; Pebble watch; very low power

Interface Atlas

InterfaceWhere UsedPin Count
SPI (3-wire or 4-wire)SSD1306 OLED, ST7735, ST7789, ILI9341 small TFTs4 – 5
I2CSmall OLED (SSD1306 0.96"), tiny chars2
Parallel RGB (24-bit)Embedded TFTs, FPGA bring-up~ 28 (RGB, HSYNC, VSYNC, DE, PCLK)
LVDS (LDI / FPD-Link)Laptop panels (pre-eDP), industrial4 – 10 differential pairs
eDP (embedded DisplayPort)Modern laptop panels, tablets1 – 4 lanes; replaces LVDS
DisplayPortMonitors4 lanes + AUX; DP 2.1 supports 80 Gbps
HDMITVs, monitors, AVR3 TMDS pairs + clock; HDMI 2.1 FRL 4 lanes 48 Gbps
MIPI DSI (D-PHY)Phones, tablets, embedded1 – 4 lanes
MIPI DSI-2 (C-PHY)Modern flagship phones1 – 3 trios
HUB75 / parallel RGB matrixLED panel matrices (Raspberry Pi LED hat, P3 panels)16 (R0-2, G0-2, B0-2, ABCDE, CLK, LAT, OE, GND)

SPI Controller Reference

ControllerCommon ResolutionNotes
SSD1306128 × 64 OLEDThe first OLED most makers meet; 0.96" mono
SSD1331 / SSD135196 × 64 / 128 × 128 OLEDColor OLED with 16-bit RGB565
ST7735128 × 160 TFT1.8" hobbyist staple
ST7789240 × 320 TFT1.3" – 2.4" round and rectangular; common 2026
ILI9341 / ILI9488240 × 320 / 320 × 480 TFT2.4" – 3.5" Arduino-era favorite
ILI9881C720 × 1280 IPS via MIPI DSI4-lane DSI; Pi-class boards drive this directly
SH1106132 × 64 OLEDOften miswired as SSD1306; needs offset correction
EPD-IT8951e-paper controller for 6"+ panelsHosts large 9.7" / 13.3" e-ink displays

Pixel Formats

FormatBitsNotes
RGB565165 R, 6 G, 5 B; default for small SPI TFTs; visible banding on gradients
RGB666186 per channel; LVDS / DSI common
RGB888 / ARGB888824 / 32True color; PCs and modern phones
RGB30 / 10-bit30HDR; Dolby Vision intermediates
YCbCr 4:2:0 / 4:2:2 / 4:4:4variesVideo pipelines; chroma subsampling
1-bit (mono)1E-ink default; OLED text-only
The lane count math A 4K display at 60 Hz, 24-bit color is roughly 12 Gbps of raw pixel data after blanking. That's where the 4 lanes of HDMI 2.0 / DP 1.4 / DSI come from. 8K at 120 Hz pushes 100+ Gbps; only HDMI 2.1 FRL, DP 2.1 UHBR20, or USB4 alt-mode handle it natively. The widget above is the back-of-the-envelope tool for "can this interface carry this panel" decisions.
HA-058

AUDIO

Codecs, I2S timing, PDM microphones, Class-D amplifiers. The signal chain from microphone to speaker.

I2S TIMING BCLK WS/LR LEFT RIGHT SD 1-BCLK delay Data MSB-first, 1 BCLK after WS edge Sampled on rising BCLK by receiver
Fig. 1 · I2S timing

Audio Bandwidth Calculator

SAMPLE × BITS × CHANNELSready

I2S Signal Reference

SignalFunction
MCLK (master clock)System clock; typically 256× or 384× WS. Optional but required by some codecs.
BCLK (bit clock)Serial data rate clock. fs × bits × channels.
WS / LRCLKWord select / Left-Right clock. fs frequency. Low = left channel, high = right (in classic I2S).
SD (serial data)MSB-first, signed two's complement, 1 BCLK after WS edge.

I2S Variants

VariantDifference
Standard I2S (Philips)1-BCLK delay after WS edge; MSB-first
Left-justifiedData MSB on the same edge as WS change; no delay
Right-justifiedData LSB aligned to next WS edge; right-padded
TDM (Time-Division Multiplexed)Multiple channels in one frame; WS signals frame start; 4, 8, 16 channels common
PCM (telephony)Short frame-sync pulse instead of square-wave WS; 8 kHz fs typical
DSD over I2S1-bit at 2.8 / 5.6 / 11.2 MHz; bypasses delta-sigma in DAC

PDM Microphones

A PDM (Pulse Density Modulation) microphone outputs a 1-bit serial stream at 1 – 4 MHz, with the clock supplied by the host. The host decimates the high-rate 1-bit stream into 16-bit or 24-bit PCM at 16 or 48 kHz. The advantage is digital output without an internal codec; the cost is the decimation filter (CIC + FIR) on the host.

PartSNRSensitivity
SPH0645LM4H65 dB-26 dBFS
INMP44161 dB-26 dBFS
ICS-4343465 dB-26 dBFS
MP34DT01-M61 dB-26 dBFS
SPM142361 dB-38 dBFS
MEMS array (e.g. STMicro)up to 75 dBvarious

Codec IC Atlas

PartClassNotes
WM8731Stereo codecThe Wolfson classic; 24-bit, 8-96 kHz
WM8960Stereo codec with headphone ampCommon on Raspberry Pi HiFi hats
ES8388 / ES7148Everest Semi codecESP32 audio boards (LyraT, AI Thinker)
PCM5102 / PCM1808DAC / ADC standaloneCheap I2S DAC and ADC; no MCLK needed
CS43L22DAC + Class-D headphoneSTM32 Discovery boards
TLV320AIC3204Full-featured codecMic boost, DSP, headphone, mono speaker amp
NAU88C22 / NAU8822Codec with PLLStereo, line/mic input, headphone output
AK4493 / AK4499High-end DACAudiophile DACs; multi-bit delta-sigma
ESS Sabre ES9038Reference DAC32-bit, 768 kHz; flagship audio gear

Class-D Amplifier Reference

PartOutputNotes
MAX98357A3.2 W mono / 4ΩI2S input; small footprint; the maker default
PAM8403 / PAM83023 W / 2.5 WAnalog input; cheap eBay boards
TPA3116 / TPA311850 W / 2 × 30 WThe hi-fi DIY favorite; clean for Class-D
TAS5825M / TAS58052 × 20 WI2S input + DSP processing; smart amp
MAX98390 / MAX983965.6 W BTLSmart speaker amp; speaker protection, IV sense

Bluetooth Audio Codecs

CodecBitrateWhere
SBC~ 328 kbpsA2DP baseline; mandatory; mediocre quality
AAC~ 256 kbpsApple devices, many Android
aptX / aptX HD~ 352 / ~ 576 kbpsQualcomm; lower latency than SBC
aptX Adaptive / Losslessvariable / losslessRecent Qualcomm; reaches CD-quality lossless
LDAC990 kbps maxSony; standard on Android since 8.0
LC3 / LC3plus160 – 345 kbps; lower latencyBluetooth LE Audio mandatory
Why I2S has so many variants Philips designed I2S in 1986 for stereo DACs. Codec vendors added their own framing for TDM, telephony, and pre-emphasis flags. Modern SoCs offer one general "I2S/PCM/TDM" peripheral that accepts a configuration for which variant to use. Always check the codec's expected timing diagram against the SoC's peripheral mode bits; the symptom of a mismatch is left/right channel swap, half-amplitude signal, or rolling noise across the WS edge.
HA-059

ENCLOSURES

Sheet metal, 3D printing, injection molding, CNC. The processes that turn a PCB into a product.

IP Rating Decoder

INGRESS PROTECTION CODEready

Process Atlas

ProcessMaterialsVolume Sweet SpotTolerance
FDM 3D printingPLA, PETG, ABS, ASA, PC, nylon, TPU1 – 100±0.2 – 0.5 mm
SLA / DLP / MSLA resinUV photopolymers (tough, flexible, castable, dental)1 – 1,000±0.05 – 0.2 mm
SLS nylonPA12, PA11, glass-filled PA, TPU10 – 1,000±0.1 – 0.3 mm
MJF (HP Multi Jet Fusion)PA12, PA11, TPU10 – 10,000±0.1 – 0.2 mm
CNC milled plasticHDPE, POM (Delrin), PEEK, acrylic, polycarb1 – 500±0.05 – 0.1 mm
CNC milled aluminum6061, 7075, anodized finishes1 – 500±0.05 mm (precision ±0.013 mm)
Sheet metal (laser + brake)Aluminum, mild steel, stainless, brass, copper1 – 10,000±0.2 mm; ±0.5° on bends
Stamping (progressive die)Steel, brass, aluminum10,000+±0.05 mm with hard tooling
Injection moldingABS, PC, PP, nylon, PC-ABS, TPE500 – 1,000,000+±0.1 – 0.3 mm (tighter with precision tools)
Urethane / silicone castingSoft and rigid urethanes from a master pattern10 – 200±0.2 mm; bridge to injection
Vacuum forming / thermoformingABS, HIPS, PETG sheet50 – 5,000±0.5 mm

3D Printing for Engineers

IssueMitigation
Anisotropy (layer adhesion weak)Orient strong axis perpendicular to layers; use higher temp / annealed PETG; FDM with carbon-filled nylon
Bridge / overhang sagKeep overhangs <45°; bridges <10 mm; add chamfers instead of horizontal overhangs
Tight tolerance holesPrint undersized then ream; or use heat-set inserts for threaded fasteners
Warp on large flat partsABS / ASA / nylon need enclosure; PLA / PETG forgive open printers; brim / raft helps; use a heated bed
Aesthetic surfaceSLA / MJF / vapor-smoothing for FDM; bead blasting on metal; vapor-smoothed ABS approaches injection look
Outdoor / UV exposureASA over ABS; PETG fine for years; PLA fails fast in sun

Injection Molding for Engineers

Design ElementRule of Thumb
Wall thicknessUniform; 1.5 – 3 mm typical; sinks form where thick meets thin
Draft angle0.5° minimum; 1 – 3° recommended; vertical walls need EDM-texture release
Ribs40 – 60% of wall thickness; height ≤ 3× wall; tapered for draft
BossesOD < 2× ID; gusseted ribs; supported back to wall
Tooling cost$5k (China prototype) to $200k+ (US production multi-cavity)
Family vs single moldFamily molds (multiple parts per shot) for low volume; single-cavity for high precision
GatesEdge, sub, tunnel, hot tip; gate location affects flow lines and warpage
Lead time4 – 12 weeks for tooling; days for parts thereafter

Sheet Metal for Engineers

  • Bend radius. Minimum inside radius equals material thickness for most alloys. Tighter radii crack the outside fiber. Brake operators bend with V-dies sized to the radius.
  • K-factor. The neutral axis shift on a bend; 0.42 to 0.5 typical. CAD software uses K-factor to compute flat-pattern length.
  • Hole-to-edge distance. 2× material thickness minimum; 3× preferred.
  • Hole-to-bend distance. 2.5× material thickness + bend radius; closer and holes deform.
  • Hardware. PEM nuts (self-clinching) for blind threads; PEM standoffs for board mounting; cage nuts for racks.
  • Finishes. Anodize (Al), powder coat (any), zinc plate (steel), brushed/electropolished (stainless).

Fasteners and Threaded Inserts

TypeUse
Heat-set brass inserts3D-printed and injection-molded plastic; melt-in with soldering iron at temperature
Threaded helical inserts (Helicoil / Recoil)Repair stripped threads in metal; reinforce soft metals
PEM self-clinchingSheet metal; press-in nuts, studs, standoffs
Self-tapping plastic screws (Plastite, Hi-Lo)Direct into 3D print or molded plastic bosses
Rivnuts / NutsertsBlind threaded inserts in sheet metal where one side is inaccessible
Standard machine screws (M / #)The default for any threaded hole in metal; pair with washers and lock-tite

Common Plastics Compared

MaterialTg / HDTUVNotes
PLA~ 60°C HDTPoorCheap, stiff, biodegradable; not for hot or outdoor parts
PETG~ 75°C HDTGoodTough, food-safe, easy to print; "engineering PLA"
ABS~ 90°C HDTFairStrong, can be acetone-smoothed; needs enclosure for printing
ASA~ 95°C HDTExcellentUV-stable ABS replacement for outdoor parts
PC (polycarbonate)~ 130°C HDTGoodOptically clear; extremely tough; hygroscopic
Nylon (PA12, PA6, PA66)~ 80 – 180°C HDTFair-GoodMechanical parts, hinges; absorbs moisture; SLS / MJF default
PEEK~ 250°C HDTExcellentAerospace / medical; expensive; needs 400°C+ hotend for FDM
TPUFlexibleGoodGaskets, seals, flexible hinges, phone bumpers
The DFM mindset Design For Manufacturing is the discipline of choosing geometry the production process can actually produce. A wall too thin to mold, a bend too tight for the brake, a printed thread that strips on first insert, an undercut that traps in an injection tool. Each represents the same underlying lesson: the part exists in concept once, in CAD twice, and in physical reality thousands of times. The questions of "what process, what material, what tolerance, what finish" precede the geometry, not the reverse. DFM reviewers from a contract manufacturer are worth their hourly rate.
HA-060

CABLING

Connectors and conductors. USB-C, HDMI, Ethernet, coax, ribbon, FFC. The wires between the boxes.

USB-C · 24 PIN A side (top) · B side (bottom mirror) A1 ─────── A12 GND TX1+ TX1- VBUS CC1 D+ D- SBU1 VBUS RX2- RX2+ GND GND RX1+ RX1- VBUS SBU2 D- D+ CC2 VBUS TX2- TX2+ GND B12 ─────── B1 Reversible: A & B sides duplicate signals CC1/CC2 set role & PD; SBU is alt-mode 4 SuperSpeed pairs: TX1, RX1, TX2, RX2 USB 2.0 D+/D- on both halves (only one used)
Fig. 1 · USB Type-C receptacle, 24 contacts

AWG Ampacity & Resistance

AWG REFERENCEready

USB-C Pin Reference

PinSignalFunction
A1, A12, B1, B12GNDGround returns
A4, A9, B4, B9VBUS5 V default, up to 48 V with PD 3.1 EPR
A5CC1Configuration Channel 1; cable detection, PD comms, orientation
B5CC2Configuration Channel 2; pulled to VBUS in cable, not host
A6/A7, B6/B7D+/D-USB 2.0 differential; both halves wired, only one connects through
A2/A3, B10/B11TX1+/-, RX2-/+SuperSpeed pair 1 (TX) and pair 2 (RX)
B2/B3, A10/A11RX1+/-, TX2-/+SuperSpeed pair 1 (RX) and pair 2 (TX)
A8, B8SBU1, SBU2Sideband Use; alt modes (DisplayPort AUX, HDMI HEAC, audio analog)

USB-C Power Delivery (PD)

PD SpecVoltageMax CurrentMax Power
USB 2.0 default5 V500 mA2.5 W
USB 3.x default5 V900 mA4.5 W
Type-C Current 1.5A5 V1.5 A7.5 W
Type-C Current 3A5 V3 A15 W
PD 2.0 / 3.0 SPR (5/9/15/20)5, 9, 15, 20 V3 / 5 Aup to 100 W
PD 3.1 EPR28, 36, 48 V5 Aup to 240 W
PD 3.1 AVS (Adjustable)15 – 21 V fine-grained5 Aup to 100 W

HDMI Generations

HDMIYearMax BandwidthNotable
1.020024.95 Gbps (TMDS)1080p60
1.3200610.2 GbpsDeep color, lipsync
1.4200910.2 Gbps4K30, HEC ethernet channel, ARC
2.0201318 Gbps4K60, HDR base
2.0b201618 GbpsHDR10, HLG
2.1201748 Gbps (FRL)4K120, 8K60, VRR, eARC

Ethernet Cable Categories

CategoryMax SpeedBandwidthMax Length
Cat 5100 Mbps100 MHz100 m (legacy)
Cat 5e1 Gbps100 MHz100 m
Cat 61 Gbps (10 Gbps to 55 m)250 MHz100 m
Cat 6a10 Gbps500 MHz100 m
Cat 710 Gbps600 MHz100 m (TERA connector, rare)
Cat 825/40 Gbps2000 MHz30 m (datacenter only)

Power over Ethernet (PoE)

PoE SpecIEEEPower at PSEPower at PD
PoE (Type 1)802.3af (2003)15.4 W12.95 W
PoE+ (Type 2)802.3at (2009)30 W25.5 W
PoE++ Type 3802.3bt (2018)60 W51 W
PoE++ Type 4802.3bt (2018)90 W71.3 W

Coax Reference

TypeZ₀Use
RG-5850 ΩLab/test, ham HF mobile; flexible 5 mm
RG-5975 ΩCATV legacy, security cameras
RG-675 ΩModern CATV, satellite feedline
RG-174 / RG-178 / RG-31650 ΩThin flexible RF; antenna pigtails; jumpers
RG-213 / RG-850 ΩHF/VHF feedline; lower loss than RG-58
LMR-240 / LMR-40050 ΩLow-loss flexible; the modern outdoor standard
Heliax (LDF-series)50 ΩBroadcast / cellular tower feedline; semi-rigid
Semi-rigid (UT-141, etc.)50 ΩLab / test; soldered to connectors; phase-stable

Ribbon, FFC, and FPC

TypePitchWhere Used
IDC ribbon (rainbow)1.27 mm (0.05")20 / 26 / 34 / 40 / 50-pin internal cables; floppy / IDE / SCSI legacy
IDC fine-pitch0.635 mm (0.025")Logic analyzer probes, dense board-to-board
FFC (flat flex)1.0 / 0.5 / 0.3 mmLCD panel to mainboard; printer heads; consumer electronics
FPC (flex circuit)variesFolded inside enclosures; Pi camera ribbon
Twist-flat (rounded ribbon)variesTreated for better EMC; used in older minicomputers

Shielding Approaches

StyleCoverageNotes
Foil (aluminum / mylar)~ 100% opticalCheap; good at HF, weak at LF; not flex-friendly
Braided shield~ 85 – 95%Flexible; durable; lower HF performance than foil
Foil + braid combo~ 100%The audiophile and pro-audio standard
Double-braided~ 95%Phase-stable measurement cable
Drain wireConnects foil to GND at one or both endsSolder this to the connector shell, not the conductor
Cable failures dominate field returns Across consumer and industrial gear, the cable and its connectors are usually the first thing to break. Strain relief at exit points, properly torqued screw terminals, cable that matches the bend cycles it will see, and connectors rated for the actual mating count: these are not the glamorous parts of a design but they determine whether the product returns. The chip on the PCB may be rated for 100,000 hours; the USB cable plugged into it survives 2,000 cycles before the contacts wear out.