Ideas for laser raster engraving
-
I recently got a FLUX Beamo laser cutter. It's got a Raspberry Pi and a STM32 inside. The software ecosystem is pretty closed up, no G-code in or out. However, the Pi's microSD card is easily accessible and FLUX left some old outdated source code on there, outdated but enough for me to be able to convert their "FLUX Task" files into G-code. (not the other way around, no G-code to FLUX-Task, but I conjured up "human readable F-code" with some Javascript converter I wrote and I can edit FLUX-Task files now)
I found something interesting: The way they send over monochrome data to the STM32 not as a series of G-code, but instead, for example, [0xFF, 0xFF, 0xFF, 0xFF] would represent 32 pixels (4 bytes, 8 bits each). At 0.1mm per pixel resolution, that is a black line 3.2mm long. If you do [0xAA 0xAA 0xAA 0xAA], it would be a dithered line 3.2mm long. Of course more bytes can be sent for longer lines. After a line is done, it shifts 0.1mm down the Y axis and starts another line.
Anyways, I thought that was pretty cool. Maybe you guys want to implement something like that? How do other systems do it?
Hmm... My Duet WiFi has a microSD card, and BMP files are pretty easy to parse. It might be even easier if you just allowed the user to engrave a BMP file directly, given pixel resolution and starting coordinates.