Getting Started with PICSimLab
PICSimLab is a free, open-source (GPL-2.0) realtime simulator for microcontroller development boards — PIC, AVR/Arduino, STM32 and ESP32 — with virtual spare parts you wire to the pins. This page is the learning path: five steps from nothing installed to your own compiled project running on a simulated board. Work through them in order; each step links to the detailed guide.
Just want a first look? Skip the install: the PICSimLab online version runs the same simulator in your browser. It is limited — no Tools menu, no debugging, no serial communication beyond the IO Vterm terminal, and about half desktop speed — but it is the fastest way to see a board run. Come back here when you are ready for the full desktop version.
Step 1: Install PICSimLab
Download the current stable version (v0.9.3) for your system. Every file on our download pages links to the official GitHub release and lists its SHA-256 checksum.
- Download page — all platforms and files
- PICSimLab for Windows — 64-bit and 32-bit installers and portable ZIPs
- PICSimLab for Linux — .deb, Flatpak, AppImage and the terminal-only NOGUI build
- PICSimLab for macOS — native Intel and Apple Silicon .dmg builds (new in v0.9.3)
- How to install PICSimLab on Windows — step by step, with checksum verification
- How to install PICSimLab on macOS — .dmg install and first-open steps
Step 2: Run your first simulation
Prove the whole loop works before writing any code: select a board, open a built-in example, run it, and watch an LED you wired yourself.
- Your first simulation — board selection, built-in example, adding an LED spare part
- How to load a .hex or .bin file — the board/MCU matching rule that prevents most beginner confusion
- PIC16F877A LED blink tutorial — the classic first project, compiled by you end to end
Step 3: Choose your board
PICSimLab supports 21 boards across five simulator backends. Pick the board that matches the chip you want to learn or prototype for:
- McLab2 — the teaching workhorse: PIC16F877A, PIC18F4550 and four more PICs
- Breadboard and X — generic boards when no fixed board layout fits
- Arduino Uno and Nano — ATmega328P via the simavr backend
- Blue Pill — STM32F103C8T6, plus the STM32 H103 board
- ESP32-DevKitC — ESP32 and ESP32-C3 via QEMU, with the real limits stated
Step 4: Build your own projects
PICSimLab does not edit code — you compile with the same tools used for real boards, then load the firmware. Choose the workflow for your chip family, then work through project tutorials:
- MPLAB X + XC8 workflow — the PIC16F/PIC18F path: wizard-generated MPLAB X projects
- PlatformIO / Arduino IDE workflow — the AVR, STM32 and ESP32 paths, kept clearly separate
- PIC16F877A HD44780 LCD tutorial — character display wiring and XC8 code
- PIC16F877A UART tutorial — serial output with the virtual port pair
- LED and push button spare parts — inputs and outputs you wire in Properties
Step 5: When you get stuck
Most beginner problems are one of a handful of known issues. Match your symptom:
- Hex file not loading — board/MCU mismatch, stale build, wrong file type
- Simulation not running — run state, reset, clock and workspace checks
- Serial port not working — virtual pair, 8N1 and Vterm fixes
- GDB cannot connect — enable debug first, then use the right debugger per backend
PICSimLab Hub (picsimlab.com) is operated independently by its owner (contact: [email protected]). It is not affiliated with, endorsed by, or sponsored by Luis Claudio Gamboa Lopes, the PICSimLab project, Microchip, Arduino, Espressif, or STMicroelectronics. Official PICSimLab downloads are distributed only via GitHub and SourceForge (project “picsim”).
