Introduction: 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:

Download the client that works best for your system!

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

Picture of 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:

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!



Posei (author)2017-08-08

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)


EugeneP33 (author)2017-05-27

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

virtualhere (author)EugeneP332017-05-29

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)

Limgru (author)2017-05-28

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

virtualhere (author)Limgru2017-05-28

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

kevdsn (author)2017-05-02

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

virtualhere (author)kevdsn2017-05-18

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

MattS380 (author)virtualhere2017-05-20

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

virtualhere (author)MattS3802017-05-20

Sure, download the firmware again from (its the same version number just rebuilt) then install

MattS380 (author)virtualhere2017-05-22

Awesome! Thanks a lot.

MattS380 (author)MattS3802017-05-24

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.

virtualhere (author)MattS3802017-05-24

ssh to the router then type

ps | grep vh

is anything returned

MattS380 (author)virtualhere2017-05-24

It returns: 1029 root 1184 S grep vh

virtualhere (author)MattS3802017-05-24

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

MattS380 (author)virtualhere2017-05-25

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:


virtualhere (author)MattS3802017-05-25

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"

MattS380 (author)virtualhere2017-05-26

Absolutely spot on! Thanks for your help.

Dtalkingdrum (author)2017-04-04

Thank you for this tutorial.

I tried to use two TP-Link MR3040s with each connected to a dedicated PC so to do a multiple camera tethered shoot.

The modems have the same wifi name and password resulting in the laptops occasionally connecting to the wrong modem/camera.

Can I rename the TP-Link MR3040 from "wifi photo" to a unique name?

Can I also change the password?

I am a novice in computing. I installed putty but dont know where to start. I would appreciate any leads.


MattS380 (author)Dtalkingdrum2017-04-21

It's bit daunting if you're not used to command line stuff, but follow what I've put below and you should be ok.

Download and install PuTTY to get into it using an ethernet cable. Use the IP address that the router has when you're connected to it wirelessly. In my case it was So open PuTTY and enter that IP address, don't worry about anything else, leave it all as is. You might get a message about some certificate or something, but click yes and it'll load into busybox on the router.

I used root and password to log in, but might work left blank.

Navigate to /usr/bin/ using 'cd /usr/bin/'

Type 'vi wirelessAP' to edit the wireless config file.

Change SSID and password fields using arrow keys and typing your desired settings.

Once you're done, press escape and type ':w' to save and ':q!' to quit. press up so 'vi wirelessAP' comes up again and press return to make sure the edit worked. If the changes stayed in place, reboot the router, you're done.

Dtalkingdrum (author)MattS3802017-05-19

A ton of thanks to you.

virtualhere (author)2017-05-17

This is Michael from virtualhere, I've updated the TL-MR3040 firmware available here Its contains the latest kernel build from lede-project and the latest virtualhere server and includes an easy to use configuration screen and will be maintained and updated as required. Its free but has some limitations, if you find it useful you can purchase to remove these limitations

NegovanV (author)2017-03-12

Hey man :)

I have read your tutorial, and it is awesome! Thank you very much!!! I have flashed openwrt on my MR3040 (i have v2.1), but I need that wifi usb hub feature from your tutorial, and all your download links are dead :'( can you please send me your custom firmware on mail, or reupload files on dropbox (or something)?

Many thanks in advance


sharkyenergy (author)NegovanV2017-03-14

Hello, updated the links in this tutorial.. best regards

Thanks a ton. You're a lifesaver

NegovanV (author)sharkyenergy2017-03-14

Thanks man!!!

You are the best!!!

NegovanV (author)2017-03-14

Is there any chance to update the virtualhere server?

NegovanV made it! (author)2017-03-14

Every is working just fine!!! Macbook pro is recognising my 5d3 like regular usb device. AWESOME!!! Thank you man!!!

MattS380 (author)2017-01-13


I've got the DD-WRT on mine for dslrdashboard, but this would be massively more useful!

running into bother though, if I transfer the new firmware (with the
mid firmware transfered and confirmed working in between), I'm not
able to get into the router setup page via wifi or ethernet. PC connects
to wifi, ipconfig gives an address of for it but I can't
get into it. doesn't work either. Any ideas?

Fortunately, 3g/recovery switch position is working so I can roll back to the dslrcontroller firmware and get back into it. Odd.

Padaung (author)2015-12-03

HI, this is amazing! I've got it to work over my home wi-fi. I can now take photos all around the house and when I return to my computer they are already saved in a folder. I now plan to use this for photography work too.

One question. Is it possible to change the default IP address of the TP-Link MR3040 from to something else? If so, how?

CharlesE46 (author)Padaung2016-09-11

What did you do to get yours on your network? I have issues as described by others. Please let me know.

Padaung (author)CharlesE462016-09-12

Hi, I'm afraid I can't exactly remember how I did it. From memory, I followed the instructions and had to make a manual change to my router's IP address too.

I have to admit I've stopped using this wifi connection method now as I found it too unreliable and a pain to reconnect each time the signal was dropped.

Connecting to a new network when out and about was too fiddly and slow (which was one of the reasons I gave this a go), so this contributed towards no longer using this method.

Finally, I found carrying the router around whilst connected to my camera a pain too - not the extra weight, that was fine, but the bulk and cable coming out of the side kept getting in the way when hand holding the camera.

Good luck!

Padaung (author)Padaung2015-12-03

P.S. Thank you for the instructions :)

CharlesE46 (author)2016-09-11

I want to use more than one USB device, how do I purchase a license to be able to do that given your mods. I have the MR3040 working with one USB share but need two. Also having issues getting on my wireless network. Tried your suggestions with htmod however nothing happen there.

cgardner15 (author)2016-08-16

I went through the steps and had it working until I tried the part -Updating the Network settings and after restarting the router only has the power light on no other lights come on. Is there a way to recover this or is it bricked?

AhmadShokry made it! (author)2016-04-25

the first option works like a charm :D

but I'm not able to connect it to my home's network ! could you please give us more details, like what is the extension of the settings file should be? .txt? i tried but it did not work, the LED did not blink..
My home's network name is two words, should I put _ instead of the space ?!

your help is appreciated

Posei (author)2016-01-17

Having a problem getting it to connect to my existing wifi network in WISP mode. Anyone have luck with that yet? Any tips?

ZoltiT (author)Posei2016-03-06

I also have problems connecting it to another TP-Link router... I tried to receive help on the Official OpenWRT Forums without success... On the other hand I really love it how it works directly, so I am not giving up yet! I will write a direct message to the author of this post, maybe he will be able to help us!

AndreasE6 (author)2015-12-02


will this Version also work on a TP-Link TL-MR3020?

Best Regards


tristan-k (author)2015-05-20

Thanks for the tutorial. I tried to use your firmware with WISP-Mode but the MR-3040 doesnt connect to my WiFi. I tried others WiFis and the MR-3040 didnt connect to any of them. Therefore it must be caused by your firmware. I changed the WLAN-Settings through ssh ($ vi /usr/bin/wirelessJN) accordingly to your instructions and rebooted twice. I also tried your usb-storage approach with the 3G/4G position.

My wirelessJN looks like this:

config wifi-device 'radio0'
option type 'mac80211'
option hwmode '11g'
option path 'platform/ar933x_wmac'
option htmode 'HT40-'
option txpower '30'
option country 'US'
option disabled '0'
option channel '1'

config wifi-iface
option network 'wwan'
option ssid 'o2-WLAN85'
option encryption 'psk2'
option device 'radio0'
option mode 'sta'
option key 'XXXXXXXXXXXX'


Can you go into detail on how you build the image, so I can do it by myself. I'm familiar with the openwrt buildroot process. I also followed you thread at but you didnt post anything there.

sharkyenergy (author)tristan-k2015-09-26

Hello! Sorry for the late reply! Try to play eith the htmode setting. Let me know if that makes a difference. I did not change anything from the original openwrt. I only added my scripts that replace the files taking them from the usb stick. Its the same as editing it manually.


I can access camera, import photos, but tethering is not working. Any Ideas?
I use canon 7D.
Thank in advance for help:)

JuanB6 (author)2015-06-12

Thanks for sharing this. It is great.

I would like to have Internet access at the same time that the camera is connected. I am using it as part of a social media photo booth system that sends the picture over internet at the same time as they are being downloaded.'

When I set the router under WISP mode I don't see the "wifi photo" SSID. What is the SSID I should connect the PC to?

Thank you!

sharkyenergy (author)JuanB62015-09-26

Hello! Sorry for the late reply! When the system is connected to your home router you have to connect to the same router. So they will be part of the same network..

MiguelE9 (author)2015-09-23

So I bought a second small tp-link adapter for internet connection but Windows 8.1 attempts to use internet through wifiphoto and doesn't allow me to connect otherwise. Any thoughts? Windows 8.1 does identifies both of them.

sharkyenergy (author)MiguelE92015-09-26

There is a way to define what interface to use to access internet but i cannot remeber where to find it.. Try having a look in the IE settings.. :)

Seamusd3 (author)2015-09-26

I just read this after reading Version 2. I'm curious - why is the firmware download for the router from your website instead of the OpenWRT website? Have you made changes to their firmware?

sharkyenergy (author)Seamusd32015-09-26

Yes i have added the needed scripts and programs for this to work... :)

sharkyenergy (author)2015-04-10


If just the wifi is gone, then you should be able to fix it with step 5 of this tutorial..

else, if there is more messed up you can restore it by following step 7 on version 2 of this tutorial! (V2 can be found in the intro text)

let me know if it helps! :)



ksnater (author)2015-02-17

This works great. Installed the AP mode according to your V2 write up but then re-imaged and did the new version V3. Cool. Great write up!
Only one question; is there a way to change the default password?

sharkyenergy (author)ksnater2015-02-18

thanks! :) Yes you can change the default password by going either via putty or via winsftp into the "/usr/bin" folder and editing the file called "wirelessAP". after 2 reboots it should work with the new password! :)

About This Instructable




More by sharkyenergy:Wireless Tethered Shooting With Any DSLR Camera V3!Wireless tethered shooting with any DSLR camera V2!Wireless tethered shooting with any DSLR camera
Add instructable to: