PICPIO logoPICPIO
Free & open · 1,700+ PIC parts · VS Code & Open VSX
PICPIO

Program PIC chips
the easy way.

A free PIC microcontroller IDE for VS Code, Cursor, Windsurf & Antigravity.

Write clean, high-level C for Microchip PIC chips, then build and flash to real hardware, with one-command setup, 130+ ready-made libraries, and a built-in simulator.

VS Code · Quick Open (Ctrl+P)
ext install picpio.picpio

Get it from the VS Code Marketplace or Open VSX (Cursor, Windsurf, Antigravity, VSCodium, Gitpod), or use the one-line installer below.

Works in your editor

One extension, every VS Code–based editor.

PICPIO publishes to both the VS Code Marketplace and Open VSX, so it installs in VS Code and the AI-native editors built on it, including Google’s Antigravity.

What is PICPIO

PIC development without the pain.

Microchip's PIC microcontrollers are everywhere, but the classic workflow means heavy IDEs and writing to raw registers. PICPIO makes PIC development feel modern and approachable, inside the editor you already use. You get a clean, high-level C API (gpio_write, adc_read, uart1, i2c1…), and PICPIO handles the compiler, programmer, and project setup for you.

Everything, in one extension
  • Clean high-level C API: gpio / adc / pwm / uart / i2c / spi
  • One-command build & flash: XC8/16/32/DSC + PICkit/Snap/ICD
  • 130+ ready-made libraries: displays, sensors, motors, RF, USB…
  • Built-in simulator: rendered displays, live sensors, W5500 web server
  • 1,700+ PIC parts: PIC10/12/16/18, PIC24, dsPIC30/33, PIC32 MIPS
  • Bare-metal + full SFR IntelliSense: raw registers, with autocomplete
  • On-chip debugging: real breakpoints & single-step on silicon
  • Serial monitor, Display Designer & auto PID tuner
  • Works in VS Code & every Open VSX editor (Cursor, Windsurf, Antigravity…)
See it in action

Project to blinking LED in four steps.

PICPIO scaffolds a project, you write a few lines of C, build, and run it in the simulator. No board required to watch.

PICPIO · VS Code
New Project · choose your chip
PIC16F877PIC16
PIC18F27K40PIC18
dsPIC33CK256dsPIC
PIC32MX250F128PIC32
Create project →
main.cpicpio.ini
void init() {
  gpio_mode(D0, GPIO_OUT);
}
void run() {
  gpio_write(D0, GPIO_HIGH);
  sys_delay(500);
  gpio_write(D0, GPIO_LOW);
  sys_delay(500);
}
$ picpio build & upload
[PICPIO] Building blink for PIC18F27K40…
Program space used 312h (786) of 20000h (0.6%)
[PICPIO] BUILD SUCCESSFUL ✓
[PICPIO] Flashed via PICkit ✓
RC0 / D0
Simulator · Serial @ 115200
LED ON
LED OFF
LED ON
What it can do

Everything you need, built in.

main.c
void init() {
uart1.begin(115200);
gpio_mode(BUILTIN_LED, GPIO_OUT);
}
void run() {
gpio_write(BUILTIN_LED, GPIO_HIGH);
sys_delay(500);

Simple, high-level API

Friendly functions for GPIO, ADC, PWM, UART, I2C, SPI, timing and interrupts, no register juggling required.

Terminal
$ picpio upload
Compiling main.c with XC8…
Program: 3.1% · Data: 1.4%
Flashed to PIC18F27K40
Done in 4.2s

One-click build & flash

Compile with Microchip's official XC8/XC16/XC32/XC-DSC and flash over a PICkit, ICD or Snap, straight from VS Code.

Libraries
SSD1306 · ST7789 TFT
BME280 · MPU6050
DRV8825 · NRF24L01
+ SD, WS2812, LoRa, GPS…
picpio lib add SSD1306

130+ libraries

Sensors, OLED/TFT displays, motor & stepper drivers, RTCs, ADC/DAC expanders, RF/CAN/LoRa, USB CDC serial, GPS/GSM, keypads, SD card (FAT16/32), EEPROM, WS2812 LEDs, servos, PID and more. picpio lib add drops working example code into your sketch.

Simulator
RA0RB1RC2RC5
Signal scope · PWM RC2 · 1 kHz
PICPIO ♥
Rendered displays · OLED · WS2812 · P10
BME280  24.6°C · 48% · 1013hPa
MPU6050  az 1.00g · gy 0.2°/s
DS3231  RTC 14:23:07
VL53L0X  220 mm
TCS34725  colour
Live sensors · all return real values
🔒 192.168.1.50
PICPIO Web Server
served from the sim
W5500 · open it in your browser

Built-in simulator

Run your sketch with no hardware and see it work: live pins, a signal scope, rendered OLED/TFT/WS2812/P10 displays, live sensor values (BME280, MPU6050, RTC, colour…), and even a W5500 web server you open in your browser.

Logic Analyzer
CLK
MOSI
MISO
SDA
SPI 0x90 0xD0 · I2C 0xA5 · UART "Hi"

Logic analyzer

A Saleae-style bus capture in the simulator: real SPI / I2C / USART waveforms with each byte decoded inline, plus a signal scope for plain pins.

Serial Monitor · COM3 @ 115200
Temp: 24.6 C
Humidity: 48 %
Pressure: 1013 hPa
ADC RA0: 512
i2c1 → 0x76 (BME280)
W: A5 00 3B
R: 8A 41 12
spi1 transfer
TX: 90 D0 04
RX: 8A 41 00
uart1 → 115200 8N1
Hello from PICPIO
count = 128

Serial monitor

Watch live output from your board, pick the port and baud rate, and send data back.

picpio doctor
XC8 compiler v2.46
PICkit 3 detected
DFP pack installed
130+ libraries
All systems go.

Compatibility & doctor

PICPIO warns if a library needs a peripheral your chip lacks, and picpio doctor verifies your whole toolchain.

Devices
PIC10/12FPIC16F PIC18FPIC24 dsPIC30/33PIC32 MIPS
Right compiler chosen automatically.

Many PIC families

From 8-bit PIC10/12/16/18 to 16-bit PIC24 & dsPIC30/33, up to 32-bit MIPS PIC32 (MX/MZ/MK/MM): thousands of parts, with XC8, XC16, XC32 and XC-DSC chosen automatically.

Also included
</> Bare-metal + IntelliSense Prefer registers? Write raw TRISB/PORTAbits with full SFR autocomplete, great for teaching.
On-chip debugging Real breakpoints and single-step on actual silicon over PICkit / Snap / ICD.
Display Designer Lay out OLED / TFT screens visually and generate the drawing code for your sketch.
Auto PID tuner Tune a PID control loop live from the serial stream, no hand calculation.
Configuration Bits Wizard Pick FOSC, watchdog, brown-out and every other config bit from real per-chip options, MPLAB style, then insert it straight into main.c.
Ready-made drivers

130+ libraries, one command away.

Every driver below ships inside PICPIO. Add any of them with picpio lib add <name> (or the Library Manager), and the driver and a working example drop straight into your sketch.

A4988ADPD188ADS1015ADS1115ADS1219ADXL345AHT10AHT20AMG8833AMG8853AngleRatioAPDS9301APDS9960AS5600ASCXAT24CBGT60TR13CBH1750BH1790BME280BME680BMM150BMP280BMP3XXBNO055CCS811DACDFPlayerMiniDHT11DHT22DotStarDPS310DRV8825DRV8833DS1307DS18B20DS3231DWINGPSHallLinearHC595HCSR04HDC1000HMC5883LHT16K33HTS221HTU21DFHX712ICM20948ICP20100ILI9341ILI9488INA219INA260JQ8400KeypadKTY8xL298NLCD_HC595LD2410CLDC1001LDRLiquidCrystal_I2CLoRaLPS22LPS25LSM6DSLSM6DS3LVGLMAX30100MAX31855MAX7219MAX7219MatrixMCP23008MCP23017MCP2515MCP3008MCP4725MCP4922MCP9808MPR121MPU6050MPU9250NRF24L01P10PCA9685PCF8523PCF8563PCF8575PCF8591PIDPIDTuneQMC5883LRelayRotaryEncoderRPR0521SCD4xSDSEN0386ServoSevenSegSGP30SH110XSHT31SHT4xSI1142SI7021SIM800LSoftI2CSoftSPISoftUARTSSD1306ST7735ST7789TB6600TB6612FNGTCA9548ATCS34725TLC5947TM1637TMP117TSL2561TSL2591TTP229ULN2003USBSerialVCNL4040VEML7700VL53L0XVL53L1XVL6180XW5500WS2812XPT2046
Supported chips

Find your PIC.

Search 560+ selectable Microchip parts, and the generalized HALs build 1,700+ across the full device packs. Type a part number, or a family like 27K40, PIC16, dsPIC33 or PIC32.

PIC10/12/16PIC18PIC24dsPIC30dsPIC33PIC32
bare-metalPIC10F200PIC10F202PIC10F204PIC10F220PIC12F1571PIC12F683PIC16C62BPIC16C711PIC16C715PIC16F13113PIC16F13114PIC16F13115PIC16F13123PIC16F13124PIC16F13125PIC16F13143PIC16F13144PIC16F13145PIC16F13214PIC16F13215PIC16F13224PIC16F13225PIC16F13226PIC16F13244PIC16F13245PIC16F13246PIC16F13254PIC16F13255PIC16F13256PIC16F13274PIC16F13275PIC16F13276PIC16F1507PIC16F15213PIC16F15214PIC16F15223PIC16F15224PIC16F15225PIC16F15243PIC16F15244PIC16F15245PIC16F15254PIC16F15255PIC16F15256PIC16F15274PIC16F15275PIC16F15276PIC16F15313PIC16F15323PIC16F15324PIC16F15325PIC16F15344PIC16F15345PIC16F15354PIC16F15355PIC16F15356PIC16F15375PIC16F15376PIC16F15385PIC16F15386PIC16F1613PIC16F17176PIC16F1718PIC16F17524PIC16F17525PIC16F17526PIC16F17544PIC16F17545PIC16F17546PIC16F17554PIC16F17555PIC16F17556PIC16F17574PIC16F17575PIC16F17576PIC16F18013PIC16F18014PIC16F18015PIC16F18023PIC16F18024PIC16F18025PIC16F18026PIC16F18044PIC16F18045PIC16F18046PIC16F18054PIC16F18055PIC16F18056PIC16F18074PIC16F18075PIC16F18076PIC16F18114PIC16F18115PIC16F18124PIC16F18146PIC16F18155PIC16F18174PIC16F18175PIC16F18176PIC16F1823PIC16F1824PIC16F1825PIC16F1826PIC16F1827PIC16F1829PIC16F18313PIC16F18323PIC16F18324PIC16F18325PIC16F18326PIC16F18344PIC16F18345PIC16F18346PIC16F18424PIC16F18425PIC16F18426PIC16F18444PIC16F18445PIC16F18446PIC16F18455PIC16F18456PIC16F18854PIC16F18855PIC16F18856PIC16F18857PIC16F18875PIC16F18876PIC16F18877PIC16F1902PIC16F1903PIC16F1904PIC16F1906PIC16F1907PIC16F19155PIC16F19156PIC16F19175PIC16F19176PIC16F19185PIC16F19186PIC16F19195PIC16F19196PIC16F19197PIC16F1933PIC16F1934PIC16F1936PIC16F1937PIC16F1938PIC16F1939PIC16F1946PIC16F1947PIC16F628APIC16F716PIC16F72PIC16F767PIC16F777PIC16F818PIC16F819PIC16F84PIC16F84APIC16F873PIC16F873APIC16F874PIC16F874APIC16F876PIC16F876APIC16F877PIC16F877APIC16F883PIC16F886PIC16F887PIC16LF19155picpioPIC18F04Q20PIC18F04Q40PIC18F05Q20PIC18F05Q41PIC18F06Q20PIC18F06Q41PIC18F1350PIC18F13K22PIC18F14K22PIC18F14K50PIC18F14Q20PIC18F14Q41PIC18F15Q20PIC18F15Q40PIC18F15Q41PIC18F16Q20PIC18F16Q40PIC18F16Q41PIC18F23K20PIC18F23K22PIC18F24K20PIC18F24K22PIC18F24K40PIC18F24K42PIC18F24K50PIC18F24Q10PIC18F24Q24PIC18F24Q35PIC18F24Q71PIC18F2550PIC18F25K20PIC18F25K22PIC18F25K40PIC18F25K42PIC18F25K50PIC18F25K80PIC18F25K83PIC18F25Q10PIC18F25Q24PIC18F25Q35PIC18F25Q71PIC18F26113PIC18F2653PIC18F26K20PIC18F26K22PIC18F26K40PIC18F26K42PIC18F26K80PIC18F26K83PIC18F26Q10PIC18F26Q24PIC18F26Q35PIC18F26Q71PIC18F26Q84PIC18F27113PIC18F2753PIC18F27K40PIC18F27K42PIC18F27Q10PIC18F27Q84PIC18F43K20PIC18F43K22PIC18F44K20PIC18F44K22PIC18F44Q35PIC18F44Q71PIC18F452PIC18F4550PIC18F45K20PIC18F45K22PIC18F45K40PIC18F45K42PIC18F45K50PIC18F45K80PIC18F45Q10PIC18F45Q24PIC18F45Q35PIC18F45Q71PIC18F46113PIC18F4653PIC18F46K20PIC18F46K22PIC18F46K40PIC18F46K42PIC18F46K80PIC18F46Q10PIC18F46Q24PIC18F46Q35PIC18F46Q71PIC18F46Q84PIC18F47113PIC18F4753PIC18F47K40PIC18F47K42PIC18F47Q10PIC18F47Q84PIC18F54Q35PIC18F54Q71PIC18F55K42PIC18F55Q24PIC18F55Q35PIC18F55Q71PIC18F56K42PIC18F56Q24PIC18F56Q35PIC18F56Q71PIC18F56Q84PIC18F57K42PIC18F57Q84PIC18F65K22PIC18F65K40PIC18F65K80PIC18F65K90PIC18F66J60PIC18F66J65PIC18F66K22PIC18F66K40PIC18F66K80PIC18F66K90PIC18F67J60PIC18F67K22PIC18F67K40PIC18F67K90PIC18F85K22PIC18F85K90PIC18F86J60PIC18F86J65PIC18F86K22PIC18F86K90PIC18F87J60PIC18F87K22PIC18F87K90PIC18F96J60PIC18F96J65PIC18F97J60PIC24EP128GP204PIC24EP256GP206PIC24EP256MC206PIC24EP32GP202PIC24EP512GP806PIC24EP512GU810PIC24F08KL200PIC24F16KA102PIC24F16KL402PIC24F16KM102PIC24F16KM202PIC24F32KA304PIC24FJ128GA010PIC24FJ128GA202PIC24FJ128GA306PIC24FJ128GC006PIC24FJ128GC010PIC24FJ256GA110PIC24FJ256GB210PIC24FJ64GA002PIC24FJ64GB002PIC24FV32KA302PIC24HJ128GP210PIC24HJ128GP502PIC24HJ256GP610PIC24HJ32GP302PIC24HJ64GP502dsPIC30F2010dsPIC30F2011dsPIC30F2012dsPIC30F3010dsPIC30F3011dsPIC30F3012dsPIC30F3013dsPIC30F3014dsPIC30F4011dsPIC30F4012dsPIC30F4013dsPIC30F5011dsPIC30F5013dsPIC30F5015dsPIC30F5016dsPIC30F6010dsPIC30F6011dsPIC30F6011AdsPIC30F6012dsPIC30F6012AdsPIC30F6013dsPIC30F6013AdsPIC30F6014dsPIC30F6014AdsPIC30F6015DSPIC33AK128MC102DSPIC33AK128MC106DSPIC33AK128MPS106DSPIC33AK256MC510DSPIC33AK256MPS306DSPIC33AK32MC102DSPIC33AK512MC510DSPIC33AK512MPS512DSPIC33CDV256MP506DSPIC33CDV64MC106DSPIC33CH128MP508DSPIC33CH128MP508S1DSPIC33CH512MP508DSPIC33CK256MP506DSPIC33CK256MP508DSPIC33CK32MP102DSPIC33CK512MP608DSPIC33CK64MP105DSPIC33EDV64MC205DSPIC33EP128GP502DSPIC33EP256GP506DSPIC33EP256MC506DSPIC33EP256MU806DSPIC33EP32GP502DSPIC33EP32GS202DSPIC33EP32MC202DSPIC33EP512GP806DSPIC33EP512MC506DSPIC33EP512MU810DSPIC33EP64GS506DSPIC33EP64MC206dsPIC33EP64MC503DSPIC33EV128GM104dsPIC33EV256GM006dsPIC33EV256GM106DSPIC33EV256GM106DSPIC33EV32GM002DSPIC33FJ06GS001DSPIC33FJ128GP202DSPIC33FJ128GP802DSPIC33FJ128MC202DSPIC33FJ12GP201dsPIC33FJ12MC201DSPIC33FJ16GS402DSPIC33FJ256GP506DSPIC33FJ256GP710DSPIC33FJ256MC710DSPIC33FJ32GP101DSPIC33FJ32MC101DSPIC33FJ64GP202DSPIC33FJ64GS406DSPIC33FJ64MC202PIC32CK1025GC01064PIC32CK1025SG01064PIC32CK2051GC01064PIC32CK2051SG01064PIC32CM2532JH00032PIC32CM2532JH00048PIC32CM2532JH00064PIC32CM2532JH00100PIC32CM2532JH01032PIC32CM2532JH01048PIC32CM2532JH01064PIC32CM2532JH01100PIC32CM5164JH00032PIC32CM5164JH00048PIC32CM5164JH00064PIC32CM5164JH00100PIC32CM5164JH01032PIC32CM5164JH01048PIC32CM5164JH01064PIC32CM5164JH01100PIC32MX110F016BPIC32MX110F016CPIC32MX110F016DPIC32MX120F032BPIC32MX120F032CPIC32MX120F032DPIC32MX120F064HPIC32MX130F064BPIC32MX130F064CPIC32MX130F064DPIC32MX130F128HPIC32MX130F128LPIC32MX130F256BPIC32MX130F256DPIC32MX150F128BPIC32MX150F128CPIC32MX150F128DPIC32MX150F256HPIC32MX150F256LPIC32MX170F256BPIC32MX170F256DPIC32MX170F512HPIC32MX170F512LPIC32MX174F256BPIC32MX174F256DPIC32MX175F256BPIC32MX175F256DPIC32MX210F016BPIC32MX210F016CPIC32MX210F016DPIC32MX220F032BPIC32MX220F032CPIC32MX220F032DPIC32MX230F064BPIC32MX230F064CPIC32MX230F064DPIC32MX230F128HPIC32MX230F128LPIC32MX230F256BPIC32MX230F256DPIC32MX250F128BPIC32MX250F128CPIC32MX250F128DPIC32MX250F256HPIC32MX250F256LPIC32MX254F128BPIC32MX254F128DPIC32MX255F128BPIC32MX255F128DPIC32MX270F256BPIC32MX270F256DPIC32MX270F256DBPIC32MX270F512HPIC32MX270F512LPIC32MX274F256BPIC32MX274F256DPIC32MX275F256BPIC32MX275F256DPIC32MX320F032HPIC32MX320F064HPIC32MX320F128HPIC32MX320F128LPIC32MX330F064HPIC32MX330F064LPIC32MX340F128HPIC32MX340F128LPIC32MX340F256HPIC32MX340F512HPIC32MX350F128HPIC32MX350F128LPIC32MX350F256HPIC32MX350F256LPIC32MX360F256LPIC32MX360F512LPIC32MX370F512HPIC32MX370F512LPIC32MX420F032HPIC32MX430F064HPIC32MX430F064LPIC32MX440F128HPIC32MX440F128LPIC32MX440F256HPIC32MX440F512HPIC32MX450F128HPIC32MX450F128LPIC32MX450F256HPIC32MX450F256HBPIC32MX450F256LPIC32MX460F256LPIC32MX460F512LPIC32MX470F512HPIC32MX470F512LPIC32MX470F512LBPIC32MX530F128HPIC32MX530F128LPIC32MX534F064HPIC32MX534F064LPIC32MX550F256HPIC32MX550F256LPIC32MX564F064HPIC32MX564F064LPIC32MX564F128HPIC32MX564F128LPIC32MX570F512HPIC32MX570F512LPIC32MX575F256HPIC32MX575F256LPIC32MX575F512HPIC32MX575F512LPIC32MX664F064HPIC32MX664F064LPIC32MX664F128HPIC32MX664F128LPIC32MX675F256HPIC32MX675F256LPIC32MX675F512HPIC32MX675F512LPIC32MX695F512HPIC32MX695F512LPIC32MX764F128HPIC32MX764F128LPIC32MX775F256HPIC32MX775F256LPIC32MX775F512HPIC32MX775F512LPIC32MX795F512HPIC32MX795F512LPIC32MZ2048ECG100PIC32MZ2048EFG100PIC32MZ2048EFH144
How to install

Install it from your editor.

PICPIO is a VS Code extension, and it also installs from Open VSX in Cursor, Windsurf, Antigravity, VSCodium and Gitpod. Install it the same way you install any extension, right from the Extensions panel. No downloads to hunt for.

Visual Studio Code · Extensions
PICPIO
PICPIO
PIC Microcontroller IDE · Build, Flash, Libraries, Simulator
CURIOUS WORM

Open your editor

Use VS Code, Cursor, Windsurf, Antigravity or VSCodium, all free.

Open the Extensions panel

Click the Extensions icon in the sidebar, or press Ctrl+Shift+X.

Search “PICPIO”

Type PICPIO in the search box and hit Install on the PICPIO extension by CURIOUS WORM.

Add Microchip's free tools

On first run, PICPIO points you to Microchip's official pages for the XC compilers (XC8/XC16/XC32/XC-DSC, by chip) and MPLAB X (for flashing), free and installed once.

Create a project

Click the PICPIO icon in the sidebar → New Project, pick your chip, and start coding.

Which compiler does my chip need?

PICPIO drives Microchip's official free MPLAB XC compilers. Install just one: the one for your chip family. PICPIO downloads the matching device pack automatically on your first build, so there is nothing else to configure.

Your chip familyInstall this compilerWhat it covers
PIC10F · PIC12F · PIC16F · PIC18FMPLAB XC8Every 8-bit PIC
PIC24F · PIC24H · PIC24E · dsPIC30F · dsPIC33E / 33F / 33CMPLAB XC1616-bit PIC24 & dsPIC
dsPIC33A (dsPIC33AK)MPLAB XC-DSCNewest dsPIC core, XC16 can’t target it
PIC32MX · PIC32MZ · PIC32MK · PIC32MMMPLAB XC3232-bit MIPS PIC32
Flashing to a real boardMPLAB IPEThe programmer only, no IDE needed. Plus a PICkit / ICD / Snap

Every tool below is a free, official Microchip download. You only install the compiler(s) for the chips you actually use.

DownloadFor these chipsOfficial link
MPLAB XC8 CompilerPIC10F / 12F / 16F / 18Fmicrochip.com/…/mplab-xc-compilers
MPLAB XC16 CompilerPIC24 · dsPIC30F · dsPIC33E/F/Cmicrochip.com/…/mplab-xc-compilers
MPLAB XC-DSC CompilerdsPIC33A (dsPIC33AK)microchip.com/…/mplab-xc-dsc-compiler
MPLAB XC32 CompilerPIC32MX / MZ / MK / MMmicrochip.com/…/mplab-xc-compilers
MPLAB IPE (programmer only)Flashing any chip to hardwaremicrochip.com/…/mplab-x-ide
Device Family Packs (.atpack)Auto-installed by PICPIO, browse manually if you likepacks.download.microchip.com

You normally never touch the packs page. PICPIO downloads the right Device Family Pack for your chip automatically on the first build.

Advanced: add a device pack manually

You almost never need this, but if you’re offline, behind a proxy, or want a specific pack version, here are three ways:

  1. Let PICPIO fetch it. In your project folder run picpio install-dfp PIC16F877A (use your own chip name). PICPIO finds the matching pack in the Microchip index, downloads it, registers it, then just build again.
  2. From a downloaded .atpack. Grab the pack from packs.download.microchip.com, rename it from .atpack to .zip, and extract it. Then in your project’s picpio.ini, under the [build] section, point to the extracted version folder:
    dfp_path = C:\path\to\PIC16F1xxxx_DFP\1.24.387
  3. Via MPLAB X. Install MPLAB X → open Tools › Packs, install the Device Family Pack there, then set the same dfp_path in picpio.ini to MPLAB X’s pack folder.
Install MPLAB IPE only: skip the IDE

To flash a chip you only need Microchip’s MPLAB IPE (the programmer), not the full IDE. IPE ships inside the MPLAB X installer (there is no separate IPE download), but the installer lets you untick the IDE and install IPE alone. PICPIO’s Upload button then calls it for you; you never open IPE’s window.

  1. Download the MPLAB X installer for Windows from microchip.com → MPLAB X IDE. (This one installer contains both the IDE and IPE.)
  2. Run the installer: accept the license and keep the default install folder C:\Program Files\Microchip\MPLABX (PICPIO looks here).
  3. On the “Select Applications” screen, this is the key step: untick “MPLAB X IDE” and leave “MPLAB IPE” ticked. That installs the programmer only.
  4. Finish the install. When it offers to download the XC compilers or MPLAB Ecosystem at the end, you can decline: you already installed your XC compiler above.
  5. Plug in your programmer: a PICkit 3/4/5, MPLAB Snap or ICD. Windows installs the driver automatically.
  6. Verify: run picpio doctor. It should show MPLAB IPE (ipecmd): ok and list your connected programmer. Now just hit Upload in PICPIO.

Building code does not need IPE at all. Only uploading to a physical board does. If you only use the built-in simulator, you can skip this whole section.

Full setup: every step
  1. Install PICPIO. Open the Extensions panel (Ctrl+Shift+X), search PICPIO, and click Install, from the VS Code Marketplace or Open VSX (Cursor, Windsurf, Antigravity, VSCodium).
  2. Install the XC compiler for your chip family from the table above, free, once. That’s XC8 for 8-bit, XC16 for PIC24/dsPIC, XC-DSC for dsPIC33A, XC32 for PIC32.
  3. Flashing real hardware? Install MPLAB IPE only (untick the IDE in the installer, see the section just above) and plug in a PICkit / ICD / Snap. Skip this step if you only use the built-in simulator.
  4. Create a project. Click the PICPIO icon in the sidebar → New Project, then pick your exact chip (for example PIC18F27K40).
  5. Write your code in main.c, and pull in drivers from the built-in Library Manager (displays, sensors, SD, servo…).
  6. Build. Press ▶ Build. The very first build auto-downloads the Device Family Pack for your chip. No manual pack hunting.
  7. Upload to flash your board, or open the Simulator to run the exact same code on-screen with no hardware.
  8. Stuck? Run picpio doctor: it lists every compiler, device pack, programmer and serial port it can see, so setup problems are obvious.

Prefer the keyboard? Press Ctrl+P in VS Code and run:

VS Code · Quick Open
ext install picpio.picpio

PICPIO is free, and so are the Microchip tools it uses.

Why PICPIO

How it's different.

There are other ways to program PICs. Here's where PICPIO stands out.

 PICPIOClassic MPLAB XOther PIC IDEs
PriceFreeFreeOften paid / subscription
EditorModern VS CodeStandalone IDEStandalone IDE
Coding styleSimple high-level APIRaw registersVendor-specific
SetupOne commandManualManual
Bundled libraries + auto example code130+LimitedVaries
Built-in simulatorYesYesSometimes
Official Microchip compiler (XC8)YesYesOften a custom compiler

PICPIO uses the same trusted, free Microchip XC compilers, it just makes them friendlier.

Supported chips

Every part below is selectable in the New Project menu and verified by a full build sweep.

PIC10F4 partsXC8baseline 8-bit

PIC10F200, PIC10F202, PIC10F204, PIC10F220

PIC12F2 partsXC86-pin 8-bit

PIC12F1571, PIC12F683

PIC16F161 partsXC8midrange & enhanced-midrange (PPS / ADCC)

PIC16F877A, PIC16F874A, PIC16F876A, PIC16F873A, PIC16F628A, PIC16F1829, PIC16F1827, PIC16F1826, PIC16F1825, PIC16F1824, PIC16F1823, PIC16F18013, PIC16C62B, PIC16C711, PIC16C715, PIC16F13113, PIC16F13114, PIC16F13115, PIC16F13123, PIC16F13124, PIC16F13125, PIC16F13143, PIC16F13144, PIC16F13145, PIC16F13214, PIC16F13215, PIC16F13224, PIC16F13225, PIC16F13226, PIC16F13244, PIC16F13245, PIC16F13246, PIC16F13254, PIC16F13255, PIC16F13256, PIC16F13274, PIC16F13275, PIC16F13276, PIC16F1507, PIC16F15213, PIC16F15214, PIC16F15223, PIC16F15224, PIC16F15225, PIC16F15243, PIC16F15244, PIC16F15245, PIC16F15254, PIC16F15255, PIC16F15256, PIC16F15274, PIC16F15275, PIC16F15276, PIC16F15313, PIC16F15323, PIC16F15324, PIC16F15325, PIC16F15344, PIC16F15345, PIC16F15354, PIC16F15355, PIC16F15356, PIC16F15375, PIC16F15376, PIC16F15385, PIC16F15386, PIC16F1613, PIC16F17176, PIC16F1718, PIC16F17524, PIC16F17525, PIC16F17526, PIC16F17544, PIC16F17545, PIC16F17546, PIC16F17554, PIC16F17555, PIC16F17556, PIC16F17574, PIC16F17575, PIC16F17576, PIC16F18014, PIC16F18015, PIC16F18023, PIC16F18024, PIC16F18025, PIC16F18026, PIC16F18044, PIC16F18045, PIC16F18046, PIC16F18054, PIC16F18055, PIC16F18056, PIC16F18074, PIC16F18075, PIC16F18076, PIC16F18114, PIC16F18115, PIC16F18124, PIC16F18146, PIC16F18155, PIC16F18174, PIC16F18175, PIC16F18176, PIC16F18313, PIC16F18323, PIC16F18324, PIC16F18325, PIC16F18326, PIC16F18344, PIC16F18345, PIC16F18346, PIC16F18424, PIC16F18425, PIC16F18426, PIC16F18444, PIC16F18445, PIC16F18446, PIC16F18455, PIC16F18456, PIC16F18854, PIC16F18855, PIC16F18856, PIC16F18857, PIC16F18875, PIC16F18876, PIC16F18877, PIC16F1902, PIC16F1903, PIC16F1904, PIC16F1906, PIC16F1907, PIC16F19155, PIC16F19156, PIC16F19175, PIC16F19176, PIC16F19185, PIC16F19186, PIC16F19195, PIC16F19196, PIC16F19197, PIC16F1933, PIC16F1934, PIC16F1936, PIC16F1937, PIC16F1938, PIC16F1939, PIC16F1946, PIC16F1947, PIC16F716, PIC16F767, PIC16F777, PIC16F818, PIC16F819, PIC16F84, PIC16F84A, PIC16F873, PIC16F874, PIC16F876, PIC16F877, PIC16LF19155

PIC18F135 partsXC8classic · K · Q · J series

PIC18F27K40, PIC18F24K40, PIC18F25K40, PIC18F26K40, PIC18F45K40, PIC18F46K40, PIC18F47K40, PIC18F27Q10, PIC18F26Q10, PIC18F25Q10, PIC18F24Q10, PIC18F47Q10, PIC18F46Q10, PIC18F45Q10, PIC18F4550, PIC18F452, PIC18F2550, PIC18F04Q20, PIC18F04Q40, PIC18F05Q20, PIC18F05Q41, PIC18F06Q20, PIC18F06Q41, PIC18F1350, PIC18F13K22, PIC18F14K22, PIC18F14K50, PIC18F14Q20, PIC18F14Q41, PIC18F15Q20, PIC18F15Q40, PIC18F15Q41, PIC18F16Q20, PIC18F16Q40, PIC18F16Q41, PIC18F23K20, PIC18F23K22, PIC18F24K20, PIC18F24K22, PIC18F24K42, PIC18F24K50, PIC18F24Q24, PIC18F24Q35, PIC18F24Q71, PIC18F25K20, PIC18F25K22, PIC18F25K42, PIC18F25K50, PIC18F25K80, PIC18F25K83, PIC18F25Q24, PIC18F25Q35, PIC18F25Q71, PIC18F26113, PIC18F2653, PIC18F26K20, PIC18F26K22, PIC18F26K42, PIC18F26K80, PIC18F26K83, PIC18F26Q24, PIC18F26Q35, PIC18F26Q71, PIC18F26Q84, PIC18F27113, PIC18F2753, PIC18F27K42, PIC18F27Q84, PIC18F43K20, PIC18F43K22, PIC18F44K20, PIC18F44K22, PIC18F44Q35, PIC18F44Q71, PIC18F45K20, PIC18F45K22, PIC18F45K42, PIC18F45K50, PIC18F45K80, PIC18F45Q24, PIC18F45Q35, PIC18F45Q71, PIC18F46113, PIC18F4653, PIC18F46K20, PIC18F46K22, PIC18F46K42, PIC18F46K80, PIC18F46Q24, PIC18F46Q35, PIC18F46Q71, PIC18F46Q84, PIC18F47113, PIC18F4753, PIC18F47K42, PIC18F47Q84, PIC18F54Q35, PIC18F54Q71, PIC18F55K42, PIC18F55Q24, PIC18F55Q35, PIC18F55Q71, PIC18F56K42, PIC18F56Q24, PIC18F56Q35, PIC18F56Q71, PIC18F56Q84, PIC18F57K42, PIC18F57Q84, PIC18F65K22, PIC18F65K40, PIC18F65K80, PIC18F65K90, PIC18F66J60, PIC18F66J65, PIC18F66K22, PIC18F66K40, PIC18F66K80, PIC18F66K90, PIC18F67J60, PIC18F67K22, PIC18F67K40, PIC18F67K90, PIC18F85K22, PIC18F85K90, PIC18F86J60, PIC18F86J65, PIC18F86K22, PIC18F86K90, PIC18F87J60, PIC18F87K22, PIC18F87K90, PIC18F96J60, PIC18F96J65, PIC18F97J60

PIC2427 partsXC1616-bit · PIC24F / PIC24H / PIC24E

PIC24FJ128GA010, PIC24FJ64GA002, PIC24FJ256GA110, PIC24FJ128GA202, PIC24FJ128GA306, PIC24FJ64GB002, PIC24FJ256GB210, PIC24FJ128GC010, PIC24FJ128GC006, PIC24F16KA102, PIC24FV32KA302, PIC24F32KA304, PIC24F08KL200, PIC24F16KL402, PIC24F16KM102, PIC24F16KM202, PIC24HJ32GP302, PIC24HJ64GP502, PIC24HJ128GP502, PIC24HJ128GP210, PIC24HJ256GP610, PIC24EP32GP202, PIC24EP128GP204, PIC24EP256GP206, PIC24EP512GP806, PIC24EP256MC206, PIC24EP512GU810

dsPIC30F25 partsXC1616-bit DSC

dsPIC30F4011, dsPIC30F2010, dsPIC30F3013, dsPIC30F4013, dsPIC30F3014, dsPIC30F2012, dsPIC30F2011, dsPIC30F6014A, dsPIC30F6013A, dsPIC30F6011A, dsPIC30F6012A, dsPIC30F6010, dsPIC30F4012, dsPIC30F6014, dsPIC30F5011, dsPIC30F3012, dsPIC30F6011, dsPIC30F6012, dsPIC30F6013, dsPIC30F5013, dsPIC30F5015, dsPIC30F5016, dsPIC30F3010, dsPIC30F3011, dsPIC30F6015

dsPIC3352 partsXC16 · XC-DSCDSC + FPU · 33E / 33F / 33C / 33A

DSPIC33EP32MC202, DSPIC33EP64MC206, DSPIC33EP512MC506, DSPIC33EP256MC506, DSPIC33EP32GP502, DSPIC33EP128GP502, DSPIC33EP256GP506, DSPIC33EP512GP806, DSPIC33EP256MU806, DSPIC33EP512MU810, DSPIC33EP32GS202, DSPIC33EP64GS506, DSPIC33EV32GM002, DSPIC33EV128GM104, DSPIC33EV256GM106, DSPIC33EDV64MC205, DSPIC33FJ12GP201, DSPIC33FJ32GP101, DSPIC33FJ64GP202, DSPIC33FJ128GP202, DSPIC33FJ128GP802, DSPIC33FJ256GP506, DSPIC33FJ256GP710, DSPIC33FJ32MC101, DSPIC33FJ64MC202, DSPIC33FJ128MC202, DSPIC33FJ256MC710, DSPIC33FJ06GS001, DSPIC33FJ16GS402, DSPIC33FJ64GS406, DSPIC33CK32MP102, DSPIC33CK64MP105, DSPIC33CK256MP506, DSPIC33CK256MP508, DSPIC33CK512MP608, DSPIC33CH128MP508, DSPIC33CH128MP508S1, DSPIC33CH512MP508, DSPIC33CDV64MC106, DSPIC33CDV256MP506, DSPIC33AK32MC102, DSPIC33AK128MC102, DSPIC33AK128MC106, DSPIC33AK256MC510, DSPIC33AK512MC510, DSPIC33AK128MPS106, DSPIC33AK256MPS306, DSPIC33AK512MPS512, dsPIC33EP64MC503, dsPIC33EV256GM006, dsPIC33EV256GM106, dsPIC33FJ12MC201

PIC32 MIPS130 partsXC3232-bit MIPS · MX / MZ / MK / MM

PIC32MX360F512L, PIC32MZ2048EFH144, PIC32MX110F016B, PIC32MX110F016C, PIC32MX110F016D, PIC32MX120F032B, PIC32MX120F032C, PIC32MX120F032D, PIC32MX120F064H, PIC32MX130F064B, PIC32MX130F064C, PIC32MX130F064D, PIC32MX130F128H, PIC32MX130F128L, PIC32MX130F256B, PIC32MX130F256D, PIC32MX150F128B, PIC32MX150F128C, PIC32MX150F128D, PIC32MX150F256H, PIC32MX150F256L, PIC32MX170F256B, PIC32MX170F256D, PIC32MX170F512H, PIC32MX170F512L, PIC32MX174F256B, PIC32MX174F256D, PIC32MX175F256B, PIC32MX175F256D, PIC32MX210F016B, PIC32MX210F016C, PIC32MX210F016D, PIC32MX220F032B, PIC32MX220F032C, PIC32MX220F032D, PIC32MX230F064B, PIC32MX230F064C, PIC32MX230F064D, PIC32MX230F128H, PIC32MX230F128L, PIC32MX230F256B, PIC32MX230F256D, PIC32MX250F128B, PIC32MX250F128C, PIC32MX250F128D, PIC32MX250F256H, PIC32MX250F256L, PIC32MX254F128B, PIC32MX254F128D, PIC32MX255F128B, PIC32MX255F128D, PIC32MX270F256B, PIC32MX270F256D, PIC32MX270F256DB, PIC32MX270F512H, PIC32MX270F512L, PIC32MX274F256B, PIC32MX274F256D, PIC32MX275F256B, PIC32MX275F256D, PIC32MX320F032H, PIC32MX320F064H, PIC32MX320F128H, PIC32MX320F128L, PIC32MX330F064H, PIC32MX330F064L, PIC32MX340F128H, PIC32MX340F128L, PIC32MX340F256H, PIC32MX340F512H, PIC32MX350F128H, PIC32MX350F128L, PIC32MX350F256H, PIC32MX350F256L, PIC32MX360F256L, PIC32MX370F512H, PIC32MX370F512L, PIC32MX420F032H, PIC32MX430F064H, PIC32MX430F064L, PIC32MX440F128H, PIC32MX440F128L, PIC32MX440F256H, PIC32MX440F512H, PIC32MX450F128H, PIC32MX450F128L, PIC32MX450F256H, PIC32MX450F256HB, PIC32MX450F256L, PIC32MX460F256L, PIC32MX460F512L, PIC32MX470F512H, PIC32MX470F512L, PIC32MX470F512LB, PIC32MX530F128H, PIC32MX530F128L, PIC32MX534F064H, PIC32MX534F064L, PIC32MX550F256H, PIC32MX550F256L, PIC32MX564F064H, PIC32MX564F064L, PIC32MX564F128H, PIC32MX564F128L, PIC32MX570F512H, PIC32MX570F512L, PIC32MX575F256H, PIC32MX575F256L, PIC32MX575F512H, PIC32MX575F512L, PIC32MX664F064H, PIC32MX664F064L, PIC32MX664F128H, PIC32MX664F128L, PIC32MX675F256H, PIC32MX675F256L, PIC32MX675F512H, PIC32MX675F512L, PIC32MX695F512H, PIC32MX695F512L, PIC32MX764F128H, PIC32MX764F128L, PIC32MX775F256H, PIC32MX775F256L, PIC32MX775F512H, PIC32MX775F512L, PIC32MX795F512H, PIC32MX795F512L, PIC32MZ2048ECG100, PIC32MZ2048EFG100

536 ready-to-select parts, and the generalized HALs build 1,700+ across the full Microchip DFPs.

Who makes it

Built by CURIOUS WORM.

PICPIO is created and maintained by CURIOUS WORM, an independent maker building free, friendly tools for embedded developers.

PICPIO is free to use and actively developed, with new chips, libraries and features added regularly.

Get started