Electronics - Twostep - Intro


Since developing the Lasershark I've come up with many different uses for these boards as have others who frequently request new features and modifications. One of the more common requests I have received was to add stepper motor control capabilities. Generally these individuals were interested in utilizing the Lasershark in 3D printers however this by far was not the only reason. Given that this demand has been steadily growing and stepper motor control would be quite handy in some devices I have been planning on making (lumia wheels to accompany lightshows, laser marking systems, and yes 3D printers!) I decided now was the time to make such a board.

After a few cold and rainy weekends I developed an add-on board which I call the Twostep. This board is capable of independently driving two different stepper motors and can connect through a Lasershark board in order to save a USB port. Each stepper motor current limit can be digitally adjust as can it's microstep mode, step delay, direction, and enable status. The board also has 4 endstop switch inputs and is galvanically isolated from the lasershark circuitry for noise immunity.

As with the Lasershark this board is open source.


Twostep v1.1 Specifications:

  • Absolute minimum/maximum voltage range of 8-35v
    • Integrated switching power supply supplies 3.3v to digital logic from motor supplies
  • Isolated UART communications
    • Prevents noise and shorts/electrical failures from affecting attached circuitry
    • 1 isolated uart power connector (For use with Lasershark boards)
    • 1 isolated uart data connector (For use with Lasershark boards)
    • 1 Jumper and Connector spot to enable use of 3.3v or 5V FTDI breakout board in place of Lasershark
  • 2 Bipolar Stepper motor connectors driven via Allegro A4982 ICs
    • Capable of driving stepper motors between 0-2A (A heatsink or active cooling system is necessary to run at higher current levels)
    • Can operate in full, half, quarter, and sixteen step modes
    • Thermal, short-to-ground, and shorted load protection
  • 4 Endstop connectors
    • With individual GND and 3.3v pins (for supports of optical, magnetic, and mechanical switches)
  • 1 Wire to board power connector
  • Stepper motors can be controlled/polled independently and digitally to include:
    • Current limit (12 bits resolution)
    • Enable state
    • Microstep mode
    • Step delay (in 100uS increments)
    • Step direction
    • Step count, safe step count, and step until relay modes
    • Start/stop stepping routines.
  • Dimensions: 55mmx60mm
  • 4 4-40 Mounting Holes
  • Atxmega16e5 Microcontroller running at 32Mhz.
  • 1 User LED
  • Reset button
  • Can be programmed via Atmel PDI programmer (using PDI connector) or via UART utilizing the Xboot bootloader. (See usage page for details)


Lasershark Twostep Host Application:
The Lasershark Twostep host application falls under the GPL V2 license. In order to run it you will need to install libusb-1.0 (plus the dev files if you want to compile the app). The Lasershark Twostep host application can be downloaded via github:
Note: Information on how to compile and run this application can be found on the usage page.


Twostep Firmware:
The Twostep firmware falls under the GPL V2 license. Due to it's relative ease of setup and cross-platform nature, I choose to develop the firmware using Code::Blocks. The Twostep firmware can be downloaded via github:

If you only need a firmware to flash your twostep, you can download it here:

Note: Flashing instructions can be found on the usage page.


Twostep Bootloader:
The Twostep bootloader is based on XBoot and falls under the GPL V2 license. The Twostep firmware can be downloaded via github:

If you only need a bootloader to flash onto your twostep, you can download it here:

Note: Flashing instructions can be found on the usage page.


Twostep Hardware:
The Twostep schematic/pcb layout and schematic/footprint libraries fall under the Creative Commons Attribution-ShareAlike 4.0 International license. They were made with KiCad. The board files can be obtained via github:

Note: Do not use the KiCad that comes from the Ubuntu Repos! It is generally quite dated. Instead, use Adam Wolf's daily testing repo.


Twostep Trademarks:
All rights are retained to the Twostep and related trademarks.


Obtaining a Twostep:
Available now! Please see the buy page!


If you found this project interesting or helpful and have the means feel free to donate!