/picsimlab

PICsimLab - Programmable IC Simulator Laboratory

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Linux release Windows release

PICSimLab - Programmable IC Simulator Laboratory

PICSimLab is a realtime emulator of development boards with MPLABX/avr-gdb debugger integration. PICSimLab supports microcontrollers from picsim, simavr, uCsim, qemu-stm32, qemu-esp32, and gpsim. PICSimLab has integration with MPLABX/Arduino IDE for programming the microcontroller's boards. As the purpose of PICSimLab is to emulate real hardware it does not have any source code editing support. For code editing and debugging the same tools used for a real board should be used with PICSimLab, such as MPLABX, Arduino IDE, or VSCode with PlatformIO.

PICSimLab supports several devices (spare parts) that can be connected to the boards for simulation. Such as example LEDs and push buttons for simple outputs and inputs and some more complex ones like the ethernet shield w5500 for internet connection or the color graphic display ili9340 with touchscreen. The the complete list of parts can be accessed in the documentation.

PICsimLab

PICsimLab

More info

For users

Online Documentation

Examples

Online version of PICSimLab

Changelog

PICSimLab on Twitter

PICSimLab on Discord

For developers

Development Documentation

TODO list

Stable version executables download

If you are on Linux or Windows you can download the last version at:

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

Unstable last code version executables download

The binaries of last code available on github can be downloaded at: Latest code build (unstable) release

The unstable test version have the unreleased features of Changelog_auto.md

If you need a specific binary that is not available please contact me.

Install from source

In Debian Linux and derivatives Linux native:

Using a user with permission to run the sudo command:

In first time build:

git clone --depth=1 https://github.com/lcgamboa/picsimlab.git
cd picsimlab
bscripts/build_all_and_install.sh

To recompile use:

make -j$(nproc)

Cross-compiling for Windows (from Linux or WSL on win10)

In first time build in Debian Linux and derivatives target Windows 64 bits:

git clone https://github.com/lcgamboa/picsimlab.git
cd picsimlab
bscripts/build_w64.sh

To recompile use:

make FILE=Makefile.cross -j$(nproc) 

For target Windows 32 bits:

git clone https://github.com/lcgamboa/picsimlab.git
cd picsimlab
bscripts/build_w32.sh

To recompile use:

make FILE=Makefile.cross_32 -j$(nproc) 

Experimental version

Experimental version can be built using the parameter "exp" on scripts:

bscripts/build_all_and_install.sh exp
bscripts/build_w64.sh exp
bscripts/build_w32.sh exp

And recompiled using the parameter "exp" on Makefiles:

make -j$(nproc) exp
make FILE=Makefile.cross -j$(nproc)  exp
make FILE=Makefile.cross_32 -j$(nproc) exp

macOS from source

Theoretically it is possible to compile PICSimLab natively on macOS. But I do not have access to any computer with macOS to try to compile and until today nobody has communicated that they managed to do it. (help wanted)

Troubleshooting:

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.

Libraries and projects used in PICSimLab (all free software):

Graphic interface

Microcontroller simulation

Data visualization

Graphic editing

Circuit design

Utils:

Download analytics

Credit to Shields IO for the badges and to Somsubhra/github-release-stats for the individual file counters.