Update on the next v2 release

Hello everyone,

I just committed the current development state to GitHub. This is not yet the next release but contains a lot of bugfixes and also new features.

miniEngine v2 Update

You’ll find the software here: https://github.com/airiclenz/miniEngine2
The following changes are already included in this pre-release:

  • Bouncing functionality which allows to loop the moves in Video mode.
  • Multiple Language support. You can now add your own language to the system. German is already included in this update (Thank you Sascha Henke!)
  • Added Camera Focus feature to allow a separate focus phase before the exposure phase.
  • Fixed a bug that caused prevented correct saving of the settings to the SD card.
  • Basic Daisy-Chaining functionality is already included but not all features are in there yet.

In case you want to test this pre release, don’t forget to update the libraries as well! If you find bugs or error, please let me know. The final release will be ready in a week or two.

miniEngine v1 Release 1.2

I also released a new version of the version 1. It is just a minor update but it includes some improvements regarding the motor speeds. The miniEngine v1 is from now on hosted on GitHub:



Update to version 2.0.5 beta

Here it is – the next release – packed with new features and functionalities. The biggest is surely the all new Windows client (with its final name) miniEngine Studio!

miniE Studio splash

The new miniEngine Studio can be found on GitHub: https://github.com/airiclenz/miniEngineStudio

The miniEngine software is also on GitHub: https://github.com/airiclenz/miniEngine2

Here is a list of all major updates and changes to the system:

  • Added the minEngine Studio
  • Added minEngine functions for the the minEngine Studio software
  • Added new “Keyframes Mode” which is dedicated to (currently) only work together with the miniEngine Studio
  • Added a function that updates settings to the new version during a software update (no configuration gets lost any longer)
  • Improved dashboards to show only relevant data
  • Improved settings menu-header
  • Optimized system modes and run styles for easier use
  • Fixed a bug where the motor was not moving when motor sleep was enabled
  • Fixed a bug that not saved the keep powered status.


The new Windows client has no documentation yet but should be pretty self explanatory as all button have a tooltip to guide you as much as possible. I also tried to make the user interface as clean and straight-forward as possible. If anyone of you still is not able to figure out how it works, please contact me via the forum. I will help you as good as I can to make it work together with your miniEngine!

If you have any suggestions or find bugs, please let me know. This is the very first release and there is surely lots of space for improvements!

…but mainly I just hope it is of any use for you guys!

miniE Stusio mainForm

Here are some limitations to the functionality which I am aware of:

  • The defined curves can not yet be stored on the miniEngine. After a reboot everything is gone and needs to be sent to the miniEngine again (this will surely some later).
  • The communication between the Studio and and miniEngine might not work 100% in any case. If something is not working, try pressing the button again.
  • The system is not yet “water-proof” and might have some unexpected behavior. I highly recommend using it with care, common sense and limit switches to not destroy your hardware.
  • It does not work together with the miniEngine v1.


I also added a big portion to the documentation which should explains the system-assembly in much more detail.

Link to the documentation….

Have fun with the new stuff!



Documentation update

Hello everyone,

I finally managed to write a short section for the documentation which explains how to use the system. The biggest problem until now was that there were no pictures or other explanations what the different buttons actually do. I tried to make everything as self explanatory as possible and hopefully succeeded (because I never received a singe question on how to use the new miniEngine). Anyways, here is a picture with a description of the different button functions. Some more info can be found in the updated documentation.

[click to see the full resolution]

I also added all needed libraries into the GitHub repository, where you can download the whole project files, so that you have all you need in one download.

One more thing I’d like to post is a short but beautiful video by radixi, done with the new miniEngine 2 in some great Finnish winter (moon-) light.


miniE v2 release

Ladies and Gentlemen,

I worked hard the last couple of days to get everything together and write an initial documentation. Now I am done and just released the miniEngine v2 to the public, to you. It is now available in the shop:


big set

..and all required files are committed to GitHub:


The ones of you that have any questions, please post them in the forum. I am happy to answer them there.


miniE2 boards are going online soon!

Hello everyone,

I just ordered the first batch of shield PCBs for the shop. They will be blue and available as soon as they arrived. I’ll also order some needed parts so that I can offer sets for those of you that want to start quicker.

In the meantime I will continue working on the software. The first version which will be released will have motor control for 2 motors with the new Bézier-based-algorithms. Manual motor placement, higher motor speeds, all measurements in seconds and cm (no more conversions from steps to cm out in the field) and the better user interface are just some of the benefits which will be available in the first software release.

This first version will not be finished but be the first step to the system which I designed to be as capable as possible incl. daisy-chaining, video moves, external inputs and so on.

I am looking forward to getting it into your hands!


miniE v2 update 4.1

Hello everyone,

this is just a quick update on the Bezier-motor-control engine. I worked the last days pretty much all of my free time on the new “core” system and can say that it is more or less done. I now can define moves based one Bézier curves – or in other words by defining 4 points (2-dimensional: time; position) per curve. The engine is then processing the data to a list of linear segments (based on linear functions). So every curve becomes 200 linear segments. To get a smooth move, I developed an algorithm, that uses a finer granularity where the curve bends the most. In the picture below you can see the segmentation (in this case 100 segments):


Every motor-movement in the next version will be based on this new methodology as it allows detailed planning of the motors position in time. I even allows to get information about the speed of the motors at any time. On top of that is the motor movement much smoother as it was with the old delay-based engine. It also allows much greater speeds. I was able to move my dolly along my 100 cm (4 foot) track (this one) in 6 seconds with nice speed-ramping on both sides.

Because the DUE is fast enough and the motor position calculation is based on an easy linear function, there should be plenty of processing power for doing all this for 2 motors simultaneously. Right now there are approx. 0.05 motors steps done per processing loop. This means that the DUE only needs to step the motor every 20 processing loops. [Edit: Running 2 different curves with 2 motors simultaneously is tested and working perfectly.]

The only drawback is that this new control-methodology is making extensive use of the 96kb RAM that that the Arduino DUE has to offer. One of the curves with its 200 linear sub-segments is taking 2400 bytes of RAM. That means that in theory 40 of these curves can be stored in the DUE’s memory. Because the systems itself needs some of the memory too, lets say that 20-25 curves can be stored. I think that this is a good amount to design some pretty complex video-moves. Here is another example of how such a move can look like:


It consists of 3 curves and here is the actual source-code to define such a move by hand:

// x coordinate = time in ms
// y coordinate = motor position in cm
curve[0].p0 = Point( 0, 0);
curve[0].p1 = Point( 6000, 0);
curve[0].p2 = Point( 10000, 50);
curve[0].p3 = Point( 20000, 50);

curve[1].p0 = Point( 20000, 50);
curve[1].p1 = Point( 30000, 50);
curve[1].p2 = Point( 31000, 35);
curve[1].p3 = Point( 40000, 35);

curve[2].p0 = Point( 40000, 35);
curve[2].p1 = Point( 51000, 35);
curve[2].p2 = Point( 51000, 100);
curve[2].p3 = Point( 70000, 100);

The cool thing is that I can read the motor position for any time I want. This will end up in a feature to kind of fast preview the programmed move – for example with 16x speed.

I guess I need a good user interface for editing these curves on the system now!


miniE v2 update 3

Hello everyone,

it’s time for the promised update! The last weeks I was working on the system quite a lot. This is what was done…

I received the revision B prototype-boards but had the great “luck” that my order had some production failures and 2 of the 3 boards had random shorts between the different signal and buses (this is the reason for the wires you can see on the pictures). The (free) 2nd run is finally produced and will arrive here within the next couple of days.

I already can tell though, that there will be a 3rd revision of the boards as I want them to be perfect and also received some last-minute ideas which I just have to include! One of them is to add DIP-switches to the motors-driver-board so that one can set the motor-mode easily from 1/8 step to all the way up to full-step.

The other big part of my development work was the implementation of core parts of the software. The basic UI-engine is implemented and running to my satisfaction. I guess I found a good way to realize a smooth user-input-system with just 2 buttons and a rotary encoder. I really like the encoder input and still can use on more button and then there is the touch-input which will be implemented for later versions greater than 2.0.

Here is a picture of the settings menu with 4 of the 5 so far existing menu points fully implemented (the ones that show data on the right side):


when pressing the “edit” button one will see a new screen, dedicated to the selected setting. This screen will contain some basic explanations about what the setting is all about. This way a basic help will be included.

Here is how the main screen will look like (sort of) – this screen will show all the data that is relevant to the actual shoot. The data is still missing but I hope you get a feeling for how it will look like:


As you can see, I added a functionality to read the input voltage and thus display some battery information. This is self-calibrating and will show perfect values after one full battery-cycle (After the system knows the values for fully charged and fully empty). Another feature which I always wanted was the support for color schemes. Here is a picture with the “night-vision” scheme activated.


I hope you like it!