I started on something similar a while back, but single-axis only. My goal was to take sharper time-lapses by getting the microcontroller to move the steppers, and then trigger a timelapse photo on the camera after movement had fully stopped. I was using an esp8266, so I was trying to reverse engineer the Canon WiFi protocol to be able to trigger the shutter from the microcontroller without wires. I successfully triggered the shutter using some JavaScript code, but never got it ported: https://github.com/PastuDan/ptpip-test/blob/master/test.js#L114-L115
Let me know if you're interested, and I can explain in a little more detail how I came up with those shutter codes... It's actually not too complicated! I was using the Canon iPhone app with WireShark (which understands the picture transfer protocol) to capture the network requests, ie the 1a000000060000000100000028919a0100000300000001000000 sequence that's hardcoded in my js code, and then replaying that over the network socket to the camera's IP.
Congrats again on the hardware. Your 3d printed parts turned out far more professional than my metalworking :-p Here's my embarassing youtube video if you're curious.
Really incredible project @isaac879!
I started on something similar a while back, but single-axis only. My goal was to take sharper time-lapses by getting the microcontroller to move the steppers, and then trigger a timelapse photo on the camera after movement had fully stopped. I was using an esp8266, so I was trying to reverse engineer the Canon WiFi protocol to be able to trigger the shutter from the microcontroller without wires. I successfully triggered the shutter using some JavaScript code, but never got it ported: https://github.com/PastuDan/ptpip-test/blob/master/test.js#L114-L115
Let me know if you're interested, and I can explain in a little more detail how I came up with those shutter codes... It's actually not too complicated! I was using the Canon iPhone app with WireShark (which understands the picture transfer protocol) to capture the network requests, ie the
1a000000060000000100000028919a0100000300000001000000
sequence that's hardcoded in my js code, and then replaying that over the network socket to the camera's IP.Congrats again on the hardware. Your 3d printed parts turned out far more professional than my metalworking :-p Here's my embarassing youtube video if you're curious.