PCBA IC Programming & Firmware Flashing:
In-Circuit vs Offline — How to Specify Programming on Your Assembly Order

Programmed ICs can add weeks to your schedule if you leave the method unspecified — here is how in-circuit and offline programming differ, and what to write into your PCBA order.

Every product that contains a microcontroller, flash memory, EEPROM, or one-time-programmable (OTP) device eventually needs its firmware written — and where that happens in the supply chain determines your cost, your schedule, and your security exposure. Programming at the bare-board stage, at the assembled-board stage, or at the box-build stage are three different operations with different yields, different test coverage, and different failure modes. For a procurement manager, the question is not "can the factory program ICs" — almost every PCBA assembler can — but "how, when, and with what controls."

At Huaxing PCBA, firmware flashing is a standard production service across our 8 SMT lines, with dedicated programming stations, controlled firmware handling, and program-verify coverage on every assembled unit. This guide explains the two main methods, the device families we program daily, the security and traceability controls that protect your firmware, and the five specifications that belong on every order that includes programming.

Photorealistic macro photo of a PCBA programming station with a probe fixture touching a microcontroller on an assembled board

In-Circuit vs Offline Programming — The Core Decision

There are two fundamentally different ways to get firmware into a device, and each fits a different production scenario. The choice affects yield, cycle time, and how many boards you can recover when a program fails.

1

In-Circuit Programming (ICP) — After Assembly, Through Test Points

ICP writes firmware through the board's own test points or a boundary-scan chain (JTAG/SWD) after reflow, using a flying-probe or bed-of-nails style fixture. Its big advantage: the device is programmed in its final circuit, so the programmer can also power the rail and verify the surrounding power and clock circuitry at the same time. Yield issues are recoverable — a failed program is simply retried before the board moves on. ICP integrates naturally into our flying probe and functional test flow, so programming and test share one fixture pass.

2

Offline / Gang Programming — Before Assembly, on the Component

Offline programming writes the firmware to bare components — usually QFN, BGA, or tray-loaded flash parts — before they are placed on the board, using a socketed gang programmer. This is the right choice when the MCU or memory has no accessible programming pins after assembly, when you want every device verified before it commits to a board, or when you are programming hundreds of identical parts and want maximum throughput. The trade-off: the programmed state is set before solder, so any later corruption requires a rework cycle rather than a simple retry — see our rework and repair guide for how that is handled.

CriteriaIn-Circuit (ICP)Offline / Gang
When programming happensAfter reflow, on assembled boardBefore placement, on bare component
Typical devicesMCU, SoC, CPLD, SPI flash with test pointsQFN/BGA MCU, tray flash, EEPROM, OTP
Failed-program recoveryRetry in fixture (fast)Rework or discard component
Throughput for high volumeModerate — one board at a timeHigh — 8-32 sockets per gang unit
Circuits verified during programPower, clock, reset, IO pinsComponent only
Best fitPrototype, low-medium volume, test-rich boardsHigh volume, no-pin-access devices

Key Takeaway: Many orders combine both — gang-program the high-pin-count BGA flash offline for throughput, then use ICP for the on-board MCU during functional test. Specifying "program during test" without naming the method often produces the slower, more expensive of the two flows.

Device Families We Program — and the Formats That Keep Them Straight

Programming support is not uniform across assemblers. Before you qualify a factory for a firmware-bearing product, confirm the device families and file formats they handle natively. At Huaxing PCBA the daily workload covers the following categories, and our engineering team validates each new device against the programmer's device library before production.

3

Microcontrollers — Arm Cortex, RISC-V, 8051, PIC and AVR Families

MCU programming is the most common request. We support SWD and JTAG debug interfaces for Arm Cortex-M and Cortex-A parts, plus vendor-specific protocols for STM32, NXP, Microchip, Renesas, ESP32 and domestic Chinese MCU vendors. Firmware is delivered as hex, binary, or ELF; we verify the checksum after programming and log the result per serial number.

4

Serial Flash, EEPROM, and OTP Devices

NOR flash (SPI/QSPI), serial EEPROM (I2C/SPI), and OTP parts are programmed offline in gang sockets for high volume or in-circuit where the design exposes the bus. For data files — calibration tables, MAC addresses, serial numbers — we support auto-incrementing serialization, so each unit gets a unique value without a separate file per unit.

5

CPLD / FPGA Configuration Devices

Configuration PROMs and CPLDs follow the same gang-program flow as flash. For FPGA designs, the configuration bitstream is usually loaded from an external flash at power-up, so the practical work is programming that flash — which falls under the serial flash category above.

Macro photograph of a gang programmer with multiple QFN packages seated in sockets Photorealistic photo of an automated test fixture verifying programmed microcontroller firmware on an assembled board

Firmware Security — What Happens to Your Hex File at the Factory

Firmware is intellectual property, and the moment it leaves your server it becomes a supply-chain security question. A serious assembler treats your hex file the way it treats a customer's proprietary BOM: access-controlled, logged, and destroyed on request. These are the controls we operate, and the ones you should ask any candidate factory about.

6

Controlled Firmware Reception and Storage

Firmware is received through a controlled channel (encrypted transfer or the project portal), stored on access-controlled drives, and never placed in shared production folders. Access is limited to the programming engineering team, and every copy event is logged. This complements the broader IP protection measures you should have in your contract manufacturing agreement.

7

Read-Back Protection and Post-Program Locks

For MCUs that support it, we enable the vendor's read-out protection (RDP) level after programming as specified in your order — this prevents firmware extraction from a production unit. Note that locking is irreversible for some families, so we confirm the requirement in writing before applying it, and we keep a small unlocked sample batch if your team needs post-lock debugging.

8

Firmware Disposal at Project End

When the order completes, we delete project firmware from programming stations and return or destroy delivered media per your instruction. A data-destruction certificate is available for regulated industries — the same discipline documented in our lot traceability and IPC-1782 guide for serialized records.

Program-Verify Coverage — the Quality Metric That Matters

Programming is not a "fire and forget" operation: every programmed device should be verified by reading it back and comparing against the source image. The verification policy is where quality differences between assemblers show up. Ask for the program-verify rate on the quality report — some factories verify only a sample; we verify 100% of programmed units, then confirm the checksum again at functional test where the design allows.

Factory Reality: On a typical 5,000-unit run with 100% program-verify, we see 0.1-0.4% first-pass program failures — most caused by marginal sockets or contact issues, virtually all recovered on retry. If a supplier reports zero program failures ever, the more likely explanation is that they are not verifying everything.

The Five Specifications That Belong on Every Programming Order

Programming failures are almost always specification failures — the firmware version, the method, or the verify requirement was never written down. Add these five items to your purchase order or assembly notes, and the programming step becomes predictable.

1

Exact Firmware File, Version, and Checksum

Name the file, the build version, and the SHA-256 checksum. A checksum mismatch at receipt is the cheapest failure to catch — it happens before a single device is programmed. Also state who approves a version change and how it is communicated (change order, not email).

2

Programming Method — ICP, Offline, or Both

Specify in-circuit, offline/gang, or a combination (e.g., "gang-program U3 flash offline; ICP program MCU during functional test"). If you don't care, say "assembler's choice" — but know that you are delegating a cost and yield decision.

3

Serialization Rules

If units need unique serial numbers, MAC addresses, or calibration values: state the format, the start value, the increment, and where the value is also written (label, barcode, or both). We support auto-increment serialization with a per-lot report.

4

Verify and Test Requirements

Require 100% program-verify with read-back comparison, and state whether programming is followed by functional test. Tie the programming step into your test strategy so a program failure is caught at the earliest stage — ideally before the board is conformal-coated or potted.

5

Security and Disposal Terms

Reference your NDA, require read-out protection where supported, and specify firmware deletion at project end. Make the security controls part of the order — not a verbal assumption — so both sides are auditable.

Programming and the Rest of the Assembly Flow

Programming interacts with other production steps in ways that are easy to miss. Boards that will be conformal coated or potted must be programmed before the coating step — a coated programming pad is a rework. Boards with burn-in or ESS requirements should be programmed before burn-in so the stress test exercises real firmware. And for box-build programs, the final system-level configuration often happens after integration — make sure the order distinguishes board-level programming from system-level flashing so the work is not done twice.

At Huaxing PCBA, IC programming is offered as a standard option on turnkey and consignment programs alike — see our turnkey assembly overview for how programming, test, and box-build combine into one responsible supplier. Send us your BOM and firmware plan and our engineering team will confirm device support, programming method, and program-verify coverage before you commit to a schedule.

Add Programming to Your Assembly Order

Send your firmware files and BOM — our team will confirm device support, recommend the programming method, and quote program-verify coverage with your assembly. Free DFM and programming review within 24 hours.