Page 1 of 2

Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 10th, 2020, 11:56 pm
by Unfoolishly
Hi all,

Today I discovered a bug in the Unleashed App when trying to take a photo using the App but with the lens-cap still on. I know, a bit silly of me, but it happened.
But what I did not expect is that the App got "disrupted" by pressing the "shutter button" in the App and not reset itself after a while.
The shutterbutton in the App remained pressed, while the camera was trying to take a photo. But the camera could not take a photo because the lens-cap was still on. After removing the lens-cap, the camera did not make a photo, nor did the App return back to "normal", as if the button was never pressed. The button remained "pressed" in the UI/UX and the App began to do some strange things, like not working the way you would expect. I turned off and on the camera, but that did not restore the Unleashed App back into the state of an "unpressed shutterbutton". Somehow, the App begon to disfunction.
I would expect that if such erroneous situation occurs, the Unleashed hardware and Unleashed App sync back-and-forth to keep in line with the desired behavior. But it did not.
I had to close the Unleashed App, pull out the battery and push it back in to restore everything to normal again.

I think the problem is in the Unleashed App (on Android), and maybe a bit in the firmware of the Unleashed itself?). This is a usecase that can happen to all of us, including me. So I would assume that the App somehow restores itself to normal again (as if the button pressed never occurred) when the Unleashed cannot take the photo and the "pressed in" button in the App is released/reset after a predefined amount of time. Otherwise the command will linger in the App and disrupts the normal operation of the camera.

That is all I have encountered today.

Request: auto recovery of shutter button pressed state in UI/UX and recall (= ignored) of shutter button pressed command from App to Unleashed within a predefined amount of time when the photo cannot be taken for whatever reason that may be. It should not have some sort of "memory" of the command if the camera can't execute the command in real time, when the command is given.

Thanks in advance.

Greetings,
Unfoolishly

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 10:06 am
by Andy
This sounds like a firmware issue. Can you reproduce it? I have personally tested this many times and have never seen this issue, so you may have come across a rare edge case.

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 11:34 am
by Unfoolishly
Andy wrote:
October 12th, 2020, 10:06 am
This sounds like a firmware issue. Can you reproduce it? I have personally tested this many times and have never seen this issue, so you may have come across a rare edge case.
Hi Andy,
Yes, I assume I can reproduce it. If time permits I will make a short video of it demonstrating it, because it really looks like uncontrolled behavior of the Unleashed App/hardware.

Could it be that this only occurs when multiple Unleashed are paired/bounded in the App, and therefore you have not yet come across of this bug while testing?

Greetings,
Unfoolishly

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 12:03 pm
by Andy
Not really since one Unleashed doesn't care about other Unleasheds. Most likely this is a bug in our tap-to-trigger state machine.

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 12:04 pm
by Andy
But just in case, check if you can also reproduce it with other Unleasheds disabled, maybe you're right and it's an app issue instead of a firmware issue.

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 12:37 pm
by Unfoolishly
Andy wrote:
October 12th, 2020, 12:04 pm
But just in case, check if you can also reproduce it with other Unleasheds disabled, maybe you're right and it's an app issue instead of a firmware issue.
I will do my best to figure out different scenario's in which it occurs, or not occurs. But currently my time is very limited to create a video out of it.

Does the Unleashed give feedback to the Unleashed App if the Unleashed/camera successfully took a photo? Does the Unleashed ALWAYS do something with the moment/signal from the camera that a photo was taken? I mean: when I press the shutterbutton in the App 10 times, does the App sends these 10 commandments to the Unleashed in which these commands get queued to forward them to the camera? But what if you do this with the lens-cap still on the lens, do these commands expire in a preset timeperiod and thus get discarded in the queue of the Unleashed commands? It's the same as pressing the shutterbutton on the camera while the lens-cap is on: the camera ignores these shutterbutton pressed signals.
The thing is, that when you press the shutterbutton in the App but the camera can't make the photo (for whatever reason that might be) the shutterbutton in the App hangs in "pressed" state and never returns back to "unpressed" state. If the App gets informed back of the Unleashed if a photo is taken, what does the Unleashed signal back to the App when it can't take a photo (lens-cap on)? I assume the queue holds the commands, but they never time-out in time. Then you get a statemachine that is going out of control... getting back-and-forth problems.

Greetings,
Unfoolishly

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 12:45 pm
by Andy
There's no queue, the trigger in the app is designed to work as if you were pressing the trigger on the camera. You can leave your finger on the trigger and it behaves exactly as if you were holding the shutter button down on the camera.

The only exception is a tap-to-trigger mechanism. That allows you to "tap" on the trigger button in the app and the Unleashed will try to take a picture, waiting for confirmation from the camera or just timing out. You don't need to know the specifics. My guess is that this mechanism is getting stuck pressing the shutter button waiting for some condition, but I don't know what condition. We already have timeouts in place, so it would help to know if this is an easy-to-reproduce issue.

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 12:53 pm
by Unfoolishly
Andy wrote:
October 12th, 2020, 12:45 pm
There's no queue, the trigger in the app is designed to work as if you were pressing the trigger on the camera. You can leave your finger on the trigger and it behaves exactly as if you were holding the shutter button down on the camera.

The only exception is a tap-to-trigger mechanism. That allows you to "tap" on the trigger button in the app and the Unleashed will try to take a picture, waiting for confirmation from the camera or just timing out. You don't need to know the specifics. My guess is that this mechanism is getting stuck pressing the shutter button waiting for some condition, but I don't know what condition. We already have timeouts in place, so it would help to know if this is an easy-to-reproduce issue.
Aha, I see. Is there a build-in logging structure inside the Unleashed hardware that can be signalled back to the App, so I can reproduce the condition and hand over the logging of both the App and the Unleashed hardware? That way, you can more easily find the cause of the bug.

I'll try to make a video out of it next week (hopefully). But don't pin me down on it ;-)

Greetings,
Unfoolishly

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 12th, 2020, 1:37 pm
by Andy
Nope, there isn't such thing.

Re: Unleashed App doesn't cancel the "shutterbutton pressed" action when photo cannot be taken by the camera

Posted: October 14th, 2020, 11:28 am
by Oliver
The Firmware is designed to release the trigger if it doesn't manage to trigger after 1 or 2 seconds, and the app should simply mirror what the firmware tells it, but who knows what edge-case you managed to find. As always, if you do manage to reproduce it, a log-file from your android app would be very helpful!