Wireless Tethered Shooting With Any DSLR Camera V3!




--- this is a upgraded and better version of my first tutorial called "wireless tethered shooting with any DSLR camera V2. This tutorial is NOT compatible with the version 1.0 of the TP-Link MR-3040! You need version 2.0 or above to follow this tutorial. If you have version 1.0 then you should follow the version 2 of this tutorial that can be found HERE ---

Newer DSLR Cameras allow you to shoot tethered wirelessly over your wifi lan. Unfortunately most cameras don't support this tecnology. BUT! There is a solution! You can make use of cheap credit card sized, wifi routers to build your own system for less than 50$! First of all, a special thanks goes to Michael, the programmer of "VirtualHere". He made special changes to his software to make this project possible. Ok guys, here it comes.. its just to have my butt backed up.. :) Disclaimer: While following precisely every step should be quite easy and nothing should go wrong, there still is the possibility that something doesnt work out... (for example, router battery dies on you while you are flashing the firmware). In any case, the router is recoverable via advanced techniques that will not be discussed here. If those techniques are too complicated for you then you most likely bricked and lost your router. In any case I am not responsible for any kind of damage caused to things or persons by this project.

Step 1: Description, What You Need...

This project aims to give wireless compatibility to any camera. The project is easy to follow and requires about 10 minutes to complete. Just pay attentio to the version of your hardware (version 1.0 or 2.x) as only 2.x is compatible! This new version of this project allows you to use the 3-position switch on the side of the router to decide if you want your system set up as a Access point, if you want it to join a network or if you want to update the entwork settings and flash a new firmware via USB stick. It may sound complicated but its really easy and everything will be explained in this tutorial!

Here is the list of what you need:

- ANY DSLR Camera (or normal camera) that supports tethered shooting via USB cable (basically every DSLR camera around will do it)

- TP-Link MR3040 (MUST be version 2.0 or above is better) costs around 50$

- lan cable for initial setup (one is included in the MR3040)

- A PC that will be your "client" for showing the pictures

Step 2: Setting Up the PC

There is not much to do on the PC!

All you have to do is download the VirtualHere client from this page: https://www.virtualhere.com/usb_client_software

Download the client that works best for your system!

Step 3: Changing From the Original Firmware to the OpenWRT Firmware

When you get your router you have to replace the firmware with OpenWRT. If you already have a Openwrt build on your router from previous projects then you can skip to the end of this step.

First we need to flash it with a special firmware that is sort of a intermediate firmware. It is used to bypass the TP-Link firmware check. So all we have to do is download the file and flash it! here we go:


Notice the ending "factory.bin". This means that this image is meant to be flashed as long as you still are on the original firmware. Now, after downloading disable your wifi adapter to avoid IP conflicts, and connect your TP-Link MR3040 router to your PC via the lan cable that came with it. Open the browser and go to the page and login using the default username and password (admin/admin). Now go to the firmware update page (see image), hit "browse" and select the firmware you just downloaded and flash it!

after about a minute the flashing process is finished and you can access your router at the address (note that the IP address changed!)

Step 4: Installing the Custom Firmware

First of all, put the 3-pos switch to the "AP" position.

Next, download the custom firmware from here:


Now in the top menu of your router's interface click on "system" and go to the backup and restore page. From there you can flash the new firmware.

ATTENTION: you must uncheck the "preserve settings" check, else the flashing process will not overwrite the system settings with the new ones stored in the image. The new image does not have a user interface so once flashed it is not so easy to restore. Currently your wifi acts as an access point called "wifi photo" and the password to access it is "password". Your ethernet port has a fixed IP address: and if for any reason the wifi does not work, then you can access your router via ethernet cable by assigning to your network card a fixed ip address that matches the router's one. Ok,at this point you can reenable your wireless adapter on your pc! If you want to use the router as an access point then you are good to go, but i recomend to finish the reading anyway to understand what the other 2 positions on the switch do.

Step 5: The 3-Position Switch...

By now you have used the 3 position switch already. You have put it to the AP position.

AP position

This position makes the router work in Access point mode. Basically the router generates its own network, and you can connect to it with your laptop or pc as when you join a normal wifi network. As stated in the previous step the wifi network is called "wifi photo" and the password to access it is "password". If you change to AP from WISP it will require two reboots in order to take effect. just turn it on, wait 2 minutes, turn it off, and turn it on again. This is only if you change from WISP to AP.

WISP position

This position allows the router to join an existing network. before we can do so we need to set up the network credentials and name to be able to join the network. This will be described next and makes use of the third and last position. If you change to WISP from AP it will require two reboots in order to take effect. just turn it on, wait 2 minutes, turn it off, and turn it on again. This is only if you change from AP to WISP.

3G/4G position

This position is used to update the network settings and to flash a new firmware. Lets look into the two options in detail:

- Updating the network settings

Download this file and put it as it is onto a USB stick: http://www.igormasin.it/wirelessJN

Open the file with notepad (ATTENTION, do not use wordpad or word or any other rich text editor! use the simple notpad or equivalent!) and edit these entries to match your wifi settings:


option encryption 'YOUR_WIFI_ENCRYPTION_FOR_EXAMPLE_psk2'


Possible values for the "encryption" property are:

wep for WEP,

psk for WPA-PSK,

psk2 for WPA2-PSK,

Now save the file and turn OFF your router. Connect the USB stick to the router and turn the router on. Wait until the WIFI led blinks at 1 second intervals and unplug the usb. At this point the led stops flashing. Put the 3 Pos. switch in the AP or WISP position, turn the router off and back on. Wait two minutes, turn it off again and back on and your router will now use the new settings you have entered in the file.

- Flashing a new firmware

This firmware makes flashing a new software very easy. Same as above you must download the firmware you want to flash. Do NOT use this to flash the original firmware as it exceeds maximum size and will not work! Any other OpenWRT firmware will work ok. Once downloaded, put it on the USB stick and rename it to "up.bin". Turn the router OFF and connect the usb stick to the router. Turn the router on and wait for the "LAN" led to blink at 1 second intervals. at this point you must unplug the usbstick. The Lan led stops blinking and the WIFI led starts blinking. At this point you must put the 3 Position switch to the AP position. Once done the router starts writing the new firmware and will reboot on its own. DO NOT TURN THE ROUTER OFF at this point. After about 2 minutes the router will have rebooted and will be running in AP mode. The Flashing overwrites every network settings you previously wrote onto the router so you will have to upload them again. If you have both files (wirelessJN and up.bin) on your USB stick the sistem will only take wirelessJN into account.

Step 6: How to Use It

Its really easy to use! Just turn the router on, hook up your camera and start the virtualhere client on your pc!

Virtualhere will automatically detect the router within seconds. if it doesnt, then you need to add the IP address manually! Right click in virtual here and hit "add address". If you are in AP mode then the address to add is "", if you are in Join Network mode then you must look for the proper IP address in your main router's connected devices list.

When your router and camera get detected, right click on the device and hit "use device". the first time it will install the drivers.

Now it is as if your camera was connected directly to your PC and you can use it with your favorite software!


3 People Made This Project!


  • Beauty Tips Contest

    Beauty Tips Contest
  • Sensors Contest

    Sensors Contest
  • Growing Beyond Earth Maker Contest

    Growing Beyond Earth Maker Contest

51 Discussions


Question 5 months ago

So I got this working. Questions that I need some answer
1. Can I change the ssid and password or at least password via putty or just follow the 3G/4G position instructions?
2. Is there a way to increase the fps of the camera when viewing it on pc. I plan to use the mini hdmi port of a canon 60D then pass it thru an hdmi to usb capture card device dongle then connect it to the router, will it make any difference I hope so? thanks


11 months ago

Hi Guys,

i have questions How to control multi camera using virtualhere client and TPLink DSLR MR3040 only to one PC or laptop, if i have 3 camera , whether i need 3 TPLink Mr3040 as well or not, please advise. Thank You.


1 year ago

I got this working pretty well using the tutorial, connected to canon cameras and usb thumb drives fine running windows 10 (using my boot camp partition), however I use OS X (10.11.6) as my primary shooting platform, and ironically EOS utility recognizes my camera (5DS R) totally fine and works great in windows 10, but running os x it will read and write to flash drives, but when I plug my camera in it shows up as a device under the hub in VirtualHere, but Eos Utility will not recognize it no matter what I do (also tried my 5D Mark II, and older Eos Utility .. still not recognizing!) ... any help to get this working on os x?


1 year ago

My question is how do I revert back to a different OpenWRT now? If I
flash using the 3g/4g mode, will it automatically erase the VirtualHere
stuff I did to it following your guide?

Basically I'm looking to flash qdslrdashboard or dslrcontroller and use
it that way. Unless one of those will play nicely with this VirtualHere
firmware in your guide?

(I followed your guide awhile back and forgot that I did it, took me awhile to
figure out what happened to my MR3040 and why I couldn't access the gui. luckily I found your guide again and remembered)



2 years ago

Please help. Your software does not find my 3040. FW was installed few
months ago from qDSLRDashboard link. qDSLR works but very unreliably.

1 reply

Reply 2 years ago

Issues were (for others reading),

Make sure your firewall software does not block port 7575 in/out and your anti-malware does not prevent basic windows messages boxes from appearing

Make sure you run the client as a normal GUI not as a service when connect to the free VirtualHere USB Server running on the tp-link.

If you change the network settings regularly e.g change the wifi password,name etc , be sure to "Forget" the network in the windows network manager otherwise duplicates of the network may appear in the windows wifi dialog (seems like a bug in windows network manager)


2 years ago

i have gl i net 6416a, ar150
Can u bulid a images for me?
I don't know linux..

1 reply

Reply 2 years ago

I dont have that router so i cannot build the firmware and test it


2 years ago

As it now appears the MR3040 is obsolete in the UK other than a few sellers asking silly money for remaining stock, does anyone know if this firmware will work as it is on the MR3020 or any other portable router on the market. I'm not worried about a built in battery as we will be using external battery power supplies. If not is it possible to add the additional scripts from this firmware to OpenWRT, if so does anyone know what extra scripts have been added and where to get them.

Many thanks

11 replies

Reply 2 years ago

This is Michael from virtualhere, i created firmware for the mr3020 which can be found here https://www.virtualhere.com/hardware. More devices will be added soon (e.g pi3)


Reply 2 years ago

Any chance there's a way to change the channel of the device once flashed?


Reply 2 years ago

Sure, download the firmware again from https://www.virtualhere.com/hardware (its the same version number just rebuilt) then install


Reply 2 years ago

Sorry to be a pain. I've flashed the cloudhub-tl-mr3020-v1-initial.bin firmware onto a MR3020 and it now appears as a Cloudhub wifi access point, but the VirtualHere Client isn't identifying it as a USB hub. I've tried manually adding the IP under 'specify hubs' but no change. Am I right thinking there's still no user interface in the firmware?
I can TTY into busybox on it and it all seems in order, but it just won't connect in the client.
It doesn't seem to auto load firmware off a USB in the '3g' position like the MR3040 does so I'm a bit stuck at the minute.


Reply 2 years ago

ssh to the router then type

ps | grep vh

is anything returned


Reply 2 years ago

ok i think i know the problem and have a fix, can you send me the output of

cat /proc/cpuinfo


cat /sys/class/net/eth0/address


Reply 2 years ago

Thanks for doing this!

First command gives this info:

system type : Atheros AR9330 rev 1
machine : TP-LINK TL-MR3020
processor : 0
cpu model : MIPS 24Kc V7.4
BogoMIPS : 265.42
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa : mips1 mips2 mips32r1 mips32r2
ASEs implemented : mips16
shadow register sets : 1
kscratch registers : 0
package : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available

And second returns this:



Reply 2 years ago

ok, i fixed it, use winscp to download the "update" firmware to the /tmp directory on the router. Then ssh to the router and type "sysupgrade /tmp/cloudhub-tl-mr3020-v1-upgrade.bin"