code: def _call_rpc(self, address, rpc_id, payload):
          
  
          # FIXME: Set a timeout of 1.1 seconds to make sure we fail if the device hangs but
          #        this should be long enough to accommodate any actual RPCs we need to send.
  
          status, response = self.hw.stream.send_rpc(address, rpc_id, payload, timeout=1.1)
          return response
docs: Call an RPC with the given information and return its response.
  
          Must raise a hardware error of the appropriate kind if the RPC
          can not be executed correctly.  Otherwise it should return the binary
          response payload received from the RPC.
  
          Args:
              address (int): The address of the tile we want to call the RPC
                  on
              rpc_id (int): The id of the RPC that we want to call
              payload (bytes, bytearray): The data that we want to send as the payload