Posted on 4 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

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.

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 Leave a comment

Nikon D5500 – no more integrated GPS

So, just in time for CES, Nikon announced the D5500, successor to the D5300. The D5300 was Nikon’s only DSLR that had GPS built-in. Its successor, however, no longer does. It seems the function was either not popular enough, or did not work as well as it was supposed to. My guess/experience: Both! (The worst was the battery drain). As usual, you can read the details on dpreview.com or engadget.com

At CES, I went over to the Nikon booth, to test our Unleashed on the D5500 there. Luckily, one of the guys there was curious enough himself to let me test it – even though they were just prototypes, and he wasn’t supposed to let me.

Nikon D5500
  • The good news: the Unleashed Dx000 works on the D5500 (see the GPS Satellite icon)
    Nikon D5500 screenshot GPS icon
  • The bad news: I was unable to properly test how well it fits the D5500, but can tell you it’ll be tight!
    Unleashed Dx000 on Nikon D5500Unleashed Dx000 on Nikon D5500
    It would have been necessary to remove the rubber flap to insert the Unleashed Dx000 completeley, and of course was not going to do that on Nikon’s prototype. The socket is a little more recessed than on other cameras, so I cannot yet promise that the Unleashed can be plugged in all the way, and therefore get enough contact to work properly. I will update this post when I know more – if you’ve tested it, let us know in the comments!
Posted on Leave a comment

Nikon D600 – Unleashed Dx000 is compatible

We’re back from photokina2012 – a great show and a great success! As promised I headed over to the Nikon Booth, and tested our Unleashed Dx000 on the D600.

At first, my heart sunk: No GPS icon on the top LCD. Luckily, when I took photos, the GPS data was embedded in the EXIF data! I figured that Nikon might have simply not included a GPS icon at all on the top LCD. Looking through the manual (page 175 7) it is evident that this is not the case. – there definitely should be a GPS icon. Maybe I simply overlooked it, or the Model on display malfunctioned in some way. Sorry for this false information. Page 175 shows the INFO display, not the top LCD. Top LCD or “Control Panel” is shown on page 7, and definitely does NOT have a GPS icon.

D600 with UnleashedDx000

The Unleashed will fit nicely on the D600, the only problem being that the rubberflap is in the way. While it is possible to use the Unleashed like that, the pressure from the flap will, over time, cause the Plug on the Unleashed to break off the PCB inside, which eventually result in malfunction. There are two nice solutions for this:

  • Cut a rectangle out of the flap, just over the port – so the flap remains closed while the Unleashed is plugged in.
  • Remove the flap entirely: A customer figured out a great, almost entirely reversible method for this:
    D7000 Flap cut
    [image from georgle’s blog]


    by cutting the rubber hinges that wrap around the metal pin right next to the flap, it is possible to remove the flap entirely. By threading the hinges back under the metal pin, the flap can be replaced and will retain its full functionality.

Update:

I misread the manual: Page 175 shows the INFO screen, not the TOP LCD. On page 7 one can see that the top LCD really does not have a GPS icon – in other words, the D600 is fully compatible with the Unleashed Dx000, no “odd behaviour”, no doubt about it.

Posted on Leave a comment

Nikon D600 announced

Today, Nikon announced another full-frame DSLR, the D600. Read the reviews on dpreview, engadget or elsewhere.

Nikon D600

Of course Nikon added GPS support, again it’s not integrated, but via an external Module, such as their GP-1 and of course our Unleashed. According to Nikon, the D600 fits in right below the D800 and is just as much a Pro DSLR as the latter. Rumor had it, that this was going to be the first consumer DSLR with an Fx sensor, and there was much evidence to back this. One example is that the D600 does not have the “pro” 10-pin port on the front of the camera, which would have fit our Unleashed D200+. Instead, it is equipped with the port found on all the consumer DSLRs, on the side of the camera, making our Unleashed Dx000 compatible with the D600.

Nikon D600 GPS Port

D600 Ports (photo by dpreview)

In a couple of days, we’ll be at photokina, and will try the D600 with our Unleashed, just to verify it works, and get you some pics of how it looks.

Posted on 1 Comment

Canon 5D Mark III announced, with GP-E2 GPS receiver!

It’s official – the long awaited Canon EOS 5D Mark III was released a few hours ago. Read the press release, or check out previews and hands-on details at the usual sites – I won’t re-iterate those here.

I must however mention the big news, that Canon seems to finally be embracing geotagging, and announced the GP-E2 GPS receiver along with the 5D Mark III.

Canon GP-E2 GPS Receiver
Image by Canon

It has 3 modes of operation:

  1. Direct communication with the camera via the hot-shoe (only 5D Mark III and 1D x)
  2. Direct communication with the camera via USB (7D – with limations)
  3. Logging a GPS track (any camera)
Unfortunately, no other camera is supported yet, but I suppose that the hot-shoe communication will be available with all future Canon DSLRs. This is great news, as we might well be able to produce a single Unleashed for all Canon cameras, which will allow wireless direct geotagging, and who knows what other great features we will think of for you.

Canon’s GP-E2 will offer the following key features:

  • High-sensitivity GPS chip
  • Digital compass
  • UTC time setting (to set camera clock)
  • Logging function
  • Universal fitting
  • Powered by 1x AA battery
You can find all the details on Canon’s GP-E2 product page.

Here’s the relevant paragraph from the 5D Mark III press release about this new accessory:

“The EOS 5D Mark III also has an optional Canon GPS Receiver GP-E2, which can be connected to the camera via the accessory shoe or a USB cable. With a GPS logging function built-in, the GP-E2 will log latitude, longitude, elevation, and the Universal Time Code – and allow viewing of camera movement on a PC after shooting. With its built-in compass, the GP-E2 receiver will also record camera direction when shooting, even when shooting vertically. The Canon GPS Receiver GP-E2 is compatible with the EOS-1D X and EOS 7Di as well as the EOS 5D Mark III.ii”

i) When the EOS 7D is used with the GP-E2, the following restrictions will apply: a) geotagging function will not work for movies while recording; b) geotagging features will not work for movies when using the Map Utility; c) electronic compass information and automatic time setting is not available; d) transmission via the hot shoe is not possible.

ii) In certain countries and regions, the use of GPS may be restricted. Therefore, be sure to use GPS in accordance with the laws and regulations of your country or region. Be particularly careful when traveling outside your home country. As a signal is received from GPS satellites, take sufficient measures when using in locations where the use of electronics is regulated.

The EOS 5D Mark III requires a firmware upgrade to be compatible with the GPS Receiver GP-E2, which will be available soon.

One more image:

Canon GP-E2 GPS Receiver
Image by Canon

Posted on 1 Comment

Nikon D4 GPS with Unleashed D200+

We were at PMA@CES, exhibiting our products. On a slow morning I wandered over to the CES, heading straight to the Nikon booth. After admiring the D4 for a while, I seized the opportunity, to gather proof for everyone, that our Unleashed D200+ is compatible with the D4. I took my favorite GPS, which managed to keep a fix even inside the Convention Center hall and plugged an Unleashed into the D4. It fits beautifully.

Nikon D4 with Unleashed (front view)

After 3 seconds, the Unleashed had connected to the GPS, and the GPS icon on the LCD lit up:

Nikon D4 with GPS icon (top view)

Took a photo, and what do you know: it’s geotagged with our location in Las Vegas!

Nikon D4 with GPS data (back)


View Larger Map

So there you go: Proof that our Unleashed D200+ is fully compatible with the new Nikon D4!

PS. I went to see Canon’s GP-E1, which they announced 3 months ago! They did not have one with them! Can you believe it? I certainly couldn’t! On top of that, no-one at the booth had any knowledge about it, other than having heard it exists.

Posted on Leave a comment

DIMA 2010 Innovative Digital Product Award for foolography

DIMA 2010 Innovative Digital Product Award

That’s right, we did it again. Our new, wireless direct barcode scanning solution for Nikon DSLRs, the Unleashed – Barcode Edition, won the DIMA 2010 Innovative Digital Product award, which was presented to us at the Sneak Peek Press event of PMA2010.

The Unleashed – Barcode Edition is a by-product of our main product – the Unleashed. However, instead of connecting to a Bluetooth GPS, it connects to a Bluetooth barcode scanner. The photographer scans in a barcode, which is embedded in the EXIF data of all of the following photos, until the next barcode is scanned.

Until now, Direct barcode scanning was only possible with the Fuji S5, which has been discontinued, and no successor was announced. The Unleashed – Barcode Edition enables direct barcode scanning with all high-end Nikon DSLRs – from the D200 and up. On top of that, the setup is entirely wireless.

Unleashed - Barcode Edition

Posted on Leave a comment

Lower Prices + Bundles now available

For the new year, we were able to work out new conditions and to lower our prices.

The next batch of Unleasheds has been produced, production costs have slightly decreased, and we were thus able to reduce the final price. At the same time, we decided to offer two great new Holux GPS receivers bundled with the Unleashed, pre-paired for your convenience.

These are the Holux M-1000C or the tiny M-1200E. They are both based on the MTK MT3329 low power consumption GPS chipset, meaning great reception quality and very long battery life. Also, both include logging features for documenting travelling routes, or even for indirectly geotagging photos taken with your backup camera, that might not have an Unleashed.

The new prices are:

Unleashed:
199.00 €
167.23 € excl. VAT

Unleashed+M-1000C or Unleashed+M-1200E:
199.00+70.00=269.00 €
167.23+58.82=226.05 € excl. VAT

If the price was holding you back and you have not done so already, go get one in our online-shop.

If you’d prefer to buy the Unleashed from your local dealer or favorite online-retailer, tell them to contact us – we have great conditions for retailers and distributors, and are just setting up our worldwide distribution network. They can become a part of it.

Posted on Leave a comment

Unleashing the Unleashed!

It seems almost unbelievable, but after a long time of preparations, and a lot of hurdles we had to overcome, we have finally reached the point where we can proudly announce the availability of the new Unleashed – our tiny wireless geotagging solution for Nikon D200 and up.

While we’re setting up world-wide distribution to bring the Unleashed to retailers near you, we’ve set up a small online-shop for your convenience in the meantime. You can find it here: www.foolography.com/shop

Since we have quite a few prospective customers waiting for the availability of the Unleashed, we are expecting to be out of stock fairly soon, so don’t hesitate. However, production for the next batch has already begun, and will be available shortly.

We’re very glad to have finally come to this point and we hope you’re as excited as we are. If you have any questions or suggestions, please feel free to contact us.

We wish you a happy holiday season, possibly including a lot of fun with your new Unleashed!