grbl-LPC-CoreXY/sim
ashelly 9b37637ae6 Bug fixes for timers, added some wdt support for limit debounce.
- Typo in timer def,
- Handle 8 bit timers correctly,
- Don't skip TOP count in CTC mode
- added SREG for atomic bit operations
2014-07-10 13:01:03 -04:00
..
avr Bug fixes for timers, added some wdt support for limit debounce. 2014-07-10 13:01:03 -04:00
util relaunch ontop of latest grbl edge 2013-01-17 13:06:51 +01:00
.gitignore Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
config.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
eeprom.c Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
eeprom.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
gnuplot.plt relaunch ontop of latest grbl edge 2013-01-17 13:06:51 +01:00
HelloWorld.nc relaunch ontop of latest grbl edge 2013-01-17 13:06:51 +01:00
main.c Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
Makefile Bug fixes for timers, added some wdt support for limit debounce. 2014-07-10 13:01:03 -04:00
planner_inject_accessors.c Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
platform_LINUX.c Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
platform_linux.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
platform_WINDOWS.c minor tweaks for mingw. 2014-07-04 23:21:19 -04:00
platform_windows.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
platform.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
README.md formatting 2014-07-05 00:12:43 -04:00
rename_main.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
serial_hooks.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
serial.c reduce diffs with dev branch 2014-07-04 16:43:52 -04:00
sim.bat relaunch ontop of latest grbl edge 2013-01-17 13:06:51 +01:00
sim.sh Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00
simulator.c Bug fixes for timers, added some wdt support for limit debounce. 2014-07-10 13:01:03 -04:00
simulator.h Total rework of simulator for dev branch. Create separate thread for interrupt processes. Tick-accurate simulation of timers. Non-blocking character input for running in realtime mode. Decouple hardware sim from grbl code as much as possible. Expanded command line options. Provisions for cross-platform solution. 2014-07-04 11:14:54 -04:00

GRBL SIM : by Jens Geisler

This directory contains an experimental Grbl simulator that compiles the main Grbl source code into a wrapped executable for use on a computer. No Arduino required. When the executable is run, the user should be able to interact with the Grbl simulator as if connected to an Arduino with Grbl.

WARNING: Grbl Sim is under heavy development. So many things may not work, or respond in ways unexpected. At the moment, this code is a proof-of-concept.

What can you do with Grbl Sim?

  • Simply checking out how Grbl works without needing an Arduino.
  • Visualize a g-code program by having the simulator parse and execute to a GUI. Fluctuations in feed rates by the acceleration planner can be viewed as well.
  • A powerful debugging tool for development.
  • Each of the AVR functions are replaced with dummy functions, like the stepper ISR. These could be written to whatever you need. For example, output simulated step pulses over time and examine its performance.

Realtime modifications by Adam Shelly:

Simulates Atmel hardware in separate thread. Runs in aproximate realtime.

On Linux, use socat PTY,raw,link=/dev/ttyFAKE,echo=0 "EXEC:'./grbl_sim.exe -n -s step.out -b block.out',pty,raw,echo=0" to create a fake serial port connected to the simulator. This is useful for testing grbl interface software.