We are working on firmware for next years’ machine. How can my firmware let LightBurn know what the serial receive buffer size is?
With our existing firmware, the message on boot up is:
[V4.00(8M.H35.20231017)]
[VER:1.1h.2023101701:]
[OPT:VMPH,63,512]
Target buffer size found
[MSG:Using machine:LaserMATIC Mk2 by Roly Automation]
…
Is this message: [OPT:VMPH,63,512] telling LightBurn about the buffer size? If so what is the significance of VMPH? I see in other posts messages like [OPT:VNMZHSL,15,1024,3] and [OPT:V,15,128]. Is there a dictionary that codes this message?
Reading the GRBL documentation I was thinking LightBurn probably uses character counting for streaming G-code. It has to know how big the buffer is to determine when it can send the next line(s) of G-Code. It also front loads the first batch of G-code lines to fill that buffer, which is why the progress bar sometimes instantly jumps to >50% or 99% for simple vector jobs.
Many, if not most, of the companies writing GRBL-derived firmware violate GRBL’s GPL licensing requirements by not releasing their modified source code. As a bonus, very few companies document their extended firmware’s interface.
So nobody else knows what’s going on inside their code.
Opinion: Larger receive buffers probably don’t produce much benefit, because the hardware runs much slower than the interface. I’d like to see a 3D plot of buffer fill ratio vs. time vs. buffer size for typical laser jobs, but …