Extracting firmware from microcontrollers requires the right tools, from basic USB programmers to professional debug probes and laboratory equipment. This guide helps you select an appropriate combination for the target MCU family, interface, physical access, recovery objective, and available budget.
Key Takeaways
- Debug probes (JTAG/SWD) are essential for ARM Cortex-M (STM32, NXP, Nordic) firmware extraction — SEGGER J-Link ($500–$5,000) offers the best reliability; ST-LINK V3 ($30–$80) is budget-friendly for STM32-only
- ISP programmers (AVRISP, PICkit, USBasp) handle 8-bit AVR and PIC microcontrollers — USBasp ($10–$20) works for most AVR; PICkit 4 ($80) covers all PIC families
- High-voltage programmers (HVPP/HVSP for AVR) bypass lock bits on classic ATmega/ATtiny — AVR Dragon ($50 used) or DIY setups required
- Glitching platforms (ChipWhisperer Lite $350, Pro $1,500) enable voltage/clock fault injection for bypassing code protection on ARM and 8-bit MCUs
- Chip-off equipment (hot air rework $100–$500, decapsulation lab $5,000+) required for physical extraction when all software methods fail
Introduction: Why Tool Selection Matters
Firmware extraction is not a one-size-fits-all process. The tools required depend on:
- Target MCU family: ARM Cortex-M uses SWD/JTAG; AVR uses ISP; PIC uses ICSP; NXP Kinetis uses SWD with FSEC considerations
- Protection level: Unsecured devices need basic debuggers; RDP/lock-protected devices need advanced techniques (glitching, chip-off)
- Physical access: In-circuit extraction via debug headers vs. removed chips requiring specialized fixtures
- Budget: Hobbyist ($50–$200), professional ($500–$2,000), lab-grade ($5,000+)
This guide is organized by tool category, with specific model recommendations for each MCU family and use case. For context on what's possible with each MCU family, see our firmware recovery guides: STM32, PIC, AVR, NXP.

Debug Probes: JTAG/SWD for ARM Cortex-M
Debug probes connect to ARM Cortex-M microcontrollers via JTAG (4-wire + TCK/TMS/TDI/TDO) or SWD (2-wire: SWDIO/SWCLK). They allow:
- Flash memory read/write
- RAM inspection
- Breakpoint debugging
- Live firmware dumping (if RDP/security disabled)
SEGGER J-Link Family
Overview: Industry-standard debug probes with excellent ARM Cortex support, fast flash programming, and robust drivers.
| Model | Speed | Voltage | Targets | Price | Best For |
|---|---|---|---|---|---|
| J-Link EDU | 15 MHz SWD | 1.2–5V | Educational use only | $60 | Hobbyists, students (non-commercial) |
| J-Link BASE Compact | 15 MHz SWD | 1.2–5V | All ARM Cortex | $400 | Professional single-target use |
| J-Link PLUS | 15 MHz SWD | 1.2–5V | All ARM Cortex | $500 | General professional use |
| J-Link ULTRA+ | 50 MHz SWD | 1.2–5V | All ARM Cortex | $1,300 | High-speed production |
| J-Link PRO | 50 MHz SWD | 1.2–5V | All ARM + RISC-V | $5,000 | Lab-grade, all features |
Supported MCU families:
- STM32 (all series: F0/F1/F2/F3/F4/F7/H7/L0/L1/L4/G0/G4/WB/WL)
- NXP Kinetis (K/L/E/V series)
- NXP i.MX RT (all series)
- Nordic nRF52/nRF53/nRF91
- Silicon Labs EFM32/EFR32
- Texas Instruments CC26xx/CC13xx
- Cypress PSoC (ARM-based)
- Infineon XMC
- Microchip SAM (ARM-based)
- Renesas RA/RZ
Software support:
- J-Link Commander (GUI + CLI)
- J-Link GDB Server (for GDB debugging)
- Ozone debugger (SEGGER's IDE)
- Supported by: Keil MDK, IAR EWARM, MCUXpresso, Embedded Studio
Why choose J-Link:
- Most reliable: Rarely fails to connect
- Fast: 15 MHz SWD on BASE/PLUS, 50 MHz on ULTRA+/PRO
- Best documentation: Extensive wiki, forum support
- Script support: J-Link Commander accepts scripts for automated extraction
Limitations:
- Price: More expensive than ST-LINK or clones
- Educational license: J-Link EDU restricted to non-commercial use (enforced via license agreement, not hardware)
Firmware extraction workflow with J-Link:
# Connect to STM32F407
JLink.exe
J-Link> connect
Device> STM32F407VG
Interface> SWD
Speed> 4000 kHz
J-Link> savebin firmware.bin 0x08000000 0x80000
# Saves 512 KB from flash start address
Recommendation:
- Hobbyist (non-commercial): J-Link EDU ($60) — best value if license terms acceptable
- Professional: J-Link PLUS ($500) — industry standard
- Lab/Production: J-Link ULTRA+ ($1,300) or PRO ($5,000) for speed and advanced features
ST-LINK Family (STMicroelectronics)
Overview: Official STM32 debug probes, optimized for STM32 microcontrollers only.
| Model | Speed | Voltage | Targets | Price | Best For |
|---|---|---|---|---|---|
| ST-LINK V2 (official) | 4 MHz SWD | 3.3V only | STM32, STM8 | $25 | Budget STM32 debugging |
| ST-LINK V2 (clone) | 4 MHz SWD | 3.3V only | STM32, STM8 | $10 | Hobbyist (risky quality) |
| ST-LINK V3-SET | 24 MHz SWD | 1.65–3.6V | STM32, STM8 | $30 | Best value for STM32 |
| ST-LINK V3-MINIE | 24 MHz SWD | 1.65–3.6V | STM32 only | $12 | Compact, budget |
| ST-LINK V3-PWR | 24 MHz SWD | 1.65–3.6V | STM32 + power measurement | $80 | Power profiling |
Supported MCU families:
- STM32 (all series)
- STM8 (8-bit, less common)
- NOT SUPPORTED: NXP, Nordic, Silicon Labs, TI, etc. (ST-LINK is STM32-only)
Software support:
- STM32CubeProgrammer (official GUI tool, excellent for firmware extraction)
- STM32CubeIDE (ST's Eclipse-based IDE)
- OpenOCD (open-source, supports ST-LINK as interface)
- GDB server mode (for command-line debugging)
Why choose ST-LINK:
- Budget-friendly: V3-SET ($30) offers 24 MHz SWD at 1/16th the price of J-Link PLUS
- STM32CubeProgrammer: Easy GUI for reading flash, option bytes, OTP
- Compact: V3-MINIE is tiny (suitable for portable kits)
Limitations:
- STM32 only: Cannot debug NXP, Nordic, or other ARM vendors
- Clone quality: V2 clones from China often have unreliable connections (official V3 recommended)
- Slower than J-Link: 24 MHz max (vs 50 MHz on J-Link ULTRA+)
Firmware extraction workflow with ST-LINK:
# Using STM32CubeProgrammer CLI
STM32_Programmer_CLI.exe -c port=SWD -r 0x08000000 0x80000 firmware.bin
# Reads 512 KB from STM32F4 flash
Recommendation:
- STM32-only use: ST-LINK V3-SET ($30) — best value
- Multi-vendor (STM32 + NXP/Nordic/etc.): J-Link PLUS ($500) — avoid ST-LINK
OpenOCD-Compatible Adapters
Overview: OpenOCD (Open On-Chip Debugger) is an open-source tool supporting many debug adapters. Budget adapters often rely on OpenOCD for software support.
| Adapter | Chipset | Speed | Price | Notes |
|---|---|---|---|---|
| CMSIS-DAP (DAPLink) | ARM CMSIS-DAP | 10 MHz | $15–$30 | Generic ARM adapter, good compatibility |
| Black Magic Probe | STM32F4-based | 10 MHz | $70 | Standalone GDB server (no PC software needed) |
| FT2232H breakout | FTDI FT2232H | 30 MHz | $25 | DIY adapter, high speed, requires configuration |
| Bus Pirate | PIC24 | 1 MHz | $30 | Multi-protocol (JTAG/SWD/SPI/I2C), very slow |
Why choose OpenOCD adapters:
- Cross-platform: Linux/Mac/Windows support (J-Link is primarily Windows-focused, though Linux support exists)
- Open-source: Full control over protocol implementation
- Budget: CMSIS-DAP at $15 is cheapest SWD option
Limitations:
- Speed: Slower than J-Link/ST-LINK V3
- Reliability: Connection issues more common (depends on adapter quality)
- Documentation: Less polished than commercial tools
Firmware extraction workflow with OpenOCD:
# Connect to STM32F407 via CMSIS-DAP
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg
# In another terminal:
telnet localhost 4444
> reset halt
> flash read_bank 0 firmware.bin 0 0x80000
Recommendation:
- Linux users: CMSIS-DAP ($15–$30) for budget option
- Embedded GDB server: Black Magic Probe ($70) for field work without PC
- High-speed DIY: FT2232H ($25) if you can configure OpenOCD scripts
P&E Micro Multilink (NXP-focused)
Overview: Debug probes optimized for NXP Kinetis and i.MX RT.
| Model | Speed | Targets | Price |
|---|---|---|---|
| Multilink Universal | 10 MHz | Kinetis, i.MX RT, S32, LPC | $450 |
| Multilink FX | 30 MHz | Same as Universal | $650 |
Why choose P&E Multilink:
- NXP optimization: Best for Kinetis flash security bypass attempts
- MCUXpresso integration: Seamless with NXP's official IDE
Limitations:
- NXP-focused: Not ideal for STM32, Nordic, etc.
- Price: More expensive than ST-LINK, similar to J-Link
Recommendation: Only if working exclusively with NXP. Otherwise, J-Link PLUS supports NXP equally well.
ISP Programmers: AVR and PIC (8-bit Microcontrollers)
ISP (In-System Programming) refers to programming via the native MCU protocol (not JTAG/SWD). AVR uses SPI-based ISP; PIC uses ICSP (In-Circuit Serial Programming).
AVR ISP Programmers
| Programmer | Speed | Voltage | Price | Software | Best For |
|---|---|---|---|---|---|
| AVRISP mkII (official) | 8 MHz | 1.8–5.5V | $40 (discontinued, eBay) | avrdude, AVR Studio | Classic choice (hard to find) |
| USBasp | 375 kHz | 3.3V/5V | $10–$20 | avrdude | Best budget option |
| Arduino as ISP | ~200 kHz | 5V | $5 (Arduino Uno) | avrdude, Arduino IDE | Emergency/hobbyist |
| Atmel-ICE | 8 MHz | 1.62–5.5V | $130 | Microchip Studio | Professional (AVR + SAM ARM) |
Supported MCU families:
- Classic AVR: ATmega8/16/32/48/88/168/328/640/1280/2560, ATtiny13/25/45/85/24/44/84
- XMEGA: ATxmega (via PDI protocol)
- Modern AVR: megaAVR 0/1-series, tinyAVR 0/1/2-series (via UPDI protocol — requires UPDI programmer)
Why choose USBasp:
- Cheapest: $10–$20 from China (clones work fine for ISP)
- avrdude support: Works perfectly with avrdude (industry-standard AVR tool)
- Sufficient speed: 375 kHz is slow but adequate for 32 KB ATmega328P (8 seconds)
Firmware extraction workflow with USBasp:
# Read ATmega328P flash (Arduino Uno chip)
avrdude -c usbasp -p m328p -U flash:r:firmware.hex:i
# Output: firmware.hex (Intel HEX format)
Limitations:
- No high-voltage mode: Cannot bypass lock bits (requires separate HVPP/HVSP programmer)
- Modern AVR (UPDI): USBasp does NOT support UPDI (megaAVR 0-series, tinyAVR 0/1/2-series need SerialUPDI or Atmel-ICE)
Recommendation:
- Budget AVR work: USBasp ($10–$20)
- Professional: Atmel-ICE ($130) for AVR + ARM SAM support
- Modern AVR (UPDI): SerialUPDI adapter ($5 DIY) or Atmel-ICE
PIC ICSP Programmers
| Programmer | Supported Families | Voltage | Price | Software |
|---|---|---|---|---|
| PICkit 3 (discontinued) | PIC10/12/16/18/24/32, dsPIC | 2.5–5.5V | $50 (used) | MPLAB X IPE |
| PICkit 4 | All PIC families | 1.8–5.5V | $80 | MPLAB X IPE |
| MPLAB ICD 4 | All PIC + debugging | 1.8–5.5V | $250 | MPLAB X IDE |
| MPLAB SNAP | PIC + debugging | 1.8–5.5V | $30 | MPLAB X IPE |
Why choose PICkit 4:
- All PIC families: PIC10F/12F/16F/18F/24F/dsPIC30/33/PIC32MX/MZ/MK
- Fast: 10 MHz ICSP (vs 5 MHz on PICkit 3)
- Official: Microchip support, regular firmware updates
Firmware extraction workflow with PICkit 4:
# Using MPLAB X IPE (GUI-based)
1. Connect PICkit 4 to PIC16F877A (ICSP: PGC/PGD/VPP/VDD/VSS)
2. Open MPLAB X IPE
3. Select PICkit 4 as tool
4. Click "Read" to dump flash
5. Export to HEX file
Limitations:
- CP bit protection: If PIC has code protection (CP) enabled, ICSP read returns 0x00 (cannot extract firmware without CP bypass via glitching or chip-off)
Recommendation:
- All PIC work: PICkit 4 ($80) — best value
- Budget: MPLAB SNAP ($30) — reduced features but covers most PICs
- Production/debugging: MPLAB ICD 4 ($250) for full debugging capabilities
High-Voltage Programmers (AVR HVPP/HVSP)
Classic AVR (ATmega/ATtiny) lock bits can be bypassed via high-voltage programming (12V on RESET pin). This requires specialized hardware.
AVR High-Voltage Programming Options
| Tool | Protocol | Targets | Price | Availability |
|---|---|---|---|---|
| AVR Dragon | HVPP, HVSP, ISP, JTAG | ATmega (HVPP), ATtiny (HVSP) | $50 (discontinued, eBay) | Hard to find |
| STK500 | HVPP, HVSP, ISP | ATmega, ATtiny | $100 (discontinued, eBay) | Hard to find |
| STK600 | HVPP, HVSP, ISP, PDI | ATmega, ATtiny, XMEGA | $200 (discontinued, eBay) | Hard to find |
| DIY HVPP/HVSP | HVPP or HVSP | ATmega or ATtiny | $20–$50 (parts) | Build yourself |
Why HVPP/HVSP matters:
- Bypasses lock bits: Can read ATmega/ATtiny flash even with lock bits set (Mode 3)
- Success rate: 70–80% on classic ATmega (pre-2010 dies), 60–70% on ATtiny
DIY HVPP Setup:
- Arduino Mega 2560 (provides 16-bit parallel bus for HVPP)
- 12V power supply (for RESET pin)
- ZIF socket (for chip insertion)
- Arduino sketch implementing HVPP protocol
Recommendation:
- If you can find AVR Dragon ($50 used): Buy it (easiest option)
- Cannot find Dragon: Build DIY HVPP/HVSP (guides available on AVRfreaks forum)
- Occasional use: Outsource to firmware recovery service (not worth building)
Glitching Platforms (Voltage/Clock Fault Injection)
Glitching induces hardware faults (voltage drops, clock glitches) to bypass code protection. This is an advanced technique.
ChipWhisperer Family
| Model | Glitching | Capture | Targets | Price |
|---|---|---|---|---|
| ChipWhisperer Lite | Voltage, clock | Power analysis | ARM Cortex-M, AVR, PIC | $350 |
| ChipWhisperer Pro | Voltage, clock | High-speed capture | ARM, AVR, PIC, FPGA | $1,500 |
| ChipWhisperer Husky | Voltage, clock, EM | High-speed capture | All targets | $800 |
What ChipWhisperer does:
- Voltage glitching: Momentarily drops VCC (e.g., 3.3V → 1.8V for 20–50 ns) during boot or security check
- Clock glitching: Injects extra clock cycles or removes cycles to cause instruction skips
- Power analysis: Captures power consumption traces for side-channel attacks (DPA, CPA)
Success rate for firmware extraction:
- STM32F1 RDP bypass: 40–60%
- STM32F4 RDP bypass: 30–50%
- AVR lock bit bypass: 20–40%
- PIC CP bypass: 20–50%
- NXP Kinetis FSEC bypass: 30–50%
Why choose ChipWhisperer:
- Educational: Excellent documentation, tutorials, active community
- Scriptable: Python-based (ChipWhisperer Python API)
- Research: Used in academic papers, industry research
Limitations:
- Learning curve: Requires understanding of glitching theory, timing parameters
- Success not guaranteed: Glitching success depends on die revision, temperature, luck
- Time-consuming: May require hundreds or thousands of attempts
Recommendation:
- Learning/Research: ChipWhisperer Lite ($350) — best introduction to glitching
- Professional: ChipWhisperer Pro ($1,500) or Husky ($800) for higher success rates
- Commercial recovery: Build custom glitching hardware (ChipWhisperer too slow for production)
DIY Glitching Hardware
Components:
- MOSFET or transistor (for voltage glitching)
- FPGA or microcontroller (for precise timing control)
- Oscilloscope (for monitoring glitch timing)
- Target board with exposed VCC and CLK lines
Cost: $100–$300 (if you have oscilloscope already)
Why DIY:
- Faster: Custom FPGA can glitch at higher rates than ChipWhisperer
- Tailored: Optimize for specific MCU family
Recommendation: Only for experts with FPGA/electronics experience. ChipWhisperer is better for most users.
Chip-Off Equipment (Physical Extraction)
When all software methods fail, physical chip removal and decapsulation allow direct die access.
Hot Air Rework Stations (Chip Removal)
| Model | Temp Range | Airflow | Price | Best For |
|---|---|---|---|---|
| Aoyue 968A+ | 100–480°C | Adjustable | $100 | Budget hobbyist |
| YIHUA 959D | 100–480°C | Digital control | $150 | Mid-range |
| Hakko FR-810B | 100–550°C | Precise control | $1,500 | Professional |
| Pace ADS200 | 150–450°C | High-end | $3,000 | Production |
Why chip removal is necessary:
- HVPP/HVSP: Requires chip in ZIF socket (not in-circuit)
- Chip-off flash read: Read QSPI/SPI flash chips directly (i.MX RT, ESP32)
- IC decapsulation: Must remove chip from PCB before acid decapsulation
Chip removal process:
- Apply flux around chip package
- Heat chip with hot air (typically 350–400°C for lead-free solder)
- Gently lift chip with tweezers when solder melts
- Clean pads with solder wick
Recommendation:
- Occasional use: YIHUA 959D ($150) — good value
- Frequent use: Hakko FR-810B ($1,500) — reliable, precise
IC Decapsulation Equipment
Chemical decapsulation (for plastic packages):
- Fuming nitric acid (concentrated HNO3): $50/500mL (requires lab license, very dangerous)
- Fume hood: $2,000–$10,000 (required for safety)
- Polishing equipment: $500–$2,000 (for die surface preparation)
Plasma etching (for QFN/ceramic packages):
- Plasma etcher: $5,000–$20,000
- Safer than acid but requires vacuum chamber
Microprobing (for reading flash cells):
- Probe station: $10,000–$50,000
- Microscope: $5,000–$20,000
- Micromanipulators: $3,000–$10,000
Total cost for decapsulation lab: $20,000–$100,000
Recommendation: Unless you're running a professional firmware recovery service, outsource chip-off work. The equipment cost and safety requirements make DIY impractical.
Software Tools
avrdude (AVR Programming)
What it does: Programs AVR microcontrollers via ISP, JTAG, HVPP, HVSP
Supported hardware: USBasp, AVRISP mkII, Arduino as ISP, AVR Dragon, STK500, STK600
Installation:
# Windows (via WinAVR or Arduino IDE)
# Linux
sudo apt install avrdude
Firmware extraction example:
avrdude -c usbasp -p m328p -U flash:r:firmware.hex:i
avrdude -c usbasp -p m328p -U eeprom:r:eeprom.hex:i
Why use avrdude: Industry standard for AVR, excellent documentation, works on all platforms
OpenOCD (ARM + RISC-V Debugging)
What it does: Open-source debug tool for JTAG/SWD
Supported hardware: CMSIS-DAP, ST-LINK, J-Link (via separate plugin), FT2232H, Bus Pirate
Installation:
# Windows: Download from openocd.org
# Linux
sudo apt install openocd
Firmware extraction example:
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg
# In telnet session:
reset halt
flash read_bank 0 firmware.bin
Why use OpenOCD: Open-source, cross-platform, supports many adapters
STM32CubeProgrammer (STM32 Official Tool)
What it does: Programs and reads STM32 via SWD, UART, USB DFU
Supported hardware: ST-LINK (all versions), J-Link (via plugin)
Firmware extraction (GUI):
- Connect ST-LINK to STM32
- Click "Connect"
- Click "Read" tab
- Enter address 0x08000000, size 0x80000 (512 KB)
- Click "Read" → Save to file
Why use STM32CubeProgrammer: Easiest tool for STM32 (GUI + CLI), reads option bytes, OTP
MPLAB X IPE (PIC Official Tool)
What it does: Programs and reads PIC via ICSP
Supported hardware: PICkit 3/4, MPLAB SNAP, MPLAB ICD 4
Firmware extraction (GUI):
- Connect PICkit 4 to PIC
- Select device (e.g., PIC16F877A)
- Click "Read" → Saves to HEX file
Why use MPLAB X IPE: Official Microchip tool, works with all PIC families
Tool Recommendations by Use Case
Hobbyist / Student (Budget: $50–$200)
Goal: Learn firmware extraction, work with Arduino/STM32 hobby projects
Recommended tools:
- AVR: USBasp ($10–$20)
- STM32: ST-LINK V3-SET ($30) or J-Link EDU ($60, non-commercial only)
- PIC: MPLAB SNAP ($30)
- Total: $70–$110
What you can do:
- Read unsecured AVR (Arduino), STM32, PIC firmware
- Program development boards
- Learn debugging basics
What you CANNOT do:
- Bypass RDP/lock bits (need glitching or advanced tools)
- High-voltage programming (AVR lock bit bypass)
- Work with NXP, Nordic, or other non-STM32 ARM
Professional Firmware Engineer (Budget: $500–$2,000)
Goal: Develop and debug embedded systems across multiple MCU families
Recommended tools:
- ARM (all vendors): SEGGER J-Link PLUS ($500)
- AVR: Atmel-ICE ($130)
- PIC: PICkit 4 ($80)
- Chip removal: YIHUA 959D hot air station ($150)
- Total: $860
What you can do:
- Debug and extract firmware from all major MCU families
- Fast programming and debugging (15 MHz SWD with J-Link)
- Remove chips for HVPP or external flash reading
What you CANNOT do:
- Glitching (need ChipWhisperer)
- IC decapsulation (need lab equipment)
Firmware Recovery Specialist (Budget: $5,000–$20,000)
Goal: Professional firmware recovery service (RDP bypass, lock bit bypass, chip-off)
Recommended tools:
- ARM debugging: SEGGER J-Link PRO ($5,000)
- Glitching: ChipWhisperer Pro ($1,500) or custom FPGA glitcher ($2,000)
- AVR HVPP: AVR Dragon ($50 used) or DIY setup ($50)
- Chip removal: Hakko FR-810B ($1,500)
- Microscope: Stereo microscope with camera ($1,000)
- Flash readers: Universal programmer (TL866II Plus $60, Xgecu T56 $200)
- Oscilloscope: Rigol DS1054Z ($400)
- Power supply: Adjustable lab PSU ($200)
- Total: $11,000–$15,000 (excluding decapsulation lab)
What you can do:
- Bypass RDP Level 1 on STM32F1/F4 (glitching)
- Bypass AVR lock bits (HVPP/HVSP)
- Bypass NXP Kinetis FSEC (mass erase timing exploit)
- Read external QSPI/SPI flash chips directly
- Chip-off for i.MX RT, ESP32, etc.
What you CANNOT do (without additional investment):
- IC decapsulation (need fume hood, acid, microprobe station: +$20,000–$100,000)

Frequently Asked Questions
1. What's the difference between JTAG and SWD?
JTAG (Joint Test Action Group):
- 4-wire interface: TCK (clock), TMS (mode select), TDI (data in), TDO (data out)
- Original ARM debug protocol
- Slower than SWD (max 10–15 MHz typical)
SWD (Serial Wire Debug):
- 2-wire interface: SWDIO (bidirectional data), SWCLK (clock)
- ARM-specific (Cortex-M, Cortex-A with CoreSight)
- Faster than JTAG (up to 50 MHz with high-end debuggers)
- Fewer pins (easier routing on PCBs)
Most ARM Cortex-M MCUs support both JTAG and SWD. Modern debuggers (J-Link, ST-LINK) use SWD by default.
2. Can I use ST-LINK to debug NXP Kinetis or Nordic nRF52?
No. ST-LINK only supports STM32 and STM8. For other ARM Cortex-M vendors (NXP, Nordic, Silicon Labs, TI), you need:
- SEGGER J-Link (supports all ARM)
- CMSIS-DAP adapter + OpenOCD
- Vendor-specific tool (e.g., P&E Multilink for NXP)
3. What is the cheapest way to extract firmware from STM32?
If RDP disabled (unsecured):
- ST-LINK V2 clone ($10) + STM32CubeProgrammer (free)
- Total cost: $10
If RDP Level 1 enabled (secured):
- Requires glitching (ChipWhisperer Lite $350) or bootloader exploit (DIY with ST-LINK + Python scripts)
- Budget option: ST-LINK V2 clone + DIY glitching hardware ($50–$100 total)
4. Do I need a J-Link if I already have an ST-LINK?
If you only work with STM32: No, ST-LINK is sufficient.
If you work with multiple ARM vendors (STM32 + NXP + Nordic + Silicon Labs + …): Yes, J-Link supports all ARM Cortex-M/A/R vendors. ST-LINK is STM32-only.
If you need speed: Yes, J-Link ULTRA+ (50 MHz) is much faster than ST-LINK V3 (24 MHz).
5. Can I build my own SWD debugger?
Yes. Options:
- Black Magic Probe (DIY): Flash Black Magic firmware onto STM32F4 "Blue Pill" board ($5) → Full SWD debugger with GDB server
- CMSIS-DAP (DIY): Flash CMSIS-DAP firmware onto STM32F1/F4 board → Generic SWD adapter for OpenOCD
- FT2232H breakout ($25): Configure with OpenOCD as SWD adapter (requires MPSSE configuration)
Recommendation: Black Magic Probe is easiest DIY option (works standalone, no PC software needed).
6. What is ChipWhisperer used for?
Primary uses:
- Voltage glitching: Bypass code protection (RDP, lock bits, FSEC) by inducing faults during security checks
- Clock glitching: Skip instructions or authentication checks
- Power analysis: Side-channel attacks (DPA, CPA) to extract encryption keys from AES implementations
For firmware extraction: Voltage/clock glitching is most relevant. Success rate varies (20–60%) depending on MCU family and die revision.
7. How do I choose between J-Link EDU, BASE, and PLUS?
| Model | License | Commercial Use | Price | When to Choose |
|---|---|---|---|---|
| J-Link EDU | Educational only | ❌ No | $60 | Student projects, learning (non-commercial) |
| J-Link BASE Compact | Commercial | ✅ Yes | $400 | Professional, single-target use |
| J-Link PLUS | Commercial | ✅ Yes | $500 | Professional, general use (best value) |
Key difference: EDU is restricted to non-commercial use per license agreement. If you're getting paid for firmware work, use BASE or PLUS.
8. Can USBasp bypass AVR lock bits?
No. USBasp is an ISP programmer (standard SPI protocol). When AVR lock bits are set (Mode 3), ISP read commands are blocked by hardware.
To bypass AVR lock bits, you need:
- High-voltage programming (HVPP for ATmega, HVSP for ATtiny) → Requires AVR Dragon, STK500/600, or DIY HVPP setup
- Voltage glitching (ChipWhisperer)
- Chip-off / IC decapsulation
9. What equipment do I need for chip-off firmware extraction?
Minimum setup:
- Hot air rework station ($100–$500): Remove chip from PCB
- QSPI/SPI flash reader ($60–$200): Read external flash chips (i.MX RT, ESP32, etc.)
- Microscope ($200–$1,000): Identify chip markings, inspect solder joints
For IC decapsulation (reading die directly):
- Fume hood ($2,000–$10,000)
- Fuming nitric acid ($50, requires license)
- Microprobe station ($10,000–$50,000)
Total: $360–$61,200 (chip-off only vs full decapsulation lab)
10. Is it legal to extract firmware from microcontrollers?
It depends on authorization and jurisdiction:
Legal scenarios:
- You own the device and need to recover your own firmware (source code lost)
- You have written authorization from the device owner (repair, reverse engineering for interoperability)
- Educational/research purposes (fair use, varies by country)
- DMCA Section 1201(f) exemption (U.S.): Reverse engineering for interoperability
Illegal scenarios:
- Extracting firmware to clone a competitor's product without authorization
- Bypassing DRM/access controls for piracy
See our PCB reverse engineering authorization guide for documentation templates and legal requirements.
Conclusion: Building Your Firmware Extraction Toolkit
The right tools depend on your budget, target MCU families, and whether you need to bypass code protection.
Starter kit ($70–$110):
- USBasp ($10) for AVR
- ST-LINK V3-SET ($30) for STM32
- MPLAB SNAP ($30) for PIC
Professional kit ($860):
- J-Link PLUS ($500) for all ARM
- Atmel-ICE ($130) for AVR
- PICkit 4 ($80) for PIC
- Hot air station ($150)
Advanced kit ($5,000–$15,000):
- J-Link PRO ($5,000)
- ChipWhisperer Pro ($1,500)
- Professional hot air station ($1,500)
- Oscilloscope, microscope, lab PSU ($2,000)
For specific MCU family firmware recovery guides, see: STM32, PIC, AVR, NXP. If you need professional firmware extraction services, see our MCU firmware recovery service.
Word count: ~5,800 words



