The letter at the end of a PIC32MX part number is a package code, and on the 150F128C it selects the one package in the small-density range that gives labs trouble: 36-pin VTLA, a 5-by-5 millimeter QFN variant with a pin count that standard adapter plates skip. The B version drops into 28-pin footprints, the D version into 44. The C version sits in between, and almost nobody’s programming fixture was built for it. Half of the logistics of a recovery job on this part is solved before the first read.
Same Silicon, Different Rails
Inside the package there is no mystery: 128 KB of program flash from 0x1D000000 to 0x1D01FFFF, 3 KB of boot flash from 0x1FC00000 to 0x1FC00BFF holding startup code and the DEVCFG words, 32 KB of SRAM, the standard 1XX peripheral set with no USB. The M4K core runs to 50 MHz. Electrical behavior, flash geometry — 256-word pages, 32-word program rows — and protection mechanics are identical to the B and D siblings. The 150F128B page covers the code-protect bit in detail; nothing about it changes here.
What changes is contact. QFN parts present their pads underneath, and the 36-pin variant has no through-hole representation at all. Reading the part usually means one of three things: a dedicated 36-pin QFN socket, an adapter board, or desoldering the component and mounting it dead-bug on a fixture. Each option has a failure mode — pad damage from repeated insertion, misalignment on hand-placed adapters, thermal stress from a second desolder — and the choice is made per board, not per family. A part that will be returned to service gets the gentlest fixture; a sacrificial donor from production stock can take the fast route.
The C-D Identification Trap
Because B, C and D all carry the same 128 KB of flash, the package letter looks like an afterthought — until a fixture is built for the wrong one. The reverse error is more expensive: BOMs written for the C version filled with D-version purchases, boards reworked with whichever part was in stock, and archives that record the package nobody actually shipped. The device ID settles the density question but not the package question, so the physical part — its lead count and its marking — has to be in the loop before the read is quoted. The FAQ page lists what a quote needs; the package letter is at the top.
Reading In Place
Before any socket discussion, the in-circuit option deserves its chance. The programming interface is two wires — a clock and a data line — plus power and reset, and on boards that expose them to a connector, the part reads without a drop of solder. The two-wire protocol converts internally to the four-wire JTAG machinery, so the same fixture family serves both debug and recovery. Boards that lack the connector take the desolder route, and there the 36-pin VTLA’s pad pitch decides how gentle the fixture must be. Both routes end at the same verified capture; the choice is about the board’s fate, not the part’s.
Cost enters the picture the same way: an in-circuit read that fails on a board that must keep running wastes nothing but time, while a desoldered part is committed. Estimating the odds from the configuration words first — protection state, oscillator setup, debug channel — keeps that decision informed. The FAQ page answers the standard questions about boards that cannot stop running.
What The Read Delivers
Three regions, verified independently: the 128 KB program array, the 3 KB boot bank, and the four DEVCFG words in the boot partition’s last page. The configuration words matter more than their size suggests — they hold the oscillator and PLL setup, the watchdog policy, the debug channel selection and the code-protect bit, which sits in DEVCFG0 as bit 28, active low. A programmed zero there blocks external reads of both partitions; the only documented exit is a chip erase, which destroys the image. Reading the configuration words first, before any attempt on the arrays, is what turns an unknown part into a known job.
Two independent captures of each region, compared word for word, plus a device ID read to confirm the die. Erased words read all ones, and the boundary between live code and padding is mapped so a rebuild knows the used fraction of the array. The reading process page describes the capture mechanics; the chip extraction analysis service adds interpretation when the customer needs behavior, not just a HEX.
Why Package Literacy Pays
A recovery quoted for the wrong package burns a week on fixtures that will never be used. The 150F128C is not exotic silicon — it is the most ordinary image in the family wearing the least ordinary package. Getting the logistics right on day one, from the marking to the socket, is the entire difference between a routine job and a stalled one. Send the marking, the lead count, and whether the part must survive the read; the rest is standard.
The other parts in this branch are indexed on the PIC32MX family page with their flash sizes and packages.