docs: def read2(self, how_much=128):  # FIXME: 128 might be too much ... what is largest?
  		"""
  		This toggles the RTS pin and reads in data. It also converts the buffer
  		back into a list of bytes and searches through the list to find valid
  		packets of info. If there is more than one packet, this returns an
  		array of valid packets.
  		"""
  		ret = []
  		self.setRTS(self.DD_READ)
  
  		header = [0xFF, 0xFD, 0x00]
  		ptr = 0
  		while True:
  			b = self.serial.read(1)
  			if not b:
  				return None
  			b = ord(b)
  			print('b', b)
  			if b == header[ptr]:
  				ptr += 1
  				ret.append(b)
  				if ptr == 3:  # found header
  					print('found header')
  					d = self.serial.read(1)  # ID
  					ret.append(ord(d))
  					l, h = self.serial.read(2)  # length
  					l = ord(l)
  					h = ord(h)
  					ret.append(l)
  					ret.append(h)
  					length = (h << 8) + l
  					print('length', length)
  					how_many = length
  					while how_many > 0:
  						print('how_many', how_many)
  						d = self.serial.read(how_many)
  						d = self.decode(d)
  						print('read:', len(d))
  						how_many -= len(d)
  						for i in d:
  							ret.append(i)
  					print('bye')
  					return [ret]
  			else:
  				ret = []
  				ptr = 0
  		return ret