PICSimLab is a realtime emulator of development boards with integrated MPLABX/avr-gdb debugger. PICSimLab supports some picsim microcontrollers and some simavr microcontrollers. PICSimLab have integration with MPLABX/Arduino IDE for programming the boards microcontrollers.
wxwidget - For graphic suport http://www.wxwidgets.org
picsim - PIC simulator https://github.com/lcgamboa/picsim
lxrad - Graphic library https://github.com/lcgamboa/lxrad
simavr - AVR simulator https://github.com/buserror/simavr
picsimlab_md - for debug with MPLABX https://github.com/lcgamboa/picsimlab_md
com0com - For serial emulation in windows http://com0com.sourceforge.net/
tty0tty - For serial emulation in linux https://github.com/lcgamboa/tty0tty
https://github.com/lcgamboa/picsimlab/releases
If you are on macOS you can run picsimlab using Wine:
- Download and install
xquartz
- Download and install Wine
- Download the executable and double-click it to run the installer
In Debian Linux and derivatives:
git clone https://github.com/lcgamboa/picsimlab.git
cd picsimlab
./picsimlab_build_all_and_deps.sh
In Debian Linux and derivatives:
git clone https://github.com/lcgamboa/picsimlab.git
cd picsimlab
./picsimlab_build_w64.sh
The simulation in PICSimLab consists of 3 parts:
- The microcontroller program
- Microcontroller simulation (made by picsim and simavr)
- Simulation of boards and parts
When a problem occurs it is important to detect where it is occurring.
One of the most common problems is the error in the microcontroller program. Before creating an issue, test your code on a real circuit (even partially) to make sure the problem is not there.
Errors in the microcontroller simulation can be detected using code debugging. Any instruction execution or peripheral behavior outside the expected should be reported in the project of simulator used (picsim or simavr).
If the problem is not in either of the previous two options, the problem is probably in PICSimLab. A good practice is to send a source code together with a PICSimLab workspace (.pzw file) to open the issue about the problem.