How to do it?
I usually print from SD card so default Z-based time lapse is not possible.
I can, however, generate G-code and config firmware (Smoothieboard) to output GPIO signal at specific point to trigger camera.
My printer is a tool changer which each tool is at different height so a time-based time lapse results in print vibrating up and down (Z bed).
Pi 3B+ and Pi camera. Found no good solution yet.
You didn't mention whether you're using the bundled-in timelapse feature or you're using another plugin like OctoLapse.
My understanding is that neither support external trigger.
Should I make another post in Plugin related section?
Edit: To be clear, I'm not using any timelapse feature yet, just got my Pi today. So anything that works is fine.
Why not use the built-in timelapse feature and trigger on time rather than layer?
You might look into the OctoLapse plugin then, read the many MANY configuration options, understand them and then figure out a work-around.
I don't think this can be done yet with Octolapse. I have no external triggering ability as of yet, but will think about a way to accomplish this. I'm not sure how I could control the printer to stabilize the timelapse, but I could probably have it take a picture wherever the extruder happens to be when some trigger signal is received (gpio, get request, or something else).
If you want you can open an issue on the Octolapse github page and I'll mark it as an enhancement. Clarify exactly what you want as much as possible within the issue, and don't bother filling out the form. Do mark it as a request in the subject, per the template.