code: def remote_eval_last(self, func, *args, **kwargs):
          
          result = self.remote(func, *args, **kwargs).split(b'\r\n')
          messages = result[0:-2]
          messages = b'\n'.join(messages).decode('utf-8')
          return (eval(result[-2]), messages)
docs: Calls func with the indicated args on the micropython board, and
             converts the response back into python by using eval.