
Complete PIC32MZ development toolkit: bootloader flashing, config editor, XC32/MikroC project generator, pin manager, and peripheral configuration.
MSYS GNU Make is required - installation will be guided when first using this plugin if it does not exist.
XC32 compiler is required together with the DFP (Device Family Pack) downloaded from Microchip.
MikroC requires a purchased license for MikroC Pro for PIC32 from Mikroelektronika, with the application fully installed on the device.

Features
🚀 Bootloader Flashing
- One-Click Flashing: Flash .hex files to PIC32 devices with a single command
- Status Bar Button: Quick access button in the status bar (click "⚡ Flash PIC32")
- Auto-Discovery: Automatically finds .hex files in your workspace
- Multiple Files: Quick picker when multiple .hex files are found
- Terminal Integration: See bootloader output in real-time
⚙️ Device Configuration Editor (PIC32MZ EC/EF)
- Visual DEVCFG Editor: Configure all 40 PIC32MZ configuration settings with dropdown menus
- Real-time Register Preview: See DEVCFG0-3 register values update as you configure
- Clock Calculator: Automatic system clock calculation from PLL settings
- Scheme Save/Load: Save and load configuration schemes for different projects
- XC32/DFP Version Selection: Choose compiler and device pack versions
- Mikroelektronika Bootloader Option: Enable bootloader-compatible configuration
🕐 Timer Configuration
- All Timer Types: Configure Timer1 (Type A 16-bit) and Timer2-9 (Type B 16/32-bit)
- Dual Code Generation: Generate mikroC or Harmony/XC32 compatible code
- PBCLK3 Integration: Automatically uses system clock configuration
- Interrupt Support: Configure interrupt priorities and enable flags
- 16/32-bit Mode: Timer2-9 can operate as 16-bit or combined 32-bit timers
📡 UART Configuration (Under Development)
- All UART Modules: Configure UART1-6 with baud rate calculator
- Dual Code Generation: Generate mikroC or Harmony/XC32 compatible code
- PBCLK2 Integration: Automatic baud rate calculation from peripheral clock
- Interrupt Support: Configure interrupt priorities and enable flags
- PPS Integration: Automatic peripheral pin select for TX/RX pins
📌 Pin Manager (PIC32MZ EC/EF)
- Complete Pin Database: 100+ GPIO pins across PORTA-PORTK
- Package Support: 64/100/124/144-pin package configurations
- GPIO Configuration: Set pins as input/output with pull-up/pull-down, open-drain
- Analog Configuration: Configure 36 analog inputs (AN0-AN35)
- PPS Support: Full Peripheral Pin Select for remappable peripherals
- Dual Code Generation: Generate mikroC or Harmony/XC32 compatible GPIO code
- Visual Table: Filter by GPIO, Analog, PPS, or configured pins
🏗️ Project Generator (Under Development)
- XC32 Projects: Generate complete buildable XC32 projects with Makefiles
- mikroC Projects: Generate mikroC PRO for PIC32 projects (planned)
- Device Configuration: Automatic integration of DEVCFG settings
- Peripheral Code: Integration of Timer, UART, and GPIO initialization code
- VS Code Tasks: Build, clean, and flash tasks pre-configured
- Bundled XC32 Tools: No external compiler installation required
Requirements
What's Included (Bundled)
✅ MikroC HID Bootloader (mikro_hb.exe) - No download needed!
✅ XC32 Compiler Tools - Essential compiler binaries bundled
✅ Device Support Files - PIC32MZ configuration and headers
What You Need
1. Hardware
- PIC32MZ Device (EC/EF series supported)
- USB Connection for bootloader flashing
- Device must have MikroC bootloader firmware installed (for flashing feature)
2. Software
- VS Code 1.106.1 or later
- Windows OS (tested on Windows 10/11)
- No external compiler installation required - tools are bundled!
Installation
From VS Code Marketplace (Recommended)
- Open VS Code
- Press
Ctrl+Shift+X to open Extensions
- Search for "PIC32M Development Tools"
- Click Install
That's it! All tools are bundled - no additional setup required.
From VSIX File
- Download the latest
.vsix from Releases
- Open VS Code
- Press
Ctrl+Shift+P
- Type "Install from VSIX"
- Select the downloaded file
From Source (Development)
git clone https://github.com/Davec6505/mikroc-bootloader-plugin.git
cd mikroc-bootloader-plugin
npm install
npm run compile
npx @vscode/vsce package
code --install-extension pic32m-dev-1.2.3.vsix
Usage
Device Configuration
- Open Command Palette (
Ctrl+Shift+P)
- Type "PIC32: Configure Device"
- Select your device (currently supports PIC32MZ EC/EF family)
- Configure settings in the visual editor:
- Configuration Tab: Set oscillator, PLL, watchdog, debug settings
- Timer Calculator Tab: Configure timers with automatic code generation
- Pin Manager Tab: Configure GPIO, analog pins, and PPS mappings
- Click OK to generate project or save configuration
Bootloader Flashing
Method 1: Status Bar Button (Quickest)
- Connect your PIC32 device in bootloader mode
- Click the "⚡ Flash PIC32" button in the status bar
- Select .hex file if multiple exist
- Monitor terminal output for flash progress
Method 2: Command Palette
- Press
Ctrl+Shift+P
- Type "MikroC PIC32: Flash Device"
- Select the .hex file to flash
- Monitor progress in integrated terminal
Prerequisites
Common Issues
| Issue |
Solution |
| "Bootloader path not configured" |
Set the path in VS Code settings |
| "No .hex files found" |
Ensure your project has compiled .hex files |
| "Exit code: 1" |
Device not connected or not in bootloader mode |
| "No output from bootloader" |
Check USB connection and device status |
Debug Steps
- Verify
mikro_hb.exe exists at configured path
- Test bootloader manually:
mikro_hb.exe path\to\file.hex
- Check VS Code Output panel (View > Output > MikroC Bootloader)
- Check terminal output for detailed error messages
Development
See readme/DEVELOPER_GUIDE.md for:
- Code architecture
- API documentation
- Building from source
- Contributing guidelines
Documentation Index
Design and internal docs are under the readme/ folder:
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Changelog
See CHANGELOG.md for version history.
License
MIT License - see LICENSE file for details.
Support
Acknowledgments
- MikroElektronika for the MikroC compiler
- Microchip for PIC32 devices and XC32 toolchain
- VS Code team for excellent extension APIs
⭐ If this extension helped you, please star the repo!