Screen Shots










gpsim is a full-featured software simulator for Microchip PIC microcontrollers distributed under the GNU General Public License, Version 2 or higher, and some of it's libraries under GNU Lesser General Public License, Version 2 or higher.

gpsim has been designed to be as accurate as possible. Accuracy includes the entire PIC - from the core to the I/O pins and including ALL of the internal peripherals. Thus it's possible to create stimuli and tie them to the I/O pins and test the PIC the same PIC the same way you would in the real world.

gpsim has been designed to be as fast as possible. Real time simulation speeds of 20Mhz pics are possible. ( A 'goto $' program runs at the same speed as a 25Mhz pic when simulated on my 400Mhz PII Linux Box. Of course, as you add stimuli and begin interacting with peripherals, the performance drops. But it's still fast!)

gpsim has been designed to be as useful as possible. (At least that's the intent - honest.) The standard simulation paradigm including breakpoints, single stepping, disassembling, memory inspect & change, and so on has been implemented. In addition, gpsim supports many debugging features that are only available with in-circuit emulators. For example, a continuous trace buffer tracks every action of the simulator (whether you want it or not). Also, it's possible to set read and write break points on values (e.g. break if a specific value is read from or written to a register).

gpsim is not fancy, but it's improving. It supports a good ol' fashioned CLI like gdb and a gui based on gtk.

Screen Shots

Register viewer

Source browser

Bread board viewer.

Scope viewer 1. Scope viewer 2.



To build gpsim from the latest released source, download the source tarball .

If your distribution does not have a current or patched version of gtk+extra, then you should download gtk+extra, build it, and install it prior to building gpsim.


Borut Ra┼żem has ported gpsim to Windows and called the package "gpsimWin32". In addition, he's created a slick installer and makes regular snap shots.


The current gpsim SVN source can be browsed using the gpsim SourceForge SVN browser.

To get the gpsim SVN source tree for local build, follow the instructions for getting gpsim from SVN which provides a step-by-step description on how you can get the code.


Download the gpsim tar ball and type

tar -xvzf gpsim-0.x.y.tar.gz

Where 'x.y' is the version number. This will create a subdirectory called gpsim-0.x.y . All of gpsim's source code will be untarred to here. From there, you can read the README and INSTALL.gpsim files for more info. But they basically tell you to

cd gpsim-0.x.y
./configure This will create the Makefile
make <--- This will create the executable
su root if you have root privileges
make install places a copy of the executable in /usr/local/bin

Oh, don't forget to check the gpsim-0.x.y/examples subdirectory for some example asm and stimulus files...

Supported Processors
As processors are being added all the time, the best way to determine currently supported processors is to run the command "processor list" in the Command line of Gpsim. If you would like to use a processor not currently supported by gpsim please request it in a "Feature Request".(see support)

pic10f200 pic10f202 pic10f204 pic10f220 pic10f222 pic12c508
pic12c509 pic12ce518 pic12ce519 pic12f508 pic12f509 pic12f510
pic12f629 pic12f675 pic12f683 pic12f1822 pic16c54 pic16c55
pic16c56 pic16c61 pic16c62 pic16c62a pic16cr62 pic16c63
pic16c64 pic16c65 pic16c65a pic16c71 pic16c712 pic16c716
pic16c72 pic16c73 pic16c74 pic16c84 pic16cr83 pic16cr84
pic16f505 pic16f73 pic16f74 pic16f83 pic16f84 pic16f87
pic16f88 pic16f882 pic16f883 pic16f884 pic16f886 pic16f887
pic16f627 pic16f627a pic16f628 pic16f628a pic16f630 pic16f631
pic16f648 pic16f648a pic16f676 pic16f677 pic16f684 pic16f685
pic16f687 pic16f689 pic16f690 pic16f818 pic16f819 pic16f871
pic16f873 pic16f874 pic16f876 pic16f877 pic16f873a pic16f874a
pic16f876a pic16f877a pic16f1788 pic16f1823 pic18c242 pic18c252
pic18c442 pic18c452 pic18f242 pic18f248 pic18f252 pic18f442
pic18f448 pic18f452 pic18f1220 pic18f1320 pic18f2221 pic18f2321
pic18f2420 pic18f2455* pic18f2520 pic18f2550 pic18f2620 pic18f26k22
pic18f4221 pic18f4321 pic18f4420 pic18f4520 pic18f4550* pic18f4455
pic18f4620 pic18f6520

* USB functionality not supported (yet).


Here's the current gpsim documentation , gpsim.pdf, or gpsim.html.

Or if you prefer, here's the Lyx source gpsim.lyx.


The gpsim-devel mailing list is devoted to gpsim specific issues. While primarily intended for gpsim development, this list may also be used as a user resource to ask any question.

In addition to the mailing list, bug reports and feature requests can be filed at the gpsim SourceForge tracker.


gpsim supports loadable modules. This means that it is is possible to add devices to gpsim that are totally separate from gpsim. They reside in their own libraries and are distributed separately. The goal, of course, is to provide the simulation infrastructure for users to easily construct a custom simulation environment.

gpsim provides a basic module library with the following components:

  • Pullup/Pulldown resistors
  • switch
  • AND, OR, XOR, and NOT Logic Gates
  • Single or 7-segment LEDs
  • PAL Video emulator
  • Rotary Encoder

The gpsim LCD module provides support for character LCD displays.

Related Links

gpasm - The GNUPIC assembler that is compatible with MPASM.

gpsim Source Forge Project page contains the SVN source for gpsim.

gpsim Native Win32 port.

Byte Craft is the creator of the .cod symbol file format.

The gnupic webpage has links to other pic tools. Paul Vollebregt has another gnupic webpage with links to tools for other microcontrollers as well.

This page is maintained by the gpsim administrators gpsim-devel
Last modified on $Date: 2015-09-07 17:45:18 +1000 (Mon, 07 Sep 2015) $.

This site is hosted by Logo

Valid XHTML 1.0!
Valid CSS!