Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

Universal Unipolar Stepper Controller

Here you can find documentation for universal controller for unipolar stepper motors with encoders and end switches.

Check repository koruza-instructions if you are looking for documentation on how to assemble and use Koruza system. See project website for complete specification and introduction.

Should you need any support with KORUZA system, get in touch with Institute IRNAS team and others involved in the project via chat or forum.



The lack of a low-cost stepper controller designed for use with the low-cost motors has motivated us to implement an universal solution with minor optimizations for use in KORUZA. Standalone unipolar motor driver has a number of welcome features:

  • driving 3 unipolar stepper motors 28BYJ48 or 24BYJ48 with suitable JST connectors
  • support for 6 end-switches, two which can be directly attached to the PCB without cables, such that control board can be positioned in a corner of the moving object.
  • support for 3 encoders for closed-loop control in high-precision systems
  • based on Texas Instruments MSP430G2955 in Energia environment
  • UART, I2C and SPI interfaces for receiving the control commands
  • unified serial connector for all interfaces
  • STATUS: operational prototype

Micro-controller has been chosen based on cost and pin number as well as availability in a sufficiently friendly package, however increasing the software development effort. Current revision has been tested with custom Energia code, however we aim to port to it GRBL firmware and thus make it directly interfacable from computer.

Alternative applications discovered thus-far for the controller board are listed below. We are always looking for ideas and people who would like to use it in their system, do get in touch:

  • 3D printer auto bed-levelling system
  • open-source microscope automation system
  • optics lab micrometer drive motorization
  • mini 3D printers and robots


Developed in Energia environment using MSP430G2955 microcontroller not yet officially supported, thus a bit more work in setting up the build environment. Currently only basic functions work and the firmware implemented is here KORUZA specific, but useful for other projects. GRBL port should happen in the future.

Communicating with the board

UART communication at 115200 baud. Using EasyTransfer you send the whole data structure to the controller and change next values for where you would like the motors to move. Immediately the controller will reply with the data structure filled out with what next position it is moving to and current position where it is at. Positioning is absolute.


All our projects are as usefully open-source as possible.

Hardware including documentation is licensed under CERN OHL v.1.2. license

Firmware and software originating from the project is licensed under GNU GENERAL PUBLIC LICENSE v3.

Open data generated by our projects is licensed under CC0.

All our websites and additional documentation are licensed under [Creative Commons Attribution-ShareAlike 4 .0 Unported License] (

What this means is that you can use hardware, firmware, software and documentation without paying a royalty and knowing that you'll be able to use your version forever. You are also free to make changes but if you share these changes then you have to do so on the same conditions that you enjoy.

Koruza, GoodEnoughCNC and IRNAS are all names and marks of Institut IRNAS Rače. You may use these names and terms only to attribute the appropriate entity as required by the Open Licences referred to above. You may not use them in any other way and in particular you may not use them to imply endorsement or authorization of any hardware that you design, make or sell.


Universal controller for Unipolar stepper motors with encoders and end switches







No releases published


No packages published

Contributors 4



  • Other 100.0%