Timelapse+ VIEW 1.8 update adds more camera support and includes a brand new USB Camera driver

v1.8 is finally here! The documentation has also been fully updated and expanded for v1.8 as well: https://docs.view.tl

This has been a very long time in coming, mainly because the original scope planned for v1.8 changed a bit. Let me explain: 2018-2019 was quite a time for new camera releases as there's a major trend toward mirrorless from pretty much all manufacturers. From the perspective of time-lapse, this seems good since you now have the option of electronic shutter (time-lapse no longer needs to wear out the camera) and many of the new cameras can be powered over USB as well, extending the battery life (and making up for the tiny batteries in most mirrorless). There are still some concerns with mirrorless, but I won't get into that right now. The point is that mirrorless cameras are operated a bit differently than SLRs and this affects the USB control that the VIEW uses. Due to this, much of the last couple years, I've been consumed with keeping up with all the new cameras and changes, and I was slowed down working with the legacy code of the open-source camera driver, libgphoto2 so a little over a year ago, we decided to write a brand new camera driver we're calling Timelapse+ CORE.

New Camera Driver: Timelapse+ CORE

It had been my plan since the launch of the VIEW to write my own USB camera driver since I had previously done this for the MCU-based original Timelapse+ Intervalometer, but since the VIEW runs Linux, using libgphoto2 at the start allowed for instant support of a broad range of cameras while I focused on other aspects. I always had the intention of returning to write my own driver, but that wasn't the original plan for v1.8. However, as I was getting frustrated adapting libgphoto2 to the new cameras and trying to optimize it for time-lapse, I realized a new driver needed to become the priority.

So, over the last year and a half, I dove in and built a 100% new camera driver from the ground up, we're calling Timelapse+ CORE. It's designed to work optimally for time-lapse, giving me more flexibility and making it much easier to quickly support new cameras. I've rented or bought every major camera supported by the VIEW as I've been testing and debugging the new driver. I'm very relieved and excited to be able to include the new driver as the major feature of the v1.8 release. It's more reliable, faster (allowing shorter intervals) and is also much easier on the development side to maintain and keep up with new cameras, so it's in a good place to continue moving forward from here.

While the new driver was written first for use in VIEW, we are working on packaging it and licensing it as a separate product, the Timelapse+ CORE driver, is a perfect solution in other applications where high-performance USB camera control across a broad range of cameras is needed. Contact us if you're interested in learning more.

New Camera Support

Many new cameras are now supported with the new Timelapse+ CORE driver, including the latest Canon EOS and EOS R, Nikon DSLR and Nikon Z, Fuji X and Fuji GFX, Olympus, and Panasonic. See http://docs.view.tl/#camera-support-overview for an overview.


Sony Updates

Sony cameras have been supported since the beginning of the VIEW, but it's better than ever now with the CORE driver. 1st and 2nd generation Sony cameras don't allow saving to the camera's SD card while connected via USB. This requires that the images be copied to the VIEW's SD card, which takes a little time. With the CORE driver, however, it now takes less than half the time it did before, so the 1st and 2nd generation Sony cameras can support much shorter intervals and become a great option now.

With the advent of the 3rd generation (e.g., A7 III) a lot changed (mostly for the better). The 3rd generation added the ability to use RAW+JPEG and only save the RAW to the camera while only sending the JPEG over USB, which allows for shorter intervals, but the setup needs to be just right (see https://vimeo.com/297232264). With the Timelapse+ CORE driver, this setup is very reliable, and I've tested it several times to thousands of frames without issue. During the development of v1.8, I did have an odd issue that came up in some of the beta versions when using the CORE driver with 3rd-gen Sony where it was sometimes not trigger a frame, despite flawless performance on my rental cameras (things like this are especially frustrating). It turns out the issue was in the way that the camera is trigger over USB: there are commands to simulate a shutter press, and simply sending the press command immediately followed by the release command was a problem on a select few individual camera bodies (my rentals not included in this). Adding a delay between the press and release fully solved it!

Now in the past year we also have the release of a 4th generation Sony camera, the A7R IV. It mostly follows the 3rd gen, but they've moved the menus around so while the proper setup for the VIEW is the same in concept, it looks a little different: https://vimeo.com/386651214. A great new feature of the 4th generation is the ability to read the absolute position of the focus, which makes the focus ramping setup so much easier: https://vimeo.com/387080128


Additional Improvements

Besides the new camera driver, there are hundreds of minor improvements and bugfixes. Here are a few of the more noteworthy:

  • New Custom Bootloader: one of the things I never fully liked was that the VIEW would power on automatically when plugged in to charge. This was a "feature" of the power management chip, and the only way to change this would be to intecept the power on in the bootloader (the first code that runs that in turn loads the OS), find out the reason for power on (plugged in or button press?) and then halt the boot if it was only plugged in, while continuing to monitor should the button be pressed. Working with bare metal bootloader code isn't as easy as one would hope, and the result is a disproportionate amount of effort for a minor change, so because of this I invested my time elsewhere initially. Until one day someone sent a VIEW back to me to be because it was "broken" and powered on when plugged in to charge. Well, I decided that was the time, and that I needed to "fix" it before sending it back. 20 hours of coding later, it works beautifully, and while I was at it I changed the power on sequence to require the power button to be pressed a little longer until it stops blinking and turns solid. This prevents accidental power-on and gives more feedback as well.
  • Firmware update process: there's now a progress bar giving feedback during firmware updates and the update can also be cancelled during download stage. Along with this, the wifi download process is much more resilient and will automatically retry when there's a problem.
  • The app is improved and there is more documentation for it available now here: https://docs.view.tl/#smartphone-app-control. Added to the configuration of the app is live adjustments (change time-lapse parameters across a series of frames while it's running), better focus and motion control, and scheduled time-lapse, where a weekly schedule can be configured with daily start/stop times.
  • The auto ramping starting exposure is now decoupled from the post-transition exposure, meaning that if there are lots of blown highlights due to a backlit scene at sunset, the night exposure won't also be blown out. Instead, the post-transition exposure is based on an absolute luminance preset and can be adjusted in Ramping Options. This handles a wide variety of scenes much better with fewer "surprises".
  • And we now have support for the eMotimo ST4 (https://vimeo.com/338113886) using a USB data adaptor cable, but we're also working on a simple solution that will allow full control over just the AUX2 TRS interface, so the USB can stay open for the camera without a hub. Additionally, there is experimental support for the DJI Ronin S and SC gimbals, allowing it to provide keyframe motion control through the VIEW's app. While it works in that it can be controlled and setup, the resulting motion is not smooth -- there's likely more work to be done figuring out the commands for motor stiffness, etc. It's a tedious process trying to decode a stream of numbers and finding patterns so I can't say when this might be complete yet.

Future Plans

Having finally reached the stable point with the Timelapse+ CORE driver and v1.8, we're now in a place to start looking at new features again. Some features I originally wanted to include in v1.8 had to be set aside to give priority to the new driver, like the long-awaited ND filter support. With the big things out of the way, these features are moving back to the forefront, along with continuing to expand the motion control integration and features.

If you haven't used the VIEW in a while, now is a great time to dig it out and update to v1.8 (https://docs.view.tl/#firmware-update) and try out the new features and improved camera support.

If you don't own a VIEW, you can buy one here!