docs: def sweep(port, rate, ID, retry=3):
  	"""
  	Sends a ping packet to ID's from 0 to maximum and prints out any returned
  	messages.
  
  	Actually send a broadcast and will retry (resend) the ping 3 times ...
  	"""
  	if port == 'dummy':
  		s = ServoSerial(port, rate, fake=True)
  	else:
  		s = ServoSerial(port, rate)
  
  	if ID < 0:
  		ID = xl320.XL320_BROADCAST_ADDR
  
  	try:
  		s.open()
  	except SerialException as e:
  		# print('Error opening serial port:')
  		print('-'*40)
  		print(sys.argv[0], ':')
  		print(e)
  		exit(1)
  
  	pkt = makePingPacket(ID)
  	# print('ping', pkt)
  	s.write(pkt)
  
  	# as more servos add up, I might need to increase the cnt number???
  	for cnt in range(retry):
  		ans = s.read()
  
  		if ans:
  			for pkt in ans:
  				servo = packetToDict(pkt)
  				utils.prettyPrintPacket(servo)
  				print('raw pkt: {}'.format(pkt))
  		else:
  			print('Try {}: no servos found'.format(cnt))
  
  		time.sleep(0.1)
  
  	s.close()