code: func (c *digisparkI2cConnection) Read(b []byte) (read int, err error) {
  	if !c.adaptor.i2c {
  		err = errors.New("Digispark i2c not initialized")
  		return
  	}
  	if err = c.adaptor.littleWire.i2cStart(c.address, 1); err != nil {
  		return
  	}
  	l := 8
  	stop := uint8(0)
  
  	for stop == 0 {
  		if read+l >= len(b) {
  			l = len(b) - read
  			stop = 1
  		}
  		if err = c.adaptor.littleWire.i2cRead(b[read:read+l], l, stop); err != nil {
  			return
  		}
  		read += l
  	}
  	return
  }
docs: // Read tries to read a full buffer from the i2c device.
  // Returns an empty array if the response from the board has timed out.