gsimavr is a gui wrapper around @buserror excellent simavr. It uses GLUT to draw a representation of a uController, update outputs pins from simulator triggers, and prods the simulator when input pins are toggeled from the UI. The GUI code has been specifically designed to be as low impact to your firmware as possible.
Users should simply git clone this repo and copy the 'src' directory into a sub directory of their firmware. See gsimavr-example for an example use. Finally add a single line to their makefile and install the supporting libraries:
- simavr
- GLUT
- See the "example" directory for an example of using. Just run
make gui. The only thing different about theexample/makefilefile over a standard AVR makefile is the addition of a new targetgui: $(TRG) $(MAKE) -C gui FIRMWAREDIR=$(CURDIR) - But, in general:
- Clone this repository and copy the src directory into a sub directory of your firmware (we're assuming a directory of 'gui').
- Check your dependencies.
- run
make, to build the avr firmware. - enter the 'gui' directory and run
make. This will compile and start the gui app.- The app will load the firmware from the parent directory as defined in the makefile PROJECTNAME variable.
- The app will automatically configure input/output pins as defined by the firmware.
- How to use the gui:
- Left click on an input to turn it on,
- Right click on an input to turn it off,
- Middle click on an input to connect it to a clock signal
- If you started the gui app with the
-dparameter, it will wait for a gdb connection to localhost:1234 - it currently only supports the layout of an ATmega328P, ATtiny2313 and ATtiny13, but it's super easy to add more MCUs.
This first version has a lot of caveats:
- there is no analog represntation.
- pullup resistors are not considered.
- The GLUT implementation has a lot to be desired.
- I'm sure more...

