5 Ways Photographers Can Use Social Distancing as an Opportunity

I want to start by saying that if you or your family and friends are impacted by the current events of COVID-19, I send my sincerest condolences. The tragedy, pain and suffering that the world is going through is immensely saddening and should not be taken lightly, so we should all be taking the necessary precautions to help prevent the spread through social distancing.

I personally haven't left my home in over 10 days. To some, staying home this long can be depressing, stressful, and make you feel powerless. This tragedy has kept us at home, physically away from our families, our jobs, our clients, and the things that bring us joy. But this provides us with an immense opportunity that many of us usually don't have. Time.

This extra time gives us the opportunity to learn and grow... to come out of this tragedy with a plan in place to move forward to try new creative techniques, gain more clients, and beat your goals going into 2021.

Firstly, I'll be honest, I'm not a full-time wedding photographer, even though I would like to be. I'm very lucky during this time to be a Creative Director at a small marketing agency in Los Angeles which has kept me busy working from home for the past three weeks. This means I typically have a bit less time on my hands than many freelance photographers due to looming projects & deadlines for work clients. The difference now that social distancing is in place is that I'm not stuck in traffic for two hours every day, and I'm not taking a traditional lunch break. That's almost an extra three hours per day that I've never had before.

Here's what I've been doing with all the extra time that I've come across and some ideas of how you can use your extra time as opportunity, not waste.


1) Learn something new about photography every day.

I know this sounds obvious, but hear me out. We're living in the age of information. There's no reason to not take advantage of these resources while you're stuck at home. There are literally hundreds of thousands of incredible courses and tutorials available for you to take from the comfort of your couch via LinkedIn Learning (formerly Lynda.com), Patreon, and even from YouTube. The fact that you’re reading blog posts about photography is a good sign! Find photographers that inspire you and see if they have a Youtube, Patreon or other learning service to watch and learn from.

For me, I've subscribed to Sam Hurd's Patreon account to learn a bunch of awesome things. He's been teaching creative techniques, posing techniques & how to run a successful wedding photography business. This has provided an excellent opportunity for me to grow my skills from Sam's teachings.

I've also been watching a ton of LinkedIn Learning. If you've been to college recently, see if your college provides a LinkedIn Learning account via your college email login credentials. Mine still works and I graduated almost six years ago! If yours doesn't, just grab a free month  on their LinkedIn Learning page and start watching! Top tip: LinkedIn Learning has an app that lets you cast to your TV! I did this for their FAA Part 107 Training, which made it super easy for me to take notes & study for the FAA Part 107 test.



2) Test & play around with different ways to process your photos.

I say this because many of us are stuck in our ways when it comes to editing. Go back to photos you've taken and try to re-edit them in ways you normally wouldn't. Especially try new techniques if it's something you’ve learned from taking a course or watching a tutorial. Get inspired by other photographers and try to copy their editing style. Through experimentation, you get to learn how to edit beyond your favorite one-click-edit preset in Lightroom. Practicing editing without presets will teach you how to face editing different lighting situations in the future. In this process, you may just come across something new and different that you absolutely love.

This is also a great time to try other editing solutions. Affinity Photo is having a 50% off sale, while Adobe is giving 2 months of Creative Cloud away for free and Luminar by Skylum software is donating $5 towards the fight of coronavirus for every license sold.



3) Set goals for what you want to accomplish over the next weeks, months, and year. Start with small, easy-to-accomplish goals that work up to larger goals.

To give you an example, this week, my goal was to develop a plan to rank higher on Google. Next week, I'm going to focus on my website speed and website content, following this week's plan. My goal for the month is to have a finalized advertising and business strategy to help boost my social media and gain clients moving forward. My overall goal for the next year is to book ten clients just through my social media presence & search engine rankings.

Set goals that are easily accomplished on a daily and weekly basis, but have these goals all build up to one large goal. For instance, changing the entire strategy for your website isn't going to take a day, it's probably going to take a considerable number of tasks of a considerable number of days. Set your goals in relation to your daily tasks and goals. Once you make your goals for the next few weeks, month, and year, don't forget to keep setting these weekly goals once this month passes. Keep your goals up-to-date, and mark them off as you go. The key to success is repetition and steadfastness. You'll get there.



4) Find ways to help your business online through research.

Research what your competitors are doing during this time. If they aren’t doing anything to boost their online presence, now is an especially good time for you to swoop in and take their business.

What are your competitors doing online that you aren’t? Are there any opportunities that you're taking advantage of that they aren't? In what ways can you improve your online experience to provide more value to your potential customers? How can you improve your current processes to help gain more customers?

These are all really important questions to be asking yourself and figuring out during this time. Whatever you aren’t doing that your competitors are and vice versa, are opportunities to be taken advantage of.

The first thing that I did when comparing my own website to my competitors was an audit. Use free tools like Google Lighthouse, WooRank, and The Hoth to find opportunities and gaps on both your own site, and your competitor’s for things like website load times and SEO. Dig deep into their websites to see what services that your competitor offers that you don’t and try to gauge how much they charge for those services.

Remember, where your competitor has a gap, you have an opportunity. Do a ton of research and make changes to give you an edge in quality & cost over your competitors.



5) Connect with people and build your network.

Even though you can't meet with people in person, doesn't mean that you can't reach out and start conversations to build your business. Hop on LinkedIn and start reaching out to people relevant to your industry.  Connect with them and see how they're handling this pandemic. As photographers, we don't have to be alone during this time.

Since I'm in the wedding industry, I've spent my time connecting with wedding coordinators, event designers, bridal boutiques, dress designers and more through LinkedIn and email to help build my network of industry professionals. Building this network will help me connect with people for referrals and partnership opportunities. No matter what kind of photographer you are, you can reach out to brands to build connections and give a vision of how you help capture their brand’s story. It's a no-brainer to build your network and authority, which will undoubtedly lead to jobs in your future.

In conclusion...

These are just a few ideas of steps you can take to prepare for when this is blows over.  Remember that today is a day of opportunity, so don't just sit in bed scrolling through Facebook, Instagram, or Netflix. Now is an awesome time to learn and grow as an individual and as a business! All the information in the world is at your fingertips. Now go get it!


Is Your Lightroom Slow? It could be due to your workflow.

Over the past few months I've griped many times about Adobe Lightroom Classic CC being slow, almost to the point of it being unusable. After trial and error, I've figured out a workflow that is fast, efficient and makes my projects get finished in a timely manner without me wanting to throw my computer out of a window.

The first thing you need to do is analyze your computer. What are the specs you are starting with and what are things that you can do to improve performance? Are you using an external Hard Drive? Is your internal drive an SSD or a Hard Disk? How much RAM does your computer have access to? Do you have a quality graphics processor?

Here were my specs before optimizing my workflow.

Core i7 7700k (4-core 4GHz clock)
32GB of DDR4 @3200MHz
Nvidia GTX1070 OC Graphics Card
512GB 3.5" SSD connected by SATA
24TB External Storage connected by USB 3.0

Looking at this, you might think that this should be just fine for editing photos in Lightroom. From an overall perspective, it should be, but it comes down to workflow, and optimizing components in your system for your workflow. What I found in my rig was that data transfer was the bottleneck in my system. I found myself editing off of my external Hard Disks instead of from internal components. This was huge for causing sluggishness, especially since Lightroom is constantly Reading and Writing Data simultaneously, which traditional Hard Disks cannot do very effectively. The fix for this issue was to move my catalogs and photos in the catalog onto internal storage that was SSD based. After trying this out, I saw an improvement but wondered if I could take it a step further.

This leads to understanding what components that you can upgrade to improve performance. After looking at my motherboard, I found that my board supports NVMe SSD drives. If you think of your data transfer inside of your computer as a city, NVMe drives are the expressways while anything connected with SATA or USB are like city streets. NVMe SSDs allow for data to get rushed via PCI-e through the processor almost instantaneously. After perusing Amazon and reading reviews, I settled on a 500GB Samsung Evo 960 NVMe SSD which has read speeds of 3500MB/sec and write speeds of 2500MB/sec vs 480-600MB/sec on USB 3.0 and SATA. That's up to 6X the speed! This means that Lightroom can easily read and write to the drive without any bottlenecks in sight. If you can't add an NVMe drive, just make sure you're editing off of any internal drive since SATA is still much faster than USB 3.0. After doing this, it was all about optimizing my workflow.

These are the steps that I take after each shoot to ensure that my Lightroom workflow is optimized for speed.

1. Make sure your Lightroom preferences are set to use your graphics card and that editing with Smart Previews is turned on.

2. Make sure there's space for your photo session on your computer's internal hard drive or SSD. If there isn't room, clear up room by backing up or cleaning up files you don't need anymore.

3. Create a new Catalog for (each) new shoot.

4. Import your photos onto your internal drive. Optionally, convert to DNG. At the top right of the import window, select Previews "Embedded and Sidecar", under that check the box that says "Build Smart Previews." Start the import process... This can take a while due to heavy processing, especially if you're converting to DNG.

5. Once it's done importing (and converting to DNG, if applicable), back up your imported photos to your external hard drive(s) for safe keeping.

6. Start editing and enjoy the speed!

7. When you're done editing, copy your catalog folder onto your external drive(s) for safe keeping.

8. Delete the catalog and photos off of your internal drive once you're certain you're sufficiently backed up to other locations.

If you need to go back to older catalogs and shoots, make sure you just copy the folder with both the photos and the catalog back to your internal drive and start editing again. Make sure you archive your catalog again once you're done and you'll be set!

I really hope this helps you speed up your workflow. If I helped you out or have any questions, feel free to reach out and tell me of your successes on Facebook, Instagram, YouTube, etc!

How a Lightroom Plugin Changed My Instagram Habits

As professional photographers, we've all had the struggle of finding an efficient way of posting our photos to Instagram accounts. Whether you are on Mac or PC, it's always a hassle to get your photos from Lightroom to your phone.

On Mac, you first needed to export from Lightroom, open up the file location, then Airdrop it to your phone... this means you need both your computer and phone on the same network. From there you need to write out your caption on your phone. Frustrating to say the least. An for Android, it is even worse, needing to export from Lightroom, upload to Google Drive, then downloading the photo to your phone, and then writing a caption.

I found this awesome plugin for Lightroom that takes your entire process and makes it simple. This plugin is called "LR-Instagram," found for free on https://www.lrinstagram.com. The plugin is donationware and I encourage those who find it useful to donate to the developer. Once you install the plugin to Lightroom, it becomes extremely simple to do everything from uploading photos to Instagram, to easily apply captions to your Instagram --  and all from Lightroom!!!

After installation, LR Instagram will pop up in your Publish Services in the Library Panel like this.

You'll need to click a similar button to the "Set Up" buttons you'll see in the services above. From there you'll log into your Instagram Account, and finish setting up the plugin. You can even set up multiple accounts to make your life super easy!

Unless you want your images that aren't perfectly square to have to a border, you'll need to select the "Force Crop for Instagram" and click insert to make it so that your images are perfectly cropped for Instagram.

For your caption, it is super easy, just change it to "Caption," which will allow you to type in the caption for your Instagram post within Lightroom! For the example above, the caption will be "For being a rainy day, this couple pulled off the most gorgeous engagement photoshoot at The Griffith Observatory." This will be automatically placed as the caption for your image once you upload it!

To put a photo into the upload queue, drag it from the filmstrip in the bottom to the "LR-Instagram" publish service.

Once it is within the LR Instagram Publish Service, click into "Instagram Photos." Here you'll be able to select the photo you want to push to Instagram. Click the Publish button and it will be live on your Instagram page within seconds!

I really hope this provided some insights into how I am able to easily plan out my Instagram posts and make it super simple to stay on top of your Instagram game!

Using Lightroom Presets on Mobile

While most people would say that it's impossible to put any of your Lightroom presets into the Lightroom mobile app, I have to say that it is quite contrary for Android users. As an Android user myself, I found a way to unpack the Android APK for Lightroom, and repack it with the inclusion of standard .lrtemplate presets that many purchase from other photographers. Prior to this most people used a sample photo sync to their computer, with a specific preset applied, then copying and pasting it over to another photo on their mobile device. This set up completely takes away the copy and paste part of the equation and builds Lightroom presets directly into the app. To see how it is done, please watch my video below...

[vc_video link='https://youtu.be/BRmePt_02q4']

If you are uncomfortable following the steps above, or would like me to build the Lightroom app for you with the presets built-in, I would be happy to do so for a small fee of $10. Please reach out to me via email ([email protected]) and we can begin the process!

Allow 3rd Party Apps on DJI Phantom 4 Pro Plus Tutorial

Hi everyone!

So my latest venture has been into the land of drones! I've gotten to the point that I'm really comfortable flying by hand, and I wanted to venture into automated flight. Unfortunately, the drone that I'm using, the Phantom 4 Pro Plus is really restricted in what you can do digitally with it. Just as I'm not a fan of Apple restricting what you can do with its devices, I'm not fond of what DJI does to lock down its software, preventing 3rd party apps from being installed on their device.

After researching, I found a gentleman by the name of "Michael W" on YouTube that managed to unlock and root his Phantom 4 Pro Plus controller to accept 3rd Party apps. With his setup being based on a Mac, translating his actions to Windows was a bit more difficult than I expected due to the Windows Linux Shell in Command not accepting connection to USB Devices. It took me way too long and way too many Google searches to figure that out for myself, so hopefully, that step alone helps you solve a lot of the mystery.

Here's a breakdown of what I did to do this on a Windows PC. Keep in mind that this is not for the faint of heart and involves MANY steps and procedures, including work in the Linux Terminal. If you are not comfortable in this environment, turn back now. I am not responsible for any of the mistakes you may make in the process of doing this procedure. Do this at your own risk.

What You Need:
  1. DJI Phantom 4 Pro Plus Controller (GL300E)
  2. Standard Micro USB Cable (USB-A to Micro USB)
  3. Time
  4. Patience
  5. Linux Skills
  6. A basic understanding of Android Debug Bridge
STEP 0 - SUPER IMPORTANT -- Enable Developer Options on Your Controller

Go into the DJI Controller, enter the settings (where you change WiFi, etc)... scroll down to the bottom, press "About Device." To enable Developer Options, scroll to the bottom and tap "System Version" 10 times in a row quickly. You're a developer! Yay!

Go back, you'll see Developer Options right next to "Date & Time" in the settings. Tap into it. Scroll down and turn on USB Debugging. Woo! Are you ready for some 3rd Party Apps? Well, you have a long way to go from here, so keep on trucking through this tutorial!

Step 1 - Install Oracle VirtualBox

Do yourself a favor and forget about trying to enable the Linux Shell in Windows and using bash from there. The easiest way to do the entire process is to download VirtualBox software onto your PC and installing it. Oracle's free VirtualBox Software is great. See their site, here. To go straight to downloading the Windows version of VirtualMachine, click here. Install it, then proceed to the next step.

Step 2 - Install a Debian version of Linux

This is the version of Debian that I used to install onto my VirtualMachine (direct download links)

For Intel Systems: Debian i386

For 64-bit AMD Systems: Debian AMD64

Once you're finished downloading, proceed to the next step.

Step 3 - Install Debian onto your VirtualBox Software

This step is technically multiple steps... it isn't the easiest to setup, but luckily there are a ton of guides on the internet for this! But why let them be your guide when I can!?

Step 3.1

So first thing's first, make sure you have at least 20GB-ish of hard drive space available on your boot drive (the one that has your windows installation in it).

Step 3.2

Click the baby blue "New" button in the top left corner. 

Step 3.3

A window like this will pop up. Type in the name spot, "Debian."  If you are on a 32-bit machine, ensure that the "Version" is set to Debian (32-bit). If you are on a 64-bit machine, ensure that the "Version" is set to Debian (64-bit). Click "Next."

Step 3.4

Set your memory allocation size for the VirtualBox to use. I was generous and gave 8GB, you can give more or less... up to you! Click next!

Step 3.5

Set up a hard disk. Select the second option "create a virtual hard disk now." Click "Create"

Step 3.6

Select a hard disk file type. Select the second option "VHD (Virtual Hard Disk). Click "Next."

Step 3.7

Select how the storage on the physical hard disk is allocated. I like "Dynamically Allocated." Press "Next."

Step 3.8

Select the size of the hard disk. Just for convenience sake, I keep mine at 20GB. Click "Create."

Step 3.9

You'll see a page like this. Highlight your Virtual Machine and click "Start"

Step 3.10

You'll see a popup that says something like this "Select a Startup Disk." Click the folder and select the ISO of Debian that you downloaded in Step 2. Once you've selected the .iso file you downloaded earlier, press "Start"

Step 3.11

The install screen will pop up. It will look like this. Use your keyboard arrows to arrow down to "Install." Do not choose Graphical Install.

Step 3.12

Select the country in which you a working and keyboard layout that matches the computer hardware you are using. Press enter (return) to select each option.

Step 3.13

After selecting the keyboard key map, the installer installs some components and then pauses to ask for the host name. You can choose anything you want for the host name. I chose “debian” to make things easy.

Step 3.14

It is best to leave the domain name blank, for now. We can configure it later, if we need to.

Step 3.15

Next, select the root password for the system. The root password is used when you need to make changes to the system’s critical software and configurations. It will ask you to re-type the password for redundancy and to ensure you typed it correctly the first time. This password is incredibly important. Do not lose it as it will let you enable SuperUser priveledges when we need them in the terminal.

Step 3.16

Now, you will set up the user name, user id, and user password for the account you will use when working with this virtual machine. In this example, I used my real name for the user name, then I used my first name as my User ID. You can use any username and use ID that you want. Then I chose a password. This password is important! Write it down and save it!

Step 3.17

Next, choose the time zone in which you are working from. I'm in LA, so I'll choose Pacific.

Step 3.18

In the next screen, select the default choice, Guided – use entire disk. The LVM option is an advanced disk configuration that might be useful in a real host machine but is not needed in a virtual machine. It is OK to use the LVM option, if you'd like.

Step 3.19

All files in one partition is the simplest configuration and it is the default choice.

Step 3.20

Now, you commit the disk configuration and the Debian installer will partition and format the virtual disk image file to paper it for the installation of the new Debian Linux operating system. AKA, select YES.


The package manager application needs to be configured with information that tells it where to download additional software from, and where to find software updates in the future. the following two screens help you to choose the appropriate server. First, select the country in which the server you wish to use is located.



Then, select the server in the country you chose. You can probably guess from the domain names which server is the most reliable. Or you can research the institutions associated with the domain names to determine which one is likely to be the best source. Don’t worry too much about choosing the best server. Any server listed will be adequate.


Since my network does not have a proxy server, I can leave the next screen blank. Most home networks will not have a proxy server. If your network has a proxy server, enter it’s information on this screen. You may need to ask your network administrator for the proxy server information.


Now, the system will spend some time downloading and installing all the additional software it needs from the server you specified. This may take up to 20 minutes on a typical broadband connection.

The next screen will ask you what additional software you want to select. Debian Desktop Environment and Standard System utilities are selected by default. You should also select SSH Server so you can securely log into the virtual machine over the network if you need to.


Next, install the GRUB bootloader.


I suggest you install GRUB on the disk recommended by the installer. In this case, select /dev/sdafrom the menu on the screen below.


After the installation is complete, the Debian operating system boots up in the virtual machine.


Log in using the User ID and password you selected during the installation process.

Congrats! You've officially installed a Virtual Machine running Debian Linux on your computer! See the power button in the top right hand corner? Power off the virtual machine (do not power off your actual computer).

Once it's powered off,  we just need to setup USB. Plug in your controller via MicroUSB into your computer. Go into the settings as seen in the screenshot below.

From there go into the USB tab, check of "Enable USB Controller" with "USB 1.1 (OHCI) Controller" selected. Under USB Device Filters, make sure you can see your controller, labelled "DJI GL300E." If you can't, click the little USB Plug with a green + sign on the right hand side. Select your controller there. Once you click there it should show up under USB Device Filters. Make sure this is checked off and we can move on!

Step 4 - Setup the Android Debug Bridge on Linux

On this version of Linux, get rid of the "sudo" command for all code on the XDA Guide. Start off by typing "su" into the Terminal and entering your Root Password. This will make you a superuser and make the "sudo" command irrelevant. You can follow the steps on the XDA Forum Here although I'll do my best to make it comprehensible with screenshots below.

4.1 - Open the Terminal

Click "Activities" in the upper left-handcorner. In the search bar that pops up, type "terminal." Click on the terminal icon that shows up below.

4.2 - Enable SuperUser Priveledges

Type in "su" (without quotes) and press enter. Enter the "root" password you set up when installing Debian. Once you do this, the terminal will look like it does below. You're now a SuperUser in the root!



Copy and paste these codes one by one into the terminal (make sure to press enter after you copy).

Code 1:

add-apt-repository ppa:nilarimogard/webupd8

There is a possibility that you might get a couple of failures on this code. Never fear, just continue doing your thing. Check out mine below to compare. For this code you'll have to press enter in the middle of it to continue adding the code.

Code 2:
apt-get update

This line of code will literally make your computer go bonkers for a second and spew out a million lines of code. Never fear, it's just updating some stuff. Some indexes will fail to download. Don't worry, it's all part of the setup process.

Code 3:

apt-get install android-tools-adb android-tools-fastboot

Type in the code and press enter. It will soon ask you if you want to continue (Y/n). Type in a Y and press Enter. It's gonna go crazy again! Woo!



Now it's time to install the 32-bit compatibility libraries for 64-bit systems:

Code 1:
apt-get install ia32-libs

Sometimes it will throw an error saying it won't be able to locate a package. Don't worry too much about it.

Code 2:
dpkg --add-architecture i386

Sometimes doesn't show anything. It didn't for me, so I'm not going to even give you a screenshot. You'll probably be able to see in the next screenshot anyways.

Code 3:
apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386


By now you Linux installation already has ADB and Drivers install but now you need to configure it to detect the Various different types of Hardware Vendor ID's. So now it's time to do the following:

Type in this code:
gedit /etc/udev/rules.d/51-android.rules

So this is a fun one. Type it in, press enter and you'll get a notepad that pops open. Think of these codes as drivers so that your Linux can communicate with your device.

Copy and paste these rules into the notepad that opened up:
# udev rule to detect android devices
# These rules refer to https://developer.android.com/tools/device.html

# Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev"
# Archos
SUBSYSTEM=="usb", ATTR{idVendor}=="0e79", MODE="0666", GROUP="plugdev"
# Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666", GROUP="plugdev"
# Azpen Onda
SUBSYSTEM=="usb", ATTR{idVendor}=="1f3a", MODE="0666", GROUP="plugdev"
# BQ
SUBSYSTEM=="usb", ATTR{idVendor}=="2a47", MODE="0666", GROUP="plugdev"
# Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2ca3", MODE="0666", GROUP="plugdev"
# Fairphoneca
SUBSYSTEM=="usb", ATTR{idVendor}=="2ae5", MODE="0666", GROUP="plugdev"
# Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666", GROUP="plugdev"
# Fujitsu Toshiba 	
SUBSYSTEM=="usb", ATTR{idVendor}=="04c5", MODE="0666", GROUP="plugdev"
# Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091e", MODE="0666", GROUP="plugdev"
# Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
# Haier
SUBSYSTEM=="usb", ATTR{idVendor}=="201e", MODE="0666", GROUP="plugdev"
# Hisense
SUBSYSTEM=="usb", ATTR{idVendor}=="109b", MODE="0666", GROUP="plugdev"
# HTC, Wiko
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
# Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
# Intel
SUBSYSTEM=="usb", ATTR{idVendor}=="8087", MODE="0666", GROUP="plugdev"
# K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666", GROUP="plugdev"
# KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666", GROUP="plugdev"
# Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666", GROUP="plugdev"
# Lab126
SUBSYSTEM=="usb", ATTR{idVendor}=="1949", MODE="0666", GROUP="plugdev"
# Lenovo
SUBSYSTEM=="usb", ATTR{idVendor}=="17ef", MODE="0666", GROUP="plugdev"
# LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
# Meizu
SUBSYSTEM=="usb", ATTR{idVendor}=="2a45", MODE="0666", GROUP="plugdev"
# Micromax
SUBSYSTEM=="usb", ATTR{idVendor}=="1ebf", MODE="0666", GROUP="plugdev"
# Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666", GROUP="plugdev"
# Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666", GROUP="plugdev"
# Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666", GROUP="plugdev"
# OnePlus Two (unknown vendor's name)
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
# Oppo
SUBSYSTEM=="usb", ATTR{idVendor}=="22d9", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666", GROUP="plugdev"
# Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10a9", MODE="0666", GROUP="plugdev"
# Pegatron
SUBSYSTEM=="usb", ATTR{idVendor}=="1d4d", MODE="0666", GROUP="plugdev"
# Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666", GROUP="plugdev"
# PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666", GROUP="plugdev"
# Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
# Rockcwell Electronics
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"
# SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666", GROUP="plugdev"
# Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
# Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666", GROUP="plugdev"
# Sony
SUBSYSTEM=="usb", ATTR{idVendor}=="054c", MODE="0666", GROUP="plugdev"
# Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
# Spreadtrum
SUBSYSTEM=="usb", ATTR{idVendor}=="1782", MODE="0666", GROUP="plugdev"
# T & A Mobile Phones
SUBSYSTEM=="usb", ATTR{idVendor}=="1bbb", MODE="0666", GROUP="plugdev"
# Teleepoch
SUBSYSTEM=="usb", ATTR{idVendor}=="2340", MODE="0666", GROUP="plugdev"
# Texas Instruments UsbBoot
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", MODE="0666", GROUP="plugdev"
# Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666", GROUP="plugdev"
# Wearners
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
# Wileyfox
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", MODE="0666", GROUP="plugdev"
# XiaoMi
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev"
# YU
SUBSYSTEM=="usb", ATTR{idVendor}=="1ebf", MODE="0666", GROUP="plugdev"
# Zebra
SUBSYSTEM=="usb", ATTR{idVendor}=="05e0", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2b4c", MODE="0666", GROUP="plugdev"

Press save and close it!


Go back into your Terminal.

Time to change some permissions!

chmod a+r /etc/udev/rules.d/51-android.rules

Reload the rules you just changed!

udevadm control --reload-rules

Add in the user group "plugdev" for the rules we just created.

addgroup --system plugdev

And add your username to this group. Replace <username> with your primary username that will use ADB without the <> around it.

sudo adduser <username> plugdev

You might not need to do any of these, but do 'em just to be safe. Here's my screenshot of all of the actions above.

Step 5:

Finally, you're ready for the good stuff. On your Linux VirtualBox, click activities in the top left-hand corner again. Open Firefox and download OriginalGangsterCow. This script runs a hack against the one  file DJI inserted into the device to make it so that 3rd Party Apps can't be installed, the "installd" file. Follow the prompt to open the zip file with Archive Manager. Click extract, like you see below.

Click "Extract" again and it will extract OriginalGangsterCow into your Home Root. A window will pop up that says "Show the Files" or "Close." Click "show the files." Double click into the OriginalGangsterCow-Master folder. Right click inside of this folder and click on "Open in Terminal."

From here a Terminal Window will open up. Type the code below and press enter:


Congrats! You can now install apps! It's now time to root the device!

Step 6: Rooting with Kingo ROOT

Go download Kingo Root to your PC and install it on the Windows side. You can download Kingo Root from their website, here: https://www.kingoapp.com/android-root/download.htm

Once you install the app, open it. Make sure your controller hasn't been turned off. If it has, you need to run ./LastSkyCry.sh again through the terminal.

Open up KingoRoot and let it detect the Device. It will come up with the device name and say "Root" when it is ready. Press Root and wait for it to go through the steps.

Once it is finished, the controller will pop up with a "Root Succeeded" message.


Step 7 : Installing SuperUser Apps

Since the device probably restarted during the root process, it's important that you run the ./LastSkyCry.sh bash script again on our Linux setup.

Once you run the bash script, it's time to install some things. Download these things onto your Linux setup.

SuperUser 2.79


Chainfire FlashFire 0.73

With these APK's downloaded, we're going to run a really easy ADB command to install them. I renamed the files in the Linux file explorer so it would be easier for me to type into the terminal. You can do this too! Go to the download location, and right click Open in Terminal.

Here's what we're going to do... adb install <filename.apk>

So if you renamed the files it would look something like this:

adb install App2SD.apk

adb install SuperSU.apk

adb install euchainfireflash_073.apk

Here's an example with my SuperUser APK Renamed to something easier:

Step 8: Applying a new Root.

Open up the SuperSU app that we installed. Ensure that you're connected to the web via WiFi. It will say the binaries need to be updated. Press "Continue". If it asks if you have a custom recovery like TWRP or CWM. We do not, so just click "Normal." Here it will rebuild the root, which may take a couple of minutes. If it fails, chances are that you need to run the LastSkyCry.sh script once more. Once it's done the controller may go black. Just turn off the controller and turn it back on.

Step 9: Freeing Up Space

The whole reason we downloaded and installed App2SD is because there is not enough room in the controller's /system/ folder to install the Google Play Store. I don't have screenshots of this (because I already deleted WeChat off of my device), so you're going to have to take my word for it.

Here are the steps.

  1. Open App2SD -- it will ask for Root Permission. Give it to it.
  2. Click into "Link Apps to SD Card."
  3. Scroll down to WeChat and click into it
  4. Click the 3 vertical dots in the upper right hand corner and a dropdown menu will appear
  5. Click Uninstall -- A window will pop up asking if you want to uninstall WeChat. The answer is Yes!
  6. Rejoice, you have space for the Play Store!
Step 10: Download and add the G-Suite to a MicroSD Card

OpenSource G-Suite Apps (for Google Play Store)

Download the link above. Keep it in ZIP format and put it on a microSD card. Put it in the root of the card, not in a folder, as seen below. 

From here plug the MicroSD card into the back of your Controller

Once your card is inserted, start up the app that we installed called "FlashFire."

It will ask for root permission; give it. It will then pop up with a disclaimer. Agree with the disclaimer. Let's get on into the steps.

  1. On the left menu, tap actions.
  2. Press the + sign in the red circle on the bottom right
  3. Select Flash ZIP or OTA
  4. Using the dropdown menu, select "Filesystem root"
  5. Scroll down until you see "mnt/" -- tap into this
  6. Scroll up until you see "external_sd/" -- tap into this
  7. In this area you should see the "open_gapps-arm-5.1-pico-20171214.zip" file that we placed on the SD card. Select this file.
  8. Another pop up will come up, don't check off "Auto-mount" or "Mount /system read/write"
  9. Click the check mark in the upper right hand corner of the pop-up
  10. The pop-up will disappear. Scroll to the bottom of the page and push the button that says "FLASH"
  11. A warning will come up about the screen possibly going black for a second. Hit okay and continue with the flash.

Congrats! Restart your controller and you'll find that you have the Google Play Store! Sign in and have a blast getting all the apps you've wanted on your controller for all this time!



MIDI2LR Mac Installation Tutorial

So a while ago I posted a tutorial on how I use MIDI2LR on my PC to help speed up my workflow. While anyone could technically follow the video and install MIDI2LR, it wasn't exactly a simple process for MAC users since I was only demonstrating on a PC. Now I have created a tutorial that shows exactly how Mac users can set up the Behringer X-Touch Mini Midi Controller exactly as I have. Check out the video below.

[vc_video link='https://www.youtube.com/watch?v=kZOFfgOJEuE']

If you haven't seen my video on how I use MIDI2LR to control Lightroom using two Behringer X-Touch Mini Midi controllers, you can check that video out here:

[vc_video link='https://www.youtube.com/watch?v=oRGO7-dL7Pk']

MIDI2LR Setup Tutorial

Learn to set up one or more Behringer X-Touch Mini controllers to interface with Lightroom in a similar fashion to the Pfixer Mini setup. Check out the YouTube video below for more information.

[vc_video link='https://youtu.be/oRGO7-dL7Pk']


Thanks for checking out my video! I forgot to mention it in the video, but I have also included a PSD of the controller overlay that I created so you can tweak it to your own needs! I just printed it on sticker paper and cut out the design with an exacto knife and a straight edge.

Link to all software/profiles: https://drive.google.com/open?id=0ByDNbbCIn25ScEpDZnBxX1A3dUU

Behringer X-Touch Mini: https://amzn.to/2id7jmH

If you have any questions about setting up your controller, feel free to leave a comment below, or contact me on any of my social media outlets!

Facebook: https://www.facebook.com/brianlovelacephotography/
Twitter: https://twitter.com/blovelace
Email: [email protected]

If you have any suggestions or comments for the MIDI2LR app, I strongly suggest that you join the Google Group for the program here: https://groups.google.com/forum/#!forum/midi2lr