After spending a week with focus stacking assistant I realized that I need more units. I’d like to have one unit dedicated for studio work, another to carry in camera bag and yet another one to control my Nikon (code for which I’m hoping to finish soon). Full-size Arduinos are big and expensive and I wanted this controller to be cheap and portable so I built my next controller using Arduino Pro Mini 3.3V, USB Host Mini, and a small home made PCB with buttons and LED. Finished mini-assistant can be seen on title picture and uses the same code as its big brother. What follows is a build log of mini-controller. It follows traditional layout, used, for example, here – a sandwich where Arduino Pro Mini sits on top of USB Host Mini. In addition to that, I needed to add another board on top of the sandwich to carry control and indication bits.
I started by mounting 4 pins in the corners of USB Host Mini as depicted above. Doing it this way would allow me to take the unit apart later, if necessary, by simply cutting through wires. Following Arduino Pro Mini notation the “corner” pins are D9 and RST in the top row and D10 and GND in the bottom row.
Next picture shows Arduino Pro Mini on top of USB Host Mini. It also shows proper placement of programming/serial header to connect USB to TTL-serial converter (Sparkfun FTDI Basic Breakout – 3.3V or similar).
Next picture shows all connections – pins D10-D13, VCC and GND on one side and D5-D9, GND and RST on another. Note also that pins D9 and D11-D13 are made short – they won’t connect to the control board which will be mounted on the top.
This is how the next board in stack looks like – it contains buttons, indicator LED, power connector and power switch. It can be made from a piece of perfboard or etched. Schematic diagram and board layout in Eagle CAD format are provided to help with fabrication.
This is completed unit with control board soldered on top and small lipo battery connected to the board and secured with rubber band. It also shows last minute modification – a blue wire reconnecting LiPo from VCC to RAW pin. MAX3421E works best while powered from 3.3V +-10% (3.0-3.6V). Fresh LiPo outputs 4.2V dropping quickly to ~3.7V and stays around this voltage until drained pretty close to the end of discharge. This voltage is slightly out of spec and depending on a particular battery, MAX3421E chip, and several other factors your camera will or will not be detected reliably by MAX3421E when LiPo is connected directly to VCC. If voltage from LiPo is too high and camera is not detected, the remedy is simple – cut the trace going from middle pin of power switch to VCC and solder a wire from this pin to RAW. This will give you slightly less run time from a battery – that’s why current revision of control board connects battery to VCC. If enough people report issues with this arrangement, I’ll make this mod permanent by modifying the PCB layout.
I am currently refining the construction (the PCB layout posted is already slightly different from the board depicted in the article) and planning on writing another post after building another 2-3 units. I’m very interested to hear from other builders – if you encounter any issues and/or would like to suggest an improvement, please let me know!
- USB Host Mini Hardware Manual
- Communicating to GPS Receiver using USB Host Shield
- Building Google ADK hardware from standard components
- Google Open Accessory Interface for USB Host Shield Library 2.0 released
- Driving the Cheeky Mail Notifier from Arduino
- Using HID device for RC control
- PTPDevinfo in 16K
- RC car controlled by Wii Remote on Arduino
- Andriod ADK-compatible USB Host Library release.
- Controlling Canon Powershot cameras with Arduino