def read(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.readPkts(how_much)
		# return ret
		ret = []
		self.setRTS(self.DD_READ)

		# this in_waiting is wrong ... i can read more than is there
		# if self.serial.in_waiting < 12:
		# 	time.sleep(0.001)
		# 	print('waiting:', self.serial.in_waiting)
		# else:
		# 	print('waiting:', self.serial.in_waiting)

		data = self.serial.read(how_much)
		# print('read() data', data, 'len(data)', len(data))
		if data:
			data = self.decode(data)
			# print('decode', data)
			ret = Packet.findPkt(data)
			# print('ret', ret)
		return ret