code: func (d *APA102Driver) Draw() error {
  	// TODO(jbd): dotstar allows other RGBA alignments, support those layouts.
  	n := len(d.vals)
  
  	tx := make([]byte, 4*(n+1)+(n/2+1))
  	tx[0] = 0x00
  	tx[1] = 0x00
  	tx[2] = 0x00
  	tx[3] = 0x00
  
  	for i, c := range d.vals {
  		j := (i + 1) * 4
  		tx[j] = 0xe0 + byte(c.R)
  		tx[j+1] = byte(c.B)
  		tx[j+2] = byte(c.G)
  		tx[j+3] = byte(c.R)
  	}
  
  	// end frame with at least n/2 0xff vals
  	for i := (n + 1) * 4; i < len(tx); i++ {
  		tx[i] = 0xff
  	}
  
  	return d.connection.Tx(tx, nil)
  }
docs: // Draw displays the RGBA values set on the actual LED strip.