Any interest in Open Spherical Camera?

warwound

Expert
Licensed User
Longtime User
Are there any members interested in using the Open Spherical Camera API?

I've had my Ricoh Theta S for a couple of months now and want to be able to remotely take a picture using a bluetooth controller.
I can then keep my mobile safely in my pocket while out and about taking panoramas.
The official android Theta S app doesn't have this feature so i decided to wrap the Ricoh Theta API v2 so that i could write a b4a app that'll enable me to take pictures using my controller.

If there's any interest from forum members then i'll make the library available.
It's (very) early days so far.
My library currently supports:
  • Taking a picture.
  • Displaying a live image preview.
  • Getting the camera device info.
  • Getting a list of pictures stored on the device.

Need to add some more features:
  • Pass GPS Location to camera so that the camera can geotag pictures as they are taken.
  • Set the Ricoh custom '_filter' option so i can take 'HDR' pictures.

That's all i currently need from my library, but there are loads more options and features that could be added.
Then the library could be made to support cameras other than the Ricoh Theta S - the LG 360 CAM and (soon to be released in the UK) Samsung Gear 360 for example.

My library files and a demo project are attached.
 

Attachments

  • OpenSphericalCamera.zip
    46.3 KB · Views: 304

warwound

Expert
Licensed User
Longtime User
I have ordered a Samsung Gear 360 camera from Ebay (i don't think this camera is officially available in the UK yet).
The Gear 360 is only compatible with 5 handsets: Note 5, S6, S6 Edge, S7 and S7 Edge.
The Gear 360 is also compatible with StreetView.
Does that mean that the Gear 360 is an open spherical camera compliant camera and basic functions can be accessed on any device using the open spherical camera API?
Or is the Gear 360 truly locked down to only those 5 handsets?
Time will tell - my Gear 360 should be delivered before the weekend

My nephew has an LG 360 Camera which i hope he will let me experiment with - but that'll be next month once he's returned from a holiday in Slovakia.

@NJDude Do you have an open spherical camera?
 

jpsercels

New Member
This is awesome!

Did your Gear 360 arrive? Have you found a way to use it with other hardware? OSC compliant?
 

warwound

Expert
Licensed User
Longtime User
My Gear 360 arrived from Korea - it's an excellent bit of kit.

The Gear 360 can be put into 'StreetView mode' using the various buttons located on the Gear 360 - you don't need a Samsung device to put the Gear 360 into StreetView mode.
Once in StreetView mode you can control the Gear 360 using the android StreetView app on any modern android device - i tested using an LG G4 and it worked fine.

I'm assuming that StreetView mode is just an 'open spherical camera compliant mode' and in this mode the Gear 360 supports all standard OSC commands.
I've not had time to test this yet - hopefully this weekend i'll connect my S7 to my Gear 360 in StreetView mode and see if my b4a OSC library can control it.

StreetView mode will only give you a limited amount of control though - many of the Gear 360's features and settings will not be controllable or useable in StreetView mode.
 

warwound

Expert
Licensed User
Longtime User
Here's an informative video:
It shows how the Gear 360 can be controlled with it's built in buttons and points out those camera features that can only be accessed using the (android) Gear 360 Manager app.
 

warwound

Expert
Licensed User
Longtime User
I can confirm that the Gear 360 supports the Open Spherical Camera API.
The Gear 360 must be put into 'Google Street View' mode to enable it's OSC support.

Here's the camera response to a query for device info:

{
"manufacturer": "Samsung Electronics",
"model": "GEAR 360",
"serialNumber": "XXXX",
"firmwareVersion": "C200GLU0APC9",
"supportUrl": "www.samsung.com",
"endpoints": {
"httpPort": 80,
"httpUpdatePort": 80
},
"gps": false,
"gyro": false,
"uptime": 50,
"api": ["\/osc\/info", "\/osc\/state", "\/osc\/checkForUpdates", "\/osc\/commands\/execute", "\/osc\/commands\/status"]
}

Strange that it reports 'gyro' support as false?

My b4a OSC library can connect to my Gear 360 and take a picture.
I haven't tried much else yet.
 
Last edited:

AHilton

Active Member
Licensed User
Longtime User
I'm very interested in this and as soon as my Gear 360 comes in, I'll be playing with your library. How does the Gear 360 compare to the Theta S ? I'm also considering the LG 360. The use I have in mind is a B4A app that triggers taking a panoramic pic via a timer and/or gps distance, downloading it from the camera to the app, geocoding it, and uploading each picture to the server as it's taken.
 

warwound

Expert
Licensed User
Longtime User
How does the Gear 360 compare to the Theta S ? I'm also considering the LG 360.

The Gear 360 has a much better specification than the Theta S.
  • Gear 360 images are 30 megapixels while the Theta S images are 14 megapixels.
  • Gear 360 video resolution is 4K while the Theta S video resolution is 1080p.
  • Gear 360 supports memory cards while the Theta S doesn't - Theta S has built in 8GB memory.

The Gear 360 isn't perfect though, 2 issues to watch out for are:
  • Overheating issues.
    If the Gear 360 overheats then the fixed focus camera(s) can become unfocussed.
    This is suspected to be a hardware issue - no firmware update is likely to fix an overheating issue.
  • Contrast between the 2 stitched images is not handled very well.
    This image shows the problem - scroll around and look at the sky and you'll see an obvious line between both stitch images.
    This issue has already been improved with a firmware update and it's hoped that future firmware updates will further improve contrast between images.

I've no experience with the LG 360 so can't say how the LG compares to the Samsung and Theta.
The Gear 360 isn't perfect but overall (in my opinion) it's a far better camera than the Theta S.
 

AHilton

Active Member
Licensed User
Longtime User
Thanks for the info, warwound. For this particular project I have in mind, the Gear 360 seems the way to go. I like the smaller form factor of the Theta S and the LG 360 for general use, but I don't have that limitation for this project. The best part of the Gear 360 specs is the replaceable battery (which, may also be a problem in the overheating issue) and the better (non-low-light) image quality / stitching software.

Regarding the overheating .... it seems that's a problem with several of these cameras. The Go Pros, Gear 360, and even some reports with the Theta. With the Gear 360, I'm wondering if it might be the battery pack that's the problem. Much like the early iPhones, Sony laptops, etc. If so, then it might not take a hardware change to the camera itself but just an upgrade battery to fix it. <shrug> For this project, I won't be doing continuous video recording so maybe the overheating problem won't come up. Although, this will be done in direct sunlight and within a waterproof housing. I'll just have to see how it goes.

Looking forward to getting it soon and playing.
 

warwound

Expert
Licensed User
Longtime User
Hey @warwound,

I saw your post on the developer forum for Samsung. Did you figure out why the 360 wasn't geotagging the photos properly? Or perhaps a work around?

Hi.

I just posted a reply on that forum.
No i've not found a solution yet.
I see another developer has complained about the same issue - so i'm assuming the problem is with the Gear 360 and not my b4a code.

The android StreetView app works so why doesn't my app!

I wonder if i can run the StreetView app and snoop on the HTTP requests that it makes to the Gear 360 and see exactly how the StreetView app is sending GPS locations to the Gear 360.
Could this be a bug in the Gear 360 firmware and the StreetView developers have found a workaround...?
 

BrokənRobøt

New Member
I noticed the StreetView app downloads the photo onto the phone every time.... possibly it writes it own exif information once the image is on the phone? My guess, is that the Gear 360 Manager does its own thing given it uses the Bluetooth protocol. I'm looking into seeing if the camera software is some form of the Tizen product to see if there is a way to write some native code to the camera.
 

warwound

Expert
Licensed User
Longtime User
On the Gear 360, bluetooth is only used to establish a wifi connection between mobile and camera.
Once a connection is established bluetooth is no longer used.
I believe the mobile uses a proprietary wifi direct protocol to control the camera.

It'd make sense for the Gear 360 to be a Tizen device.
So far Samsung haven't released a Gear 360 SDK of any sort - something I find surprising.
 

BrokənRobøt

New Member
The StreetView App downloads the image and sets the exif GPS tag it on the phone.


This is how the the Gear 360 Manager sets the GPS (port:7676).


POST /smp_4_ HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.49.10
Content-Length: 354
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetInfomation"
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetInfomation xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
<GPSINFO>N999999XW999999</GPSINFO>
</u:GetInfomation>
</s:Body>
</s:Envelope>



I haven't figured out how it sets up the Wifi Direct connection from the bluetooth connection.
 
Last edited:

warwound

Expert
Licensed User
Longtime User
The StreetView App downloads the image and sets the exif GPS tag it on the phone.


This is how the the Gear 360 Manager sets the GPS (port:7676).


POST /smp_4_ HTTP/1.0
Content-Type: text/xml; charset="utf-8"
HOST: 192.168.49.10
Content-Length: 354
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetInfomation"
Connection: close

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetInfomation xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
<GPSINFO>N999999XW999999</GPSINFO>
</u:GetInfomation>
</s:Body>
</s:Envelope>



I haven't figured out how it sets up the Wifi Direct connection from the bluetooth connection.

That's interesting.
How did you find out what Gear Manager is sending - did you install something like Wireshark?
 

warwound

Expert
Licensed User
Longtime User
Hey @warwound,

I saw your post on the developer forum for Samsung. Did you figure out why the 360 wasn't geotagging the photos properly? Or perhaps a work around?

Samsung released a firmware update for the Gear 360, i installed it yesterday.
Tested my 'streetview mode' code and, sadly, found that the 'set gps coords' still fails as before.
 
Top