jes notes Index Gallery . 4th axis Blog ideas Micro-machining CNC milling machine Paint colours CNC Router Shaft passers Software ideas Stepper motor clock Toy ideas Watchmaking

2024-02-27

Last modified: 2024-03-03 20:47:27

< 2024-02-26 2024-03-03 >

Pugsender

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. ???

Milling machine

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:

Machine design

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:

  1. buy a 250mm ballscrew
  2. cut down one of the longer ballscrews and machine it on the lathe
  3. reduce Y axis travel from 200mm to ~190mm

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 >