Grayscale speed

I’m using a 405nm laser to expose cyanotypes with grayscale on a Shapeoko2. The Shapeoko runs on a G-Shield and Arduino Uno. If I switch to bitmap, my tool travels comfortably at 6,000mm/min. With grayscale selected in LightBurn, it slows down to around 1,200mm/min. I can print a 6"x7" photo in about 7 hours at this speed. If I were to use the same set-up for a 4-color gum bichromate print, each color layer would be 7 hours – or about 4 days to make one print, so I need to speed it up a little.

Elsewhere on this forum, someone suggested that the problem was the 8bit Uno. Is it possible to put a 32bit Arduino Zero under a G-shield? There’s also TinyG and Smoothieboard, but I don’t know if they work with LightBurn.

TinyG is 8-bit, but with advanced motion-control firmware

Smoothies are 32-bit

both work with lightburn with appropriate firmware loaded.

Grey scale needs to process every single pixel and you are likely hitting the processing limit of the 2560 processor.

Do you have to use grayscale, or can you use a dither?

Simple answer, more power is always better. In my experience, the Arduino Cortex-based 32-bit boards are 3.3V only and the Protoneer CNC shield is 5V only.

It is possible to make them coexist, requiring cutting of pcb tracks and soldering new ones.

How handy are you? It’s fiddly, but not rocket-science.

I set the baud to 921,600 to see if the bottleneck is in the serial communications, but no luck there. I set it in the config.h file as well as in LightBurn.

I do have to use grayscale. Dither, especially in the highlights, looks like newsprint. There will be a strange array of dots in the middle of a white space even with the best stochastic algorithm. My favorite is Epilog’s implementation of Stucki, but Jarvis also makes nice tones that don’t scream bitmap. That’s o.k. when you are burning things because of the burn gradient around the pixel, but it doesn’t work on paper with photo chemicals.

How would Protoneer CNC put me ahead of the G-shield I already have? I’m not following.


An 8-bit GRBL board can process about 250 GCode instructions per second (ballpark). A 32 bit board like Smoothieware will do 800 to 1000, and GRBL-LPC running on a Cortex M3 (Smoothieboard) will do about 2500. Grayscale produces a GCode instruction every time the laser intensity changes, so if you have smooth gradients, that can be a lot. Running a smooth image with 0.1mm dots (254 DPI) at 100 mm/sec (6000 mm/min) is 1000 gcode instructions per second.

If you want to make the output run faster, do as much as you can to reduce how often the intensity changes, or switch to a board with more processing power.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.