This simple multi-platform application allows to download media through WIFI from digital Olympus cameras.
Clone or download
Latest commit 9116cc4 Jul 28, 2018

README.md

1. Overview

Hex.pm

This application allows to wirelessly download media from Olympus cameras to your PC.

It has been successfully tested on the following cameras:

  • Olympus TG-860 (thanks Lee!)
  • Olympus TG-5 (thanks Jim!)
  • Olympus OMD E-M1 (thanks Jean Pierre!)
  • Olympus OMD E-M5 Mark II (thanks David!)
  • Olympus PEN Lite E-PL7 (thanks Dmitri!)
  • Olympus OMD E-M10 (thanks Mauricio!)
  • Olympus OMD E-M10 MK3 (thanks Alex!)

Also it should work out-of-the-box with other similar Olympus cameras.

This application has been successfully tested on the following operating systems:

  • Linux (thanks Mauricio!)
  • Windows (thanks Mauricio!)
  • Mac OS (thanks Ola!)

Contact me via mauriciojostx@gmail.com if you have any issues.

2. Get started

2.a. Install the application

You need to install Java 1.8.40 or higher as a first step.

The remaining installation procedure depends on your operating system. See below all releases:

All releases

Latest release is: v0.15.0

Install on Windows

One Java is installed, download the latest release for Windows:

Windows releases

No installation needed. Decompress the release in C:\olympus\ (you will need to create the directory).

The executables will be under the unzipped directory, in the bin subdirectory: you will use olympus-photosync.bat.

Install on Linux via native packages

For Linux both .deb and .rpm packages are provided. With Java installed, download the latest release for your own distribution:

Debian release RedHat release

You can install such packages using dpkg and rpm tools.

For instance, the .deb package can be installed in Ubuntu typing:

sudo apt-get install openjdk-8-jre
sudo dpkg -i photosync_x.x_all.deb

The tool olympus-photosync will be added to the PATH so that you can use it anywhere.

Install on MacOS / Linux as standalone

With Java installed, download the latest release:

MacOS release Linux release (standalone)

These packages are provided so that the application can be used without installation. Download the release and decompress it somewhere (for example in /home/user/opt/olympus). Then the executables will be under the unzipped directory, under the bin subdirectory.

The tool bin/olympus-photosync is the one to be used.

You may need to execute the following command to make the binary executable:

cd <uncompression-directory>
chmod +x bin/olympus-photosync

2.b. Run the application

To transfer media from your camera to your PC follow these steps:

  1. Switch on your camera and go to the Setup Menu.

    Step 0

  2. Set up the WIFI service of your camera as Private.

    This step needs to be done only once as your camera will remember this setting.

    Go to the WIFI Settings:

    Step 1

    And select Private mode:

    Step 2

    This step is very important. If not set up correctly the camera won't let this application download media files.

  3. Launch the WIFI service from your camera.

    Step 3

    You should see something like this:

    Step 4

  4. Connect your PC to the WIFI provided by the camera.

    In the example above, the WIFI network (SSID) was E-M10-P-V5PG56225. You will need to find your own camera SSID.

    Then you need to connect to that WIFI network from your PC.

    Once done, you can verify that the connection is correct opening any of the two following URLs: link1 or link2 .

    If any of them show black screen as the one below, then you're correctly connected.

    PC correctly connected to the camera

    You can close that browser and continue with the steps below.

  5. Now you are ready to execute the application.

    Execute the application. This step depends on the Operating System (Windows, Linux, etc.) you have.

    • If Windows: go to C:\olympus\<uncompression-folder>, then to bin subfolder, and double click olympus-photosync.bat
    • If Linux standalone or MacOS: go to /home/user/opt/olympus, then to bin subfolder, and execute ./olympus-photosync
    • If Debian or Red Hat: simply execute olympus-photosync

    The application will start copying files from your camera to a local directory (as configured).

    By default, the application synchronizes media one way (remote to local). If remote files are already copied locally the application will skip them. This means it is safe to run it multiple times to finish synchronization in case of network connectivity issues.

    More customized behaviours can be achieved via configuration. For such, see sections below.

2.c. Configure

The application should work out-of-the-box for the cameras listed above. However you may want to customize its execution, for instance to download photos to a non-default directory.

For such cases, the application uses several parameters that can be set either through command line arguments, or by modifying the configuration file.

Command line arguments take precedence over the configuration file.

Via command line arguments

There are several parameters to be set. To list these parameters you can execute:

photosync --help

For instance, to synchronize files and download them to local directory /home/john/output do:

photosync --output-directory /home/john/output

To synchronize files of SEP2017 do:

photosync --from 01-09-2017 --until 30-09-2017

To synchronize only AVI or ORF files:

photosync --file-patterns *.AVI,*.ORF

You can launch the GUI for Linux/MacOS (as in Windows GUI is launched automatically):

photosync --gui

In Windows such command line arguments can be passed by modifying the file bin\photosync.bat:

set _APP_ARGS=

For instance if you want to synchronize only *.AVI you can do:

set _APP_ARGS=--file-patterns *.AVI

Persist configuration (via config file)

If you want your configuration to keep being the same along multiple executions of the application, you can store it in a configuration file and reuse it.

You can generate a template configuration file using:

photosync --init-config

Then you can customize as you wish. After that you can launch the application using such configuration file (and its settings). See the output of the command above for more information.

2.d. Use the Graphical User Interface (new!)

This is a recently added feature, so be cool! I am very open to feedback.

GUI

In Linux/MacOS launch with:

photosync --gui

In Windows the GUI is launched automatically.

Feel free to give your opinion or create issues here!

3. Develop

Build Status Coverage Status

The main repository is in GitHub.

This application is written in Scala and uses SBT.

3.a. Get started

Find below some useful commands for basic actions.

sbt compile  # To compile the application
sbt test     # To test it
sbt run      # To launch it

If building with openjdk, you will need to install the Linux package openjfx. Also xvfb tool needs to be started prior to tests so that the GUI tests can launch even without display (if running from a display-less CI server like Jenkins).

You can also use the provided docker image to use Jenkinsfile.

3.b. Build releases

The project uses sbt-native-packager so you can build packages for many operating systems / distributions.

sbt universal:packageBin         # To build the multi-platform .zip package
sbt universal:packageZipTarball  # To build the multi-platform tarball
sbt debian:packageBin            # To build a Debian package (.deb)
sbt rpm:packageBin               # To build an RPM package (.rpm) (must have rpm tool installed if in Debian OS)
sbt windows:packageBin           # To build a Windows installer (from Windows)
sbt docker:publishLocal          # To build a docker image

You cal also build your own docker image to launch the project in different architectures, such as ARM. See here for more details.

3.c. Contribute

This project is open source so you can help make it better!

4. Citations

This project was mentioned in different sites: