Skip to content

Instantly share code, notes, and snippets.

@mangelajo
Last active February 28, 2023 06:10
Show Gist options
  • Save mangelajo/6fa005ff3544fecdecfa to your computer and use it in GitHub Desktop.
Save mangelajo/6fa005ff3544fecdecfa to your computer and use it in GitHub Desktop.
Olympus Share E-M10 camera
and get_commandlist.cgi result:
<oishare>
<version>2.20</version>
<support func="web"/>
<support func="remote"/>
<support func="gps"/>
<support func="release"/>
<cgi name="get_connectmode">
<http_method type="get"/>
</cgi>
<cgi name="switch_cammode">
<http_method type="get">
<cmd1 name="mode">
<param1 name="rec">
<cmd2 name="lvqty">
<param2 name="0320x0240"/>
<param2 name="0640x0480"/>
</cmd2>
</param1>
<param1 name="play"/>
<param1 name="shutter">
<cmd2 name="lvqty">
<param2 name="0320x0240"/>
<param2 name="0640x0480"/>
</cmd2>
</param1>
</cmd1>
</http_method>
</cgi>
<cgi name="get_caminfo">
<http_method type="get"/>
</cgi>
<cgi name="exec_pwoff">
<http_method type="get"/>
</cgi>
<cgi name="get_resizeimg">
<http_method type="get">
<cmd1 name="DIR">
<param1>
<cmd2 name="size">
<param2 name="1024"/>
<param2 name="1600"/>
<param2 name="1920"/>
<param2 name="2048"/>
</cmd2>
</param1>
</cmd1>
</http_method>
</cgi>
<cgi name="get_movplaytime">
<http_method type="get">
<cmd1 name="DIR"/>
</http_method>
</cgi>
<cgi name="clear_resvflg">
<http_method type="get"/>
</cgi>
<cgi name="get_rsvimglist">
<http_method type="get"/>
</cgi>
<cgi name="get_imglist">
<http_method type="get">
<cmd1 name="DIR"/>
</http_method>
</cgi>
<cgi name="get_thumbnail">
<http_method type="get">
<cmd1 name="DIR"/>
</http_method>
</cgi>
<cgi name="exec_takemotion">
<http_method type="get">
<cmd1 name="com">
<param1 name="assignafframe">
<cmd2 name="point"/>
</param1>
<param1 name="releaseafframe"/>
<param1 name="takeready">
<cmd2 name="point"/>
</param1>
<param1 name="starttake">
<cmd2 name="point">
<cmd3 name="exposuremin"/>
<cmd3 name="upperlimit"/>
</cmd2>
</param1>
<param1 name="stoptake"/>
</cmd1>
</http_method>
</cgi>
<cgi name="exec_takemisc">
<http_method type="get">
<cmd1 name="com">
<param1 name="startliveview">
<cmd2 name="port"/>
</param1>
<param1 name="stopliveview"/>
<param1 name="getrecview"/>
<param1 name="getlastjpg"/>
<param1 name="ctrlzoom">
<cmd2 name="move">
<param2 name="widemove"/>
<param2 name="telemove"/>
<param2 name="off"/>
<param2 name="wideterm"/>
<param2 name="teleterm"/>
</cmd2>
</param1>
</cmd1>
</http_method>
</cgi>
<cgi name="get_camprop">
<http_method type="get">
<cmd1 name="com">
<param1 name="desc">
<cmd2 name="propname">
<param2 name="touchactiveframe"/>
<param2 name="takemode"/>
<param2 name="drivemode"/>
<param2 name="focalvalue"/>
<param2 name="expcomp"/>
<param2 name="shutspeedvalue"/>
<param2 name="isospeedvalue"/>
<param2 name="wbvalue"/>
<param2 name="noisereduction"/>
<param2 name="lowvibtime"/>
<param2 name="bulbtimelimit"/>
<param2 name="artfilter"/>
<param2 name="digitaltelecon"/>
<param2 name="desclist"/>
</cmd2>
</param1>
<param1 name="get">
<cmd2 name="propname">
<param2 name="touchactiveframe"/>
<param2 name="takemode"/>
<param2 name="drivemode"/>
<param2 name="focalvalue"/>
<param2 name="expcomp"/>
<param2 name="shutspeedvalue"/>
<param2 name="isospeedvalue"/>
<param2 name="wbvalue"/>
<param2 name="noisereduction"/>
<param2 name="lowvibtime"/>
<param2 name="bulbtimelimit"/>
<param2 name="artfilter"/>
<param2 name="digitaltelecon"/>
<param2 name="desclist"/>
</cmd2>
</param1>
</cmd1>
</http_method>
</cgi>
<cgi name="set_camprop">
<http_method type="post">
<cmd1 name="com">
<param1 name="set">
<cmd2 name="propname">
<param2 name="takemode"/>
<param2 name="drivemode"/>
<param2 name="focalvalue"/>
<param2 name="expcomp"/>
<param2 name="shutspeedvalue"/>
<param2 name="isospeedvalue"/>
<param2 name="wbvalue"/>
<param2 name="artfilter"/>
</cmd2>
</param1>
</cmd1>
</http_method>
</cgi>
<cgi name="get_activate">
<http_method type="get"/>
</cgi>
<cgi name="set_utctimediff">
<http_method type="get">
<cmd1 name="utctime">
<cmd2 name="diff"/>
</cmd1>
</http_method>
</cgi>
<cgi name="get_gpsdivunit">
<http_method type="get"/>
</cgi>
<cgi name="get_unusedcapacity">
<http_method type="get"/>
</cgi>
<cgi name="get_dcffilenum">
<http_method type="get"/>
</cgi>
<cgi name="req_attachexifgps">
<http_method type="post"/>
</cgi>
<cgi name="req_storegpsinfo">
<http_method type="post">
<cmd1 name="mode">
<param1 name="new"/>
<param1 name="append"/>
<cmd2 name="date"/>
</cmd1>
</http_method>
</cgi>
<cgi name="exec_shutter">
<http_method type="get">
<cmd1 name="com">
<param1 name="1stpush"/>
<param1 name="2ndpush"/>
<param1 name="1st2ndpush"/>
<param1 name="2nd1strelease"/>
<param1 name="2ndrelease"/>
<param1 name="1strelease"/>
</cmd1>
</http_method>
</cgi>
<cgi name="exec_shuttermisc">
<http_method type="get">
<cmd1 name="com">
<param1 name="startliveview">
<cmd2 name="port"/>
</param1>
<param1 name="stopliveview"/>
</cmd1>
</http_method>
</cgi>
</oishare>
Olympus Share APP control urls over E-M10 camera, still to investigate..
http://192.168.0.10
http://192.168.0.10/
http://192.168.0.10/clear_resvflg.cgi
http://192.168.0.10/exec_pwoff.cgi
http://192.168.0.10/exec_shutter.cgi?com=1st2ndpush
http://192.168.0.10/exec_shutter.cgi?com=1stpush
http://192.168.0.10/exec_shutter.cgi?com=1strelease
http://192.168.0.10/exec_shutter.cgi?com=2nd1strelease
http://192.168.0.10/exec_shutter.cgi?com=2ndpush
http://192.168.0.10/exec_shutter.cgi?com=2ndrelease
http://192.168.0.10/exec_takemisc.cgi?com=ctrlzoom&move=
http://192.168.0.10/exec_takemisc.cgi?com=digitalzoomshift
http://192.168.0.10/exec_takemisc.cgi?com=getlastjpg
http://192.168.0.10/exec_takemisc.cgi?com=getrecview
http://192.168.0.10/exec_takemisc.cgi?com=startliveview&port=
http://192.168.0.10/exec_takemisc.cgi?com=stopliveview
http://192.168.0.10/exec_takemisc.cgi?com=supermacroaflock&func=lock
http://192.168.0.10/exec_takemisc.cgi?com=supermacroaflock&func=release
http://192.168.0.10/exec_takemisc.cgi?com=supermacromfinaflock&move=
http://192.168.0.10/exec_takemotion.cgi?com=assignafframe&point=
http://192.168.0.10/exec_takemotion.cgi?com=assignaflock&point=
http://192.168.0.10/exec_takemotion.cgi?com=releaseafframe
http://192.168.0.10/exec_takemotion.cgi?com=releaseaflock
http://192.168.0.10/exec_takemotion.cgi?com=starttake
http://192.168.0.10/exec_takemotion.cgi?com=starttake&exposuremin=
http://192.168.0.10/exec_takemotion.cgi?com=starttake&point=
http://192.168.0.10/exec_takemotion.cgi?com=starttake&upperlimit=200
http://192.168.0.10/exec_takemotion.cgi?com=starttake&upperlimit=200&point=
http://192.168.0.10/exec_takemotion.cgi?com=stoptake
http://192.168.0.10/exec_takemotion.cgi?com=takeready
http://192.168.0.10/exec_takemotion.cgi?com=takeready&point=
http://192.168.0.10/get_caminfo.cgi
http://192.168.0.10/get_camprop.cgi?com=desc&propname=desclist
http://192.168.0.10/get_camprop.cgi?com=get&propname=touchactiveframe
http://192.168.0.10/get_commandlist.cgi
http://192.168.0.10/get_connectmode.cgi
http://192.168.0.10/get_dcffilenum.cgi
http://192.168.0.10/get_gpsdivunit.cgi
http://192.168.0.10/get_imglist.cgi?DIR=
http://192.168.0.10/get_imglist.cgi?DIR=/DCIM
http://192.168.0.10/get_resizeimg.cgi?DIR=
http://192.168.0.10/get_rsvimglist.cgi
http://192.168.0.10/get_thumbnail.cgi?DIR=
http://192.168.0.10/get_unusedcapacity.cgi
http://192.168.0.10/req_attachexifgps.cgi
http://192.168.0.10/req_storegpsinfo.cgi?mode=
http://192.168.0.10/set_camprop.cgi?com=set&propname=artfilter
http://192.168.0.10/set_camprop.cgi?com=set&propname=drivemode
http://192.168.0.10/set_camprop.cgi?com=set&propname=expcomp
http://192.168.0.10/set_camprop.cgi?com=set&propname=focalvalue
http://192.168.0.10/set_camprop.cgi?com=set&propname=isospeedvalue
http://192.168.0.10/set_camprop.cgi?com=set&propname=shutspeedvalue
http://192.168.0.10/set_camprop.cgi?com=set&propname=supermacrosub
http://192.168.0.10/set_camprop.cgi?com=set&propname=takemode
http://192.168.0.10/set_camprop.cgi?com=set&propname=wbvalue
http://192.168.0.10/set_takemode.cgi?com=normal
http://192.168.0.10/set_takemode.cgi?com=selftimer
http://192.168.0.10/set_utctimediff.cgi?utctime=
http://192.168.0.10/switch_cammode.cgi?mode=play
http://192.168.0.10/switch_cammode.cgi?mode=rec&lvqty=
http://192.168.0.10/switch_cammode.cgi?mode=shutter
http://flashair
http://flashair/
http://flashair/command.cgi?op=100&DIR=
http://flashair/thumbnail.cgi?
@mdauphin
Copy link

mdauphin commented Feb 3, 2016

@crispgm
Copy link

crispgm commented Jun 2, 2016

@mdauphin Great gist and document!

@LeeTroy
Copy link

LeeTroy commented Apr 24, 2018

I was able to take three shots with the following sequence.

curl "http://192.168.0.10/switch_cammode.cgi?mode=shutter"
curl "http://192.168.0.10/exec_shutter.cgi?com=1st2ndpush"
curl "http://192.168.0.10/exec_shutter.cgi?com=1st2ndpush"
curl "http://192.168.0.10/exec_shutter.cgi?com=1st2ndpush"

Thanks for your documentation. I could create a ESP8266 wifi shutter button!!
My repo: https://github.com/LeeTroy/OlympusWiFiShutter

@aanarcissus
Copy link

Thank for your document!
In share app
what is the code to start video record and stop?

@AngelicaPerduta
Copy link

Olympus seem to have dropped the air SDK and removed it from their site. I was wondering if anyone here per chance still has a backup copy of it they could share?

@nandenjin
Copy link

Olympus seem to have dropped the air SDK and removed it from their site.

I searched with the filename and found new one. ✨ Cc: @AngelicaPerduta

https://dl-support.olympus-imaging.com/opc/en/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment