<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def makePacket(ID, instr, reg=None, params=None):
 	""" 	This makes a generic packet. 	in: 		ID - servo id 		instr - instruction 		reg - register 		params - instruction parameter values 	out: packet 	"""

	pkt = []
	pkt += [0xFF, 0xFF, 0xFD]  # header
	pkt += [0x00]  # reserved byte
	pkt += [ID]
	pkt += [0x00, 0x00]  # length placeholder
	pkt += [instr]  # instruction
	if reg:
		pkt += le(reg)  # not everything has a register
	if params:
		pkt += params    # not everything has parameters

	length = le(len(pkt) - 5)  # length = len(packet) - (header(3), reserve(1), id(1))
	pkt[5] = length[0]  # L
	pkt[6] = length[1]  # H

	crc = crc16(pkt)
	pkt += le(crc)

	return pkt