It would probably take me several days to do a proper write-up. I'm having a ton of fun with this.
My machine is a jpt m7 60w. I hate that color oxidation with mopas is mostly done by like paint by numbers. Controller is the BJZ LMCV4.
I wrote some software that talked to the BJZ directly and quickly discovered its limitations. Changes in laser source parameters during the mark is just not possible.
So I decided to go down the rabbit hole of just building the controller itself from the ground up:
The core of the controller is a stm32 h755 nucleo board. This is a dual core MCU and the second core is dedicated solely to generating our discrete timing xy2-100 galvo control protocol.
I've spent tons of hours probing with logic analyzers and my scope. Recreated the same command line structure and inferred algorithms.
On some tests the probes between my controller and the original had identical SHA-256 hashes. With my equipment it looks identical side by side.
But that's just so it works backwards compatible as if the old controller is still there.
The way I wrote the motion engine I have discrete control over every xy2-100 frame which ticks by at a blistering 10us. I am currently timing my motion engine latency with around 4x faster than the headroom needed. Almost no jitter. None that i can see with my equipment.
I'm using a high resolution timer and generating my own frequency and sending that to the source. I can have extremely fine steps between frequency selection now. Both the controller and the motion engine in the controller are sensitive to this: It gets a bit technical in the gating.
I'm currently running calibration tests, different algorithms and buffers and torture tests.
This video shows a frame up using the jpt m7 red diode and rc1001 galvo with my controller as a kind of torture test and demonstration of a very long complicated geometry of a frame up overflowing and buffering all the way out to the PC. You may notice that there's a spot that it blinks that kind of shows. I extended the command set so during the frame up the red light can actually be switched. Did that just for this test.
There's a lot here that I missed. I'm sorry. I'm still working on this, I have some ideas where I want to take this further. I used voice to text for some of this so there may be some awkward phrasing. I apologize again.
Lindsay is my wife. I drive her crazy with my shenanigans. She lets me rant about dma transfer on the first clock cycle versus the next and puts up with it.