In my younger days, cameras were cameras – not digital devices. In those days, connectivity meant keeping exposed films out of light, avoiding X-rays of airport scanners, and choosing the best film development kiosk. And all this did not require any digital intelligence, but rather human intelligence. Older folks can even recall choosing the right exposure, playing around with aperture and other, what some now consider cumbersome, duties for a non-professional guy.
Nowadays, in this wonderful, digital world, things seem to be easy. Sometimes I even believe so when my two-year-old granddaughter tries to shoot a photograph. However, this easiness becomes a difficulty when it comes to camera connectivity.
Well, you can always take the memory card out of your cam and plug it into your PC. Can it be any easier? … Not true. What about POV (Point of View) cams? What about waterproof cams? What about other action cams? Withdrawing the card may not be that safe for such a device, and it requires an effort, drying out, etc. Not to mention that neither my small and handy PC, nor my tablet has an SD slot at all. Furthermore, the problem becomes even more complicated with industrial cams and home security cams, especially with storage-less ones.
Here connectivity comes to the rescue, with USB being the easiest method indeed. All you need here is a PC and a USB cable with the right connectors. Wait a minute… did you forget the cable when packing for Italy? And, after a full day somewhere in Perugia, didn’t you regret not taking your PC with you? Well, the USB connection does not seem to be a panacea either.
Cloud, cloud… clouds everywhere. It’s so cloudy nowadays! DropBox, AWS, Cloud, whatever cloud… All you need is subscribe and go syncing. Then, the cloud will take care of the rest. Clouds grant high security through multi-factor authentication and data encryption. Why can’t I connect my favorite cam to, say, iCloud? Unfortunately, I can’t. Here the diversity of cloudware works against connectivity standards, as each cloud uses yet another set of protocols, most of them being proprietary. As a result, each cloud requires yet another client-side piece of software to be installed on your PC.
You may have tens of different cloud applications on your PC, but not on your camera. For instance, my favorite camera can only connect to its vendor’s cloud. And this cloud requires me to disclose my name, email address and even my phone number for two-way authentication. Even if the vendor is a well-known and trusted brand name, I still have an unpleasant feeling, knowing that my personality is held in yet another database that can be hacked at any time.
That’s why I prefer to back my photographs on my own home server. Can I do that? This is not an easy task with the majority of the cameras. The good news is that each little-bit-advanced camera supports Picture Transfer Protocol (PTP). Fine! Microsoft Windows shapes, starting from XP, have a PTP driver, including Macs and some Linux shapes. Even better, however, not good enough. Having a PTP driver does not mean having a PTP server or a PTP client. You need to run a PTP-aware application to get rid of the PTP connectivity. One can find plenty of PTP-aware software on the market, the majority of them being freeware. Most of them are provided by cam vendors, and of course, can only support their own cams. To enjoy PTP connectivity of my cam, I had to download the vendor’s software, register in (again!), providing my email and phone number, and only then it became pretty handy. On another PC, though I need to cover the same steps again.
The major drawback of PTP however is security. Recent research made by the giant security solutions provider Check Point has exposed major security vulnerability with no much effort. This research simulated attackers hacking the camera and infect it with malware, only to release the beloved camera and picture files in exchange for a ransom payment. Although PTP is considered to be a standard and is embedded in different camera brands, it is still an unauthenticated, risky protocol regardless of whether it is utilized over USB or WiFi.
Is there a connectivity method free from those risks?
Yes, there is one network protocol called SMB. Hereby SMB I mean Server Message Block, neither Small/Medium Business nor Super Mario Brothers (anybody recalls?). Only a few people in the world know about this humble protocol, yet billions are using it implicitly. Yes, when you access your wife’s PC from your notebook to view your kid’s pictures, what runs over the wire in your home network is SMB. The SMB protocol is widely available – actually, it is available virtually everywhere. Any Windows shape, any Mac, most of Linux shapes – all natively support SMB without any downloads, installations or additional steps required. Also, Apple has recently announced an SMB Client support in iOS. On Android smartphones, it is only available through commercial add-ons, at least for now. Being a standard means that you can connect any computer the same way regardless of what is or is not installed on it. From the SMB point of view, any device can play a role of either a Client or a Server. A client must authenticate on the server prior to any data transfer. Together with encryption, message signing and other comprehensive mechanisms, SMB grants very high, if not perfect, security.
Sounds promising, right? So, can SMB be used in cams? The answer is yes, and even more – SMB already runs in cams. As far as I know, one of the major camera vendors is already using SMB for backups. This option grants really seamless connectivity and this backup is an SMB Client use case. To my best knowledge, there is no SMB Server inside a cam, at least not for now.
Doesn’t this SMB story sound too pink? Yes, there are downsides too. Being a standard is not only an advantage but also a certain disadvantage since SMB is too generic for the dedicated in-cam usage. I tried to compare cam-dedicated PTP with generic SMB. Here are the results:
|Camera control||Shooting, updating, etc||Natively – none|
|Transfer speed||Low to medium||High|
The comparison above looks pretty disappointing, as none of the two methods seems to provide a complete solution. SMB lacks some implicit functionality, while PTP compromises on security. Nowadays, when a hacker attack is as common as rain in the State of Washington, the security issue is my first suspicion concerning PTP. Contrary to PTP, SMB is said to be protected against such attacks.
Well, maybe things are not that bad. First, cam vendors can complement PTP with SMB, so that a user can choose between the two in each particular case by compromising either on security or on controls. At the same time, we can think about some extensions to the existing protocols. As I have no idea of how to add authentication and encryption to PTP, let’s try then to improve the SMB situation. When writing “Natively – none” in the table above, I meant that SMB commands do not contain explicit camera controls. Can this be added somehow? We are looking for an easy-to-use solution indeed.
A well-known solution would be to use the RPC (Remote Procedure Call) mechanism on top of SMB. Various RPC pipes (a pipe means here a set of controls) are using SMB as a transport, implementing numerous controls for a wide variety of purposes. Easy? Not at all, since to utilize RPC, one needs to develop respective server-side software. We will leave RPC for now and will think about something else.
One of my colleagues suggested an easy and handy method of SMB-only controls. Let’s imagine a “smart” file on the server-side. When you create such a file, the server knows it has to perform a certain action. To make this possible, the camera must serve as an SMB server. For instance, to take a picture, we may create a new file in a certain folder inside the cam storage. The SMB server of the cam knows to shoot the shutter on this file creation and to place the captured image inside this new file, which we could already view from the client machine. Another nice opportunity is watching the viewfinder through SMB. This is a bit more tricky, but possible due to so-called Change Notify capability of SMB. This list can be extended to provide complete controls.
As one can see, SMB connectivity seems to be very promising when it comes to the camera world. However, to make this happen, camera vendors need to apply some efforts in developing complex SMB connectivity, where SMB Backup is just the very first step. The real challenge here will be creating industry standards to avoid proprietary development again. Can we do that?
Some people may ask what all this ado is about? Why is the matter of cams connectivity so crucial? We have our mobiles, which can photograph about everything. Forget about cams!” May I disagree? Well, you can skip home cams, forget about industrial cams, ignore pro cams and action cams. I am far from being proficient in photography, but I like this good feeling of a handy piece of plastic in hand, and I like the powerful flash and many other fancy features. Finally, I enjoy this 50x (30x, 40x) zoom, which allowed me to take these pictures of the lunar eclipse. Can you shoot this with your smartphone?