• Increase font size
  • Default font size
  • Decrease font size

gpsim tutorial

To build a robot it is often neccesery to create also a hardware. PIC programming is one of many possible options. I have chosen this way several times and hence know a good PIC simulator is very handy. I have found difficult to find any gpsim tutorial aimed on windows version of the gpsim out there. Therefor you may find one here:


This chapter will lead you in a very fast way to run your first gpsim simulation by running a .hex file.

1. gpsim download page can be found here. if you want to download a windows installer use this link instead.

2. install the gpsim. in my case into following directory: "c:\Program Files (x86)\gpsim\"

3. to run your code (as a hex file) in simulator (gpsim) the fastest way is this:
- open command prompt
- execute following command  (correct path if neccesery).

 "c:\Program Files (x86)\gpsim\bin\gpsim.exe" 

it will start up the gpsim and at least 1 new window should be displayed - main GUI. You should stay in your command prompt window though. You may notice that command prompt has changed a little bit. Something like "**gpsim>" should be displayed at the beginning of the command prompt which tells you that gpsim is running and ready to accept your commands.

- now execute following command:

 processor list 

the list of all supported PIC processors is displayed. choose the one you will use for the simulation. Let's say "pic16f84".

- quit the gpsim by issuing following command:


you may notice that the beginning of the new line on command prompt has returned to its standard form - "C:\Users\Jon.Doe>" in my case.

- now you are finally able to run a simulation. To do this execute following command (correct path if neccesery):

"c:\Program Files (x86)\gpsim\bin\gpsim.exe" -pp16f84 c:\_cc5x\_Projects\Clock_generator\clock_generator_v01.hex

it will run "gpsim.exe" with parameter "-pp16f84" (this tells to gpsim that your processor is pic16f84) and then follows path to your .hex file - in my case "clock_generator_v01.hex".


This chapter will show you a basic usage of the breadboard functionality which I found the most important during the simulation. We will connect a PORTB0 port of the PIC to the LED module.

1. open Breadboard window by clicking: "Windows/Breadboard"

2. click "Add library" button and enter following text into the displayed input window: "libgpsim_modules.dll" and click "OK".

3. click "Add module" button. New window is displayed. The window contains list of many different modules, eg. switch, led, etc.

4. let's choose "led" as our new module. Click on it and enter its name afterward "led1".

* if mouse is not working for the window use keyboard instead - tab to navigate from input box to OK button.

5. a picture of the let module is now displayed in the breadboard window. click on a "+" sign of the led1 element in the upper left corner to display its ports. following situation should be shown:

- led1
- led1.in

- by clicking on "led1" you display properties of the module.

- by clicking on "led1.in" in the lower left part you display nodes/stimulus that are connected to the input port (since its name is led1.in) of this module. since we have not made any connection yet following situation should be shown:

Stimulus led1.in

Not connected

6. to create a node push "Add node" button and enter its name, for instance "node_led1".

7. now we are finally able to connect a PIC output port to the led1 module. the "node_led1" node serves for this purpous.
- click on "led1.in" and pusth the "Connect stimulus to node" button. double click on "node_led1" item in the displayed window.
- click on "+" sign of the p16f84 processor. list of all its ports is displayed. select "portb0" and pusth the "Connect stimulus to node" button. now select the same node as in the previous step - "node_led1".
- to check the new connection click on "+" sign of the nodes and select "node_led1" node. in the lower left part of the window both ports led1.in and portb0 should be displayed.

STC file

Maybe more convienient way to set up whole simulatin in breadboard is to code it. If this is your case you may use .stc files.

1. in the same directory as your .hex file create a new text file called for instance clock_generator_v01.stc

2. put following code into the file:

processor pic16f84
 load clock_generator_v01.hex
 frequency 32768
 # Processor position:
 p16f84.xpos = 50
 p16f84.ypos = 50
 # Modules:
 module library libgpsim_modules.dll
 module load led led1
 led1.color = green
 led1.xpos = 100
 led1.ypos = 350
 module load led led2
 led2.color = green
 led2.xpos = 100
 led2.ypos = 400
 # Connections:
 node n_led1
 attach n_led1 portb0 led1.in
 node n_led2
 attach n_led2 portb1 led2.in

 #scope.ch0 = "portb0"
 #scope.ch1 = "portb1"
 #scope.ch2 = "portb2"

 #break at interruption
 #break e 0x0004

 #break at specific instruction execution
 #break e 0x003f

 #break on write to 0x1A
 break w 0x1A

3. now you can run the simulation simply by calling:

"c:\Program Files (x86)\gpsim\bin\gpsim.exe" -c c:\_cc5x\_Projects\Clock_generator\clock_generator_v02.stc



0 #14 manicure 2017-04-23 22:34
Superb blog you have here but I was wondering if you knew of any
discussion boards that cover the same topics talked about in this article?
I'd really like to be a part of community where I can get feedback from other knowledgeable people
that share the same interest. If you have any recommendations , please let
me know. Thank you!
0 #13 manicure 2017-04-23 11:04
Incredible points. Sound arguments. Keep up the amazing spirit.
0 #12 BHW 2017-04-18 11:51
Wonderful goods from you, man. I have be aware your stuff previous to and you're simply too excellent.
I actually like what you've bought here, really like what you're saying and the
best way in which you are saying it. You are making it entertaining and you still take care of to keep it sensible.
I can't wait to read far more from you. That is actually a great site.
0 #11 BHW 2017-04-15 11:04
I was excited to find this page. I want to to thank you for ones
time due to this fantastic read!! I definitely savored every
part of it and I have you saved as a favorite to check out new stuff on your blog.
0 #10 manicure 2017-04-08 00:21
Exceptional post however , I was wanting to know if you could write a litte more on this topic?
I'd be very grateful if you could elaborate a little bit further.
0 #9 BHW 2017-04-03 00:31
Hi there, I read your blog regularly. Your writing style is awesome,
keep up the good work!
0 #8 overhead door repair 2017-03-19 06:48
Generally I don't read article on blogs, buut I wush too say
that ths write-up veryy forced me to check out and ddo so!
Your writing style has been amazed me. Thanks, quite nice post.

Here is my web page :: overhead door repair: https://twitter.com/chapgaragedoor
0 #7 garage door 2017-03-18 09:41
Do yoou mind if I quote a feew of your posts
as long as I prpvide credit and sources back to your webpage?

My blog is in the exact same niche as yourfs and my
users would genuinely benefit from a llot of the information you present
here. Please let mee know if this okay with you.
Thank you!

my web page garage door: https://plus.google.com/+ChapmanGarageDoorRiverside
0 #6 wrongful injury 2015-10-06 22:45
Create experiences that combine the magic of softwawre with the
power of Internet services across a world of devices.
It may not happen that often but personal injuries may occur to
you. I guess we don't pull our own teeth these days, so it stands
to reason that we wouldn't prepare our own legal documents and try to present a case on our own.

Here is my website :: wrongful injury lawyers: http://www.bih-radio.net/news.php?readmore=6&c_start=29060
0 #5 www.hairmastic.sk 2015-07-27 08:22
Post si definitívne získal moju pozornosť.

Add comment

No bad words.

Security code

Design by i-cons.ch / etosha-namibia.ch