I haven't figured out how to attach to an external sender on my mac, but it seems like it would be possible on Linux--in the diagram.json you can connect the serial to other ports: wokwi-serial-port.ino - Wokwi Arduino and ESP32 Simulator
I've used the Wokwi serial console to enter commands manually.
The failure is that the stepping doesn't seem to happen and it sticks in the Run state.
Posting links to projects or other large documents cuts off a lot of helpers that don't spend a lot of time to dig up the nucleus of Your project.
Do the filtering and post the central information here..
If you disable the soft and hard limits, and disable the HOMING_INIT_LOCK, you can run GRBL on a bare silicon UNO without any hardware connections, and interact with it. If you run similarly configured grbl with a bare UNO in Wokwi, it also gets stuck in Run. The block diagram for that is just a bare Uno.
Here's an almost bare Uno with grbl: grbl.ino - Wokwi ESP32, STM32, Arduino Simulator
It also hangs in Run on a Nano and a Mega.
I agree. I'm not sure how to trim the multiple-file grbl software down to a minimum reproducible example. I tried Timer1_TimerHelpers.ino - Wokwi ESP32, STM32, Arduino Simulator to exercise the Timer1 mode 4 similar to grbl's inner workings, and Wokwi seemed to handle everything I threw at it.
grbl is complicated software, with a few levels of seemingly unsupported forks, but grbl is very well tested on silicon. The Wokwi software is also complicated, and it's hard to pinpoint just what is wrong with the simulator that makes grbl not work. Wokwi drives steppers OK with 2-6-axis gcode software on Mega and Uno using code from GitHub - MarginallyClever/GcodeCNCDemo: a simple example of making a CNC machine from an Adafruit Motor Shield so the problem isn't the simulated stepper hardware.
It is the interaction between grbl's complicated internals and Wokwi that seems to be the problem.
Grbl is commonly used for CNC machines, 3D printers etc.
I use a Grbl sender sending commands to a little CNC.
Sorry but I don't understand Your problem. Referring to a simulator makes things difficult. Why not get into the real world and run things?
Does that simulator send commands to a physical rigg?
I understand what grbl is used for. What I see the simulator valuable for is for debugging or developing grbl.
My problem is that the Wokwi simulator has a bug that is demonstrated by grbl, but it is difficult to suss out exactly what the bug is
Since it is possible to connect the simulator to the outside world through serial or ethernet, there might be ways for the simulator to send commands out to physical rigs, but that isn't what I'm attempting.
A workaround for GRBL is to set OCR1A to something non-zero inside the stepper.c:st_wake_up() routine. OCR1A = 0x7FFF; seems to work OK. I didn't change it in the OP sim, because I want to keep that using the official grbl source.