CableCam Controller

Document created by Werner Dähn on Jun 1, 2018Last modified by Werner Dähn on Jun 1, 2018
Version 3Show Document
  • View in full screen mode

About this project

A CableCam is a motorized dolly for video productions. Something like a remote controlled car driving on a rope back and forth.

To get smooth movements, the acceleration should be constant and limited and it should stay within the end points at all times.


Project info

Type : Started with STMCubeMX templates, heavily customizing them and adding the logic and interfaces. HAL based.

Progress : completed

Difficulty : Intermediate

License : Apache License 2.0

Things used in this project

Hardware components :

CC3D RevoCC3D Revolution (Clone)1
Hall SensorHall Sensor Board1

Software Tools :

STMCubeMX for start

EmBitz 1.11 as IDE



The most simple way to control a cablecam is by connecting the RC receiver to the motor controller (=ESC, electronic speed controller) and control it like a RC car. But this has multiple limitations this CableCam Controller tries to solve:

  1. The CableCam might crash into the start- or endpoint by accident. Would be much nicer if the CableCam calculates the required braking distance constantly and does engage the brake automatically. This way it stops no matter of the user input.
  2. A smooth acceleration/deceleration makes the videos look more cinematic. Even when the stick is pushed forward at once, the CableCam should accelerate slowly instead of the wheel spinning damaging the rope.
  3. A speed limiter to protect the CableCam from going too fast and for constant speed travels during filming.
  4. Preprogram movement patterns and the Cablecam repeats them on request.

To achieve that, the CableCam controller sits between the receiver and the motor controller and acts as a governour of the receiver input. If, for example, the user did push the stick forward from neutral to max within a second, the CableCam Controller rather increases the stick position slowly. For speed and positional input the controller is connected to two hall sensors on one of the running wheels.

MCU used is STM32F405RG Board used: Any CC3D Revolution or clone, e.g. the Flip 32 F4 which can be bought at various shops for little money (here?).

See all videos at:


CAD - Enclosures and custom parts