I recently stumbled upon Vincent Laforet’s blog and his camera work. The post currently on the front page: The $15,000 Freefly MOVI.
The MOVI is essentially a three axis camera gimbal that uses an inertial sensor package to measure camera shake from the operator, then rotates the camera in the opposite direction to negate all camera shake and result in a completely steady shot. It also has the ability to be controlled wirelessly by a second operator, is completely silent, and weighs under 3.5 pounds while supporting a 10 pound camera. The results are absolutely astounding! My first thought was that this would be an awesome tool in the hands of some indie film makers and really open doors to the complexity of shots they can do with fewer tools. But it does cost $15,000.
I realized this is the same technology used by multicopters to stabilize their aerial cameras, and those don’t cost nearly as much. So I had a new project – design and build myself a gyroscopic camera stabilizer offering 90% of the functionality as the Freefly MOVI but for under 4% of the cost.
- Under $600. Near the price of a Glidecam 4000, for example.
- Support popular amateur film cameras. The Canon 5D MK I/II/III, Canon 7D, Panasonic GH2/GH3, Blackmagic Cinema Camera seem to be all the rage and what a lot of my favorite indie film makers are using to create absolutely incredible artwork.
- Stabilize up to 10 pounds of camera and lens. Ballpark figure for a 5lb RED epic plus a lighter lens, or a 5D and most lenses Canon makes.
- 4 hour minimum battery life. No time to charge batteries while shooting, probably easiest to swap out batteries during the day than have one massive battery though.
- Under 3.5 pounds. As light as possible allows the operator and film maker to use it all day all shoot long without getting tired.
- Adjustable for the camera/lens combination. It is essential to have the center of gravity of the camera/lens centered with the rotation axis to maximize performance.
- Quiet, as near to silent operation as possible. In my mind most shots you would use the stabilizer for wouldn’t be scenes for dialogue, but there is no need for loud gear.
- Easy to use user interface with settings and memory modes. A simple menu system and screen, with variable levels of stabilization in each axis for a shaky-cam effect or isolating one axis that can be saved and recalled depending on the effect, shot, scene, or camera.
- Easy to obtain, maintain, and replace parts. One of the goals is to make this system open source and easily built buy anyone with freely available parts, easy to be fixed in the field and not reliant on specialized patented technology. This means using hobby servos instead of custom actuators, laser cut plywood instead of carbon fiber, etc. Maintenance must be kept to a minumum, meaning few moving parts and very robust mechanics. Should something break, it should be easy and quick to buy and replace.
- Opportunity for expansion. The addition of follow focus, iris control, and of course remote control support should be designed into the system.
My first steps were to figure out the physical requirements of the device – how strong are the motors? How fast does it need to move? How big is the entire system? I started with the Canon 5D and made some rough size assumptions to get a sense of scale and built a tiny balsa model of the mechanism. From the size assumptions I made and the projected 8 pound capacity, the next step was to figure out how much torque was needed to move the payload. Wikipedia to the rescue.
After a bit of research, I determined that the device is most efficient when the payload mass is centered around the axes of rotation. This way, it requires minimal torque to accelerate the mass and becomes a problem of inertia. Wikipedia articles and a few questions to my physics teacher helped me calculate the torque required to accelerate an 8 pound cylinder from rest to a speed of 60 degrees/0.12 seconds about the center of mass. That speed is merely a common speed for high torque hobby servos. This resulting torque was then converted from newton-meters to kiliogram-centimeters used to rank servo torque, then tripled. With my speed and torque requirements I set out to find the ideal servo. To maintain the precision and long life requirements, I also decided to use a “high voltage” 7.4v servo, digital instead of analog, with titanium gears and ball bearings for maximum rigidity. Hobbyking led me to the Turnigy 1268HV, everything I needed for just $35 courtesy of Chinese manufacturing.
For the rest of the mechanics, the carbon fiber construction of the MOVI is awesome but entirely out my capabilities and the price range. I decided to go with 6mm baltic birch plywood, laser cut box joints and glue together with mounting points for the motors. This stuff is rigid, looks sharp when laser cut, and is super cheap and simple to work with. This has the benefit of keeping a low cost should you need to order a complete replacement.
On to electronics. Rather than go through the design process, these are my final components:
- PIC32MX150F128B microcontroller (Microchip) In a 44 pin TQFP, I can still solder and maintain just enough IO for all the components, with more than enough horsepower to update the servos at 50Hz or so. It also has several SPI, serial, and I2C busses, and 4 PWM outputs for servos. Having all the pins remappable also simplifies PCB routing immensely.
- L3G4200D 3-axis gyroscope (STMicro) Tons of examples and support, variable sensitivity, and high speed 800Hz updates on the SPI bus.
- 25AA320A 32k EEPROM (Microchip) More than enough memory for any number of user settings, SPI communication.
- RN-41 Bluetooth module (Roving Networks) Class 1 power output – up to 100m of range and provides expansion for wireless control. Coincidentally, Microchip controller inside this radio, RS232 communication with the PIC32.
- NHD-C160100DiZ-FSM-FBW display (Newhaven) A simple 160×100 chip-on-glass LCD display with a white backlight and I2C communication. I’ve used these before, they are inexpensive, small, and have great contrast.
- REG102GA-3.3 and MIC5205 A 10-3.3v converter for the electronics, and a 5v converter to bump up the singal level to the servos. I’m pretty sure the servo electronics are 5V logic, but unsure if 3.3v PWM signals will interface properly. The PWM outputs go through N-channel MOSFETs that switch the 5v signal.
- Expansion headers I plan to use a button array as a joystick, so there’s a 5 pin header for that and an additional 4 pin header for any additional control buttons I might add later. There are also 4 PWM outputs and a connector for the LCD backlight.
- 7.4v 6000mah LiPo Battery (Tenergy) The servos are rated at 400ma current draw each, so worst case I’ll get 5 hours or so of run time. Inexpensive and lightweight, as well as offering a bit of mass for helping center the camera mass.
After some adventures in the land of eagle part creation and rerouting the board several times I sent the gerbers to OSH Park. Two weeks later three purple and gold boards arrived and I began assembly. It was a real challenge learning to solder the 1mm pitch JST-SH connectors, but after a few tries everything went smoothly. Nothing was shorted out so I powered up the board and the LCD backlight lit up, good sign. Not for long though. I don’t remember exactly what happened but I the regulator was being held in shutdown mode and the solution was to disconnect the “no connect” pin from ground. I don’t know why I tied it there anyway…but in the process of lifting it I managed to destroy a bit of the solder mask and render the power circuitry useless, visible below in the photos. The only solution was to solder up another PCB, good thing OSH sends you three! I was more than happy to have my hot air station to remove all the ICs and connectors, that tool has probably paid for itself in ICs and PCBs alone.
You might notice the unpopulated radio footprint, I held off on ordering those until I got the rest of the circuit working. In my experience those large packages are extremely difficult to rework anyway. So far in the project I’m about ready to get working on the software (the reworked board does power up and connect to the debugger!) and once the servos arrive I can complete the design files to have the plywood laser cut at StudentRND. The battery and charger, mechanical parts from Mcmaster Carr, all the electronics, and Plywood are all sitting idle while the servos are on the slow boat from China. I just aboslutely adore shipping times.