Posted on 8 Comments

Motion controllers – Black Forest Motion and Syrp

Camera with an Unleashed sitting on a motion controller

A lot of you asked about motion controllers, so we put a little more effort into getting it to work smoothly, so we can show you in a quick demonstration. The guys from Black Forest Motion even sent us one of their latest PINE II controllers, that just came out a few weeks ago. With all the updates it got, the most relevant update is that it now supports two concurrent Bluetooth Low Energy connections. One for the PINE app, where you set up the keyframes of the motion paths, and one for the Unleashed which tells the controller when to move to the next frame! While it already worked well with the older PINE controllers, it was a bit of a hassle always disabling one to allow the other to connect. Now, it just works, and we made a quick demo for you guys. Be sure to check out all their cool motion control equipment on blackforestmotion.com

YouTube

By loading the video, you agree to YouTube's privacy policy.
Learn more

Load video

Just last week, we also implemented the protocol to communicate with the API we got from Syrp a while ago. We’re proud to announce that it also works like a charm, and have another quick demo to show you. At the moment, Syrp only allows a single connection, so after setting up keyframes in the Syrp app, you need to disconnect to allow the Unleashed to connect. Hopefully that’ll change soon though! Even so, it’s really cool to see the wireless synchronisation working so well already.

YouTube

By loading the video, you agree to YouTube's privacy policy.
Learn more

Load video

Compatibility of the motion controllers is limited to the Unleashed ’22 that is available on Indiegogo.

Posted on 1 Comment

Tech deep dive

Many people have asked, what’s special about our Unleashed. It’s said that the devil’s in the detail, so we wanted to share some of the technical details that really set the Unleashed apart. It’s gonna get real nerdy, so buckle up 🤓

Where to start?

We’ve been working on the Unleashed with up to 8 developers at once, over the course of about 5 years! The firmware alone is comprised of around a quarter of a million lines of code! For all those unsure what this means: That’s A LOT!

The Unleashed has two main components – a Bluetooth module based on a Nordic chipset and a microprocessor from STM. The STM is in charge of communicating with the camera. It implements a USB Host instance, two serial protocols and GPIOs. The Nordic handles communication with the app as well as accessories paired directly with the Unleashed.

Here’s what’s special and what makes those ~250000 lines of code even more incredible: The STM only has 128 Kilobytes of RAM, and 256 Kilobytes of storage, and the Nordic just 64KB RAM, but a little more storage.

That means we can’t use any readily available image handling libraries or SDKs to control the cameras, and we have had to program everything ourselves from scratch. We’re programming bare-metal – i.e. we’re not even using any operating system! We’ve had to be extremely careful with our very, very limited resources, which has resulted in clean and efficient code – by necessity. And that translates to a great user experience for you! The sad thing is, that no-one will ever notice most of the things that we have taken so much care to get right. Because it just works as you’d expect it to! We usually only notice the things that don’t work as they should.

Since we’re so proud of our accomplishments, I wanted to use this update to highlight some of those things that you’d probably never notice.

USB protocol madness

Except for Nikon, who provide excellent documentation on the USB protocol they use, we have had to reverse engineer this protocol for all the other camera brands. This protocol is called PTP/MTP, for which there is actually a well defined standard. What we found really odd is that, for reasons we cannot figure out, every manufacturer has their own weird extension of this protocol, instead of utilizing it in a way that’s already defined by the standard. Again, Nikon is an exception here, and maybe that’s a reason they’re happy to publish all the details of their API. You have no idea how often, when we finally figured out how something works for a certain manufacturer, we developers collectively just shook our heads and asked “Why???”. That’s the reason why it’s not so easy to add new manufacturers to our compatibility list. The protocol was designed to cover most camera capabilities, and provide easy ways to extend it, but instead, every single one of the manufacturers (except Nikon) does their own thing with it.

But that’s just the basics. Once we figured out everything we could, there were still so many cases where we were left wondering why they couldn’t have just done this other little bit, too, and made everyone’s life easy. Instead, we’ve had to implement complicated workarounds for things that should have just worked in the first place.

Nikon video

After all the praise, here’s a Nikon oddity. For some reason, when starting liveview (e.g. for video recording) via USB, Nikon did not allow for the liveview image to be displayed on the camera’s LCD. I suppose they assumed most use-cases for remote control via USB were to add a bigger screen like a laptop, and therefore expect the liveview image to be transmitted via USB. That’s fine, but why disable it on the camera screen? Anyway, we found a really cool workaround for that: When the user starts a video recording from the app, we quickly change a setting deep in the camera menu, that allows us to start liveview by halfpressing the shutterbutton, and start a video recording by fully pressing the shutterbutton. We then proceed to turn off the USB protocol, and turn on a secondary protocol (more on that later), half press, then full press the shutterbutton, and within a very, very short time, can start video recording with the live-view image showing on the camera’s screen (and HDMI for those with external recorders). Upon stopping the video, we quickly change back the setting to what it was before. Pretty cool, eh?

Nikon’s 10 pin protocol & GPS

That secondary protocol I mentioned is one that no-one knows of, which we completely figured out on our own – and it allows almost all the functions over just the 10 pin port that the Unleashed N1 and N2 plug into. This means that the Unleashed N1 and N2 actually work really well without the USB cable, retaining almost the entire featureset, except anything that has to do with image data. So image review, gallery and the LRT autoramping algorithms don’t work, but everything else will.

This also allows us to still give you control over all the settings while we turn off USB to allow you to shoot video.

One downside to this protocol is that is uses the same pins that we need for the GPS protocol on Nikon cameras. So when it’s used with geotagging turned on, we have to quickly turn off that protocol, turn on GPS, and then take a photo. This adds a slight delay to your triggering, but that’s what the “GPS Priority” setting is for – if you prefer no delays, you can set to trigger immediately, at the risk of having some photos without GPS data.

The other great thing about Nikon’s 10 pin port is that we get lots of information about the camera’s state directly through these pins. Like whether the camera is turned on, the meter is currently on, etc. This helps us manage power-saving features really well!

Tap-to-trigger

But one very cool bit of information is exactly when the shutter opens and closes. This allows for several cool features. The simplest is “tap to trigger”. At first we translated pressing the shutterbutton in the app 100% to pressing the shutterbutton on the camera. As photographers we’re used to pressing the shutterbutton until we hear the clicking of the shutter, then we release. But in the first user tests we did, we noticed that 100% of all testers, whether they were die-hard photographers or not, did a single short tap on the shutterbutton in the app, and were wondering why the camera wasn’t taking a photo! Because that’s what everyone is used to from apps! And so we implemented a solution for this in our firmware: if we receive a tap, the Unleashed will press and hold the camera’s shutterbutton for exactly as long as required, until it senses the shutter opening – i.e. when the camera starts the shot! We then release the trigger so fast, that even with the camera set to continuous high, it will only take a single shot! Of course, if you continue to hold the shutterbutton in the app, the Unleashed will also keep pressing the camera’s shutterbutton until you let go, for burst shots or in-camera HDR bracketing.

Minimal darktime

This also allows us to promise the absolute shortest dark-time during timelapses! Most intervalometers default to fully pressing the shutterbutton for one or two seconds, some even to the interval you set minus 1 second. This results in darktimes of at least that amount of time, no matter how fast the shutterspeed is. With the Unleashed, it’s guaranteed to be shorter than the darktime of the camera itself (while it’s taking the photo). On top of that, most intervalometers half-press for a second or so before fully pressing the trigger, just in case your camera needs to autofocus. This adds yet another second to the dark time, and in most cases, as your exposures get longer, will result in you not being able to review the images at all on the camera screen. Since the Unleashed has the information whether the camera is set to autofocus or not, we can skip the half-press time entirely. And because you really shouldn’t be using autofocus on timelapses, the Unleashed app will even warn you about this while setting up the timelapse. There are a handful of cases where we do half-press in advance, for example geotagging is on, and we do everything possible to make sure GPS data is in each and every photo.

We have similar mechanisms on several other camera brands, and because we’re triggering via USB on those, we can often also just tell the camera to take a single picture, rather than telling it to half-press/full press the shutterbutton. In other words, no intervalometer out there can have a shorter dark-time than what the Unleashed can offer!

LED in the dark

While we’re on the topic of triggering: We have a nice RGB LED in the Unleashed to quickly tell you at one glance what’s happening in the Unleashed. Since one of the many strengths of the Unleashed is in night photography, even a really dim LED can completely alter an exposure, and illuminate an entire room! That’s why the Unleashed turns off the LED automatically for the entire duration of each exposure. Even when you trigger on the camera (on most supported cameras), we will turn off that LED. These are the kind of details, you’ll simply never see implemented in products that weren’t designed by or at least with photographers. And talking about the LED: While it’s idle, the Unleashed’s LED slowly pulses the LED in different colors, depending on the connection state. We tested various pulsing patterns, and all the most obvious ones simply looked wrong. By far the most natural looking one was a sine-curve. Remember we said we had limited hardware resources? Yeah. Trigonometric functions are always floating-point based, and require a lot of resources. Both in memory, to hold the complex functions, but also in execution time, as working with floating points alone is “expensive” and trigonometry even more so. Instead we scoured academic papers on the topic and found a very, very close approximation – the Bhaskara I’s sine. We then implemented that with integer logic, making it extremely efficient and just as beautiful as an actual sine curve. Pretty cool, eh?

There are so many of these kinds of details all throughout our firmware and apps, it would take days to write them all down!

Image decoding on the fly

There’s one pretty amazing part of our firmware that I can’t not talk about. Our image decoder. I don’t know if any of you have any idea about the resources required to work with images. It’s a lot. Usually the entire image gets loaded into RAM, then gets fully decoded into RAM, then calculations are done, and everything is discarded again. With JPEG images easily getting to 20Megabytes and the decoded version of that often being over 100MB, You’d think it’s an impossible task for our little Unleashed with its 128KB of RAM. And yes, with conventional methods it would be.

That’s why we wrote an image decoder from scratch, which can decode JPEG images, requires a mere 500 bytes of RAM, and can handle image data coming in in packets as small as 1 Byte at a time. All that while being performant enough to run at relatively slow processing speeds! That means we don’t have to save any of the image data, but can handle a packet of data, do our calculations and throw it away, We calculate and save the histogram data, and then use that to run the image-based algorithms for autoramping timelapses. And that happens once every interval. While we were at it, we also wrote a parser for EXIF data, so that we could get some valuable information about each image within the first few bytes of an image, skip to the really interesting parts, and only have to decode those parts, as opposed to decoding everything, and keeping only what interests us. That’s also how we can transfer the high-resolution previews without having to transfer the originals!

Previews with metadata

In fact, on most cameras, when we transfer a high resolution preview, we actually merge the EXIF data of the original with the image data of the preview, of course replacing things like X and Y resolution on the fly. This makes those previews even more valuable, as they still contain all your metadata, such as geotags, so if you save the previews to your iPhone’s camera roll, you’ll get to see your camera’s photos in the really cool Places album, where you can browse and find all your photos on a map interface.

We worked so much on our image decoder, and even implemented really, really efficient transcoding of jpeg images to reduce their size on the fly. Something we had hoped to be able to use for reducing the size of liveview frames, to be able to offer decent liveview over the low bandwidth of Bluetooth Low Energy. But sadly, after implementing all that, we hit other bottlenecks that prohibited us from being able to release this feature.

Our Baby

You probably read on our campaign page, that the Unleashed is not just another product out there, but it’s our Baby! Maybe now you have a little bit more of an idea of what we meant with that. We love the Unleashed and we’re pouring everything into it that we’ve got – to make it the coolest camera accessory that we personally always dreamt of!

Greetings from Berlin.

BACK TO INDIEGOGO

Posted on 8 Comments

BIG News – New Unleashed for Sony, Fujifilm, Panasonic, Canon & Nikon

Over the last 2 years we’ve worked hard on developing an Unleashed for more brands than just Canon and Nikon. We’re so excited to now finally announce the new Unleashed ‘22! It is compatible with Sony, Fujifilm, Panasonic as well as Canon and Nikon cameras. With Bluetooth 5.0 and huge internal improvements, we managed to make it 10x faster, enabling us to add great new features! Check it out on Kickstarter!

Update: Since the campaign ended on November 30th, the Unleashed ’22 is available on Indiegogo.

Update

The campaign was fully funded in just 2.5 hours and is going very well, but to make it really successful, we need your help! We’d really appreciate if you told friends, family or colleagues about our campaign, by simply sharing this link: https://www.kickstarter.com/projects/foolography/unleashed-22?ref=5f9mlb and any (or all) of our posts on Social Media (@foolography). It’ll take only a few seconds of your time and be a huge help for us. Thank you so much for your support! 

Posted on 4 Comments

Nikon Z6 and Z7 officially supported – USB-C Cable finally available!

Just before Christmas we finally received the custom made USB-C cables from our supplier. This means that now the Nikon Z7 and Nikon Z6 are officially and fully supported by the Unleashed N2!

Even though the Unleashed N2 was already mostly compatible with the Nikon Z6 and Z7, the optional USB cable gives you access to a few more features, such as photo review. We already had 3 different USB cable types for the various Nikon cameras, but unfortunately, Nikon added yet another USB socket when they released the Z series: both the Z6 and Z7 have USB-C sockets. And while it was possible to use the Micro USB cable with a USB-C adapter, that setup would protrude significantly from the side of the Z series camera. So of course we went and designed another custom cable with a beautiful, tiny, right-angled plugs – one end with our custom plug that fits the Unleashed, and the other end a USB-C plug that fits the Nikon cameras perfectly, without the need for any adapters. Now, it’s finally here!

Unleashed N2 on Nikon Z6 with USB-C Cable
Unleashed N2 on Nikon Z6 with USB-C Cable
USB-C is reversible - both directions work
USB-C is reversible – both directions work

This means you can now use the entire Unleashed feature-set on Nikons Z6 and Z7! In addition to geotagging, shooting time lapses, remotely changing settings, and starting and stopping video, and all that was already possible without the cable, you can now also get thumbnails transferred to you phone, see a few more setting details, and try out the LRTimelapse-based auto-ramping algorithms for smooth day to night “holy-grail” time lapses! See this FAQ for the exact details.

So now is the perfect time to get your Unleashed for your Nikon Z6 or Z7!

Order the Unleashed N2 here to get the best smart camera remote control yet.

Posted on 9 Comments

Geotagging with external GPS receivers now possible (updated)

GPS receivers: Holux, QStarz, Transystem

A few weeks ago, we released app and firmware updates that enable a handful of external GPS receivers to be paired directly with the Unleashed, to provide GPS location data for geotagging without the need of a smartphone.

This is great news for those customers that were unhappy with their smartphone’s location precision, or simply prefer a more independent geotagging solution. This might be to extend battery life of the smartphone, or to enjoy longer battery life of external GPS receivers, especially on long trips off the grid.

The compatible GPS Receivers are:

  • Holux M-241 Plus
  • QStarz BL-1000ST
  • QStarz BL-1000GT
  • QStarz BL-818GT *new*
  • Transystem GL-770

After pairing one of these GPS receivers with your Unleashed through the app (Menu->Your Unleasheds->Edit Unleashed->Accessories), you will see new GPS Modes in the first picker of the GPS settings. In addition to “OFF” and “Smartphone”, you will now also have the options “External GPS only” as well as “External GPS with smartphone fallback” (We hope the new icons make it clear which is which). The first new option will exclusively use GPS data from the external GPS, and not of the smartphone, whereas the second option will use the external GPS while it’s available and providing valid data, but will automatically fall back to using the smartphone location otherwise.

We’ve also added a few new LED colors/sequences to make using the Unleashed without the app a little easier:

  • Lightblue: when an Accessory (such as a GPS receiver) is connected, but the app is not connected, the led will slowly pulse lightblue instead of turqoise.
  • Red blink: alternating with the normal sequences, the Unleashed will blink red to show that there is an error, until now mostly GPS related errors. You can then start the app to see details about the error, or simply check that the the external GPS receiver has a Fix and is connected. Some of these errors are:
    • External GPS receiver not connected (even if it then uses Smartphone fallback)
    • GPS data not valid (even if using last known position)
    • GPS accuracy too low

Comparing the receivers

The Holux has the Unique feature that it uses a single AA battery, for which you can buy replacements anywhere in the world. At the same time battery life is not as good as with the rechargeable Li-Ion batteries of the other options. The QStarz devices provide a little more data than the other two receivers [update: Transystem caught up], and we’ve implemented a neat little feature where you can use the POI button on the Receiver to trigger the camera. But they are also the most expensive. We recommend the BL-1000ST rather than the BL-1000GT, since the Unleashed will not make use of the 10Hz update rate, so it is not worth the extra cost. The BL-818GT doesn’t support the triggering functionality, as it lacks logging, and thus the button is not for POI saving. The Transystem device is more affordable than Qstarz, while providing just as precise position data, but has a quirk that it uses a non-standard USB-A to USB-A charging/data cable. So don’t lose that!

Right from the start, we had planned to make the Unleashed directly compatible with external GPS receivers, but technical challenges forced us to decide against pursuing backwards compatibility to GPS receivers using Bluetooth Classic. Unfortunately, at the time of Launch that basically left us with no options, since virtually all GPS receivers used Bluetooth Classic. However, in the past few years, the above devices were released, so we put a lot of effort into making the Unleashed compatible with external accessories in general, and added support for each of the GPS receivers one after the other.

While we had to reverse engineer Holux’s Bluetooth Protocol (and we got the Date portion wrong for a while), QStarz was kind enough to provide documentation that allowed us to implement support for their devices much more quickly. Transystem went one step further: They used a standard protocol defined by the Bluetooth SIG, and when we found a small issue with their implementation and had additional wishes, they swiftly made changes and added support for those in a firmware update. So a big thank you to both QStarz and Transystem for your support!

So, finally, the Unleashed now enables direct geotagging with external GPS receivers for Nikon as well as Canon DSLRs!

Posted on 2 Comments

The new Unleashed: Pre-order now on Indiegogo

Pre-Order the new Unleashed on Indiegogo

After the new Unleashed was successfully funded on Kickstarter with more than 300% of its funding goal, we are constantly asked whether there is any chance to still pre-order the Unleashed. After thinking about it we now decided to give people the option to pre-order the new Unleashed for a special price and to be part of one of the early production rounds in order to be one of the first to receive it.

Starting today, you can pre-order the new Unleashed through the InDemand program on Indiegogo. Check the compatibility list at the bottom of our Indiegogo page, choose a perk (that’s how Indiegogo calls the rewards or product bundles) and select your shipping country. As with our Kickstarter backers, we’ll send out a survey of which camera model you want the new Unleashed for some time in spring, and you can make the final choice shortly before shipping.

SEE THE UNLEASHED ON INDIEGOGO

Receiving all these mails and requests, we hope and believe this option will make many people happy who just missed the Kickstarter campaign, want their photographer friends to have the Unleashed as well or just want to support us. So have a look at out Indiegogo page and send the link to all your friends who are jealous that you got your Unleashed on Kickstarter and forgot to tell them about it. ;-)

Posted on Leave a comment

foolography partners with Triggertrap



We are proud to announce a cooperation between foolography and Triggertrap. That’s right, we’re making our Unleashed compatible with the Triggertrap app, and the Triggertrap app compatible with the Unleashed! So every one of you backers can use both our app as well as all the cool triggering features of the Triggertrap app that you might already be used to, but now wirelessly with your Unleashed!

Posted on 1 Comment

Nikon D500 has Bluetooth! Unleashed D200+ still needed

Nikon D500

Along with the D5, Nikon also announced the D500, their new DX Flagship camera with all pro features. While many have been hoping for this D300 successor for many many years, most had given up waiting, and settled for the very capable D7x00 lineup instead.

D500

After skipping the D400 (we still don’t know why), and all the rumors focussing on the D5, Nikon really surprised everyone with the D500, but only positively: It inherits many of the D5’s features and sports 153 point AF system, 10fps up to 200 shots, 20.9MP, ISO 51200 expandable to 1640000, Hi-Res Touchscreen and 4K UHD Video – all in a compact but pro-grade DX Body, but you’ve probably already read more about those here, here and here. However, what really sparked my interest was that Nikon finally added Bluetooth to their DSLRs, with their “Snapbridge” feature. Unfortunately, Nikon did not consult us on this, so you won’t get the features you’re used to from our Unleashed just built-in. You’ll be pleased to know that our Unleashed D200+ with the D800 modification will continue to work on the D500 as well, and can co-exist with Snapbridge – the two technologies will not interfere with each other!

SnapBridge logo

Snapbridge on the D500 is an always-on Bluetooth Low Energy connection to your smartphone, transferring low-resolution images as you shoot them, so that you can easily share those on Social Media. It’s also possible to sync the smartphone’s time and location with the Camera. The wording in the marketing info is not 100% quite clear whether this is just for updating timezone settings as you start using the camera in a new location, or whether this means that the photos will actually be geotagged with the smartphone’s location. We’ve mentioned a few times, that this is not to be compared with using a “real” GPS, as you can with our Unleashed, but is a nice feature nonetheless, if Nikon manages to get it right, that is. Unfortunately, this is not something that I have very high expectations for, judging by the current “WMU” app, I used with the D5300 and its built-in wifi, or the D7100 with the WU-1a Wifi-adapter. Nikon also called this Snapbridge, by the way! The Wifi connectivity is only a very small part of this problem, but the app itself is just a little more than unusable. Lets hope Nikon hired some great app developers for the new Snapbridge. In any case, I am looking forward to testing it, and will keep you updated when I do.

Posted on Leave a comment

D5 announced – add GPS with our Unleashed D200+

Nikon D5 in front of black background.

So Nikon finally put an end to all those D5 rumors, and revealed their new Flaship FX DSLR at CES 2016, delivering even more than everyone reading the rumors already anticipated! It really is a beast of a camera, and trumps the D4s in all the important specs: 20.8MP FX Sensor, EXPEED 5 Processor, Native ISO up to 102400, extendable to Hi5 (3280000 – yes, 3.28 million!), brand new 153-Point AF System, 12 fps continuous shooting incl. AF (up to 200 shots), new 180k RGB pixel metering Sensor, Hi-Res Touchscreen, and 4K Video, just to name a few! I’m sure you all know the details, or will want to read up on dpreview (hands-on), nikonrumors, engadget or from official sources: nikon.com.

The D5, like all other current Nikon DSLRs does not have GPS built in, but we’re pleased to tell you that our Unleashed D200+ (with the D800 modification) will work on the D5, giving you the best direct geotagging solution currently available.

D5

This year is the first time since many years that we are not at CES, so unfortunately I was unable to test compatibility personally. However, I have received confirmation from a customer that the Unleashed D200+ with the D800 modification fit the D5 well physically, when he tested it. Since it was indoors, he was unable to verify the functionality. I’m very sure there will be no issues, as the D5, just like the Nikon’s Pro-DSLRs remains compatible with Nikon’s own GPS product, which our Unleashed is electronically compatible with. However, once we get our hands on a D5, we’ll be sure to test it extensively and update this post with our results.