code: func (d *Driver) Start() error {
  	reqAddr, err := net.ResolveUDPAddr("udp", d.reqAddr)
  	if err != nil {
  		fmt.Println(err)
  		return err
  	}
  	respPort, err := net.ResolveUDPAddr("udp", ":"+d.respPort)
  	if err != nil {
  		fmt.Println(err)
  		return err
  	}
  	cmdConn, err := net.DialUDP("udp", respPort, reqAddr)
  	if err != nil {
  		fmt.Println(err)
  		return err
  	}
  	d.cmdConn = cmdConn
  
  	// handle responses
  	go func() {
  		d.On(d.Event(ConnectedEvent), func(interface{}) {
  			d.SendDateTime()
  			d.processVideo()
  		})
  
  		for {
  			err := d.handleResponse(cmdConn)
  			if err != nil {
  				fmt.Println("response parse error:", err)
  			}
  		}
  	}()
  
  	// starts notifications coming from drone to video port normally 6038
  	d.SendCommand(d.connectionString())
  
  	// send stick commands
  	go func() {
  		for {
  			err := d.SendStickCommand()
  			if err != nil {
  				fmt.Println("stick command error:", err)
  			}
  			time.Sleep(20 * time.Millisecond)
  		}
  	}()
  
  	return nil
  }
docs: // Start starts the driver.