• 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 #52 ntc 33k resistor 2019-01-22 00:24
My brother recommended I might like this blog.
He was entirely right. This post actually
made my day. You cann't imagine just how much time I had spent for this info!
0 #51 play8oy casino ios 2019-01-22 00:16
Reversely, your teen will strengthen his/her old habit all the time s/he engages in it.
As it is portable instrument it's carried in pockets by both
children and adults. They might often seen from afar.
0 #50 scr888 download 2019-01-19 19:57
Surrender and turn to seem polite and experienced?
Within the end you do have your friends nearby for a good opinion and encouragement.
Make a checklist - this saves your serious amounts of energy.
0 #49 d scr888 fun 2019-01-19 03:46
Hi there, always i used to check weblog posts here early in the break of day,
as i like to gain knowledge of more and more.
0 #48 918kiss 2019-01-19 03:28
Thank you for some other informative blog. The place else may I get that kind of information written in such an ideal way?

I have a venture that I'm just now running on, and I've been at the glance out for such information.
0 #47 d.2 scr888.com 2019-01-18 13:57
Woah! I'm really enjoying the template/theme of this blog.

It's simple, yet effective. A lot of times it's very hard to
get that "perfect balance" between user friendliness and visual appearance.
I must say you have done a awesome job with this.
In addition, the blog loads extremely quick for me on Chrome.
Superb Blog!
0 #46 scr888 l 2019-01-17 15:08
fantastic publish, very informative. I'm wondering why the opposite experts of this
sector don't realize this. You should proceed your writing.

I'm sure, you've a huge readers' base already!
0 #45 ntc33 download 2019-01-16 20:06
Remember though, obtained to post good content to get this to work!

Whatever your motivation when possible at factor want to monetize blog site.
Experimentation is part of applying.
0 #44 scr 888 2019-01-15 22:41
If you impliment this with countless keywords, discover easily obtain a good Page ranking.
Getting a good page rank is tough and getting a 3
- 4 consider a regarding time to do this.
0 #43 scr888 2019-01-13 09:54
If anyone could have a good content on your website, Google will reward your website with higher rankings.
You would think that amount of traffic everyday would finally lead to conversion to sale.

Add comment

No bad words.

Security code

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