code: func (s *StepperDriver) Run() (err error) {
  	//halt if already moving
  	if s.moving == true {
  		s.Halt()
  	}
  
  	s.mutex.Lock()
  	s.moving = true
  	s.mutex.Unlock()
  
  	go func() {
  		for {
  			if s.moving == false {
  				break
  			}
  			s.step()
  		}
  	}()
  
  	return
  }
docs: // Run continuously runs the stepper