I have fitted a Ramps board to a laser cutter and modified Marlin reasonably sufficiently to get it operating.

My problem is the "over temperature" functions. I have a thermistor inside the water cooling system and need to stop the laser if the water temperature goes over around 30 C. The reason for this is that life of the tube and power output are both seriously affected by heat.

My problem is that I am supposed to issue an M999 command to recover from a MAXTEMP event (according to the serial output) but M999 seems to have no effect and I want it to auto recover without intervention once MAXTEMP-10 has happened anyway.

There is also the problem that the instant MAXTEMP occurs the laser switches off but the XY axis keeps working until the buffer is clear. No point at all in re-starting if it has lost some XY movements while it wasn't cutting.

I find it really really difficult to find my way round Marlin, little logic to where functions are found or called from. A starting point would be a list of which functions/variables/assignments are in which files. I had thought I should be able to get this info from Arduino somewhere but have failed to find it.