The DollyShield is an adaptation of the Arduino Motor Shield v3 that provides directional PWM control of two DC motors, at up to 1A of current each. In addition to the motor drivers, it also provides a stereo plug with dual opto-coupled outputs for direct camera control, a 2x16 LCD, five user input buttons, and four auxilliary inputs or outputs through two stereo jacks. It is designed to provide an inexpensive and easy-to-use interface for two-axis motion control integrated with a camera.
Introduction
The design is based on the Arduino Motor Shield, and uses the same L293B driver chip and driver circuitry. It expands on the normal capabilities of the motor shield by providing all elements necessary for a stand-alone user interface, an integrated and isolated camera connection, easy access to the hardware serial pins through a stereo jack, and an additional stereo jack connecting to pins 2 and 3 of the Arduino to allow for the use of encoders or limit switches. Pins 2 and 3 are chosen for their association with hardware interrupts which increase the reliability of encoder or limit switch actions. Using the DollyShield, one may quickly and easily experiment with 2-axis motion control systems designed around DC motors, and even utilize encoders for servo-like precision.
On the DollyShield, there are three 1/8" stereo jacks. One provides a connection for the camera focus and shutter remote pins, isolated from the circuit with optocouplers, one provides direct connection to the hardware serial pins, and the third provides direction connection to digital pins 2 and 3. There are two DC barrel jacks on the right-hand side of the board, providing connections for each motor. These barrel jacks use a 2.5x5.5mm pin config to prevent accidentally hooking up DC power to the motor outputs. (The arduino DC input is 2.1x5.5mm.) An additional LED displays when the camera is currently exposing.
General Design Philosophy
- Two-sided design for compactness
- Two-layer for low-cost production
- All under-side parts out of the way of Arduino components (except USB connector - need tape)
- No heatsinks required if using 2oz copper pour (entire bottom is heat sink)
- All through-hole components for easy assembly by beginners
- No bare pads for hook-ups, ready for field use with TRS connectors and DC barrel jacks
Features
- Arduino "shield" (requires Arduino board)
- 2x DC Motor Speed/Direction PWM Drivers (Up to 1A)
- 1x 1/8" TRS Plug for isolated camera connection (focus+shutter)
- 1x Camera exposing LED
- 2x 1/8" TRS Plug for auxiliary I/O (Hardware Serial, Digital 2+3)
- Can be used for encoders, limit switches, serial communication other boards, etc.
- 1x 16x2 LCD for display
- 5x Momentary pushbuttons
- 2x DC Barrel Jacks for Motor Hookup
- 9v-12v supply voltage
- Compact: 3.85x2.7"
- Low-cost
Power Requirements
The DollyShield is designed to run off the supplied 'Vin' pin on the arduino board. While the motor driver can take up to 36V of input, the overall design is limited to 9-12V minimum-maximum voltage. This is due to the fact that the voltage regulator on the arduino cannot reliably exceed 12V, and because the filter capacitors for the motors are limited to 16V.
To power the DollyShield, use the DC barrel jack input on the Arduino board. While it is perfectly reasonable to run the intervalometer function only while powering off of USB, motors will not operate under USB power.
Camera Compatibility
While the DollyShield has not been tested with a large number of cameras, it will generally work for any camera that uses a three-pin connection for remote camera control. While the actual connector for many cameras may vary, often they use the same or similar control mechanisms. The DollyShield design expects that the focus and shutter signals represent positive signals, and a connection from either of them to the camera common causes current to flow towards the camera common connection. This is true for many Canons, Nikons, and Pentaxes.
LCD Control
The LCD is wired in a standard 4-bit parallel interface, using the pins specified in the schematic below. In addition, the backlight level is controlled via PWM on Arduino digital pin 9. To allow for up to 200mA of current for the LCD backlight, the PWM output controls a small 2N4124 transistor which isolates current drawn from the pin.
A contrast adjustment potentiometer is on the back of the board, and can be accessed when an arduino is attached.
Pinout
The DollyShield utilizes the following Arduino pins for the following purposes:
| Arduino Pin | Connected To |
|---|---|
| Digital 0 | Ext_0 (Ring) |
| Digital 1 | Ext_0 (Tip) |
| Digital 2 | Ext_1 (Ring) |
| Digital 3 | Ext_1 (Tip) |
| Digital 4 | LCD D7 |
| Digital 5 | Motor 0 PWM |
| Digital 6 | Motor 1 PWM |
| Digital 7 | LCD D6 |
| Digital 8 | LCD D5 |
| Digital 9 | LCD Backlight PWM |
| Digital 10 | n/c |
| Digital 11 | LCD D4 |
| Digital 12 | Focus (Cam Ring, OK1/1) |
| Digital 13 | Shutter (Cam Tip, OK1/2) |
| Analog 0 | Pushbuttons |
| Analog 1 | Motor 0 DIR |
| Analog 2 | Motor 1 DIR |
| Analog 3 | LCD DIR |
| Analog 4 | LCD EN |
| Analog 5 | n/c |
The Pushbuttons
There are five pushbuttons on the shield, four near the lower-center arranged in a cross-pattern, and one to the left of this group. All five buttons are wired to a single analog input, and use a series of resistors to differentiate the value. Note, that if you press two buttons at the same time, you would only register the one with the highest resistance. A simple lookup of the value read via analogRead(button_pin) compared to a table of button values will tell you which button (if any) were pressed.
| Button | analogRead() Value |
|---|---|
| BUTC | 70 |
| BUTR | 250 |
| BUTL | 450 |
| BUTD | 655 |
| BUTU | 830 |
Please note, these values are average readings and may be impacted by environmental influence. It is important to apply thresholds, as the readings may fluctuate by a large amount for the same button pressed.
For example code to read the buttons, read: Example Button Code for the DollyShield.
Flyback Protection
The L293B has no fly-back voltage protection diodes built-in, and there are none added to the board (like the Motor Shield 3.0). Using the L293B you can provide up to 1A continuous current for each motor. If you require fly-back protection, the L293D is a drop-in replacement with built-in diodes. The L293D has a continuous current limit of 600mA per motor, however, and for many applications the advantages of a higher current limit can outweigh the desire for fly-back protection.
Firmware
To get you started, a stock set of firmware providing all the basic requirements for continuous, shoot-move-shoot integrated timelapse shooting is available here: MX2 Dolly Engine Firmware. For documentation on the capabilities of the firmware, and how to use it, see the MX2 Dolly Engine Documentation.
Schematic
Click on the schematic to expand to full-size.
Board Layout
The following image gives a quick view of the board layout:

Eagle Files
The Schematic, Board, Gerber, and BOM files can be downloaded here: OMDSV1-01.zip
These files are compatible with Eagle 5.10.0
Copyright
The DollyShield is Copyright (c) 2010 Dynamic Perception LLC
All files, design, schematics, bill of materials, and all content on this page are licensed under the terms of the Creative Commons Attribution-ShareAlike 3.0 Unported License. For more information about the rights and any associated responsibilities this bestows upon you, see the Copyrights page.


kits:(
is dinamic perception still selling the $85 dolly shield?
kits
brinks, they sell the $55 DIY kits, but not assembled boards. In fact, during the months they sold the bare assembled boards, they only sold 1, so they discontinued selling them that way. The DIY kits do well, and sell out quickly when in stock.
!c
Case layout
I don't suppose anyone's got a schematic of the layout of the sockets, buttons, LEDs and display? Might just save me the effort of finding it all from the eagle files...
Thanks,
Tom
Case design
Tom,
Alas, no, there is no published case design.
!c
Is a Stepper modification possible?
Hi, Im working on a mechanical engineering senior design project, which is basically just a dynamic motion rig with rotation included, but with Stepper motors instead of DC motors.
I didn't realize there was a community for this stuff, nor did I realize that something as perfect as this DollyShield existed. It's almost exactly what I'm struggling to build, coming from a mechanical background rather than an electrical.
My question is this: Is there another shield that can work with Steppers? I understand how steppers work and that they require several more power ports for operation, etc. Is there a way to modify this one to work with steppers? Does Arduino make a shield that works? Or would it be easiest to abandon the stepper motor idea and just adapt the DC motor mindset?
I reaaaaaally appreciate ANY feedback on this. feel free to email me as well at eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%77%65%69%63%68%6d%61%6e%31%31%40%75%70%2e%65%64%75%22%3e%77%65%69%63%68%6d%61%6e%31%31%40%75%70%2e%65%64%75%3c%2f%61%3e%27%29%3b')). Thanks!!
Better with TLE than DollyShield
The DollyShield is specifically designed for DC motor operation, and it's not a good choice for steppers (although you could easily drive two with firmware modifications via the EXT_0 and EXT_1 ports using external drivers).
I would highly suggest, instead, looking at the TimeLapse Engine (see Software link on the left) which is designed to work with up to 4 stepper motors, using inexpensive stepper drivers like the EasyDriver, and requires very little additional circuitry. There are arduino stepper shields, but most require more pins than using a step/dir driver like the easydriver.
!c
Availability of The DollyShield?
Very nice work. Any idea on when the DollyShield (assembled) will be available for purchase? I've seen late September and ~$80 mentioned as targets.
Within Weeks =)
We're going to be opening up the store front within a week or so, and production is already running for the assembled boards. We'll announce the exact shipping dates on the store when it opens this week, after the enclosure manufacturer has dates for the first production run of enclosures for us.
The store will detail the pricing, but it's going to be $55 for kit requiring soldering, $85 for pre-assembled shield, and about $170 for a complete kit with arduino, pre-assembled shield, enclosure, and silcone button pads.
!c
I'm buying!
Hello!
I'll be watching for when the assembled shields are ready! Save one for me:-)
Great!
Sounds great. I'll be buying one. Actually, any word on a complete kit - with motor, gears, belt, platform... everything except the track - will be ready? I've got a shoot planned for mid-October (Guadalupe Mountains N.P. in West Texas) and I'd love to bring a whole system with me.
Complete Kits too
How about $645 for everything but the rail?
I'm envious that you get to go to Guadalupe NP! I was planning on going to BBNP and BBRSP mid-Oct, but unfortunately, I'm stuck working =( (It also happens to be timed around some Dynamic Perception deliverables *grin*)
Where are you at? I might (might!) be able to work something out if you can roll through Houston. Everything's up to the manufacturers right now though, everything's in-flight.
!c
I could probably do that.
I think I can probably manage that. But we should probably contact one another outside of the forums to discuss.
I'm guessing the site is running on Drupal. If it is, any chance of getting the privatemsg module installed so I can PM you? http://drupal.org/project/privatemsg
Can you send me an email?
Great!
Great! Im looking forward to upgrading to this... I was just about to run the gerber file for a batch PCB of the DollyShield.
Carson
www.F9photo.com
@F9photo
I2C
Maybe a future version of the board can have a small change in pin use? Free up Analog 4 and use digital 10? That way you can add I2C support. I will have to learn how Eagle works. This really looks like a great board that can be used for the MicroEngine too.
D10/A4
Yeah, that should totally be do-able. I'd have to, of course, also add pads or another TRS connector for it =) Of course, if I'm adding a TRS connector, I'd probably add a buffer too... Oh, here we go *lol*
!c
Apologies
This is probably fairly obvious but is this the main electrical component behind the kit you plan on launching? Or have I got my information mixed up? I'm very interested in this project, but would love to be able to purchase the above controller in kit form, as there is no way I'd be able to build one from scratch myself! I am perfectly capable of making the mechanical side of things myself - it's just the Arduino stuff that I need the assistance of others.
If I could get my hands on the MX2 in kit form it'd be fantastic!
- Matt
hey modern_messiah
did you notice we opened the store today? www.dynamicperception.com
MX2 kits are available for pre-order! ;-)