Last modified: 2024-03-03 20:47:27
< 2024-02-26 2024-03-03 >I've added a grbl simulator to Pugsender. This will be mildly useful for testing the application without having a Grbl connected, but will be very useful for unit tests, and will also be a handy way to test out different Grbl configs, and differences between Grbl and grblHAL, without having to reconfigure any hardware.
I'm dissatisfied with https://github.com/256dpi/gcode as it requires gcode to be uppercase and have spaces, even though Grbl is happy to accept "g0x5" instead of "G0 X5". So I need to either fix it, or just fork it. My guess is that that change wouldn't be accepted, so I may have to fork it. While I'm at it I should also separate out my grbl interface stuff to a separate library so that it can be used in other applications.
Looking at the issue where the "Stop" button sometimes doesn't work properly... I have noticed that when it doesn't work, Pugsender logs:
BUG: wanted to send a command response, but no channels are waiting; this means the sender is out of sync: ok
I think this might be a scenario like:
But why does that mean the soft-reset doesn't happen?
OK, one issue is that the instruction to clear out the response queue goes over a different channel to the commands to Grbl. I need to make these use the same channel so that they are synchronised properly.
But I've fixed that now and the bug persists. And actually I sometimes see the "sender out of sync" error even in cases where it works correctly.
I have found that if I send the soft-reset twice then it seems to work every time. ???
Next up: finish taking the milling machine apart.
Great success, all 3 ballscrews + ballnuts liberated. Also, bonus, one ballnut holder.
The ballscrews have 485mm, 435mm, and 235mm of ball-threaded section.
I drew this sketch of the parts I measured:
I have determined that the 235mm ballscrew is just marginally too short for my Y axis, and obviously the 435mm one is wildly too long.
If the ballnut is 42mm long then I need the screw to be at least 42mm longer than the required travel.
Options:
Given that I can use a short ballscrew for the Z axis, I think the plan is to cut down one of the longer ballscrews to have a Y axis ballscrew with 250mm threaded section, and then recreate the 10mm-long 10mm-diameter bearing surface on the end.
I think for the X axis 400mm will do nicely.
< 2024-02-26 2024-03-03 >