I have the Grove v1.3b I2C stepper/motor controller with onboard ATMEGA connected to an Arduino Uno. I am using the latest version of the library that I can find which is: Grove_I2C_Motor_Driver_v1_3-1.0.5 dated 2017 I think.
I am trying to control a 2-phase, four wire stepper motor and have two fundamental issues. Firstly, if I command the motor to move using ‘Motor.StepperRun(100);’ for example, which uses the default type 1 and mode 0, the motor simply vibrates rather than turning.
Secondly, the library does not seem to use the onboard ATMEGA controller to control the motor as I expected. The library function manually controls each step phase. So after I issue the StepperRun() call, I have to wait until all the steps are complete before it moves on to the next line of software. I expected that the arduino would issue a single command to the board and the stepping control would be done by the ATMEGA controller with no further action by the Arduino needed. Is that a misunderstanding? If so, what does the onbiard ATMEGA controller actually do?
I see this question has been asked a number of times in the past but I haven’t seen any good answers.
Thanks!