Looks like I’ve got bugs.
The only time you should see “Grbl 0.8” is at the end of the init sequence where ‘start’ was returned before. I see that on line 93 there’s also a “Grbl 1.0” so that’s probably a bug but it’s in the Makeblock repository. I’m can’t explain why you see that ‘Grbl 0.8’ except that maybe the board got reset but then you’d also expect to see an “init” in the log.
I uppercased all of the "ok"s except the one in the stepper control file. Interestingly that is also where the “init” comes from (goto_machine_zero). So my strong suspicion is that your python code is out of sync with the board.
Here’s a possible timeline:
- Init starts and “init” is sent
- Your code waits 60 seconds
- Your code sends Seq 1
- The board finishes its move to zero and sends “ok”
- Your code gets “ok” and sends Seq 2
- The mainboard responds with an “OK” to Seq 1 (?)
- You send Seq 3
- The board finally finishes init and sends “Grbl 0.8”
- Your code sends Seq 4
- The board responds with an “OK” to Seq 2
- Your code sends Seq 5
etc.
If this is completely accurate then you should see a series of "OK"s at the end corresponding to the command queue. It’s also possible that the first three commands are just getting dropped on the floor and the "OK"s are for the sequences that are actually requested.
I think you have to watch the machine very carefully to see which commands are executed when and also make sure that whatever else your code does it outputs everything that it gets via serial regardless of when it comes in and whether it thinks it’s finished or not.
Edit: actually I think the fix is probably for the script to wait for the “Grbl 0.8” before sending any commands because anything before that is just pre-initialization messages.