Adobe Premiere Bluetooth Edit Controller

by Fixins_13 in Circuits > Gadgets

647 Views, 4 Favorites, 0 Comments

Adobe Premiere Bluetooth Edit Controller

complete_3_billboard.jpg
Shocked_Robot Adobe Premiere blutooth controller

I am a video editor. I am not an industrial designer nor a software/hardware engineer. I know just barely enough to make all of this off the shelf stuff work together well enough to do the work I needed. I was working on a TV show with a massive influx of footage and no assistant to prep stuff for me meant I had to parse through days of stuff fast. I wanted a controller to be small, powerful and have no wires.

A lot of the idea for this project was from Zack Freedman's Big Wheel - Premiere Pro Video Deck. What bummed me out about his deal and almost all of the other commercially available edit controllers I've seen is they are corded. When I'm working, I need as few wires running around as possible. I can pick this up and hold it in both my hands and there's no wires to drag around. Bluetooth works perfectly for this controller and although this ability is not really useful to me, I've tested it working clear across the room.

I modeled it a bit on the old Sony BVW-500 digital beta deck which I still think has the best transport interface of any pro-level gear I've ever used before or since. This works similarly in that I wanted to be able to play/stop on the top and scroll frame by frame with the wheel but I also wanted to be scrub fast by pushing the trigger buttons on either side which the Sony did not do. It's also kinda like the old CMX 2500 Gizmo but not nearly as clunky.

Supplies

I'm not making money on any of these links or on this project in general. I do not endorse the products nor services on any of these sites. I only gave links so people can at least see what I used to build my project. If you think the buttons I used suck, change them. The same could be said for almost any part in his project except you'll for sure need an ESP32, some kind of rotary encoder and a battery. Most of these links are for more parts than you'll actually need to complete the project. I would advise getting more than you actually need. Things get damaged in shipping, stuff shows up dead and you might break something during the build. Having spares means the show goes on.

Materials

(1) ESP32

available here I used the 38 pin variant of the ESP32. It was at the time, the cheapest ESP32 board available. You can use whatever one you want but all my pictures and diagrams reference the pin placement of a 38 pin board. If you get a different layout, that's totally fine but you'll have to figure out where all your pins are in relation to the diagrams and the mounting stand-offs won't work. Take note, the narrow version of 38 pin won't work either as it has no mounting holes on the PCB.

(1) 18650 battery

(1) KY-040 rotary encoder board

available here

(1) power bank board

available here

(6) momentary switches

available here

(1) sliding SPDT switch

available here

10ish small screws

available here

1 hex nut and bolt

available here

1-3 feet of 22 AWG silicone-insulated wire

available here

1+ spools of PLA filament

flux-cure solder

available here

solder wick/remover

available here


Tools

3D printer (Mirco Center routinely sells the Ender3 for $99. I can't find it being advertised currently but I have seen it many times )

Soldering Iron Station (the crappy, nameless one I use isn't sold any more but similar ones to the one I used are available on the common shopping sites for $35-$50. Whatever one you get, make sure it's for electronics soldering and make sure it has a small, pointed tip)

wire stripper

wire cutter

Soldering station (there are better ones sold for less money now. I would highly advise not getting this one or any like them. I find them infuriating to work with and would suggest literally having nothing is better)

a Philips screwdriver and whatever Allen key fits the hex bolt in the knob.

Print the Box & the Control Knob

First 3D print the controller chassis and the control knob. I used my totally average Ender 3 printer with whatever PLA filament I could get in the middle of the pandemic. I was/am a total novice to designing and printing and I got this done by going slowly and screwing up a lot. FWIW, I used tinkercad create the 3D model and Cura to slice it for my printer. All my printing/printer settings were just dead-stock settings. Nothing fancy. I printed it standing on its head with the battery holder flat against the print bed and the battery charging ports sticking up. IIRC I used tree supports which were in beta at the time but are now available as standard. I've had better luck removing the tree supports and they seem to use less filament. I got the integrated 18650 holder from this design on thingiverse. I never got the wrapping the wire around the "spring," to work right so I just soldered leads right to the 18650 battery. DO NOT SOLDER TO YOUR BATTERY! The entire world will catch on fire and your Aunt Tilly's credit will be ruined. I'm told you can buy 18650s with leads already on them now so if you're dead-set on static mounted leads, you don't even have to risk the cell exploding in your face anymore. I stole the design of the knob from Zach Freedman as stated above. You can check out his design for more info on the knob. The print time on my Ender 3, the case is a 21 hour print and the knob is 4 hours.

Screw Stuff Down to Chassis

mounting_charging board.jpg
encoder_mounting.jpg
power switch.jpg
battery_board_usb.jpg

First thing you'll need is one of these power bank boards which requires you to destroy them in order to work how I/you need them to. Why? a few reasons. 1) I wanted both USB-C and USB-Micro charging jacks 2) I needed 5V to run the ESP32 and lastly 3) the battery bank board does a really nice job charging the 18650 battery. This board did all the jobs and it was available and cheaply. I hate USB-Micro but it was at the time pretty much the standard for USB cables. I wanted USB-C but wanted to make this so others could use it too. In order to use this board in the project, you'll need to cut the big USB A female ports off cleanly as possible. Use solder wick to remove all the remnants of the junk there before. In addition to removing the legs of USB jacks there are some small fragments of the PCB which extend down on either side of where the USB used to be. Snip them off. They get in the way of the stand offs for the ESP32. Before you screw the board to the case, solder some leads (200mm +/-) to the battery + and - terminal and do the same for the +/- pins on the removed USB port. If the charging board is component side up with the charging ports down in the right slot where the female jack used to be, the left most terminal is positive and the right most is negative. Look at the wiring diagram in step 4. I used silicone jacketed wire for all of this as I got tired of burning the insulation on the crappy wire I had and wanted it to look nice and work. Poke the 2 jacks through the hole in the rear of the case. They should just slide right through. There's a raised bar in the bottom of the case just for these 2 screws to be driven into. See photos above. Find the spot on the battery board with a notch. It's to the lower right of the negative battery terminal and lower left of the positive. Drive 2 screws (1 in each side) into that notch securing the board to the case. What does that little button on the battery board do? I don't know! Then get one of the KY-040 rotary encoders and remove all the pins from it. Maybe they can be purchased without the breadboard pins now but if not, remove all the pins. You can pre-solder leads (100mm +/-) to all 5 pins to make your life easier later later. You may have to move the posts/tweak the case design to get those stand off legs in the case to fit your encoder or if you're annoyed with them/me simply remove them. I put some screws in the standoffs as well as tightening down the mounting nut on the topside of the controller. It'll take a pretty good whack. I've tested it. See photo above. You'll need 6 of these momentary push-buttons. Put all 6 buttons into the holes in the chassis. I tightened them in place with my fingers and used a flat screw driver to tighten the nuts against the plastic. You can now screw in the sliding SPDT switch in the slot in the upper left side of the chassis (if looking form the top). I threaded the screws right into the PLA case and it worked fine. If you use giant, fat screws, you'll likely split the case.

Make the ESP32 Act Like a Bluetooth Keyboard

This whole project is complicated way of tricking your computer into believing you're pressing a bunch of keyboard keys. That's it. I'm including all of my Arduino files to program onto the ESP32. There are 2 things worth mentioning: 1. I didn't write this code. I tried and this was just too far outside of my abilities to do well. I hired a guy on Fiverr and he wrote it. He (tinratsy) doesn't appear to be on the site anymore so I cannot credit him properly nor put you in contact with him to write your code. Sorry. 2. Yes, you can tweak some of the buttons to do other stuff but it's gonna be up to you to figure out how that all works for your application. Can it/will it do multiple keys in a sequence with a single press; like a macro? Not sure. never tried. If you do, lemme know. If you have no idea how to program an ESP32 from the Arduino IDE, you'll have to go watch some youtube videos and figure it out. It's not hard. One thing of note, going forward, the programming port of the ESP32 will not be easily accessible. The ports which stick out of the back only charge the battery. If you decide later you want to change the behavior of the keys or whatever, it's not exactly convenient to get access to the module.

Soldering & More Soldering

wiring_diagram.png
battery_terminals.jpg
IMG_4120.jpg
soldered_no_screwed.jpg
soldered_and_mounted.jpg
soldered_in_place.jpg

First you'll need to de-solder/remove all the pins from the ESP32 (you may be able to buy them without pins now but your couldn't when I was doing this project). I found it easier to remove the pins if I removed the black plastic spacer around them. You can slide something thin between the PCB and the spacer and slowly slide them up and off the pins. Heat the pins up from the top with your soldering iron and use needle-nose pliers to pull them out of the PCB. Do this carefully! You'll be sticking stuff back to these pads later so if you destroy them, you're hosed. Orient the ESP32 so that the labels for all the pins are visible. Included is a wiring diagram so you can trace where everything goes but in really broad stokes, you're gonna be pulling pins high to simulate keyboard strokes with all of the momentary switches. I found it easier to pull one wire to the voltage of the board around to all the buttons and run independent trigger wires to the pins. Your millage may vary. You'll also need to run 2 wires from the sliding SPDT switch to power the ESP32. I chose to switch to positive leg of the USB A socket I removed from the battery bank board. The energized leg of the switch goes back to power the ESP32. So is the battery feeding voltage to the battery bank board even when the output to the ESP32 is switched off? Yes but in my experience, it doesn't matter. I've left these things switched off for months and they had no problem firing right back up. Next follow the diagram until you've made all the connections. There's a lot! I've included a diagram which may look awful but I'm not learning to draw a proper schematic just for this project. Those of you who are not visual based and/or would like a text based list, I'll include it below. All of this is as though you have the controller flipped over with its big scroll wheel on the bottom and the battery at the top.

  1. run a common wire to one leg of all the buttons and the VCC pin on the encoder. Run that common wire to the 3v3 pin on the ESP32
  2. wire the 2 side buttons' available pins together and then run one more wire from that to pin 04 on the ESP32
  3. the bottom left button's free pin, run a wire from that to pin 25 on the ESP
  4. the top left button's free pin, run a wire from that to pin 14 on the ESP
  5. the bottom right button's free pin, run a wire from that to pin 32 on the ESP
  6. the top right button's free pin, run a wire from that to pin 27 on the ESP
  7. run a wire from the right-most pin of the right removed USB-A's jack to the ESPs negative pin. There are several board grounds to choose from but I used the bottom right one for negative from the charging board.
  8. run a wire from the left-most pin of the removed USB-A's jack to DPST switch, middle pin.
  9. run a wire from the bottom pin of the DPST switch to the V5 pin on the ESP32
  10. run a wire from the ground pin on the encoder to a ground on the ESP32. I used the one 6 spots from the left on the top row of pins.
  11. run a wire from the SW pin on the encoder to pin 15 on the ESP32
  12. run a wire from the CLK pin on the encoder to pin 33 on the ESP32
  13. run a wire from the DT pin on the encoder to pin 26 on the ESP32
  14. run wires from the battery to the indicated places on the power bank board.

Double Check All the Wires and Fire It Up

Once you have all of that mass of wiring and soldering done, I recommend powering it up and connecting it to your computer. On a Mac, click the little Bluetooth icon in the upper right of your finder up by the clock. If the controller is powered up, you should see a keyboard called "SHOCKED_ROBOT" connect to it and test it out in Premiere. The big wheel's button is play and pause. Scrolling clockwise is jog frame-by-frame to the right of your timeline and counter-clockwise scroll is jog frame-by-frame backwards to the left. You can increase the speed of the jog function by holding down either button on the side. That is fast jog. You can increase or decrease the shift-plus-wheel speed in preferences. Go to the playback tab and change the value in Step forward/back many. I used 30 frames but you can make it whatever works best for you. The bottom left button is "mark in point." The bottom right is "mark out point." The top left button is "insert edit," and the top left is "overwrite edit." If it's working now, put in the 4 screws to hold the ESP32 to the box and you're done! If not, check the wires. Especially the grounds and the long common wire for the buttons. If it's working, tighten the big knob to the post with the Allen key and turn it over and start editing at lightning speed!

What I'd Do Better or Different

On reflection, I think I might have made the case to allow for a removable bottom plate. I played around with it and since I was always tinkering with the wires and stuff, I never made a bottom for the case. Having the bottom open hasn't mattered to me at all. I've thrown this gizmo in a road bag and it was fine on arrival. You might not get so lucky. I wish the buttons were more easily programmable. This project Premiere Pro Edit Dial Controller has a really cool web-based interface which allows the user to pretty much hot-swap keys from program to program. It's a way better deal for the ability to program the keys. However it's not wireless and it doesn't have as many buttons as I want. You may say to yourself "this is fine but these buttons choices are stupid and don't do any of the things I wish they would!" Feel free to change their operation in the Arduino IDE section above. "Can I make this do cntrl+shift+bksp+9 for my CAD software?" No idea. "Does this work on Linux-based MAME cabinet for the Japaneses version of Super Breakout 14?" I do not know. All I can tell you is this works on a Mac OS 13.3.1 and Premiere 23.4.0. I found it to be super useful for culling down footage into more accessible chunks for editing a TV show. I don't usually use it for day to day editing because I'm faster with the keyboard.

Q&A

What/why is Shocked Robot?

One of the first ones of these rigs I built had just the big wheel and 2 buttons on top. I thought it looked like a surprised/shocked robot. I redesigned the case but I liked the name.

Why did you write the code that way? I think it's written poorly and/or is doing something inadvisable

I didn't write it. I'm not good enough at writing code to develop code this complex. I have trouble getting the hello world blinking LED sketch to work.

I need more/different buttons for this thing I'm doing. Can you change it for me?

No but feel free to do it yourself! This is a great platform to learn stuff with. The whole reason I did this was because at the time there was no Bluetooth edit controller for sale... at all! You can buy them now.

How long does this take to build?

The print as mentioned above is about 25 hours of print time for the box and the knob. After doing several, I could wire one up in an hour or two but unless you are experienced with soldering tiny pins and parts on PCBs not really designed to be soldered to, it's gonna take a good while. My best advice is resist the temptation to go fast. This is fiddly work made even more complex by the fact that the thing you're using to do the work is constantly trying to burn you.

How much does this cost to build?

That's a little tricky because it depends a lot on how much you already have. If you have all the tools but none of the supplies $25-$50. If you have some of the required parts on hand, you could maybe get under $20. I don't expect to inspire anyone to start from absolutely nothing and build a work shop in order to make this controller but even if you had to, all the info to do so is here.

Why did you choose that particular part?

Almost everything was out of necessity. The ESP32 was the smallest, cheapest board with the capability to spoof a Bluetooth Human Interface Device. I tried a few different charging boards and most of the other ones I experimented with didn't work right (for me). I tried some just UBS-C ones and even a Lightning connector as I thought it'd be cool to stay in the Apple ecosystem but either they didn't do what I needed or I didn't know how to make them do what I needed. The battery charger boards though completely miscast in this application work great.

Do you sell these or make a kit?

Not currently but you're welcome to try to change my mind!