Components Required

Image Component Quantity Available in Kit
evive 1
USB A-B Cable 1
Dual Shaft BO Motor 1


evive has two inbuilt motor control units with which you can control motors with the current limit of 1A each. It uses a SN754410NE Quad H-Bridge IC to control two DC Motors.

evive motor channel



If you look at the SN754410NE chip, you will notice a u-shaped notch at one end.  This helps you to identify pin 1.

Pin diagram of SN754410NE IC

Pin 4, 5, 12, 13 are connected to ground.

Pin 16 is connected to 5V and pin 8 is connected to power voltage which can vary from 4.5V to 30V.

1A and 2A are connected to Arduino Mega digital pin MOTOR1_D1 (28) and MOTOR1_D2(29)  respectively and 3A and 4A to digital pin MOTOR2_D1(30 ) and MOTOR2_D2 (31) . Depending on the states of the pins, the motor state is determined:


LOWLOWMotor is free
LOWHIGHMotor rotates in one direction
HIGHLOWMotor rotates in another direction
HIGHHIGHMotor is stalled



Motor(int Dir1,int Dir2,int Pwm);Constructor with attachments of pins
void attachMotor(int Dir1,int Dir2,int Pwm);Attachments of pins
void moveMotor(int Pwm);Positive for CW and negative for CCW
void moveMotor(int Dir1,int Dir2,int Pwm);dir1 and dir2 can be 1 or 0,pwm can only be positive for CW
void stopMotor();By default stop motor will lock motor
void lockMotor();To lock the motor
void freeMotor();Free the motor
void setMeanSpeed(int Speed);Sets the mean speed with which motor moves when speed=100%
void setMotorSpeed(int Speed);Positive for CW and negative for CCW. Speed in percentage of mean speed
void setMotorSpeed(int Dir1,int Dir2,int Speed);dir1 and dir2 can be 1 or 0
void changePWM(int Pwm);Just to change the PWM in whatever direction the motor was moving
void changeSpeed(int Speed);Just to change the speed (In percentage) not the direction
int getDirection();+1 for CW and -1 for CCW and 0 for free or locked
int isFree();+1 for free and 0 for not free
int isLocked();+1 for locked and 0 for not locked
int getSpeed();Returns speed in % of mean speed
int getPWM();Returns positive for CW and negative for CCW.
void startSmoothly(int Speed);Positive for CW and negative for CCW.
void stopSmoothly();Stops motor smoothly.
Caution : DO NOT exceed VVR voltage over 1A this may damage your motor.


In this example, we will be controlling motor through channel 1:

  • Motor will first rotate for 1 second in clockwise ditection with 150 PWM.
  • Then motor stops for 1 second
  • Then motor will rotate for 1 second in anti-clockwise ditection with 150 PWM.
  • Then free motor for 1 second
  • Repeat

You can also control a four-wheel drive mobile robot with evive. The two motors of same side needs to be connected in parallel.

four wheel robot