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.
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.
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.
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.
PICPIO scaffolds a project, you write a few lines of C, build, and run it in the simulator. No board required to watch.
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);
}
Friendly functions for GPIO, ADC, PWM, UART, I2C, SPI, timing and interrupts, no register juggling required.
Compile with Microchip's official XC8/XC16/XC32/XC-DSC and flash over a PICkit, ICD or Snap, straight from VS Code.
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.
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.
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.
Watch live output from your board, pick the port and baud rate, and send data back.
PICPIO warns if a library needs a peripheral your chip lacks, and picpio doctor verifies your whole toolchain.
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.
TRISB/PORTAbits with full SFR autocomplete, great for teaching.
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.
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.
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.
Use VS Code, Cursor, Windsurf, Antigravity or VSCodium, all free.
Click the Extensions icon in the sidebar, or press Ctrl+Shift+X.
Type PICPIO in the search box and hit Install on the PICPIO extension by CURIOUS WORM.
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.
Click the PICPIO icon in the sidebar → New Project, pick your chip, and start coding.
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 family | Install this compiler | What it covers |
|---|---|---|
| PIC10F · PIC12F · PIC16F · PIC18F | MPLAB XC8 | Every 8-bit PIC |
| PIC24F · PIC24H · PIC24E · dsPIC30F · dsPIC33E / 33F / 33C | MPLAB XC16 | 16-bit PIC24 & dsPIC |
| dsPIC33A (dsPIC33AK) | MPLAB XC-DSC | Newest dsPIC core, XC16 can’t target it |
| PIC32MX · PIC32MZ · PIC32MK · PIC32MM | MPLAB XC32 | 32-bit MIPS PIC32 |
| Flashing to a real board | MPLAB IPE | The 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.
| Download | For these chips | Official link |
|---|---|---|
| MPLAB XC8 Compiler | PIC10F / 12F / 16F / 18F | microchip.com/…/mplab-xc-compilers |
| MPLAB XC16 Compiler | PIC24 · dsPIC30F · dsPIC33E/F/C | microchip.com/…/mplab-xc-compilers |
| MPLAB XC-DSC Compiler | dsPIC33A (dsPIC33AK) | microchip.com/…/mplab-xc-dsc-compiler |
| MPLAB XC32 Compiler | PIC32MX / MZ / MK / MM | microchip.com/…/mplab-xc-compilers |
| MPLAB IPE (programmer only) | Flashing any chip to hardware | microchip.com/…/mplab-x-ide |
| Device Family Packs (.atpack) | Auto-installed by PICPIO, browse manually if you like | packs.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.
You almost never need this, but if you’re offline, behind a proxy, or want a specific pack version, here are three ways:
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..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.387dfp_path in picpio.ini to MPLAB X’s pack folder.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.
C:\Program Files\Microchip\MPLABX (PICPIO looks here).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.
Ctrl+Shift+X), search PICPIO, and click Install, from the VS Code Marketplace or Open VSX (Cursor, Windsurf, Antigravity, VSCodium).main.c, and pull in drivers from the built-in Library Manager (displays, sensors, SD, servo…).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:
ext install picpio.picpio
PICPIO is free, and so are the Microchip tools it uses.
There are other ways to program PICs. Here's where PICPIO stands out.
| PICPIO | Classic MPLAB X | Other PIC IDEs | |
|---|---|---|---|
| Price | Free | Free | Often paid / subscription |
| Editor | Modern VS Code | Standalone IDE | Standalone IDE |
| Coding style | Simple high-level API | Raw registers | Vendor-specific |
| Setup | One command | Manual | Manual |
| Bundled libraries + auto example code | 130+ | Limited | Varies |
| Built-in simulator | Yes | Yes | Sometimes |
| Official Microchip compiler (XC8) | Yes | Yes | Often a custom compiler |
PICPIO uses the same trusted, free Microchip XC compilers, it just makes them friendlier.
Every part below is selectable in the New Project menu and verified by a full build sweep.
PIC10F200, PIC10F202, PIC10F204, PIC10F220
PIC12F1571, PIC12F683
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
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
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
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
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
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.
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.