Coder Social home page Coder Social logo

szigyi / expose-to-the-light Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 0.0 752 KB

Core app to run and monitor timelapses. It can run on a raspberry pi which is connected to a camera.

Scala 34.23% Shell 5.12% JavaScript 7.36% HTML 10.59% CSS 0.12% Java 42.58%
raspberry-pi gphoto2 timelapse timelapse-photography

expose-to-the-light's Introduction

expose-to-the-light

Donate

Scala CI

Tasks & Issues

  • Sony A7S can only take one picture and then fails with gp_camera_capture failed with GP_ERROR_IO #-7: I/O problem
  • Update Readme with Sony A7S specific setup: Use PC Remote option to let the computer connect to the camera

Install application

Download installer

curl -L -o install.sh https://www.dropbox.com/s/z5f5ch8997c1xmn/install.sh?dl=1

Install

  • chmod u+x install.sh
  • ./install.sh

The install.sh script downloads the latest jar and script files and then setup them to your PATH so you can use it later as any other unix command.

Runtime dependencies if you are not using the installer

Installer should install these dependencies for you.

On Mac Os

On Raspberry Pi (unix)

  • sudo apt-get install openjdk-11-jdk
  • sudo apt install pkg-config
  • sudo apt install gphoto2
  • sudo apt install gnuplot

Run the app

ettl INFO /home/pi/dev/expose-to-the-light/logs/ --imagesBasePath /home/pi/dev/expose-to-the-light/captured-images/ --setSettings --numberOfCaptures 5 --intervalSeconds 5 --rawFileExtension CR2

First argument is the level of the logging ie: INFO, DEBUG, WARN, ERROR, TRACE Second argument is the location of the logs file.

You can use dummy camera to run a test and check your settings. Just use --dummyCamera as programme argument.

Distribute the app

Assembly jar

https://github.com/sbt/sbt-assembly

sbt assebmly

Publish artifact to github

https://github.com/djspiewak/sbt-github-packages

sbt publisher/publish

Publish artifact to Dropbox

Can generate new token from https://www.dropbox.com/developers/apps

  • ./deploy.sh $dropbox_bearer_token $buildNumber
  • ./deploy.sh abcd 4

Connect the camera to the computer

  • Make sure the camera is in PTP mode.

For my Canon 70D I always have to 'Disable' the wifi connection otherwise the gphoto2 does not detect it.

  • Connect the MacOs/raspberry pi and the camera by USB cable (no other type of cable will work)
  • Run the gphoto2 --auto-detect to list what the gphoto2 lib sees

$ gphoto2 --auto-detect Model Port

Canon EOS 70D usb:020,005

  • Final test that everything is okey gphoto2 --summary

Errors at the start

gphoto2.GPhoto2Error: [-105] Unknown model

Chance is your camera is not connected to the computer

  • Is it turned on?
  • Is the USB cable connected?
  • Is it in PTP mode?

gphoto2.GPhoto2Error: [-53] Could not claim the USB device

Kill the running gphoto2 processes!

ps aux | grep gphoto

pi         745  0.0  0.7  43780  7252 ?        Ssl  14:14   0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
pi        1439  0.1  1.0 116320 10172 ?        Sl   14:26   0:00 /usr/lib/gvfs/gvfsd-gphoto2 --spawner :1.4 /org/gtk/gvfs/exec_spaw/1
pi        1461  0.0  0.0   7348   572 pts/0    S+   14:28   0:00 grep --color=auto gphoto
  • kill -9 745
  • kill -9 1439

Useful docs

Remote monitoring

via SSH

The app is running on my raspberry pi which is connected to a powerbank and to the camera.

I trigger the ettl app from a machine remotely. (In order to SSH into the raspberry pi in the middle of nowhere you need a phone)

Turn on tethering on the phone and connect the raspberry pi and your computer via wifi. (raspberry pi needs to be setup to connect when you have screen etc.)

Then just ssh into the raspberry pi from the computer ssh -o ConnectTimeout=5 [email protected]

via Web interface

Use the ettl-web application and use its UI to control and monitor the ettl app.

Install on raspberry pi

  • Installing raspbian on SD card
  • Install hotspot on the pi - so you can use it anywhere without wifi
    • Autohotspot
    • I have to modify the nameserver dns lookup list after this
      • open file sudo nano /etc/resolv.conf and add
        • nameserver 8.8.8.8
        • nameserver 8.8.4.4
  • Install ettl app
    • Use the link from the beginning of this README file to download the installer

expose-to-the-light's People

Contributors

szigyi avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.