I own two Ultimaker 2+ and have created a laser attachment for the print head and a control board plus scripts to expose PCBs with the Ultimaker.
It's a small UM firmware mod (on basis of the tinker firmware) that give a "sync" signal on one of the extension ports of the Ultimaker mainboard and a Arduino based controller (Arduino Pro Micro, the quite small thingy) that receives the pixels via USB/serial connection (for example from a Raspberry Pi that's running OctoPrint in parallel) and "streams" them to the laser driver upon receiving the sync signal from the UM.
Essentially the print head is moving with constant speed left-to-right and the laser is switched by the controller independently matching that speed.
So the core idea is to use the mechanics of the Ultimaker 2, but aside of the sync signal not do any larger mods to it. Which even makes it a universal solution for any precise mechanic like that.
I had done one try to get the pixel streaming into the firmware, but there is a conflict between the timer interrupts for motor control and the pixel streaming coming up. Possibly doable to untangle that, but that felt like a painful road so I decided for that external controller, simplifying the thing enormously.
With that solution I can achieve results down to 3-4mil of resolution which is much better than what I could achieve with the regular film printing & exposure methods or toner transfer. See attached photos (thanks to Henner Zeller the creator of the LDgraphy laser exposure device for the excellent test pattern, https://github.com/hzeller/ldgraphy).
Video of the exposure process:
That for the background, now to the question that I have.
Currently the creation of the G-Code for the printer and the "bitstream" file are plain Python scripts I have to call, transfer the files to the OctoPi, run my "bit streamer" and start OctoPi with the G-Code file. Pretty manual process.
Now I would like to integrate all this into a OctoPrint plug-in to use OctoPi as a central UI. That would be much more transparent and comfortable and could also provide the calibration tools to adjust PCB position and focus height in a few clicks.
Would anyone be interested to join in to develop and test this?
P.S. the holder of the laser head attachment bases on the Mark 2 dual head magnetic plate, so it's easily attachable and removable.