uStepper is an Arduino-compatible board with an integrated stepper driver

Tired of the messiness? uStepper combines an ATmega328P MCU, a stepper driver and an absolute encoder in one ultra-compact design.

The brainchild of Mogens Nicolaisen and Thomas Olsen, who together make up Danish startup ON Development IVS, uStepper is an ultra-compact, Arduino-compatible board with an integrated stepper driver and 12-bit rotary encoder.


Since it can be mounted directly on the back of your NEMA 17, uStepper makes it possible to develop applications using a stepper motor, without the need for long and messy wiring to an external Arduino or stepper shield. Aside from that, the 12-bit rotary encoder ensures that the absolute position of the motor shaft can be tracked, enabling the uStepper to detect any loss of steps.

The uStepper can be programmed with the Arduino IDE, giving you access to a wide range of easy-to-use libraries. With an ATmega328P at its core, key specs of the board include:

  • Clock speed: 16MHz
  • Input voltage: 8V – 30V
  • I/O voltage: 5V
  • Digital I/O pins: 12 (6 of which provide PWM capability)
  • Analog I/O pins: 4
  • Up to 2A stepper drive current (adjustable)
  • Up to 16x microstepping (user selectable)
  • 12-bit encoder resolution

The position of the shaft is tracked using a neodymium magnet and a magnetic encoder chip. This chip is able to sense the position of the north and south pole of the magnet, and use this information to determine the angle of the motor shaft. The encoder has a 12-bit resolution, meaning that the shaft position can be tracked in steps of 1/4096, corresponding to a resolution of 0.088 degrees. What’s more, since the location of both the magnet and the encoder chip is fixed, the measured shaft angle will not be reset between power cycles.


Communication between the MCU and the encoder is done through the I2C serial protocol. The uStepper is completely expandable, thanks to the vast number of I/O pins available, which include SPI, UART and I2C interfaces. The I2C bus is equipped with the required pull-up resistors, eliminating the need to mount these externally. Additionally, the encoder enables the uStepper to perform closed loop regulation of the stepper motor position, with a sample frequency as high as 6.6 kHz.

“On our first prototype a linear regulator, regulating supply voltage down to the 5V I/O voltage, was implemented. During normal operation the linear regulator, regulating 12V down to 5V, will have a temperature rise of approximately 50 C° — that is above ambient temperature! This is because of the low efficiency, which is only 42% — supplying the uStepper with more than 12V would not be a wise thing to do with this type of regulator,” the ON Development IVS crew writes.

To increase efficiency, reduce temperature and at the same time allow supply voltages of up to 30V, the final version of the uStepper will include a switch mode regulator. The team adds, “Besides the benefits of increased efficiency and thereby lower temperature, the possibility of increasing the supply voltage to the stepper, will also increase the possible operating speed and torque!”

The uStepper stepper driver chip has a selectable microstepping level from full-step to 1/16 microstepping (using jumper configuration), giving a resolution of up to 3,200 steps/revolution with a 1.8-degree stepper motor and up to 6,400 steps/revolution if choosing a 0.9-degree stepper motor. The output current is adjustable using the on-board potentiometer, making smooth adjustment up to a maximum of approximately 2A possible.


For ideal operating conditions, a large ground plane is connected to the thermal pad of the stepper driver chip. This makes certain that the large amount of heat is spread out and away from the stepper driver. For applications requiring high current (above 1.5A), its creators recommend a heatsink, and note that under very intense use (currents approaching 2A and/or high ambient temperatures), active cooling may be necessary.

On the bottom of the uStepper, a NTC resistor is embedded as close to the stepper driver thermal pad as possible. This lets you monitor the stepper driver temperature and take action if the temperature drastically rises. The stepper driver chip has an internal safety circuit shutting down operation should the temperature reach too high of a level, preventing damage to the board.

For its crowdfunding debut, the uStepper comes in two forms: a base and premium kit. The base set includes the board, four standoffs, along with a a magnet and bracket for the encoder. Meanwhile, the premium kit features all of that plus a NEMA 17 stepper motor. The open source kits are super simple to assemble, requiring nothing more than a Philips screwdriver, a wrench and five minutes of your time.

Sound like something you’d like to have? Head over to the uStepper’s Kickstarter page, where ON Development IVS is currently seeing $8,882. Delivery is expected to get underway in March 2016.

2 thoughts on “uStepper is an Arduino-compatible board with an integrated stepper driver

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s