A Digital Camera inspired grip for the CMF Phone 2 Pro
18
21
0
662
updated June 8, 2025

Description

PDF

The Camera Grip for CMF Phone 2 Pro creates new ways to film cinematic footage with your phone at a low price point compared to other phone rigs. It is simple to use and produces great results. It has a Bluetooth Shutter Button, a Cold Shoe Mount and 1/4 -20 UNC  screw for accessories, and an optional Mount for Moment lenses.

Bluetooth Shutter Button with Ergonomic Hand Grip

The bluetooth shutter button allows you to easily control the camera. You press it once to take a photo or video, and long press to power off. It will automatically power off after 5 minutes of inactivity. The case's grip houses the battery, TinyPico microcontroller, and pushbutton. When the shutter button is pressed, it emulates a volume button on the phone takes a picture (Volume button must be set to shutter in the android camera app for this to work.) It uses Bluetooth HID to do this. Here is the code for the microcontroller:

#include <BleKeyboard.h>

BleKeyboard bleKeyboard("CMF Camera Grip", "Crossley Devices", 100);

int pin = 4;
bool val = LOW;
bool lastval = HIGH;
int lastActiveTime = 0;
int pressedTime = 0;
int releasedTime = 0;
void setup() {
  Serial.begin(115200);
  bleKeyboard.begin();
  pinMode(pin, INPUT_PULLUP);
  esp_sleep_enable_ext0_wakeup((gpio_num_t)pin, LOW);
}

void loop() {
  val = digitalRead(pin);
  if (val == LOW) {
    lastActiveTime = millis();
    //Check if the button was already pressed
    if (lastval == HIGH) {
      pressedTime = millis();
    }
    //Debounce
    delay(100);
  }
  if (val == HIGH && lastval == LOW) {
    releasedTime = millis();
    if (releasedTime-pressedTime < 3000) {
      //Emulate a volume button press
      bleKeyboard.write(KEY_MEDIA_VOLUME_UP);
      Serial.println("Shutter Pressed!");
    } else {
      //Power down after long press
      Serial.println("Powering Down...");
      delay(2000);
      esp_deep_sleep_start();
      return;
    }
  }
  lastval = val;
  if (millis()-lastActiveTime >= 300000) {
    //Sleep after 5 minutes of inactivity
    esp_deep_sleep_start();
  }
} 

To attach the microcontroller, slide it into the slots on the inside of the grip. Slide the battery in as well. Attach the battery to the GND and BAT ports of the microcontroller. Put the push button into its mount (you may need to bend the legs a bit), add the button to the lid, and press fit in the push button mount. Now connect the push button to GND and GPIO4. Use a male usb-c to female usb-c cord so it can be charged.

Cold Shoe Mount and ¼-20 UNC Screw Insert

The Camera Grip has a hole for the Heat-Set insert on the bottom. To attach the Heat-Set insert, place it on the hole in the bottom of the grip. The insert should not fit.  You will need to melt the plastic to get it in. Take a soldering iron and heat it up to the temperature of the material you printed in and push it down until it is in. Once the insert is installed, the screw can be used to mount the phone on a tripod or other accessories. On the top, there is a cold shoe mount for accessories like microphones. 

Moment Lens Adapter

For people looking for more from their phone, there is an adapter for Moment Lenses. These lenses are great for professionals seeking cinematic quality footage. However, if you don't have Moment lenses there is also a version with a normal lens mount. You can find Moment Lenses here.

 

Parts

Tags



Model origin

The author remixed this model.

Differences of the remix compared to the original

I added a grip with a TinyPico Bluetooth HID shutter button, a cold shoe mount for attaching accessories, and an adapter to install Moment Lenses to the phone.

License