In this week’s tech tip, we will be discussing the new Radian R2 Software. We are really excited to release this upgrade and will explain below about what features are now available and the challenges we had in creating them.
If you're curious to see what's up with the new Software, but don't want to super detailed version, please click here
When we first designed Radian back in 2012/2013, we built it with motion time lapse in mind, specifically for use outdoors and in remote locations. Because of this, there were a number of features that we included that we thought were great, but that others found less appealing (like executing the last saved time lapse on startup). To improve Radian in the past, we made a number of changes to the control app, but other features required a change to the software that runs on Radian itself. Fortunately we designed Radian to have its software programmable via its micro USB port. Unfortunately it turned out that that actually doing that was pretty tricky.
Time Lapse Motion Preview: This was the biggest change to Radian and we really like how it has improved the time lapse workflow. This now allows for a separate (non time lapse) packet that can be sent from your phone to your Radian, that tells the Radian what angle to rotate, and how fast. When using this preview page, Radian will move at its fastest speed (~4.3 degrees/second).
Direct Video Panning (Variable Speed): There is now a special interface (Front Page -> Direct Drive) that allows you to rotate Radian at variable speeds for use in video. Please see below for some details and limitations of the direct drive feature.
Non PC Sync Cable Bulb Ramping: This feature has been added is to allow for Bulb Ramping on cameras without PC Sync Cables. You now have the choice to use your normal camera cable alone, or to include a PC Sync Cable to enable feedback from your camera to your Radian. If your camera does not have a PC Sync Port built in to it, you will want this option turned off (as it is by default). To read more about Bulb Ramping, please see our Bulb Ramping Tutorial
Execute On Start Is Now Optional: This option will allow you to set whether or not your Radian will execute the last saved settings upon startup. This defaults to off, to maintain current behavior. If turned on, your Radian will sit still upon startup and will wait for you to program it. If you do not program it within a few hours, the unit will revert back to a power saving mode, and you will have to turn it off, and then on again to program it.
Expanded Hold Settings Options : Since a lot of cameras will not go past ~30 seconds as their largest exposure, you can now use your Radian to control your camera’s shutter by placing your camera into Bulb Mode, and setting your Radian’s hold setting to your desired exposure.
Improved Upload Packet protocol to increase transmission fidelity : As discussed in Tech Tip #4 your phone communicates with Radian via your phone’s audio port using an Asynchronous protocol. However, it turns out that most phones’ audio ports are not really meant for that kind of use case and we found that some phones are better than others at reliably transmitting the settings needed. To remedy this, we added some extra space to the middle of the packet (basically data that is ignored by the Radian). This way we can do a bit of packet manipulation to even things out and make your phone happier. Perhaps one day there will be time to really geek out on this one...
The app will remember the Radian software version that you are using and will initially be set to the R1 software. Because of the new features, the data sent from your phone to Radian needed to be altered (believe me, I really didn't want to do that) and if your App is set for the wrong software version you will not be able to program your Radian.
You can set your Radian’s software version under Front Page -> App Settings -> App Version. Once you change the software/firmware setting in your app, you will notice that PC Sync Cable & Execute On Start? are now on the Settings Page, and Direct Drive is now on the homepage.
Radian will still behave pretty much the same way as before unless you are using one of the new features. So don’t worry about changes to the startup timing, or the timing between motion and photos (see Tech Tip #3 for more info on that). The one difference is that when the Radian completes its time lapse, it will now wait for a few hours before shutting down into its low power state. This is to solve the issue whereby a Radian that has completed a timelapse needs to be power toggled to upload new settings. It does still go into a low power state after two hours, to avoid draining the battery if you forget to turn it off.
Making the updates to the Radian and to the app were relatively straightforward (and fun!), as these are the sorts of things that we do regularly. However, the actual distribution of the software to our users has proven a lot trickier to manage and that’s what we’ve been grinding away at recently.
The first big roadblock is that Windows computers will not recognize that Radian is a USB-enabled device. This is definitely a software problem since this happens even on Apple computers running Windows. If this is your domain and you have some insight into what could fix this, please shoot us an e-mail. In the meantime we’ve essentially given up on Windows support since if it cannot detect the Radian, we certainly cannot load code to it. As for linux, it will probably work since the Application is written in python for OSX, and makes a few unix calls, but I haven't tested that.
To get it working with a Mac computer running OSX, we wrote a python application that does all of the necessary USB port sniffing, device connections, and code loading. That part wasn’t easy, but we did get it working reliably for internal use. However, we then found that deploying the application to other computers was tricky since Apple generally distrusts things downloaded form the internet (I don’t blame them). I think that we have now solved that problem, and so with that last issue gone, we can now release the software upgrade!
Radian uses a stepper motor, which is a motor that moves in steps of a set angular amount (this is good for when you want repeatable motion). After all of the gearing, it ends up being that Radian can step as little as .0173 degrees per motor motion. In addition, Radian can step as quickly as 250 motions/second, so the fastest that Radian can move is .0173 deg/step * 250 step/sec = 4.33 degrees per sec.
Because Radian does all of its internal thinking in units of milliseconds (1/ 1000 seconds), the wait time between steps are all integer values in milliseconds. The fastest Radian moves is 250 steps/second so there is at minimum a 4 milliseconds pause between steps (1000 milliseconds/250 steps = 4 millisecond pause at each step). Radian can also move more slowly, pausing for 5, or 6, or 7, etc…. milliseconds. This means that the actual Radian speeds are non integer values: 4.3 or, 3.46 or, 2.88, etc... degrees per second. Fortunately, the panning and tilting speeds that looks good on camera are slower the 4 degrees/second and as you go slower your the resolution improves.
This does mean that when you use the direct drive interface and set, say 40 degrees in 10 seconds, Radian cannot do exactly 4 degrees/second. So it will make its best attempt at matching that, which in this case is to move 40 degrees at 4.3 degrees per second, for 9.3 seconds (the angle is prioritized).
We are currently working on a way to display the exact results that you will get in the app, but for now this is how it works. If you use this feature a lot and have a preferred way of going about this, please do reach out to us as you folks are the entire reason this feature exists and we would love to get your input on making it better.
That concludes Tech Tip #5! I hope you found it educational and entertaining, and as always shoot us an e-mail if there is a clarification you would like, or a tech tip you wish to see!
-Steve