![]() |
|
|
|
|
|
||||||||||
|
| User list | You are not logged in.
Okay, here comes the plugin.
Select the code then copy & paste it into your text editor.
Save it as gphotoBracketPlugins.py
Put it at .config/papywizard2/plugins
(Re)start papywizard and check if 'gphoto Bracket' plugin is listed (Hardware menu / choose Plugins / Shutter)
# -*- coding: utf-8 -*-
""" Panohead remote control.
License
=======
- B{Papywizard} (U{http://www.papywizard.org}) is Copyright:
- (C) 2007-2010 Frédéric Mantegazza
This software is governed by the B{CeCILL} license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
U{http://www.cecill.info}.
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
Module purpose
==============
Plugins
Implements
==========
- GphotoBracketShutter
- GphotoBracketShutterController
@author: Jeongyun Lee
@author: Frédéric Mantegazza
@copyright: (C) 2010 Jeongyun Lee
@copyright: (C) 2007-2010 Frédéric Mantegazza
@license: CeCILL
"""
__revision__ = ""
import time
import subprocess
from PyQt4 import QtCore, QtGui
from papywizard.common.loggingServices import Logger
from papywizard.plugins.pluginsManager import PluginsManager
from papywizard.plugins.abstractShutterPlugin import AbstractShutterPlugin
from papywizard.plugins.shutterPluginController import ShutterPluginController
from papywizard.view.pluginFields import ComboBoxField, LineEditField, SpinBoxField, DoubleSpinBoxField, \
CheckBoxField, SliderField, FileSelectorField
NAME = "Gphoto Bracket"
DEFAULT_MIRROR_LOCKUP = False
DEFAULT_MIRROR_LOCKUP_COMMAND = "gphoto2 --capture-image"
DEFAULT_SHOOT_COMMAND = "gphoto2 --capture-image"
DEFAULT_BRACKETING_NBPICTS = 1
DEFAULT_BRACKETING_STEP = 1.
LABEL_SHOOT_COMMAND = QtGui.QApplication.translate("gphotoBracketPlugins", "Shoot command")
LABEL_NB_PICTS = QtGui.QApplication.translate("gphotoBracketPlugins", "Bracketing # picts")
LABEL_EV_STEP = QtGui.QApplication.translate("gphotoBracketPlugins", "EV step")
LABEL_EV_LIST = QtGui.QApplication.translate("gphotoBracketPlugins", "Bracketing sequence")
LABEL_ADVANCED = QtGui.QApplication.translate("gphotoBracketPlugins", "Advanced")
LABEL_ADVANCED_TAB = QtGui.QApplication.translate("gphotoBracketPlugins", 'Advanced')
LABEL_PLUS_NB_PICTS = QtGui.QApplication.translate("gphotoBracketPlugins", "Plus(+) bracketing # picts")
LABEL_PLUS_STEP = QtGui.QApplication.translate("gphotoBracketPlugins", "+ step")
LABEL_MINUS_NB_PICTS = QtGui.QApplication.translate("gphotoBracketPlugins", "Minus(-) bracketing # picts")
LABEL_MINUS_STEP = QtGui.QApplication.translate("gphotoBracketPlugins", "- step")
class GphotoBracketShutter(AbstractShutterPlugin):
"""
"""
def _init(self):
pass
def _getTimeValue(self):
return -1
def _getMirrorLockup(self):
return self._config['MIRROR_LOCKUP']
def _getBracketingNbPicts(self):
return self._config['BRACKETING_NB_PICTS']
def _defineConfig(self):
Logger().trace("GphotoBracketShutter._defineConfig()")
#AbstractShutterPlugin._defineConfig(self)
self._addConfigKey('_mirrorLockup', 'MIRROR_LOCKUP', default=DEFAULT_MIRROR_LOCKUP)
self._addConfigKey('_mirrorLockupCommand', 'MIRROR_LOCKUP_COMMAND', default=DEFAULT_MIRROR_LOCKUP_COMMAND)
self._addConfigKey('_shootCommand', 'SHOOT_COMMAND', default=DEFAULT_SHOOT_COMMAND)
self._addConfigKey('_bracketingNbPicts', 'BRACKETING_NB_PICTS', default=DEFAULT_BRACKETING_NBPICTS)
self._addConfigKey('_bracketingEvStep', 'BRACKETING_EV_STEP', default=DEFAULT_BRACKETING_STEP)
self._addConfigKey('_bracketingPlusNbPicts', 'BRACKETING_PLUS_NB_PICTS', default=int(DEFAULT_BRACKETING_NBPICTS/2))
self._addConfigKey('_bracketingMinusNbPicts', 'BRACKETING_MINUS_NB_PICTS', default=int(DEFAULT_BRACKETING_NBPICTS/2))
self._addConfigKey('_bracketingPlusStep', 'BRACKETING_PLUS_STEP', default=DEFAULT_BRACKETING_STEP)
self._addConfigKey('_bracketingMinusStep', 'BRACKETING_MINUS_STEP', default=DEFAULT_BRACKETING_STEP)
self._addConfigKey('_bracketingEvList', 'BRACKETING_EV_LIST', default='')
self._addConfigKey('_bracketingAdvanced', 'BRACKETING_ADVANCED', default=False)
def lockupMirror(self):
# @todo: implement mirror lockup command
Logger().debug("GphotoBracketShutter.lockupMirror(): execute command '%s'..." % self._config['MIRROR_LOCKUP_COMMAND'])
time.sleep(1)
Logger().debug("GphotoBracketShutter.lockupMirror(): command over")
return 0
def init(self):
# gphoto2 --list-config
# Launch external command
args = [ self._config['SHOOT_COMMAND'].split()[0] ]
args.insert(1, "--list-config")
Logger().debug("GphotoBracketShutter.init(): execute command '%s'..." % ' '.join(args))
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Wait end of execution
stdout, stderr = p.communicate()
if p.returncode != 0 and stderr:
Logger().error("GphotoBracketShutter.init(): stderr:\n%s" % stderr.strip())
Logger().debug("GphotoBracketShutter.init(): stdout:\n%s" % stdout.strip())
for line in stdout.splitlines():
if line.endswith('/shutterspeed'):
self._speed_config = line
elif line.endswith('/exptime'):
self._speed_config = line
# gphoto2 --get-config
# Launch external command
args = [ self._config['SHOOT_COMMAND'].split()[0] ]
args.insert(1, "--get-config")
args.insert(2, self._speed_config)
Logger().debug("GphotoBracketShutter.init(): execute command '%s'..." % ' '.join(args))
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Wait end of execution
stdout, stderr = p.communicate()
if p.returncode != 0 and stderr:
Logger().error("GphotoBracketShutter.init(): stderr:\n%s" % stderr.strip())
Logger().debug("GphotoBracketShutter.init(): stdout:\n%s" % stdout.strip())
# Load all available speeds and the current speed
self._avail_speeds = []
for line in stdout.splitlines():
tokens = line.split()
if tokens[0] == 'Current:':
self._basespeed = tokens[1]
elif tokens[0] == 'Choice:':
self._avail_speeds.insert(int(tokens[1]), tokens[2])
if self._basespeed == tokens[2]:
self._basespeed_index = int(tokens[1])
if float(self._avail_speeds[1]) > float(self._avail_speeds[2]):
self._speed_order = 1.0 # slower speed first
else:
self._speed_order = -1.0 # faster speed first
# Guess EV step (1/2, or 1/3)
if float(self._avail_speeds[1])/float(self._avail_speeds[3]) < 1.9:
self._evsteps = 3
else:
self._evsteps = 2
Logger().info("GphotoBracketShutter.init(): basespeed: %s, config: %s, order: %+g, steps: 1/%d" % (self._basespeed, self._speed_config, self._speed_order, self._evsteps))
def _getEvOffset(self, bracketNumber):
# bracketNumber out of self._config['BRACKETING_NB_PICTS']
plusNbPicts = int(self._config['BRACKETING_PLUS_NB_PICTS'])
minusNbPicts = int(self._config['BRACKETING_MINUS_NB_PICTS'])
plusStep = self._config['BRACKETING_PLUS_STEP']
minusStep = self._config['BRACKETING_MINUS_STEP']
if bracketNumber <= minusNbPicts: # 1,2...minusNbPicts
return (bracketNumber - minusNbPicts - 1) * minusStep
elif bracketNumber >= (minusNbPicts+2): # minusNbPicts+2, +3...(minusNbPicts+plusNbPicts+1)
return (bracketNumber - minusNbPicts - 1) * plusStep
else:
return 0
def shoot(self, bracketNumber):
Logger().debug("GphotoBracketShutter.shoot(): bracketNumber=%d" % bracketNumber)
ev_offset = self._getEvOffset(bracketNumber)
speed_index = self._basespeed_index - int(ev_offset * self._evsteps * self._speed_order)
# see if shutter speed is out of range
if self._speed_order > 0: # slow speed first
if speed_index < 1:
speed_index = 1
elif speed_index >= len(self._avail_speeds):
speed_index = len(self._avail_speeds)-1
elif self._speed_order < 0: # fast speed first
if speed_index < 0:
speed_index = 0
elif speed_index >= (len(self._avail_speeds)-1):
speed_index = len(self._avail_speeds)-2
Logger().info("GphotoBracketShutter.shoot(): EV %+d, shutter speed: %s (1/%d steps)" % (int(ev_offset), self._avail_speeds[speed_index], self._evsteps))
# Launch external command
args = self._config['SHOOT_COMMAND'].split()
args.insert(1, "--set-config")
args.insert(2, "%s=%s" % (self._speed_config, self._avail_speeds[speed_index]))
args.append("--set-config")
args.append("%s=%s" % (self._speed_config, self._basespeed))
Logger().debug("GphotoBracketShutter.shoot(): execute command '%s'..." % ' '.join(args))
if True:
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Wait end of execution
stdout, stderr = p.communicate()
if p.returncode != 0 and stderr:
Logger().error("GphotoBracketShutter.shoot(): stderr:\n%s" % stderr.strip())
Logger().debug("GphotoBracketShutter.shoot(): stdout:\n%s" % stdout.strip())
return p.returncode
else:
return 0
class GphotoBracketShutterController(ShutterPluginController):
def _getWidget(self, tab, label):
return self._fields[tab][label]['widget']
def _updateAdvanced(self):
advanced = self._getWidget('Main', LABEL_ADVANCED).value()
self._getWidget('Main', LABEL_NB_PICTS).setDisabled(advanced)
self._getWidget('Main', LABEL_EV_STEP).setDisabled(advanced)
self._getWidget('Advanced', LABEL_PLUS_NB_PICTS).setDisabled(not advanced)
self._getWidget('Advanced', LABEL_MINUS_NB_PICTS).setDisabled(not advanced)
self._getWidget('Advanced', LABEL_PLUS_STEP).setDisabled(not advanced)
self._getWidget('Advanced', LABEL_MINUS_STEP).setDisabled(not advanced)
def _updateBracketingInfo(self,param):
self._updateAdvanced()
advanced = self._getWidget('Main', LABEL_ADVANCED).value()
if not advanced:
halfNbPicts = (self._getWidget('Main', LABEL_NB_PICTS).value()-1)/2
evStep = self._getWidget('Main', LABEL_EV_STEP).value()
self._getWidget('Advanced', LABEL_PLUS_NB_PICTS).setValue(halfNbPicts)
self._getWidget('Advanced', LABEL_MINUS_NB_PICTS).setValue(halfNbPicts)
self._getWidget('Advanced', LABEL_PLUS_STEP).setValue(evStep)
self._getWidget('Advanced', LABEL_MINUS_STEP).setValue(evStep)
plusNbPicts = int(self._getWidget('Advanced', LABEL_PLUS_NB_PICTS).value())
minusNbPicts = int(self._getWidget('Advanced', LABEL_MINUS_NB_PICTS).value())
plusStep = int(self._getWidget('Advanced', LABEL_PLUS_STEP).value())
minusStep = int(self._getWidget('Advanced', LABEL_MINUS_STEP).value())
self._getWidget('Main', LABEL_NB_PICTS).setValue(1 + plusNbPicts + minusNbPicts)
ev_list = [ ]
if minusNbPicts > 0:
for i in range(-minusNbPicts, 0):
ev_list.append("%+g" % (i * minusStep))
ev_list.append("0")
if plusNbPicts > 0:
for i in range(1, plusNbPicts+1):
ev_list.append("%+g" % (i * plusStep))
self._getWidget('Main', LABEL_EV_LIST).setValue(", ".join(ev_list))
self._getWidget('Advanced', LABEL_EV_LIST).setValue(", ".join(ev_list))
def _defineGui(self):
Logger().trace("GphotoBracketShutterController._defineGui()")
ShutterPluginController._defineGui(self)
#self._addWidget('Main', QtGui.QApplication.translate("gphotoBracketPlugins", "Mirror lockup"),
#CheckBoxField, (), 'MIRROR_LOCKUP')
#self._addWidget('Main', QtGui.QApplication.translate("gphotoBracketPlugins", "Mirror lockup command"),
#LineEditField, (), 'MIRROR_LOCKUP_COMMAND')
# Main tab
self._addWidget('Main', LABEL_SHOOT_COMMAND, LineEditField, (), 'SHOOT_COMMAND')
self._addWidget('Main', LABEL_NB_PICTS, SpinBoxField, (1, 11), 'BRACKETING_NB_PICTS')
self._getWidget('Main', LABEL_NB_PICTS).setSingleStep(2)
self._addWidget('Main', LABEL_EV_STEP, DoubleSpinBoxField, (1.0, 5.0, 1, 1.0, "", " ev"), 'BRACKETING_EV_STEP')
self._addWidget('Main', LABEL_EV_LIST, LineEditField, (), 'BRACKETING_EV_LIST')
self._getWidget('Main', LABEL_EV_LIST).setDisabled(True)
self._addWidget('Main', LABEL_ADVANCED, CheckBoxField, (), 'BRACKETING_ADVANCED')
# Advanced tab
self._addTab('Advanced', LABEL_ADVANCED_TAB)
self._addWidget('Advanced', LABEL_PLUS_NB_PICTS, SpinBoxField, (0, 11), 'BRACKETING_PLUS_NB_PICTS')
self._addWidget('Advanced', LABEL_PLUS_STEP, DoubleSpinBoxField, (1.0, 5.0, 1, 1.0, "", " ev"), 'BRACKETING_PLUS_STEP')
self._addWidget('Advanced', LABEL_MINUS_NB_PICTS, SpinBoxField, (0, 11), 'BRACKETING_MINUS_NB_PICTS')
self._addWidget('Advanced', LABEL_MINUS_STEP, DoubleSpinBoxField, (1.0, 5.0, 1, 1.0, "", " ev"), 'BRACKETING_MINUS_STEP')
self._addWidget('Advanced', LABEL_EV_LIST, LineEditField, (), 'BRACKETING_EV_LIST')
self._getWidget('Advanced', LABEL_EV_LIST).setDisabled(True)
self.connect(self._getWidget('Main', LABEL_NB_PICTS), QtCore.SIGNAL("valueChanged(int)"), self._updateBracketingInfo)
self.connect(self._getWidget('Main', LABEL_EV_STEP), QtCore.SIGNAL("valueChanged(double)"), self._updateBracketingInfo)
self.connect(self._getWidget('Main', LABEL_ADVANCED), QtCore.SIGNAL("stateChanged(int)"), self._updateBracketingInfo)
self.connect(self._getWidget('Advanced', LABEL_PLUS_NB_PICTS), QtCore.SIGNAL("valueChanged(int)"), self._updateBracketingInfo)
self.connect(self._getWidget('Advanced', LABEL_MINUS_NB_PICTS), QtCore.SIGNAL("valueChanged(int)"), self._updateBracketingInfo)
self.connect(self._getWidget('Advanced', LABEL_PLUS_STEP), QtCore.SIGNAL("valueChanged(double)"), self._updateBracketingInfo)
self.connect(self._getWidget('Advanced', LABEL_MINUS_STEP), QtCore.SIGNAL("valueChanged(double)"), self._updateBracketingInfo)
self._updateAdvanced()
def register():
""" Register plugins.
"""
PluginsManager().register(GphotoBracketShutter, GphotoBracketShutterController, capacity='shutter', name=NAME)Last edited by jeongyun (2010-03-04 08:30:51)
Offline
Here's how you use this bracketing plugin
1. Select Hardware menu / Plugins / Shutter / choose 'Gphoto Bracket'
(You don't need to repeat this for use next time)
2. Set up the camera
2.1 Make sure your DSLR is hooked up with your computer with a USB cable
2.2 Turn on the camera
2.3 Set the camera to M (Manual) mode. (This plugin assumes it, and will only work with M mode)
2.4 Adjust shutter speed, aperture, and ISO. This shutter speed will be used as a base by the plugin.
3. Hardware / Connect
3.1 Select Hardware menu / select 'Connect'
3.2 The plugin will read the camera's current shutter speed, and all available shutter speeds
4. Set up bracketing
4.1 Click Configure... on main window / click Plugins tab / click Shutter Configure...
4.2 You'll see a window like the first screenshot in this post http://www.autopano.net/forum/viewtopic … 698#p59698
Main tab:
- Shoot command: the location of gphoto2 command and capture parameter
- Bracketing # picts: The total number of pictures you'll take at each position.
- EV step: The exposure differential between subsequent bracketing shots.
- Bracketing Sequence: Exposure of each bracketing shot in shooting order. It starts with under exposure shots, then normal exposure shot, ends with over exposure shots. Each number represents how many stops the shot will be over or underexposed relative to the base exposure. For example +2 means the shot will be two stops overexposed.
Advanced tab:
- If you check 'Advanced' check box in Main tab, you can adjust the number of overexposed shots and underexposed shots independently. Otherwise, the plugin will take the same number of underexposed and overexposed shots.
- See the third screenshot http://www.autopano.net/forum/viewtopic … 698#p59698
I hope my writing is understandable. I'd love to hear your feedback.
Offline
I notice you are using the command line version of gphoto2. Is there a compile of gphoto2 out there anywhere for the Nokia N810? Is it even possible to use the N810 to control a camera via USB?
(I have a Netbook I could use for this also. But I want to try and get everything as compact as possible and use my N810 if I can.)
Last edited by lordtangent (2010-03-04 09:09:40)
Offline
lordtangent wrote:
I notice you are using the command line version of gphoto2. Is there a compile of gphoto2 out there anywhere for the Nokia N810? Is it even possible to use the N810 to control a camera via USB?
(I have a Netbook I could use for this also. But I want to try and get everything as compact as possible and use my N810 if I can.)
It would be very neat to have this running on the N8x0, as LordTangent comments it would remove the need for a tethered netbook
Last edited by Photosbykev (2010-03-04 09:16:32)
Offline
jeongyun, thanks for the doc.
About gphoto2 on N8x0, even if it has been ported, the big issue will be the USB port! I read it is possible to turn the N810 USB port to host-type (rather than slave), but it needs to be externally powered up... Not that simple!
Offline
fma38 wrote:
jeongyun, thanks for the doc.
About gphoto2 on N8x0, even if it has been ported, the big issue will be the USB port! I read it is possible to turn the N810 USB port to host-type (rather than slave), but it needs to be externally powered up... Not that simple!
Life is never easy, there wouldn't be any challenge if it was ![]()
Offline
I did some Googling into it and it is totally possible. There are even off-the-shelf cable kits:
http://wiki.maemo.org/USB_host_mode
It seems that many devices DON'T require external power. However, if power is required, there are battery powered hubs!
(CyberPower CP-H420MP 4-Port USB Hub)
http://www.amazon.com/gp/product/B0002UQALQ
The N8X0 would be really handy as stand-alone controller for bracketing and time-lapse. Once I get the basic Bluetooth / Merlin stuff going I might delve into getting this going to gain more advanced bracketing right from the N810.
Offline
lordtangent wrote:
I did some Googling into it and it is totally possible. There are even off-the-shelf cable kits:
http://wiki.maemo.org/USB_host_mode
It seems that many devices DON'T require external power. However, if power is required, there are battery powered hubs!
(CyberPower CP-H420MP 4-Port USB Hub)
http://www.amazon.com/gp/product/B0002UQALQ
The N8X0 would be really handy as stand-alone controller for bracketing and time-lapse. Once I get the basic Bluetooth / Merlin stuff going I might delve into getting this going to gain more advanced bracketing right from the N810.
FWIW I played with this capability and got a regular USB PC keyboard working on my N800 some time back.
Offline
Thanks for the links! I will order a usb adapter and make some tests.
gphoto2 port for maemo is here:
https://garage.maemo.org/frs/?group_id= … se_id=2456
Also have a look at this thread:
http://talk.maemo.org/showthread.php?t=13868
If someone can make some tests...
Offline
As I said, I plan to order a Nokia N800 USB 360 OTG Adapter. Is there anybody near Grenoble interested? Shipping cost from Canada is only $11, so ordering several items is only interesting if I can give them in hands...
Offline
fma38 wrote:
As I said, I plan to order a Nokia N800 USB 360 OTG Adapter. Is there anybody near Grenoble interested? Shipping cost from Canada is only $11, so ordering several items is only interesting if I can give them in hands...
Do you need that device?:
http://konttoristhoughts.blogspot.com/2 … y-way.html
Offline
No, I was planning to order this device:
http://www.electronicproductonline.com/ … ts_id=2043
Offline
fma38 wrote:
Thanks for the links! I will order a usb adapter and make some tests.
gphoto2 port for maemo is here:
https://garage.maemo.org/frs/?group_id= … se_id=2456
Also have a look at this thread:
http://talk.maemo.org/showthread.php?t=13868
If someone can make some tests...
Looks very promising! I'm going to go ahead and order the adapters also. I only just received my N810, so I'm still getting familiar with it. (I'm pretty familiar with Linux but not the Maemo distro) Once I'm familiar enough with it I'll install the gphoto2 port and do some tests.
I found a cable that's more appropriate for the N810. It is supposed to automatically switch the tablet into Host Mode like the swivel adapter for the N800 from Electronic Product Online. However, this one has free shipping!
http://cgi.ebay.com/Micro-USB-Host-Cabl … ccessories
The same seller also has an in-expensive OTG cable for the N800 (Also with free shipping):
http://cgi.ebay.com/USB-Host-Cable-for- … ccessories
Last edited by lordtangent (2010-03-05 05:16:01)
Offline
I'm wondering if these cables automatically switch the N8x0 to USB host mode, as the other one does?
Offline
The description of the cable for the N810 states:
"It works fine on Nokia N810. You don't need USB Control any more. Automatically Host mode, easily connect with card reader, flash disk, digital camera...."
Which I take to mean, yes... it does switch to Host Mode automatically. (USB Control is the tool used to manually switch on Host Mode)
I'm not as sure about the cable for the N800 though, as the description is less detailed. You could always use the "Ask a question" link on the eBay web page.
There are others on ebay selling similar OTG cables for even less. This guy seems to be the only one selling a MICRO connector that's compatible with the N810 however.
I like these cables more than the 360 swivel cable anyway, since I'd rather have a pig-tail than the swivel, which sort of forces you to use the cable in a pretty specific way. Plus for the N810 I only need to get one cable compared to the setup from Electronic Product Online, which requires TWO adapters + exorbitant shipping rates.
I've ordered the N810 OTG cable on eBay from "business2828" and if you can wait a couple of weeks (the shipping time for Hong Kong) I can test it and share the results.
Offline
Ok, thanks!
Offline
I've just ordered the N800 OTG cable on eBay from "business2828" so it will be interesting to see if there is any difference with the N810 cable Lordtangent has ordered
Last edited by Photosbykev (2010-03-05 12:10:55)
Offline
I just received the answer: the N800 also switches to USB host when the cable is pluged-in. In fact, the cables are all the same, except for the connectors. I ordered several USB-mini for the N800 (pour les grenoblois intéressés), or for other devices which are able to switch to USB host.
Offline
To update my progress on getting gphoto2 running on the N810:
I received the cable today and installed the build of gphoto2 at https://garage.maemo.org/frs/?group_id= … se_id=2456
First of all, I want to report the OTG cable for the N810 from "business2828" works like a charm. I was able to power and mount a USB thumb drive. This alone seems worth the price of this cable. However, that's not why I purchased it... so on to the rest...
I ran into problems with gphoto2. Simply installing it from the .deb isn't good enough. It can't auto-detect the camera. I'm pretty sure this is a configuration problem as the gphoto2 documentation warns about the potential problem:
http://www.gphoto.org/doc/manual/permissions-usb.html
I haven't had time to work my way though the guide. I'll post my results once I have.
On a side note, gphoto2 works GREAT with my older Canon 20D on my netbook (Running Ubuntu 9.10). I've been searching for a decent GUI front end for doing bracketing and there is really nothing out there. Papywizard would make a good front end, even for people who just wanted to shoot brackets for making a single HDR. I mentioned this to a co-worker and he expressed interest in hacking on papywizard to enable the "Timelapse" tab. (He's pretty good with Python and trying to learn more) The Timelapse tab would be a logical place to put a simple button like "shoot now" that could trigger off any bracketing that's setup.
Offline
FYI, I removed the 'Timelapse' tab in the latest builds... As said in the dedicated thread, timelapse should be a different application.
To do what you want to do, you don't really need a special tab: just use the Simulation plugin for both yaw/pitch axis, and gphoto bracket as shutter plugin, and it is fine; I also plan to drive my Canon 20D this way to make bracketing, as soon as I recceive my cable from business2828. I will also to implement the automatic bracketing I started to describe there).
Offline
lordtangent wrote:
First of all, I want to report the OTG cable for the N810 from "business2828" works like a charm.
This one?:
http://cgi.ebay.co.uk/USB-OTG-Cable-min … a58590af8I
Does it automatically switch the N800 USB port into host mode?
Offline
Andrews,
Frederic have some of those cables on order, you can ask him to get one .... ![]()
Offline
Yes, Andrew, this is the one I ordered (all mini-USB to USB-A female OTG capable are the same on this site; the seller made an entry for each model to simplify buyers life).
And yes, the N800 should automatically switch to USB-host.
Offline
mediavets wrote:
Does it automatically switch the N800 USB port into host mode?
got mine today for N800
plugged a usb-memorystick to the N800: worked instantly perfect
Offline
has any one succesfully run gphoto2 on nokia platform yet?
Offline
Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
|
CHOOSING KOLOR Why choose Kolor? Which solution to choose? Download a trial Where can I buy? Education |
SOFTWARE Autopano Pro Autopano Giga Panotour Panotour Pro XnView |
ACCESSORIES Training DVD Panobook PROJECTS Paris 26 Gigapixels Yosemite 17 Gigapixels |
COMMUNITY Forums Blog |
COMPANY About Kolor Corporate blog Resellers Contact |
PRESS Press center Press review TOOLS My account |
