This is the built I am using right now. It wont be the final though. FocusStacker v2 was very portable and compact, but it was not that much suitable for extreme studio macro because you have to constantly touch to the controller. All the buttons and rotary control are on the body so every touch vibrates the system. In extreme macro conditions, even the slightest touch creates an earthquake. Especially the rotary encoder was not a great idea, since it only makes things harder and complicated. In this approach, I separated the controller section and replaced every controller with a single touchscreen. This is a Nextion HMI touchscreen which has its own flash to hold the menu stuff. So it is not that much complicated. With its own software that you can install to your computer menu designing becomes much easy.
- Touchscreen with menu
- Two seperate pieces – Minimize vibrations when positioning the slider, marking in/out
- More solid, durable
- Much more controls for delay settings, motor speeds etc.
- Can work with Dragonframe software when connected to the pc. (Both Arduino and Camera should be connected to pc. No remote shutter connection between arduino and DSLR is necessary.)
- Can work with AC and Battery powered.
- Sliding switch for Canon and Nikon DSLRs. (Canon DSLRs triggers when tip and ground connected where Nikon Cameras needs to both tip and ring connected to ground.
- Led Reader Function to read lights to calculate shutter duration. (THIS CAUSED TO FRY AN ARDUINO! I will explain later in detail)
I used Deltron LRS3-1 as the Linear stage. Compared to the other one this one is more popular and can be found easily. Be aware that there are two versions. If the model starts with LRS it is in inch standards and if it starts with LRSA it is metric. Here is the Deltron_Inch_Catalog and here is the Deltron_Metric_Catalog. To be honest, I liked DCI -CP3-10 more. It was much smooth and was in a better condition. I may have found the one with the worst condition. Probably a brand new one would be much better.
STL Files for 3d Printing -> CaseParts
Linear Stage Connections
Arca Swiss Clamp & Quick Release Plate
The second rail makes the system longer than I want. Instead of using a second macro rail, this time I used a long release plate (PU-100). I bought both from ebay for $15
I used a 1.8 degree per step 1.68A per phase Nema 17 Step motor. I think that was not a good choice. I suspect It draws too much power then I need though I did not tested it. I ordered two more motors from Ebay. One is 1.8 degree 0.4A and the other one is 0.9 degree 1.3A. I will post a comparison note between those once I get them.
This is optional. I bought a 8AA battery holder and attached it to the control unit with velco strips.
FocusStacker v3’s electronics part is easier to build then FocusStacker v2. Thanks to HMI display with only 4 connections, there are much less cables going around. I made a mistake with my PCB. In Fritzing, 3.5mm Jacks Tip, Ring and Sleeve ports are wrong. I did not check it before ordering my design to be printed on pcb, so I had to do some repairing on the pcb. I scraped the routes to the sleeve and ground connections to 3.5mm female jacks and rewired them with jumper cables. Later I fixed them in the circuit design which I shared above. So the above one is not tested, but should work.
Actually, If I was doing this same build again, I would use 2.5mm female jacks, which I found later from ebay. 2.5mm jacks are better for this projects because the connection cables (which I gathered along with yongnuo RF-603 remote triggers) are already 2.5mm. I am converting them with a cheap 2.5mm to 3.5mm stereo jack converter. Besides the design may get smaller or less crowded. So I strongly suggest you to try to replace them with 2.5mm jacks.
This time I decided to use Arduino Mega since I had plenty of space under the TFT screen. Right now, the Arduino sketch I provided above is not compiling with Arduino Uno. But again, since I was already using Arduino Mega and I am not a professional Programmer, I did not properly optimized it. The most part that takes space in the code is character arrays. I am pretty sure it can be optimized to fit in Arduino UNO with a little trimming from some features, if not at all. In short, you need to use Arduino Mega if you want to use the code as is.
In order to solder the Arduino to the PCB, I removed all the Upside looking female headers and replaced the used pins with down looking male headers. If you can find an Arduino kit which all headers comes seperately, you wont have to remove the solder from female headers.
Step Motor Driver
The stepper driver I used is Pololu DRV8825. I chose this over EasyDriver because it can draw more current (up to 2.2A per Phase) smaller and can do sub-stepping up to 1/32. Normally, I do not use sub-stepping mainly because Full step is enough for my needs and in sub-stepping, each step is not the same length. But this time I implemented the sub-stepping to the software. In when sub-stepping, I dont change the distance the slider moves but by sacrificing from torque It helps reducing the vibration created by the motor. So in Arduino code, if 1/16 sub step mode selected, each step equals to 16 steps.
I suggest you to use a 47µF capacitor physically near to the driver in the PCB if you are not following my pcb design.
I used 3.5 inch Nextion HMI.
model number: NX4832T035_011
To program the Nextion, just unrar the above file and put the tft file on a micro SD. Put the micro SD into the slot of Nextion and power it on. It will automatically load the menu. After it is done you can unplug the power and remove the SD card.
Menu structure is like this:
- Main Menu
- Delay Settings
- Shutter Speed
- Auto Shutter
- Shutter Delay
- Motor Settings
- Step Size
- Step Mode
- Max.Motor Speed
- Motor Acceleration
- Other Settings
- Camera Trigger (Dragonframe/Shutter Trigger)
- Auto Sleep ON/OFF
- Limit Triggers ON/OFF
- Delay Settings
- Goto Mark IN
- Goto Mark OUT
- Step Back
- Step Forward
- Mark IN
- Mark OUT
4N33 has become my standard to trigger camera. You need to put a sufficient resistor between Anode leg and I/O port. I used a 470Ω resistor.
I used one 3.5mm stereo connector for Light Reader, one 3.5mm stereo connector for camera trigger and a pair of male and female D-Sub 9 connectors for motor and limit switch connections.
Here comes a big WARNING! Never use a 3.5mm (or 2.5mm, doesnt matter) connector with this design. I didn’t take into account that these kind of connectors shortens connections while plugging in. (remember the noise while plugging or unplugging a jack to an electric guitar while the amplifier is on?) If the device is on and you plug a jack to this socket, you will most probably fry the voltage regulator and I/O pin of your Arduino.
In fact, if you are doing your own design or altering this one, I highly suggest you to discard Light Reader option, since it doesn’t worth the effort.
When soldering d-sub connector to the motor and limit switches make sure you tested the motor cables. I always get confused solder them in the reverse older at the first try.
In addition to the above headlined parts you need one 470Ω resistor for the optocoupler, two 10KΩ resistor for limit switch connections, one buzzer and 100Ω resistor and 47µF capacitor for the 8825 step motor driver.
Final thoughts and future steps
The only downside of this setup is it requires much power then FocusStacker V2. It wont matter much while running on AC power but batteries last very short. So short that you may not even finish one stack. I did not properly tested but I think the main reason is that the motor I used in this setup requires more current than the previous one. The arduino nano also draws more power and there is this LCD screen too. When all combined, this setup becomes not that much usefull for outside. FocusStacker v2 is still a better option for outside shooting.
FocusStacker v4 will be much better. It will be simple. It will be perfect for indoors. It will be perfect for outdoors. Smaller then any version before. More compact then any version before. Stay tuned.