code: def _send_packet_safe(self, cr, packet):
          
          # packet = bytearray(packet)
          packet[0] &= 0xF3
          packet[0] |= self._curr_up << 3 | self._curr_down << 2
          resp = cr.send_packet(packet)
          if resp and resp.ack and len(resp.data) and \
             (resp.data[0] & 0x04) == (self._curr_down << 2):
              self._curr_down = 1 - self._curr_down
          if resp and resp.ack:
              self._curr_up = 1 - self._curr_up
  
          return resp
docs: Adds 1bit counter to CRTP header to guarantee that no ack (downlink)
          payload are lost and no uplink packet are duplicated.
          The caller should resend packet if not acked (ie. same as with a
          direct call to crazyradio.send_packet)