I have implemented the GRBL Streaming Protocol in LaserWeb3 branch overrides.

I have implemented the GRBL Streaming Protocol in LaserWeb3 branch overrides. This should make the communication much faster and quick movements less jerky. Please test!

Should I make the protocol switchable between “ping-pong” and “streaming”?

Ok, I will add the streaming version to server-grbl-streaming.js in master branch, so every user is able to decide himself.

How can this protocol be utilised by Smoothie users?

Streaming protocol is especially usefull with Grbl (slow Arduino), as it uses the internal gcode buffer of Grbl, which is not realy used with ping-pong protocol.

We do not use a serial port on smoothie so a hack like counting simply is not relevant,it is not a feature it is a hack to get over slow arduino serial ports. USB serial is totally different and much much faster. There is no “serial buffer” in smoothie so there is simply nothing to count. USB serial sends buffers of USB packets which size depends on the type of USB (1.1 or 2). But Smoothie consumes and processes the data as soon as it gets it and sticks it in the planner queue. It sends OK as soon as it has processed the gcode. There simply is no way to speed this process up, and ignoring OK will simply cause deadlock in the host unless it sends on a separate thread.