Skip to end of metadata
Go to start of metadata

Problem

Iconasys has updated the FTDI SDK to allow testing of stepper motors.

Solution

Downloading the SDK
To download the stepper-enabled SDK follow these steps:
  1. For Mac, please download: IconasysTurntable.1.0.23644-mac.tgz
  2. For Windows please download: IconasysTurntable.1.0.23644-win.tgz

Using an FTDI chip and the Iconasys SDK you can use DB0 for sending a train of pulses to a stepper motor and DB1 for setting the stepper motor direction.  To use the SDK please follow these steps:

  1. Download the appropriate SDK as mentioned above.
  2. Please also read this article on using the SDKs for testing USB turntables to find the details on how to install the drivers for Windows and Mac.
    1. Please be aware that on Windows you have to install the drivers twice.
    2. On Apple you will have to run the internal FTDI disable tool the very first time.  Again, this is mentioned in the aforementioned article.
  3. After unzipping the SDK run the binary file by double clicking on it.
  4. The following menu will open up (shown on Mac, but exact same menus are on Windows):
  5. Enter P to send a pulse train on pin DB2 of the FTDI chip.  The menu you will see next is:
  6. The first entry is for the number of milliseconds DB2 is high.
  7. The second number is the number of milliseconds DB2 is low.
  8. The third number is the number of pulses you want to send on DB2.  If you are driving a motor with 800 steps per revolution, entering 800 for the number of pulses should be equivalent to 1 full turn.
  9. The fourth number is the value of the DB1 pin.  Zero means low and 1 means high.  This allows you to set the direction of the stepper motor.
  10. Using the above settings the pulse you would get out of DB0 would look similar to this:
  11. The pin assignments are as follows:

const static unsigned char MASK_STEP_MOTOR_ENABLE      = 0x01; // DB0
const static unsigned char MASK_STEP_MOTOR_DIR              = 0x02; // DB1
const static unsigned char MASK_STEP_MOTOR_PULSE         = 0x04; // DB2
const static unsigned char MASK_STEP_USB_ENABLE            = 0x08; // DB3
const static unsigned char MASK_STEP_CAMERA_FOCUS      = 0x10; // DB4
const static unsigned char MASK_STEP_CAMERA_SHUTTER  = 0x20; // DB5