uStepper is an ultra-compact Arduino compatible board, with integrated stepper driver and 12-bit rotary encoder, enabling the uStepper to be mounted directly on the back of your Nema 17 size stepper motor. This makes it possible to develop applications using a stepper motor, without the need for long and messy wiring to an external Arduino/stepper shield. Furthermore 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 board has the following main features:
- Compact design, fitting on the back of a Nema 17 size stepper motor (41.8 mm x 41.8 mm)
- Arduino compatible (programming using the Arduino IDE)
- USB interface for debugging and programming
- Switch mode voltage regulator
- Integrated stepper driver
- Temperature monitoring of the stepper driver
- Magnetic rotary encoder, providing absolute position
The uStepper hardware specifications includes the following:
- Microcontroller: ATmega328P (16 MHz clock speed)
- Input voltage: 8 – 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
All together making the uStepper a powerful standalone Arduino compatible stepper controller.
The position of the shaft is tracked using a neodymium magnet and a magnetic encoder chip. This encoder chip is able to track 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! Furthermore, since the location of both the magnet and the encoder chip is fixed, the shaft angle measured, will not be reset between power cycles.
Communication between the microcontroller and the encoder is done using the I2C serial protocol, ensuring simple angle readout using available Arduino libraries. Lastly, 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!
Switchmode voltage regulator
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.
To increase efficiency, reduce temperature and at the same time allow supply voltages of up to 30V, we will implement a switch mode regulator in the final uStepper.
As the graph from the switch mode regulator datasheet implies, the efficiency under normal operating conditions can exceed 90% ! This increased efficiency results in a temperature rise in the regulator of only 25 C !
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 selectable microstepping level from full-step to 1/16 microstepping (using jumper configuration) giving a resolution of up to 3200 steps/revolution with a 1.8 degree stepper motor (as included in the premium kit), and up to 6400 steps/revolution if choosing a 0.9 degree stepper motor (not included in the premium kit). The output current is adjustable using the on-board potentiometer, allowing smooth adjustment up to a maximum of approximately 2A. This gives you the ability to adjust the steppers performance for your applications needs.
To give the stepper driver good operating conditions a large ground plane is connected to the thermal pad of the stepper driver chip. This ensures that the large amount of heat from the stepper driver is spread out and away from the stepper driver. For applications requiring high current (above 1.5A) we do recommend a heatsink, and under very intense use (currents approaching 2A and/or high ambient temperatures), active cooling could be required.
On the bottom of the uStepper, as close to the stepper driver thermal pad as possible, a NTC resistor (Temp. sensor) is placed as shown on the 3D view of the preliminary design. This gives you the opportunity to monitor the stepper driver temperature and take action if temperature rises dramatically. The stepper driver chip of course has an internal safety circuit shutting the chip down if the temperature reaches too high a level, preventing damage to the chip.
The uStepper can be expanded in virtually any way imaginable, thanks to the vast number of I/O pins available. The available I/O pins includes SPI, UART and I2C interfaces. The I2C bus is equipped with the required pull-up resistors, eliminating the need to mount these externally.
Moreover, 12 digital I/O pins is available, for expansions, where 2 of these pins can be used for external interrupts and 6 is capable of generating PWM signals. Furthermore the 4 analog pins available, makes it possible for the user to process external analogue signals using the ADC feature of the microcontroller.
uStepper can be programmed using the Arduino IDE, giving you access to a wide range of easy to use libraries.
We will provide example code for uStepper specific functions such as encoder readout and temperature monitoring.
A first prototype of the uStepper has already been developed, proving the concept. A couple of adjustments will be implemented in the final design to further improve the performance of the uStepper. Among the adjustments are relocation of the power connector to fit within the PCB border aswell as replacing the linear voltage regulator with a switching type, allowing for input voltages of up to 30V. Furthermore we have managed to squeeze in additional I/O pins, hereby enhancing the expansion capabilities of the uStepper.
A lot of projects, including robotic arms, CNC machinery or even small vehicles uses RC servos for their actuators.
uStepper incorporates a digital magnetic encoder for measuring absolute position of the shaft, thus eliminating mechanical wear, whereas a typical RC servo use a potentiometer where the position measured will change as the potentiometer wears.
Robot arm example
The preliminary design files, BOM, assembly instructions and software used in the robot arm example, will be made available once the Kickstarter is funded.
The robot arm design files are made for demonstration purposes and are still a work in progress - therefore they might require some adjustments.
The use of a stepper motor instead of an RC motor, provides a high holding torque without fluctuations in the shaft position.
A wide range of gear boxes for stepper motors are available, enabling you to tailor the torque capabilities of the actuator specifically for your application.
This video shows how the uStepper can be used to mimic an RC servo. The uStepper is controlled using the conventional RC servo signals, enabling you to replace your current servo motors with the uStepper directly.
Since the uStepper incorporates a rotary encoder, it is possible to configure one uStepper as a master reading the shaft position. uSteppers configured as slaves can mimic the masters shaft position as shown in the video below, where one uStepper controls the shaft position of two slaves.
Both the servo example and the master/slave example will be available before shipping the first batch of the uStepper.
The uStepper is ready for expansion using the two pin headers. We will provide a basic template for you to build your own expansion shields.
- Battery management shield, making the uStepper completely standalone, without the need for external power supply
- Wireless communication shield, for interfacing the uStepper with smartphones, tablets etc.
Obviously this list of possible expansions could go on forever, and is only limited by your imagination!
The uStepper base kit comes with everything you need to get started assembling your own uStepper.
The base kit consists of:
- uStepper board
- 4 standoffs, threaded rod and nuts for mounting
- Magnet and bracket for encoder
If you need a suitable stepper motor for your uStepper, the premium kit is the way to go! The premium kit includes a Nema 17 size stepper motor suitable for uStepper.
The uStepper kit is easy to assemble using only a philips screwdriver and a wrench. The assembly can be done in less than 5 minutes, as shown in this assembly video.
The uStepper is fully open source with all schematics, parts list and software available on our website www.ustepper.com, when the pre-production batch is fully tested.
The team behind uStepper
Testing and shipping
The uStepper kits will be programmed and tested at our facilities in Denmark before shipping. Since the uStepper will be shipped from Denmark, buyers residing within the European Union will be charged an additional 25% VAT fee. Buyers residing outside the European Union will not be subject to this 25% VAT fee, but please be aware of local customs regulations.
When the Kickstarter campaign has ended we will send all backers residing within the European Union an email regarding payment of VAT fee.
Risks and challenges
We have produced the first prototype, but a couple of changes were made for the final product. Therefore, the final design will undergo thorough testing before starting production. We have chosen a vendor that have experience with producing both small and large volume high quality products.
The final design is close to ready for a pre-production batch that will be tested thoroughly before starting the production.
During the whole process we will keep our backers informed of the challenges we might face and the actions we will have to take.Learn about accountability on Kickstarter
- (30 days)