FS7: Taking Lanc Wireless... And Beyond

So, we've had numerous threads here about various way people have approached wirelessly controlling the FS7. There are two essential avenues - the wifi port, and the lanc port. I've done research on both, and hope to soon have something to offer for improved wifi control, but in the meantime, I've still worked out wireless control via the lanc port. Best part? The controller I'm using costs $60 bucks or less, and can be replaced last minute virtually anywhere.

Oh yea... and... why stop at controlling the camera? Let's add some three axis pan/tilt/slide control... all on one controller.
IMG_20150922_143244.jpg
 
That looks interesting / promising...
Certainly curious to learn & see more when you are ready to share.

I'm working slowly on a more sprawling motion control project, but a portion of the research and development led to this.

Essentially, I'm using a PIC32 microcontroller to communicate via USB (with the XBox Wireless gaming receiver), CANbus (to the Kessler Second Shooter controller), and Lanc (to the FS7). The project also has an ethernet communication to do more features when attached to a laptop, but the configuration seen here runs by itself.

I don't know right now whether there's a practical way to market or share what I'm doing. I like Kessler's Second shooter, but Kessler doesn't give you a way to use Second shooter with a simple joystick control (as is available on their analog Oracle system), so it lacks versatility.

The project so far has involved:
- Reverse engineering and implementing the Kessler CANbus protocol
- Reverse engineering the lanc protocol of the FS7 (it has quirks that separate it from some older Lanc implementations!)
- Reverse engineering the USB protocol for the Xbox Wireless gaming receiver
- Learning to program the Pic32 and painstakingly implementing all the required protocols in such a way that they don't interfere with one another
- So much more.
 
I'm rather speechless.... interesting work but quite over my head. I have browsed the Kessler and other motion controller systems - with an eye toward timelapse motion work... but this is quite another league.
Maybe off topic but I'm curious... the lanc on the FS7...I know the quirk that if you are using servo zoom on the kit lens, the record button on hand grip doesn't work... assume there are other quirks as well (and also have always wondered why Sony didn't use a 2 port system similar to cheaper Panasonic / Canon vid cams from earlier years.. so that other controllers could be used
 
Maybe off topic but I'm curious... the lanc on the FS7...I know the quirk that if you are using servo zoom on the kit lens, the record button on hand grip doesn't work... assume there are other quirks as well (and also have always wondered why Sony didn't use a 2 port system similar to cheaper Panasonic / Canon vid cams from earlier years.. so that other controllers could be used

I'm not following you. First, can you detail this bug for me? I'm not familiar with this servo lens issue you're mentioning. Are you saying if the lens is in servo mode record doesn't work? Or that if you're actively adjusting the servo zoom on the lens that the record button doesn't work? Please explain, I'd like to test this.

Also, what's this "two port" system? Not familiar.


I can say this about lanc... it sends about 50-60 messages per second, but you have to repeat a message 4 to 6 times for it be acknowledged. That means you can only really send 15 messages max per second. In computing time, that's really slow. And in regards to zoom messages, you need to keep sending them for as long as you want to zoom for. If you break from sending a zoom message to send a rec start/stop message, the zoom will be visibly halted/interrupted. For this reason, lanc controllers typically won't try and send a rec start/stop message if the user is touching the zoom button.

It may be that the kit lens servo is writing it's request to zoom to the same lanc control port in the camera - so - if the port is shared - pressing one might prevent the other. I'll try and look at it.

For that matter, here's something interesting. Lanc zoom essentially has values from -8 to -1, and 1 to 8, where 1 is the slowest speed, 8 is the fastest, and the negative values are the same, but in the opposite direction. The wifi web browser also encodes it's zoom values as -8 to 8, and uses 0 as a stop command.

One more funny thing - you know how with the early firmware people complained about how excruciatingly slow the iris dial was, not to mention the handgrip assignable dial? Well - in my research I discovered that the handgrip dial uses a set of commands that range from -8 to 8. Same as for focus. Except that - it only uses -1 and 1. Which gives it exactly one speed: earthshatteringly slow! But in my custom implementation, I can send the commands for -8 to 8 for the assignable dial - making it focus, gain, iris - whatever - much more quickly!
 
"Or that if you're actively adjusting the servo zoom on the lens that the record button doesn't work?"

That's what I was saying. This is something I actually read on the Sony community site when I was still trying to decide whether or not to purchase the kit lens early on (I did not get one). I found it extremely odd that Sony would design the lanc that way... that if you're actively zooming with servo to compose a shot and want to hit the record button (on grip) to start rolling.... you'll first have to stop zooming. Not a biggie, I know - but I'd always rather the record button always start recording immediately (or earlier if cached recording).
As for the 2 port system... maybe it's not called that. I know the HVX200 had two lanc holes - and there were several lanc controllers that allowed you to zoom / iris / record / focus (all simulataneously if memory serves). Also, some of the smaller Canon handheld camcorders had this as well.
I would certainly not complain if the assignable dial speed were increased.... whether thru fw or a third party system...
 
Thanks for the clarification. I'll do some testing on my end. Makes sense now. Yes - I think you'd need two distinct controllers to send simultaneous signals. I'm going to test whether the FS7 wifi port is genuinely separate... if so, might be possible to use it as the second channel. Perhaps.

I would certainly not complain if the assignable dial speed were increased.... whether thru fw or a third party system...

Here's the thing - the camera accepts codes -8 through 8. The hand grip only sends -1 and 1. Only two codes, period. So, on the camera firmware, you could only give it a faster speed, but no variability. It would be faster, and the slow speed would be unavailable.

It's the handgrip that would need to be recoded, or have a chip replaced, and the dial itself sucks.
 
For those who might be curious, here's the list of commands I've tested the PXW-FS7 LANC port as accepting:


Start/Stop (Record)
Menu (Toggle)
Joystick “Push"
Arrow Right
Arrow Left
Arrow Up
Arrow Down
Display (Toggle)

Assign Button 1
Assign Button 2
Assign Button 3
Assign Button 4
Assign Button 5
Assign Button 6


Focus Mag Toggle
Bring Up Shutter Menu. (Toggle again, turns on Auto Shutter)
Auto Gain (mode toggle)
Toggles through the 3 gain presets

Auto Iris On/Off (Toggle)
Push Auto Iris
Iris Close Tighter (Slow)
Iris Open Wider (Slow)
Iris - Stop Down (One Step)
Iris - Open Up (One Step)
Iris - Stop Down (Faster)
Iris - Open Up (Faster)

Auto White Balance (Mode Toggle)
Perform Auto White Balance
WB - Take Preset WB
WB - Take “A” WB
WB - Take “B” WB

Zoom Tighter (slowest)
Zoom Tighter 2
Zoom Tighter 3
Zoom Tighter 4
Zoom Tighter 5
Zoom Tighter 6
Zoom Tighter 7
Zoom Tighter (fastest)

Zoom Wider (slowest)
Zoom Wider 2
Zoom Wider 3
Zoom Wider 4
Zoom Wider 5
Zoom Wider 6
Zoom Wider 7
Zoom Wider (fastest)

Auto Focus Toggle (Works despite physical switch on camera)
Push AF (Needs to be sent as long as focus is desired)
Focus Far (Slow)
Focus Near (Slow)

Focus Farther (slowest)
Focus Farther 2
Focus Farther 3
Focus Farther 4
Focus Farther 5
Focus Farther 6
Focus Farther 7
Focus Farther (fastest)

Focus Closer (slowest)
Focus Closer 2
Focus Closer 3
Focus Closer 4
Focus Closer 5
Focus Closer 6
Focus Closer 7
Focus Closer (fastest)

Assign Wheel Roll Clockwise (slowest)
Assign Wheel Roll Clockwise 2
Assign Wheel Roll Clockwise 3
Assign Wheel Roll Clockwise 4
Assign Wheel Roll Clockwise 5
Assign Wheel Roll Clockwise 6
Assign Wheel Roll Clockwise 7
Assign Wheel Roll Clockwise (fastest)

Assign Wheel Roll CCWise (slowest)
Assign Wheel Roll CCWise 2
Assign Wheel Roll CCWise 3
Assign Wheel Roll CCWise 4
Assign Wheel Roll CCWise 5
Assign Wheel Roll CCWise 6
Assign Wheel Roll CCWise 7
Assign Wheel Roll CCWise (fastest)


As you can see, there's far more available than the stock handgrip has buttons for!
 
James nice work.

In your photo, where can one source the motor assemblies for pan / tilt? I'd really like to play around with something like that.
 
James nice work.

In your photo, where can one source the motor assemblies for pan / tilt? I'd really like to play around with something like that.

I'm using the Kessler Second Shooter kit. Kessler's controller has a remote port - it's their proprietary protocol, but I reverse engineered it.

The weak side of the Second Shooter is that Kessler doesn't offer a joystick controller - there's not a way to free control all three axes at the same time. My controller hardware fixes that.
 
Wow! Good work James! Seems like the lanc port has lots to offer. It'll be interesting to see what you can do. :happy:
 
yes I'd be interested to control via joystick, but also record movement and play it back for repeatable motion control. I have some experience programming pic micro's, but never got too involved in the motor side of things.
 
yes I'd be interested to control via joystick, but also record movement and play it back for repeatable motion control. I have some experience programming pic micro's, but never got too involved in the motor side of things.

The record for repeatable motion is definitely part of my larger project.
By remote controlling the Kessler Second Shooter control box I don't have to manage the instruction set to to the motors directly.
 
Back
Top