PICSimLab vs the MPLAB X Simulator: Board-Level Simulation vs Software-Only Simulation
Verdict: This is not really an either/or choice — the two are designed to work together. The MPLAB X simulator is the software simulator built into Microchip’s free MPLAB X IDE: it executes your PIC firmware on a model of the chip, with source-level debugging, and it needs no hardware and no extra program. PICSimLab simulates the board around the chip: the development board, its LEDs, displays, keypads and other spare parts reacting in real time while your firmware runs. Used alone, the MPLAB X simulator is the quickest way to debug PIC logic. Used together — MPLAB X debugging PICSimLab through its official plugin — you get source-level breakpoints and a board you can see and poke. For pure code logic, start in MPLAB X; for anything involving the board’s peripherals, add PICSimLab.
At a glance
| Aspect | PICSimLab | MPLAB X Simulator (built into MPLAB X IDE) |
|---|---|---|
| What is simulated | A complete development board (21 boards) — microcontroller plus the board’s circuits — with attachable spare parts and a basic two-channel oscilloscope. | The microcontroller itself: CPU and on-chip peripherals as a software model inside the IDE. There is no board visualisation. |
| Price | Free and open source (GPL-2.0). | Included free with MPLAB X IDE; firmware is typically built with Microchip’s XC8 compiler. |
| Debugging view | You watch the board: LEDs light, the LCD prints, motors turn. Source debugging happens in MPLAB X (via the plugin) or GDB. | Source-level: breakpoints, single-stepping, watch variables and register/peripheral views in the IDE, with stimulus for exercising inputs. |
| External circuits | Spare parts: HD44780 and I2C LCDs, keypads, 7-segment displays, sensors, buttons, motors, W5500 Ethernet, SD card, RTCs and more. | No physical-style external parts; inputs are provided as programmed stimulus rather than clickable components. |
| Chip coverage | Defined by its boards: a documented set of PIC16F/PIC18F chips (for example PIC16F877A, PIC18F4550), plus AVR, STM32F103 and ESP32 boards. | Microchip’s own PIC (and related) device range as supported by MPLAB X — far broader PIC coverage, but only Microchip devices. |
| How they connect | PICSimLab ships an official MPLAB X plugin (com-picsim-picsimlab.nbm, distributed with each release) that connects MPLAB X to the running simulator over a TCP socket (port 1234 by default), so MPLAB X can debug and program PICSimLab much as it would a real hardware tool — for PICs and AVRs. |
|
What the MPLAB X simulator does best
If your question is “does my code do the right thing?” — a timer calculation, an interrupt sequence, an EEPROM write routine — the MPLAB X simulator answers it without leaving the IDE: set breakpoints, step through the XC8 source, inspect registers and variables, and drive inputs with stimulus files. It is also the reference environment for Microchip devices that PICSimLab does not cover, since its device support follows MPLAB X itself. For a PIC developer it is not optional software; it is the default first tool, and it costs nothing.
What PICSimLab adds
What the MPLAB X simulator cannot show you is the board. In PICSimLab the same firmware drives a visible development board: the LED on RB0 actually lights, the HD44780 LCD shows your text, the matrix keypad responds to clicks, and the oscilloscope traces a pin while the code runs — the workflow in our PIC16F877A blink, LCD and timers and interrupts tutorials. That board-level feedback is what makes PICSimLab the teaching tool of the pair, especially on the McLab2 and PICGenios trainer boards (McLab2 guide) used in so many PIC courses — and it extends beyond PIC to Arduino, Blue Pill and ESP32 boards that MPLAB X’s simulator does not address at all.
Using them together (the recommended workflow)
- Write and build your project in MPLAB X with XC8, exactly as you would for real hardware.
- For quick logic checks, debug it in the MPLAB X simulator.
- Install the PICSimLab plugin in MPLAB X and start PICSimLab with your board loaded — our plugin installation guide covers the .nbm install, the port 1234 connection and the firewall prompt.
- Debug from MPLAB X while watching the simulated board react; attach spare parts for the peripherals your project uses.
- If a connection problem appears, our plugin connection troubleshooting walks through the usual causes.
Which should you choose? By scenario
- Debugging PIC logic, registers and timing calculations: the MPLAB X simulator — fastest path, inside the IDE.
- Teaching or learning with a visible board and peripherals: PICSimLab.
- A PIC chip that PICSimLab’s boards do not include: the MPLAB X simulator (its device coverage follows MPLAB X).
- Arduino, STM32F103 or ESP32 firmware: PICSimLab — outside MPLAB X simulator territory.
- Serious project work: both, connected by the plugin — that combination, not either tool alone, is the complete setup. Start with PICSimLab free from our download page.
From simulation to real hardware
The step after simulation is a programmer and a real board. For PIC work that means:
- A PICkit programmer — the hardware counterpart of the MPLAB X programming workflow you practised in simulation.
- An electronics starter kit with a breadboard and components to wire your simulated circuits for real.
- An Arduino Uno if your PICSimLab work also used the simavr boards.
- Structured PIC and embedded C courses on Udemy and Coursera if you want a curriculum around the practice.
These links are affiliate links routed through our /go/ redirects — see our affiliate disclosure. They never change the price you pay.
