Home Tutorials Alternative Gimbal Uses – Alexmos Scripting for Timelapse

Alternative Gimbal Uses – Alexmos Scripting for Timelapse

22 min read

3 axis gyroscope stabilizers have changed the film industry. Now there are plenty of them on the market, some for a reasonable price – so it’s a solution available for almost every filmmaker. Personally, I love my gimbal and I think it was one of my best purchases.

There are a few solutions available on the market. Everyone knows the Ronin from DJI or Movi products. In this article I won’t talk about these two – I’ll talk about stabilizers based on Alexmos controller.

Alexmos is a gimbal controller made by BaseCam company. It’s used in a lot of products and DIY gimbals. If you’re not sure, what’s “inside” your stabilizer: if you’re using the SimpleBGC desktop or mobile app – your stabilizer has Alexmos 😉 (you can also check out BaseCam partners here). That’s why I decided to make this article – it’s really popular in stabilizers and cheaper than Ronin or Movi. Also, it’s hard to find any simple explanation of this function on the Internet, I hope this article would be useful for you 🙂

Thanks to Paolo Giuri I discovered the beta firmware for Alexmos, where you can find way easier timelapse function! If you want to test that, upgrade your gimbal to the beta 2.62b4 firmware. For sure I’ll be testing that solution and make an article about that 🙂 However, the scripts are still there 🙂


That’s not any kind of sponsored post. I personally own an Alexmos controller gimbal made by Polish company Easystab. I’m talking about that solution because I own it, I have tested it and I think I’ve got something to say about it 😉

For using this mode you’ll need a tripod mount for your gimbal. Some of the products have that “built in”. If you don’t have, ask the producer for that kind of mount or try to make your own.

There are a few things you need to know before getting too excited 😉 This article is intended for people who own that equipement. I wouldn’t reccomend it to buy especially for pan/tilt head use.  That’s not very comfortable solution for timelapse. Also, I couldn’t get rid off something called ‘yaw drift’. I end up with minimizing that, but still that solution is almost useless for longer or more precize shots (stop-motion for example). It’s good especially for low fps video, like 1 or 2 fps or shorter timelapse shots, let’s say up to 20-30 min. I’m not a gimbal specialist, maybe you won’t have that problem? Let me know in the comments what are your experiences 😉

Timelapse feature

Ronin doesn’t have any timelapse feature. On the other hand, Movi has absolutely awesome features to program the movement – but it’s the most expensive stabilizer from those I talk about. It was beyond my price range 😉

How about Alexmos? Well, it doesn’t have a “simple” timelapse mode, but it has scripts. Scripts are simple programs written by a user, who has programmed the movement (but don’t get scared – I’ll try to explain it, so that everyone should do that – or you can just use one of my scripts 😉 ). You write them on your computer inside Simple BGC, save to one of the stabilizer’s “Slots” and it can be executed in the field by pressing the menu button – you set how many times. The controller has 5 slots, and you assign the number of menu button press to the slot in the Service tab – you can check an example configuration on the screen below.

Want to make your first gimbal script? This article is perfect for that! I made for you a free script calculator for speed and angle. You’ll find that at the end of the article or at http://beyondthetime.net/script-calc.

So, we found the first disadvantage for this solution – scripts have to be written on the computer. How do you write them on the location? You can take a laptop with you or use the RMotion app.
It’s a beta application to make the scripts remotely – unfortunately, it requires buying additional radio modem and it has different script language than SimpleBGC. I didn’t test that feature, just saying it’s available 😉service-tab-gimbal

Of course, you can save some presets for simple movements like 90 degrees pan with desired speed to be available in the gimbal all the time in one of the slots.

The second disadvantage – it’s better to get the constant movement. You can program the shoot-move-shoot script, but every “move” is a different line of code, so practically it’s useless to the timelapse (in the BaseCam examples there is the move-shoot-move program for spherical panorama). However, you can get extremely slow movement like 0.001 degrees/second.

So, is there any advantage? There is! The classic timelapse head has two axis – PAN and TILT. Gimbals are 3 axis stabilizers, so there is PAN (YAW), TILT (PITCH) and ROLL as the third axis. I don’t think it’s very useful, but for some more complicated shots, you could add that third axis (I used roll axis in a few of my examples) 🙂

How about 4th axis – slider? You can mount the gimbal on the slider and try to match the movements duration. It’s quite difficult but possible.

Gyroscope drift

It took me some time to diagnose that problem. Probably for someone, who knows a lot about gimbals it’s a common knowledge, but nobody told me that 😉 So, I discovered that there is one thing that you must do on your location, before you start shooting – calibrate gyroscope. I found that my gimbal has a YAW axis drift problem – it’s turning the camera left or right, if it should stay still. You can set (or maybe it’s already set) gyroscope calibration on startup of your device or set it in the Service tab – for example at 5x click the button. I think the sensor temperature is important there, so for example if you get your stabilizer outside in the winter, wait a bit for the sensor to cool down.


It’s probably oversaid that this is programming, but let’s stay with that. Here’s the original scripting language guide.


I understand it may look difficult for some of you. In the past I was learning some C++, PHP and JS so for me these are totally basic commands and a pleasure to write 🙂 But thinking of you guys (probably I would also use that because it turns out good) I did a ‘script calculator’! I hope you find it useful, there’s no such solution on the Internet other than mine 🙂 Find the calculator at the end of this paragraph (I hope you’ll still read that).scripting-gimbal

It could be quite complicated for some of you, so here’s my most useful commands (each command should be in different line). You can use the one letter symbol or full word, both work.

R, RESET – this letter/word staying alone in a code line sets the current position as YAW angle=0 (responsible for horizontal pan). If you don’t use that, the gimbal would turn to it’s neutral position every time you run the script.

ANGLE RA(0) PA(0) YA(0) – this command could be used at the beginning of the script to set everything to zero – so the camera would be in the neutral position. A stands for ANGLE and then there are three axis – ROLL ANGLE; PITCH ANGLE and YAW ANGLE. Different axes are presented in the picture below. The ANGLE command sets the desired angle for each axis. For example, if you want to start the timelapse with the camera “looking up”, just change the initial Pitch (tilt) angle: A RA(0) PA(20) YA(0)

Found at the-digital-picture.com


CONFIG ACC_LIMIT_Y(5) ACC_LIMIT_P(5) ACC_LIMIT_R(5) – setting the smooth acceleration/speed ramping for every axis. It’s not necessary but could be useful 🙂 If you want to use that, just paste that into separate line before the movement line. You can experiment with the numbers in the brackets.

INC YS(0.1) YA(30) PS(0.05) PA(-15) RS(0.05) RA(15) TIMEOUT(3600) – here’s the main line to use in the script. Let’s explain that: INC is something similar to ANGLE, for those who want to dive in you’ve got the difference below. Then we have:
YS – YAW SPEED – the speed of the rotation in degrees/second. For timelapse, set something much lower than 1 😉 About speed calculation later in the text.
YA – YAW ANGLE – in degrees, rotation of the YAW axis. Of course, you can use also negative values, such as -10 etc.
TIMEOUT command (in seconds) is something to remember about in timelapse shots, because the default value is 60 sec. It means that no matter where the camera will be, the movement stops after 60 seconds. We don’t want that, because we set much longer movements, so you can set some really high value, such as 3600sec (1 hour).

For most of the times, you would use only YAW and PITCH axis like in the classic pan/tilt timelapse head (YAW=PAN; PITCH=TILT).


INC is a relative movement, A is an absolute movement. So you set the camera to A YA(20) [YAW ANGLE 20 deg.]. Here’s the next command (in a different line) result for those two:
INC YA(15) – the camera would rotate for additional 15 degrees, so it stays at 35 degrees from the neutral position (absolute 0)
A YA(15) – The camera would rotate 5 degrees “back” to the absolute 15degrees position (15deg from neutral position – 0)

So here’s the full program written with these commands:

ANGLE RA(0) PA(0) YA(0)
INC YS(0.1) YA(30) PS(0.05) PA(-15) RS(0.05) RA(15) TIMEOUT(3600)

And here’s the movement record with 1 sec interval, straight from the camera (the movement is pretty much ridiculous, but that’s our example :)):

I hope it’s not that complicated for you 🙂 You can just copy the code and paste into your device.

Unfortunately, the controller won’t think for you here (these days devices accustomed us to this). Let’s assume you want to get 2 axes movement – YAW and PITCH (pan and tilt). To get the same movement time, you have to adjust the angles and speed of each axis to match the same operation time. And that’s why I did the script calculator! 🙂

Just type the duration of the movement in seconds, rotation angle of each axis in degrees and you get the script code 🙂 It’s best to use positive numbers in the calc, and add the ‘-‘ in your final script if that’s needed. Remember, that the speed should be a positive number – if the calculator returns you a negative number, just get rid off the minus. If you find any bugs or just have some improvement ideas, just place it in the comments, please.

Also, the result is pretty smooth, but sometimes adding warp stabilizer at the end would be a good idea 😉

Is it the best solution for timelapse? Definitely not! It’s kind of difficult, not intuitive etc. If you’re looking typically for pan/tilt programmable head – I wouldn’t recommend it for you. It’s not too precise. But for smaller budget timelapsers it’s a really versatile tool. It’s still a gimbal, that lets you do some great handheld video shots, and also you can use it as your timelapse head, without spending more money. Who knows, maybe some day BaseCam would add the keyframe based mobile app feature for timelapse. But for now, we’ve got to work with scripts 🙂

I hope you find this article useful. If so, please leave a comment, it always encourages me to write more articles 🙂 Also, subscribe to my newsletter or like my fanpage 🙂


  1. […] second week of 2017 was all about candles for me 😉 I was finilizing the Alternative Gimbal Uses article for a long time. Now, I know the advantages and disadvantages of using a camera stabilizer […]


  2. Bartek

    19 January 2017 at 10:04

    WIll it work on Beholder DS1 or we need encoders (thus Beholder DC1 ) ?


    • Tomasz

      19 January 2017 at 10:06

      It should work without encoders, however my device has encoders, so I didn’t test it. Definitely worth to try it out 😉


Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also

Sunrise Hyperlapse [37th of 52 Timelapse Project]

Finally I had a week off in sunny Greece to rest after quite intensive summer months. Howe…